КИБЕРБЕЗОПАСНОСТЬ

Атака Megalodon затронула более 5,5 тыс. репозиториев GitHub

Более 5,5 тыс. репозиториев GitHub получили вредоносные коммиты: атака Megalodon крадет секреты CI/CD и учетные данные облаков.

✍️ Редакция iTech News | 23.05.2026 | ⏱ 4 мин | 👁 4 | Источник: The Register
Атака Megalodon затронула более 5,5 тыс. репозиториев GitHub

Более 5,5 тыс. репозиториев GitHub за один день получили вредоносные коммиты в рамках кампании, которую исследователи назвали атака Megalodon. Для разработчиков, DevOps-команд и компаний, которые собирают релизы через CI/CD, новость неприятная по простой причине: если такой коммит попадает в основную ветку и доезжает до пайплайна, под угрозой оказываются токены, ключи облаков и другие секреты, на которых обычно держится вся сборка.

По данным The Register, речь идет как минимум о 5561 зараженном репозитории. Исследователи SafeDep связали атаку с автоматизированной рассылкой коммитов, а в Ox Security уточнили механику: если владелец репозитория принимает такой коммит, вредоносный код запускается внутри CI/CD и пытается красть учетные данные, а затем распространяться дальше. То есть это уже не история про случайный вредоносный пакет где-то на периферии npm, а прямая попытка зайти в цепочку поставки через привычный для разработчика рабочий процесс.

По описанию исследователей, вредоносный код собирает AWS secret keys и токены доступа Google Cloud, обращается к метаданным AWS, Google Cloud Platform и Azure в поисках учетных данных ролей инстансов, читает приватные SSH-ключи, конфигурации Docker и Kubernetes, токены Vault, креды Terraform и параллельно сканирует исходники более чем по 30 шаблонам секретов. Отдельно упоминается кража GitHub-токенов, в том числе тех, что используются для аутентификации в облаках, а также токенов Bitbucket. Если перевести это с исследовательского на человеческий язык, смысл такой: при успешном срабатывании под вопросом оказываются почти все переменные и секреты, которые команда хранит в CI/CD.

Технически кампания выглядела довольно буднично, а потому и опасно. SafeDep отследила вредоносный коммит с хешем acac5a9, подписанный автором build-bot с адресом build-system@noreply.dev и сообщением ci: add build optimization step. Это хороший пример того, как злоумышленники все чаще маскируются не под «хакеров», а под рутину: имя бота, noreply-адрес, правдоподобное сообщение о «небольшой оптимизации сборки» и никакой показной драмы. По данным исследователей, к автору и коммитеру не был привязан GitHub-аккаунт, а сам коммит, вероятно, попал в master без pull request и merge commit, что указывает на использование скомпрометированного PAT или deploy key.

Дальше цифры становятся еще менее уютными. Исследователи нашли в GitHub 2878 коммитов, связанных с адресом build-system@noreply.dev, и еще 2841 коммит с адресом ci-bot@automated.dev. Все они были отправлены 18 мая в шестичасовом окне между 11:36 и 17:48 UTC и затронули те самые 5561 репозиторий. Среди пострадавших оказались девять репозиториев проекта Tiledesk, включая tiledesk-server, tiledesk-dashboard и tiledesk-ai. Также в списке упомянуты Black-Iron-Project с восемью зараженными репозиториями, WISE-Community и множество небольших open source-проектов. Картина знакомая: атакующий идет не только за крупными именами, а за широкой поверхностью атаки, где у части проектов защита процессов заметно слабее.

Отдельно эта история бьет по мифу, что проблему supply chain-атак можно свести к «ну просто не ставьте подозрительные пакеты из npm». SafeDep обнаружила Megalodon внутри легитимного пакета Tiledesk, а зараженными оказались версии с 2.18.6 по 2.18.12, опубликованные с 19 по 21 мая. Последняя чистая версия, 2.18.5, вышла от того же мейнтейнера. Исследователи прямо говорят: npm-аккаунт злоумышленник не ломал, он скомпрометировал GitHub-репозиторий, а мейнтейнер уже сам опубликовал пакет из отравленного исходника, не заметив подвоха. Для бизнеса это неприятный, но полезный урок: даже нормальный maintainers workflow не спасает, если заражен источник, из которого потом рождаются релизы.

Контекст у истории тоже показательный. Megalodon сравнивают с более ранними атаками TeamPCP, где было заражено около 3800 GitHub-репозиториев. Однако в Ox Security пока не видят ни по коду, ни по разведданным достаточных оснований считать, что за новой кампанией стоит та же группа. Рабочая версия исследователей: это другой атакующий, который копирует поведение и стиль предыдущих операций, но не сам код. Там же считают, что Megalodon вряд ли связан с конкурсом supply chain-атак, который TeamPCP ранее анонсировала на BreachForums вокруг червя Shai-Hulud: в правилах конкурса был отдельный механизм доказательства авторства через публичный ключ, а здесь таких признаков не нашли. И это, пожалуй, самое неприятное: если почерк можно просто скопировать, значит рынок получает не одного заметного игрока, а воспроизводимую схему атаки.

Для русскоязычной IT-аудитории вывод довольно приземленный. Если компания держит код в GitHub, использует GitHub Actions или любой CI/CD, публикует пакеты в npm и при этом считает, что главная защита уже обеспечена 2FA на аккаунтах, этого явно мало. В данной истории вредоносный код доехал до серверов через коммиты, которые выглядели как служебные изменения для сборки. Значит, в зоне риска не только доступ к аккаунтам, но и правила приема изменений в защищенные ветки, контроль за deploy keys и PAT, обязательные PR, проверка служебных коммитов от «ботов», изоляция секретов в пайплайнах и мониторинг необычных обращений к облачным метаданным. Иначе следующая «оптимизация сборки» внезапно окажется способом вынести ключи от AWS, GCP и всего, что команда бережно прятала в переменные окружения. Подробности кампании и перечень артефактов приводит The Register.

Поделиться: Telegram X LinkedIn