Недавняя атака
на цепочку поставок , которая скомпрометировала популярное действие GitHub
tj-actions/changed-files, оставила след цифрового разрушения, затронув 218
репозиториев GitHub.
По мере того, как следователи копают глубже, истоки
этого сложного взлома постепенно проясняются, раскрывая как первоначальную
компрометацию, так и конечную цель.
Хотя желаемой целью были проекты GitHub, связанные с Coinbase, популярной криптовалютной биржей, исходная точка атаки была прослежена до кражи одного токена из рабочего процесса Spotbugs. Это предоставило злоумышленнику несанкционированный доступ и позволило ему скомпрометировать множество проектов GitHub.
Spotbug — это инструмент статического анализа,
выявляющий ошибки в коде Java, поддерживаемый RD_MNTNR, который также был
активным разработчиком reviewdog, проекта GitHub по автоматизированному обзору
и тестированию кода, взлом которого привел к изменению файлов
tj-actions/changed-files.
Объяснение атаки tj-actions/changed-files
14 марта исследователи безопасности обнаружили, что
исходный код tj-actions/changed-files был изменен.
GitHub Actions — это фреймворки непрерывной интеграции
и непрерывной доставки (CI/CD), предназначенные для оптимизации создания,
тестирования и развертывания кода.
Представитель StepSecurity прокомментировал: «В этой атаке
злоумышленники изменили код действия и задним числом обновили несколько тегов
версий, чтобы ссылаться на вредоносный коммит. Скомпрометированное действие
печатает секреты CI/CD в журналах сборки GitHub Actions».
«Если журналы рабочего процесса общедоступны
(например, в публичных репозиториях), любой потенциально может прочитать эти
журналы и получить раскрытые секреты. Нет никаких доказательств того, что
просочившиеся секреты были вывезены в какой-либо удаленный сетевой пункт
назначения», — добавили они.
В сообщении
в блоге компания Endor Labs, занимающаяся безопасностью цепочки поставок
программного обеспечения, написала: «Злоумышленник, скорее всего, не искал
секреты в публичных репозиториях — они уже публичны. Скорее всего, они хотели
скомпрометировать цепочку поставок программного обеспечения для других
библиотек с открытым исходным кодом, двоичных файлов и артефактов, созданных с
помощью этого. Любой публичный репозиторий, который создает пакеты или
контейнеры как часть конвейера CI, мог быть затронут. Это означает, что
потенциально тысячи пакетов с открытым исходным кодом могут быть
скомпрометированы».
По первоначальным оценкам, атака имела ошеломляющие
последствия: было скомпрометировано около 23 000 репозиториев.
Однако более тщательное расследование показало, что
фактический ущерб был значительно более ограниченным: вредоносная фиксация
tj-actions раскрыла конфиденциальные секреты только 218 репозиториев, что
составляет лишь малую часть от изначально предполагаемого общего количества.
Инциденту был присвоен официальный номер CVE —
CVE-2025-30066, который впоследствии был добавлен в каталог
известных эксплуатируемых уязвимостей (KEV) Агентства по кибербезопасности и
безопасности инфраструктуры США (CISA).
Дальнейшее расследование показало, что злоумышленник успешно
проник в проект GitHub reviewdog/action-setup, внедрив вредоносный бэкдор,
который сработал при запуске зависящего от него проекта
tj-actions/eslint-changed-files.
Новые откровения:
Coinbase и спотбаги
20 марта исследователи из подразделения Unit42
компании Palo Alto Networks обнаружили , что
первоначальной целью атаки была Coinbase, а именно ее проект AgentKit с
открытым исходным кодом GitHub.
Злоумышленники попытались использовать публичный
конвейер CI/CD проекта, вероятно, чтобы использовать его в качестве плацдарма
для дальнейших взломов.
Однако атака была частично предотвращена, поскольку
злоумышленники не смогли получить доступ к секретам Coinbase или использовать
их, а также опубликовать вредоносные пакеты.
Исследователи Unit42 полагают, что после этой
первоначальной атаки тот же субъект угрозы активизировал свои действия, что
привело к более значительной и масштабной атаке, которая привлекла внимание
всего мира.
2 апреля исследователи Unit42 сообщили, что им удалось
собрать воедино этапы, которые привели к изначальному взлому, на основе рекомендаций, опубликованных
разработчиками reviewdog.
По данным Unit42, злоумышленники изначально получили доступ, используя рабочий
процесс GitHub Actions для spotbugs в ноябре 2024 года, что позволило им
перемещаться между репозиториями spotbugs, пока они не получили доступ к
reviewdog.
Хронология атаки
Ноябрь 2024 г.: Злоумышленник
получил несанкционированный доступ к Spotbugs .
6 декабря 2024 г.: Злоумышленник
использовал уязвимый рабочий процесс «pull_request_target», чтобы украсть
персональный токен доступа (PAT) сопровождающего с помощью вредоносного запроса
на извлечение, отправленного одноразовой учетной записью пользователя
(randolzflow).
11 марта 2025 г.: Злоумышленник
использовал украденный PAT для добавления еще одного фиктивного пользователя (jurkaofavak)
в репозиторий spotbugs. Затем этот пользователь отправил вредоносный рабочий
процесс GitHub Actions, который извлек второй PAT, принадлежащий
сопровождающему reviewdog (RD_MNTNR), который также имел права доступа к
spotbugs. Украденный PAT предоставил злоумышленнику доступ на запись в
репозиторий reviewdog/action-setup, что позволило ему заменить тег v1
вредоносным коммитом из разветвленного репозитория.
Это фактически отравило все проекты, которые
полагались на тег v1, создав бэкдор, который срабатывал при использовании в
сочетании с tj-actions/eslint-changed-files. Затем злоумышленник использовал
украденные учетные данные для переопределения тегов git в репозитории,
перенаправляя их на вредоносный коммит, предназначенный для сброса конфиденциальных
секретов из исполнителей непрерывной интеграции (CI) в журналы. Вредоносный
коммит раскрыл секреты для 218 репозиториев, включая те, которые связаны с
Coinbase.
14 марта 2025 г.: CI Coinbase
извлек и выполнил измененную версию. К счастью, план злоумышленника по
проникновению в системы Coinbase был сорван. Быстрая реакция компании на
попытку взлома сыграла решающую роль в смягчении ущерба, поскольку компания
оперативно получила уведомление о потенциальной уязвимости безопасности и
предприняла решительные действия по удалению вредоносного рабочего процесса.
14 марта 2025 г.: Исследователи
StepSecurity обнаружили, что исходный код tj-actions/changed-files был
подделан.
15 марта 2025 г.: Уязвимость была
раскрыта компанией MITRE и ей был присвоен идентификатор CVE — CVE-2025-30066.
16 марта 2025 г.: Аднан Хан,
независимый исследователь в области наступательной безопасности, опубликовал
отчет, указывающий на взлом другой организации GitHub, reviewdog .
18 марта 2025 г.: CISA добавила
CVE-2025-30066 в свой каталог KEV.
18 марта 2025 г.: Разработчики
Reviewdog опубликовали рекомендацию по безопасности.
20 марта 2025 г.: Подразделение
Unit42 компании Palo Alto Networks сообщило, что первоначальными целями атаки
были проекты, связанные с Coinbase.
2 апреля 2025 г.: В новом обновлении от подразделения
Unit42 компании Palo Alto Networks говорится, что атака была связана с кражей
одного токена из рабочего процесса Spotbugs.
Дополнительная интересная информация:
"Уязвимость
нулевого дня в Windows: как APT-группы использовали её почти десятилетие"
"Dependency-Check
— секретное оружие разработчиков для анализа зависимостей"
"GenAI
— новое оружие хакеров: как ИИ взламывает Google Chrome"
МЕТА ТЕГИ #Кибератака, #GitHub, #цепочка поставок, #Coinbase, #Spotbugs, #CI/CD, #безопасность, #уязвимость, #CVE-2025-30066, #вредоносный код, #компрометация, #кибербезопасность, #CISA, #Unit42, #Palo Alto Networks, #reviewdog, #tj-actions/changed-files
Комментариев нет:
Отправить комментарий