
Хакер #309. Самооборона по-хакерски
Обнаружена компрометация пакета tj-actions/changed-files, который является частью tj-actions. Это один из многочисленных GitHub Actions на одноименной платформе, предоставляющей бесплатную систему CI/CD для публичных репозиториев. Обработчик changed‑files использовался в 23 000 организаций и недавно получил обновление для кражи конфиденциальных данных.
В прошлую пятницу, 14 марта 2025 года, в исходный код всех версий tj-actions/changed-files были внесены несанкционированные изменения: изменились теги, которые разработчики используют для ссылок на конкретные версии. Теги указывали на общедоступный файл, который копировал внутреннюю память серверов, где был запущен, искал учетные данные и записывал их в журнал. В результате многие публичные репозитории, использующие tj-actions/changed-files, отобразили конфиденциальные учетные данные в логах, которые мог просмотреть любой желающий.
«Самое страшное в GitHub Actions заключается в том, что зачастую они могут изменять исходный код репозитория, который их использует, и получать доступ к любым секретным переменным, связанным с рабочим процессом, — объясняет известный ИБ-специалист и основатель runZero Эйч Ди Мур (HD Moore). — Использование Actions для параноиков — это аудит всего исходного кода, а затем привязка конкретного хеша коммита вместо тега к рабочему процессу, но это хлопотно».
К сожалению, пострадавшие организации не следовали описанной Муром логике. Репозитории, использующие tj-actions/changed-files, доверяли тегам, а не хешам проверенных версий, что привело к запуску скраппера и логгера памяти. Наибольшему риску подверглись публичные репозитории, поскольку учетные данные в этом случае могли увидеть все желающие.

В минувшие выходные мейнтейнер проекта сообщил, что злоумышленники неизвестным образом скомпрометировали учетные данные, которые @tj-actions-bot использовал для получения привилегированного доступа к репозиторию. По словам мейнтейнера, пока неясно, как именно произошла компрометация. В настоящее время пароль уже изменен, а для дополнительной безопасности аккаунт защищен ключом passkey и двухфакторной аутентификацией.
Представители GitHub сообщили СМИ, что у них нет никаких оснований полагать, что сама компания или платформа могли быть взломаны.
«Из соображений безопасности мы были вынуждены приостановить действие учетных записей пользователя и удалили контент в соответствии с Acceptable Use Policies, — пишут представители GitHub. — Мы восстановили учетную запись и контент только после того, как убедились, что все вредоносные изменения отменены, а источник компрометации устранен».
Первыми эту атаку на цепочку поставок заметили специалисты компании StepSecurity, которые обнаружили аномалии, «когда в сетевом трафике возник неожиданный эндпоинт». Судя по всему, инцидент начался около 9 утра субботы, 15 марта.
Также на произошедшее обратили внимание специалисты компании Wiz. Они сообщают, что предварительный анализ атаки показал, что от этого инцидента пострадали десятки пользователей.
«Wiz Threat Research наблюдала развертывание скрипта, созданного для сбора секретов в процессе выполнения вредоносной полезной нагрузки. Кроме того, мы выявили десятки репозиториев, затронутых вредоносным GitHub Action, включая репозитории, управляемые крупными организациями. В этих репозиториях вредоносная полезная нагрузка успешно выполнялась и приводила к утечке секретов в логах рабочих процессов. Среди обнаруженных нами утечек секретов были: действительные ключи доступа AWS, GitHub Personal Access Tokens (PAT), токены npm, приватные ключи RSA и многое другое», — сообщают аналитики Wiz.