← Назад к новостям

Атака вышла за пределы GitHub: хакеры атаковали 8000 репозиториев ради ключей OpenAI, Anthropic и облачных сервисов

Источник: tech_ixbt
2026-11-13 14:20:00

Скрипт похищает пароли, токены и облачные доступы, а затем удаляет следы атаки и оставляет лазейки в AWS и Azure

GitHub стал инструментом масштабной кампании по краже учётных данных: с 10 по 12 ноября злоумышленники разместили вредоносные коммиты в 8093 репозиториях, а для распространения использовались 4833 скомпрометированных аккаунта. При этом атака затронула не только исходный код: целью стали секреты GitHub Actions, облачные учётные данные и ключи API популярных ИИ-сервисов, включая OpenAI, Anthropic и Hugging Face.

По данным Aikido Security, сначала злоумышленники проверяли возможности украденных токенов GitHub. Они открывали pull request (запрос на внесение изменений в чужой репозиторий) с названием «docs: dependency audit notes» и ветки wfx-docs, добавляя небольшой файл с заметками. Так проверялось, позволяет ли украденная учётная запись записывать изменения в чужой проект. Всего обнаружено 61 879 таких запросов в 61 734 репозиториях, созданных от имени 4833 аккаунтов. Около 91% pull request на момент анализа оставались открытыми. В 1343 репозиториях вредоносные коммиты публиковались от имени пользователей, отличных от владельцев проектов, включая соавторов и ботов.

После проверки доступа атакующие внедряли вредоносный код одним из 3 способов: добавляли новый файл рабочего процесса GitHub Actions в пустой репозиторий, изменяли уже существующие сценарии автоматической сборки или помещали скрипт в механизм postinstall пакета npm, который запускается при установке. Из 8093 затронутых репозиториев 7309 получили изменения существующих сценариев CI, 16 — новые рабочие процессы, ещё 771 — вредоносный установочный сценарий. Последний вариант опасен тем, что код мог выполняться не только на сервере, но и на компьютере разработчика при установке заражённого пакета.

Источник изображения: сгенерировано Muse

Основной инструмент атаки — shell-скрипт объёмом около 1500 строк. Он собирает секреты репозитория и переменные GitHub Actions, токены доступа, ключи API, конфигурации облачных сервисов, SSH-ключи, историю команд терминала, файлы окружения и конфигурации инструментов искусственного интеллекта. Отдельно скрипт проверяет память процессов и переменные окружения, пытаясь найти учётные данные от GitHub, AWS и других платформ. Собранную информацию отправляют на удалённые серверы или в Telegram.

Но кражей уже имеющихся паролей возможности вредоноса не ограничиваются. Он пытается получить доступ к облачной инфраструктуре через механизмы OpenID Connect (OIDC — протокол, позволяющий сервисам подтверждать личность без передачи обычного пароля). В AWS скрипт создаёт новые ключи доступа и меняет политики доверия ролей. В Azure он добавляет учётные данные в регистрации приложений Microsoft Entra ID, позволяя рабочим процессам GitHub авторизоваться от имени этих приложений даже после смены клиентских секретов. Также в коде предусмотрены попытки доступа к Google Cloud, HashiCorp Vault и Kubernetes.

Особенность кампании — тщательная зачистка следов. После выполнения вредоносного сценария злоумышленники возвращают репозиторий в прежнее состояние, удаляя заражённые изменения. В одном из задокументированных случаев вредоносный файл появился в 14:01 UTC, а исчез уже в 14:05. В проектах redock заражённые коммиты откатывались примерно через 50 секунд. Поэтому проверка текущего состояния репозитория не гарантирует, что он не участвовал в атаке.

Кампания затронула и распространение программного обеспечения за пределами GitHub. Вредоносный код обнаружен в версии v3.14.3 PHP-пакета neuronai-studio в Packagist, а также в версиях v1.0.278, v1.0.280 и v1.0.282 Go-модуля redock. Ещё один Go-модуль gocurl получил вредоносный коммит, который теперь кэшируется прокси-сервером Go. Кроме того, вредоносные изменения обнаружили в 28 репозиториях WebdriverIO, где они публиковались от имени бота wdio-bot. При этом не все заражённые версии автоматически запускали вредоносный код при обычной установке: например, в случае gocurl для запуска требовалось создание определённого тега версии, а заражённый сценарий redock выполнялся только при изменениях ветки beta.

По оценке авторов расследования, кампания продолжалась на момент проведения анализа. При этом обнаруженные цифры относятся только к публичным репозиториям и их основным веткам: закрытые проекты и другие ветки GitHub Search не охватывает. Поэтому фактическое число затронутых проектов может быть выше.

Поделиться:

Telegram ВКонтакте

Читайте также

Сбой Claude оказался связан с аварией Microsoft 365: Anthropic восстановила работу ИИ-сервиса
«Верните босса»: сотрудники Nvidia потребовали восстановить Хуанга
США запретят китайским ИИ-компаниям удалённо использовать американские ускорители в зарубежных дата-центрах
Читать оригинал на tech_ixbt →