Взлом Trivy: как атака на сканер уязвимостей превратилась в шпионаж, червя и уничтожение Kubernetes

Aqua Security — компания, которая продаёт защиту облачной инфраструктуры. Это обстоятельство делает произошедшее с ней особенно показательным. Группировка TeamPCP взломала Trivy, популярный open-source сканер уязвимостей под управлением Aqua Security, и развернула цепочку атак, которая закончилась уничтожением данных на Kubernetes-узлах в Иране.
Взлом Trivy: как атака на сканер уязвимостей превратилась в шпионаж, червя и уничтожение Kubernetes
Изображение носит иллюстративный характер

Всё началось с инцидента под кодовым названием "hackerbot-claw" в начале марта 2026 года. Именно тогда атакующие получили первоначальный доступ к инфраструктуре Trivy. Точкой входа стал сервисный бот-аккаунт "Argon-DevOps-Mgt" с GitHub ID 139343333, зарегистрированный ещё 12 июля 2023 года. Аккаунт работал на долгосрочном Personal Access Token (PAT) — и это была критическая проблема. Как установил исследователь Пол МакКарти в ходе форензики через GitHub Events API: «Скомпрометированный токен сервисного аккаунта... связывает обе GitHub-организации. Один взломанный токен даёт атакующему права записи и администрирования в обеих организациях сразу.»
Речь о двух организациях: публичной "aquasecurity", где хранится сам сканер Trivy, GitHub Actions и open-source проекты, и внутренней "aquasec-com" с проприетарным исходным кодом, внутренними форками Trivy, CI/CD пайплайнами, Kubernetes-операторами, исходниками Tracee и базами знаний команды. Один токен — доступ ко всему.
22 марта 2026 года TeamPCP опубликовала вредоносные теги Docker-образов 0.69.5 и 0.69.6. Исследователь Филипп Буркхардт из Socket зафиксировал: «Новые теги 0.69.5 и 0.69.6 были опубликованы 22 марта без соответствующих релизов или тегов на GitHub. Оба образа содержат индикаторы компрометации, связанные с инфостилером TeamPCP, который наблюдался на более ранних этапах этой кампании.» Последней чистой версией оставался релиз 0.69.3. Версии 0.69.4, 0.69.5 и 0.69.6 уже были заражены и впоследствии удалены с Docker Hub. Инцидент получил идентификатор CVE-2026-33634 с оценкой CVSS 9.4 — критический уровень.
Механика внедрения, по оценке CrowdStrike, не отличалась новизной: «Атакующий, имея права записи в репозиторий, принудительно перезаписал теги на новый коммит с изменённой точкой входа.» Уязвимость была в том, что многие рабочие процессы ссылаются на Actions по тегу, а не по SHA-хешу коммита. Это позволило подменить содержимое без смены тега.
Дефейс внутренних репозиториев был проведён с хирургической точностью по времени. С 20:31:07 до 20:32:26 UTC того же 22 марта — за одну минуту и девятнадцать секунд — атакующие переименовали 44 внутренних репозитория, добавив префикс "tpcp-docs-", изменили описания на "TeamPCP Owns Aqua Security" и сделали репозитории публичными. Параллельно TeamPCP эксплуатировала SSH через украденные ключи и открытые Docker API на порту 2375 в локальных подсетях.
Арсенал малвари включал три компонента. Инфостилер TeamPCP распространялся непосредственно через троянизированные версии Trivy. CanisterWorm — самораспространяющийся червь, заразивший десятки npm-пакетов и использующий ICP-канистру в качестве управляющего механизма. И третий компонент — вайпер под названием "Kamikaze", нацеленный исключительно на иранские системы.
Логика вайпера на Kubernetes детально описана исследователем Чарли Эриксеном из Aikido: «На Kubernetes: разворачивает привилегированные DaemonSets на каждом узле, включая control plane. Иранские узлы затираются и принудительно перезагружаются через контейнер с именем 'kamikaze'. На не-иранских узлах устанавливается бэкдор CanisterWorm в виде systemd-сервиса. На иранских хостах без K8s выполняется 'rm -rf / --no-preserve-root'.» Географическая фильтрация встроена прямо в логику выполнения.
Команда OpenSourceMalware сформулировала суть произошедшего так: «Этот взлом демонстрирует долгосрочные последствия атак на цепочку поставок... Ирония от того, что компания по облачной безопасности была взломана облачно-ориентированным угрозовым актором, не должна остаться незамеченной отраслью.» 23 марта 2026 года Aqua Security опубликовала официальное заявление, в котором сообщила, что расследование «активно сосредоточено на проверке того, что все пути доступа были выявлены и полностью закрыты», и что свидетельств компрометации коммерческих продуктов компании не обнаружено.
Из инцидента следуют конкретные технические выводы от CrowdStrike и Aikido. GitHub Actions нужно закреплять по SHA-хешу коммита, а не по тегу — именно это позволило атаке сработать. CI/CD-раннеры требуют такого же уровня мониторинга, как продакшн-хосты. Организации, использующие Trivy в пайплайнах, обязаны проверить, какие версии применялись: 0.69.4, 0.69.5 и 0.69.6 скомпрометированы. Любое выполнение кода в пайплайне за период атаки следует рассматривать как потенциально скомпрометированное. Долгоживущие токены сервисных аккаунтов с широкими правами — прямой путь к тому, что произошло с "Argon-DevOps-Mgt".


Новое на сайте

20003[b]Гавайи в серебристом зареве: солнечный блик на фоне урагана Кико[/b] 19989Шесть историй, которые умещаются на ладони 19986Как 30 000 аккаунтов Facebook оказались в руках вьетнамских хакеров? 19985LofyGang вернулась: как бразильские хакеры охотятся на геймеров через поддельные читы 19984Автономная проверка защиты: как не отстать от ИИ-атак 19983Взлом Trellix: хакеры добрались до исходного кода одной из ведущих компаний по... 19982Почему почти 3000 монет в норвежском поле перевернули представление о викингах? 19981Как поддельная CAPTCHA опустошает ваш счёт и крадёт криптовалюту? 19980Слежка за каждым шагом: как ИИ превращает государство в машину тотального контроля 19979Как хакеры грабят компании через звонок в «техподдержку» 19978Почему именно Нью-Йорк стал самым уязвимым городом восточного побережья перед... 19977Как одна команда git push открывала доступ к миллионам репозиториев 19976Зачем древние народы убивали ножами и мечами: оружие как основа власти 19975Как Python-бэкдор DEEPDOOR крадёт ваши облачные пароли незаметно? 19974Послание в бутылке: математика невозможного
Ссылка