Компрометация Trivy Action ударила по CI/CD и секретам
Недавний инцидент, связанный с aquasecurity/trivy-action на GitHub, продемонстрировал, насколько опасными могут быть атаки на supply chain. Злоумышленники принудительно обновили 75 из 76 тегов версий в репозитории, чтобы распространить вредоносное ПО и скомпрометировать более 10 000 workflow-файлов в GitHub. При этом легитимная функция сканирования осталась на месте, что существенно осложнило обнаружение атаки.
Как была проведена атака
По данным отчета, злоумышленник получил доступ к учетным данным Trivy, после чего выполнил серию force push-операций, перезаписав уже существующие теги вместо создания новой ветки или нового release. Такой подход позволил избежать стандартных уведомлений, которые обычно сопровождают выпуск обновлений, и сохранить видимость подлинности репозитория.
Каждый подмененный тег ссылался на новую malicious commit, в которой был изменен только entrypoint script. Остальная часть репозитория осталась неизменной, что затрудняло выявление компрометации пользователями и автоматизированными системами контроля.
Что делала вредоносная нагрузка
Вредоносная payload была рассчитана на работу в GitHub Actions runners и предназначалась для кражи конфиденциальных данных из сред CI/CD. Среди ее возможностей:
- извлечение секретов из memory процесса;
- сбор учетных данных от облачных провайдеров, включая AWS, GCP и Azure;
- поиск токенов Kubernetes service account;
- сбор SSH keys, environment variables и других конфиденциальных данных;
- эксфильтрация информации из множества форматов и расположений в системе.
Отдельного внимания заслуживает то, что malware был спроектирован для адаптации к разным типам сред. На hosted runners он использовал Python script в base64-кодировке, который декодировался и запускался с правами sudo, что позволяло обходить стандартные ограничения доступа и получать доступ к чувствительным данным. На standalone runners применялся другой метод, ориентированный на более широкий сбор файловых учетных данных.
Как выводились данные
Перед передачей собранная информация шифровалась с использованием гибридной схемы, сочетающей session keys и RSA encryption. Это усложняло анализ трафика и затрудняло выявление содержимого передаваемых данных.
Для отправки информации злоумышленники использовали domain, typosquatted под Aqua Security, чтобы замаскировать канал передачи. Если основной канал не срабатывал, вредоносное ПО могло перейти к запасному сценарию и использовать personal access token жертвы в GitHub для дальнейшей попытки компрометации данных.
Кто стоит за атакой
Атрибуция инцидента связана с группировкой TeamPCP, которую исследователи связывают с финансово мотивированными атаками на облачную инфраструктуру. Широкий спектр целевых credentials соответствует их ранее наблюдаемой тактике.
«Инцидент показывает, насколько разрушительными могут быть атаки на supply chain и как быстро они способны нарушить работу software development pipelines», — следует из отчета.
Что необходимо сделать пострадавшим
Авторы отчета подчеркивают: для затронутых pipeline первоочередной мерой должна стать немедленная rotation всех раскрытых secrets. Это необходимо для снижения рисков повторной компрометации и ограничения возможного ущерба.
Случай с aquasecurity/trivy-action наглядно демонстрирует, что атаки на supply chain способны затронуть тысячи автоматизированных процессов, подставляя под удар не только отдельные репозитории, но и всю инфраструктуру разработки.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.
