Вредоносные коммиты в восьми тысячах репозиториев GitHub: хакеры искали ключи ИИ-сервисов

Служба новостей Автор статьи
MaxДзенTelegram

Масштабная операция по краже учетных данных затронула свыше восьми тысяч публичных репозиториев на GitHub. С десятого по двенадцатое ноября злоумышленники внедрили вредоносные коммиты в восемь тысяч девяносто три проекта, используя для этого четыре тысячи восемьсот тридцать три скомпрометированных аккаунта. Основной целью атаки стали секреты GitHub Actions, облачные учетные данные и ключи API популярных ИИ-сервисов, таких как OpenAI, Anthropic и Hugging Face. Об этом сообщает издание Наша Газета Крым.

Как сообщает Aikido Security, перед внедрением вредоносного кода злоумышленники проверяли возможности украденных токенов. Они создавали pull request с названием «docs: dependency audit notes» и ветки wfx-docs, чтобы выяснить, может ли учетная запись вносить изменения в чужие проекты. Всего было зафиксировано шестьдесят одну тысячу восемьсот семьдесят девять таких запросов в шестьдесят одну тысячу семьсот тридцать четырех репозиториях, созданных от имени четырех тысяч восемьсот тридцати трех аккаунтов. Около девяноста одного процента pull request на момент анализа оставались открытыми, а в одной тысяче триста сорока трех репозиториях вредоносные коммиты публиковались от имени пользователей, отличных от владельцев проектов, включая соавторов и ботов.

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

Основным инструментом атаки стал shell-скрипт объемом около одной тысячи пятисот строк. Он собирает секреты репозитория и переменные 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 зараженные коммиты откатывались примерно через пятьдесят секунд. Поэтому проверка текущего состояния репозитория не гарантирует, что он не участвовал в атаке.

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

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

Больше новостей и эксклюзивных видео смотрите в канале Самара Онлайн 24 в MAX

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

Самарцы могут остаться без корпоратива: где еще остались места для новогодних гуляний

Куда сходить в Самаре, если всё надоело: готовый гид для нескучных выходных
MaxДзенTelegramВКонтактеОдноклассники

Фабрика деревянных окон со стеклопакетами по индивидуальным размерам в Балашихе