В сфере информационной безопасности инциденты, жертвами которых становятся сами вендоры защитных решений, всегда привлекают особое внимание, обнажая универсальность угроз и важность базовых принципов гигиены. Недавняя атака на внутреннюю GitHub-организацию компании Aqua Security, специализирующейся на защите облачных и контейнерных сред, наглядно демонстрирует, как давно украденные учётные данные могут быть использованы для серьёзного вторжения спустя месяцы после первоначальной утечки. Этот случай подчёркивает долгоиграющие последствия атак на цепочки поставок и критическую уязвимость, которую представляют собой долгоживущие токены сервисных аккаунтов.
Описание
Группа исследователей OpenSourceMalware сообщила об активной компрометации организации "aquasec-com", которая является внутренним пространством Aqua Security для проприетарного кода. Угроза, известная под именами TeamPCP, DeadCatx3, PCPcat и ShellForce, провела скоординированную атаку, в результате которой были осквернены все 44 репозитория внутри организации. Атака была совершена в автоматическом режиме и заняла менее двух минут: каждый репозиторий получил префикс "tpcp-docs-" в названии, а его описание было заменено на провокационную фразу "TeamPCP Owns Aqua Security". Важно отметить, что скомпрометированная организация отделена от публичного open-source профиля компании ("aquasecurity"), что указывает на утечку внутреннего, возможно, коммерческого кода, инструментов и конфигураций.
Факты инцидента указывают на использование скомпрометированного токена сервисного аккаунта с именем "Argon-DevOps-Mgt" в качестве вектора атаки. Этот аккаунт-бот обладает административными правами в обеих организациях Aqua Security - как во внутренней "aquasec-com", так и в публичной "aquasecurity". По мнению аналитиков, токен этого аккаунта, скорее всего, был похищен месяцами ранее в рамках другой кампании TeamPCP, нацеленной на отравление тегов GitHub Actions в проекте Trivy, сканере уязвимостей с открытым исходным кодом, также принадлежащем Aqua Security. Тогда злоумышленники внедрили в рабочие процессы сборки вредоносный код, предназначенный для хищения учётных данных из окружения CI/CD-раннеров.
Примечательно, что за семь часов до основной атаки злоумышленники провели разведку, используя украденный токен. Аккаунт "Argon-DevOps-Mgt" создал, а затем мгновенно удалил ветку в публичном репозитории "trivy-plugin-aqua". Эта операция, не соответствующая обычному workflow, явно была тестовой: её целью была проверка действительности токена и уровня доступа. Убедившись в успехе, злоумышленники приступили к скриптовой атаке на внутреннюю организацию. Автоматизированный сценарий, использующий API GitHub, менее чем за 120 секунд изменил метаданные всех 44 репозиториев, что практически исключает ручное вмешательство.
Экспертиза показывает, что инцидент является частью долгосрочной и наращивающей сложность кампании группы TeamPCP. Этот актор угроз фокусируется на облачной и cloud-native экосистеме, последовательно развивая свои методы - от эксплуатации небезопасно сконфигурированных Docker API и кластеров Kubernetes до изощрённых атак на цепочки поставок. Ранее они были замечены в развёртывании самораспространяющегося червя, использовавшего технологию ICP Canister для управления, и даже деструктивных виперов (wiper), стирающих данные в Kubernetes-средах. Компрометация внутренней инфраструктуры вендора безопасности - закономерный этап эскалации, демонстрирующий их растущие амбиции и возможности.
Последствия этой атаки для Aqua Security могут быть значительными, выходя далеко за рамки символического осквернения. В числе скомпрометированных репозиториев - внутренние форки ключевых продуктов (Tracee, Trivy), конфигурации CI/CD-пайплайнов, инфраструктурный код на Terraform, настройки контроллеров для GitHub Actions и даже личные и командные базы знаний. Любые секреты, API-ключи, токены облачных провайдеров или учётные данные, хранившиеся в этих репозиториях или их истории, теперь следует считать скомпрометированными. Это создаёт риск вторичных атак на внутреннюю инфраструктуру компании и, потенциально, на её клиентов, если украденные данные позволяли получить доступ к каким-либо сервисам.
Рекомендации в подобной ситуации носят стандартный, но оттого не менее важный характер. В первую очередь необходима немедленная отзыв всех токенов, связанных со скомпрометированным сервисным аккаунтом, и аудит всех подобных учётных записей. Далее следует полный аудит логов безопасности организации "aquasec-com" для определения точных действий злоумышленника и ротация всех секретов, которые могли быть экспонированы. Также критически важно проверить публичную организацию "aquasecurity", так как украденный токен предоставлял права на запись и там. Для сообщества пользователей продуктов Aqua Security, особенно Trivy, данный инцидент служит напоминанием о необходимости жёсткой привязки (pinning) версий GitHub Actions к полным хэшам коммитов, а не к тегам, которые могут быть отравлены.
Ирония ситуации, когда компания, занимающаяся облачной безопасностью, стала жертвой атаки, нацеленной именно на облачные и DevOps-практики, очевидна. Этот случай лишний раз подтверждает, что фундаментальные принципы - такие как минимально необходимые привилегии, короткий срок жизни токенов, обязательная многофакторная аутентификация даже для сервисных аккаунтов и регулярный аудит - не теряют актуальности даже в самых продвинутых технологических стеках. Атаки на цепочки поставок имеют длительный цикл жизни: credential, украденный сегодня, может быть использован для проникновения через месяцы, превращая единичный успех злоумышленника в постоянную угрозу.
Индикаторы компрометации
Domains
- aquasecurtiy.org
- championships-peoples-point-cassette.trycloudflare.com
- investigation-launches-hearings-copying.trycloudflare.com
- scan.aquasecurtiy.org
- souls-entire-defined-routes.trycloudflare.com
- tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.io
SHA256
- 18a24f83e807479438dcab7a1804c51a00dafc1d526698a66e0640d1e5dd671a