Злоумышленник взломал 4 837 аккаунтов GitHub и встроил кражу секретов в более чем 1 800 репозиториев
Злоумышленник использовал украденные учётные данные 4 837 аккаунтов GitHub, чтобы разместить программу для кражи секретов в репозиториях, куда эти аккаунты имели право записи. По данным Aikido Security, код запускался как минимум в 1 806 репозиториях.

Главное в цифрах
- Скомпрометированных аккаунтов GitHub: 4 837
- Репозитории, где программа запускалась: минимум 1 806
- Репозитории с вредоносными коммитами по данным SafeDep: 8 093
- Добавлено в существующий workflow: 7 309
- Добавлено как npm postinstall-хук: 771
Атака началась во вторник. Злоумышленник открывал пул-реквест с тестовым заголовком «docs: dependency audit notes» из ветки wfx-docs, чтобы проверить, может ли взломанный аккаунт писать в репозиторий. Такие тестовые запросы были открыты в 61 764 репозиториях, а вредоносный код затем добавляли в некоторые из них.
По данным Aikido, программа-похититель собирает секреты и облачные учётные данные, доступные CI-воркфлоу репозитория: секреты и переменные GitHub Actions, GITHUB_TOKEN, ключи сервисов ИИ и данные из памяти процессов раннера. Она также читает файлы учётных данных AWS, Azure, GCP, Kubernetes, npm, PyPI и SSH.
Масштаб по данным SafeDep
Исследователи SafeDep насчитали 8 093 репозитория с вредоносными коммитами за период с 12:46 UTC во вторник до 04:36 UTC в среду. В 7 309 из них программа добавлялась в существующий workflow, в 771, как npm postinstall-хук, который срабатывает и на машине разработчика при npm install. Поиск охватывал только ветки по умолчанию публичных репозиториев, поэтому реальное число выше.
После публикации вредоносного кода злоумышленник обычно откатывал изменение через несколько минут, а логи запусков удалялись. Поэтому в затронутых репозиториях все секреты и облачные роли, доступные воркфлоу, нужно считать скомпрометированными.
Что это значит
Aikido считает скомпрометированным любой аккаунт, который открыл тестовый пул-реквест, даже если программа не запускалась. Компания не объясняет, как злоумышленник получил учётные данные. Часть программы рассчитана на то, чтобы пережить ротацию ключей: она может переписать trust policy роли AWS или добавить федеративные учётные данные с префиксом wfx-ci- в приложения Azure AD.
SafeDep советует владельцам затронутых репозиториев отозвать токены, ключи SSH и сессии, включить 2FA и сменить все секреты. Тем, кто запускал npm install на затронутом коммите, стоит считать эту машину скомпрометированной.

