Исследователи из SafeDep и OX Security раскрыли масштабную кампанию Megalodon: за шесть часов злоумышленники отправили 5718 коммитов в 5561 репозиторий на GitHub. Под удар попали в первую очередь проекты с автоматическими сборками, где одна удачная подмена превращалась в кражу секретов из CI/CD-окружения.
Что произошло и почему это важно
Схема строилась на доверии к привычным изменениям в коде. Коммиты маскировали под обычные правки для сборки: использовали имена вроде build-bot и pipeline-bot, а сообщения выглядели безобидно — вроде «ci: add build optimization step».
Если владелец проекта принимал такой коммит, в GitHub Actions запускался вредоносный workflow. Скрипт в Base64 вытягивал секреты из среды разработки и отправлял их на управляющий сервер.
Это не просто очередная кража пароля. Речь о цепочке поставок: один скомпрометированный аккаунт разработчика может потянуть за собой ключи облаков, токены, SSH-доступ и конфигурации инфраструктуры. Похожий принцип уже разбирали в материалах о схеме с GitHub и токенами Microsoft 365 и об атаке на пакеты разработчиков.
Как работала схема Megalodon
У атакующих было несколько слоёв маскировки. Они использовали одноразовые аккаунты GitHub со случайными именами, подделывали CI-изменения и вносили правки напрямую в master без обычного pull request и merge-коммитов.
Исследователи выделили две версии вредоноса. SysDiag запускался при каждом push и pull request, а более скрытный Optimize-Build включался только вручную через workflow_dispatch.
Именно второй вариант использовали против Tiledesk — опенсорсного проекта для онлайн-чата и чат-ботов. Злоумышленники внедрили вредонос в версии @tiledesk/tiledesk-server с 2.18.6 по 2.18.12, а потом заражённые версии пакета опубликовал сам мейнтейнер, не заметив компрометации репозитория.
Какие данные искали и почему это опасно
Megalodon крал почти всё, что обычно хранится в сборочных контурах: AWS-ключи, токены Google Cloud, учётные данные Azure, SSH-ключи, данные Docker и Kubernetes, Vault-токены, переменные окружения, .env-файлы и токены GitHub Actions. Параллельно вредонос сканировал исходный код в поисках API-ключей, JWT и приватных PEM-ключей.
В такой атаке ценен не один конкретный секрет, а весь набор доверия вокруг проекта. Если злоумышленник получает доступ к CI/CD, он часто может двигаться дальше — в облачную инфраструктуру, внутренние сервисы и хранилища артефактов.
Поэтому исследователи советуют считать скомпрометированными все CI/CD-переменные в заражённых проектах. Это жёсткая мера, но иначе легко пропустить уже украденные токены и ключи.
Как защитить проект и кому какой подход подходит
Для небольших команд главный риск — лишняя доверчивость к коммитам. Здесь важны ручная проверка изменений, жёсткий контроль прав на репозиторий и запрет на прямые правки в защищённых ветках.
Для средних и крупных команд на первом месте — гигиена секретов. Секреты должны храниться отдельно от кода, а права у сервисных токенов — быть минимальными. Чем короче срок жизни ключа, тем меньше вред от его утечки.
Для разработчиков на удалёнке и фрилансеров, которые часто работают из кафе, коворкингов и поездов, вопрос ещё и в приватности соединения. В таких сценариях помогает [защищённый канал для открытых Wi‑Fi]https://freedome.space) вместе с двухфакторной проверкой входа и аккуратной работой с паролями.
Если коротко: маленькой команде нужен порядок в репозитории, крупной — контроль секретов и журналирование, а всем без исключения — привычка не верить «удобным» коммитам на слово.
Практический чек-лист
- Проверьте, нет ли прямых правок в master или main без ревью.
- Закройте лишние права у PAT-токенов, deploy-ключей и сервисных учёток.
- Пересмотрите все CI/CD-переменные и замените секреты с долгим сроком жизни.
- Ограничьте запуск workflow только доверенным авторам и защищённым веткам.
- Проверьте, не появлялись ли в истории репозитория подозрительные CI-коммиты.
- Для работы из открытых сетей используйте инструмент для приватного канала связи и не передавайте секреты через незнакомые точки доступа.
- После инцидента смените токены, ключи и пароли, даже если утечка пока не подтверждена.
Комментарии (0)
Будьте уважительны. Спам и ссылки на сторонние сервисы скрываются модерацией.
Пока комментариев нет. Вы можете быть первым.