Через 4837 взломанных аккаунтов GitHub украли облачные ключи из 1835 репозиториев

Через 4837 взломанных аккаунтов GitHub украли облачные ключи из 1835 репозиториев

Исследователи компании Aikido, занимающейся безопасностью кода, описали масштабную атаку на GitHub: с помощью 4837 взломанных аккаунтов злоумышленники открыли pull request'ы в 61 764 репозиториях, и как минимум в 1835 из них вредоносный код выполнился и отправил наружу ключи и учетные данные.

Атака построена на штатных функциях GitHub. Разработчики предлагают изменения в чужие репозитории через pull request, а сервис GitHub Actions позволяет автоматически выполнять задачи по описанным в файлах сценариям - workflow. Таким сценариям для работы часто нужен доступ к секретам проекта: токенам, ключам облачных сервисов и т.п. Именно на это злоумышленники и рассчитывали.

Как проходила атака

  • Сначала шла разведка. Со взломанных аккаунтов массово открывались pull request'ы с заголовком «docs: dependency audit notes» из веток с названием wfx-docs. Это были не сами атаки, а пробы: так злоумышленники выясняли, какие проекты они могут изменять. Каким образом были получены сами аккаунты, Aikido не сообщает.

  • Из 60 с лишним тысяч таких pull request'ов более 10 тысяч пришлись на репозитории, которые взломанным аккаунтам не принадлежали, но к которым у них был доступ.

  • Получив права на запись, злоумышленники внедряли вредоносный скрипт одним из трех способов: меняли существующий workflow в GitHub Actions, добавляли shell-скрипт, который запускается хуком при установке npm-пакета, или создавали новый файл workflow во временной ветке.

Aikido отслеживает кампанию под названием wfx-loot - так сами злоумышленники называли свою программу и украденные секреты.

Что крали

Во всех трех вариантах использовалась одна и та же нагрузка - около 1500 строк кода. Она искала в окружении:

  • секреты GitHub Actions и токены аутентификации;

  • учетные данные AWS, Azure и Google Cloud;

  • конфигурации Docker и Kubernetes, SSH-ключи;

  • API-ключи ИИ-сервисов, например OpenAI и Anthropic;

  • историю командной оболочки разработчиков;

  • файлы .env, приватные ключи и учетные данные npm, PyPI, HashiCorp Vault и Terraform.

Этим вредонос не ограничивался. Он пытался расширить доступ: обменивал украденные токены на облачные сессии, выдавал себя за сервисные аккаунты и даже создавал новые учетные данные. Кроме того, он менял настройки AWS и Azure, чтобы сохранить доступ, даже если жертва сменит скомпрометированные ключи.

Следы злоумышленники заметали быстро: после кражи откатывали свои изменения и удаляли журналы выполнения workflow, иногда меньше чем через минуту.

Атака задела и цепочку поставок ПО: Aikido нашла скомпрометированные PHP-пакеты в Packagist и две затронутые версии модулей Go. По мнению исследователей, это, возможно, побочный эффект злоупотребления автоматической публикацией пакетов, а не отдельная цель.

Aikido советует всем, в чьих репозиториях выполнилась вредоносная нагрузка, считать скомпрометированными все секреты и облачные учетные данные, к которым есть доступ у их workflow, и срочно их заменить.

Удобство автоматизации здесь обернулось против пользователей: чем больше прав у сценариев CI, тем ценнее каждый взломанный аккаунт с доступом на запись.

Источник: TechRadar

0
6
ИИ

Комментарии

Войдите на сайт, чтобы оставить свой комментарий...