Одна из самых неприятных историй последних дней развернулась вокруг Trivy — популярного сканера уязвимостей от Aqua Security, который используют разработчики и DevOps-команды по всему миру. Атакующие смогли скомпрометировать почти все версии инструмента в рамках атаки на цепочку поставок, и последствия здесь могут быть действительно серьёзными.
О проблеме публично сообщил мейнтейнер Trivy Итай Шакури. По его словам, если есть хоть малейшее подозрение, что в пайплайне запускалась скомпрометированная версия, все секреты нужно считать утёкшими и срочно ротировать.
Исследователи из Socket и Wiz выяснили, что внедрённый зловред не просто подменял работу Trivy, а параллельно запускал настоящий сканер и свою вредоносную нагрузку. То есть внешне всё могло выглядеть вполне штатно, пока внутри шёл сбор конфиденциальных данных.
По данным исследователей, зловред прочёсывал CI/CD-пайплайны, машины разработчиков и окружение в поисках GitHub-токенов, облачных учётных данных, SSH-ключей, Kubernetes-токенов и других секретов. Всё найденное он архивировал, шифровал и отправлял на сервер, контролируемый атакующими.
Особенно неприятно то, как именно была проведена атака. Вместо привычного сценария с добавлением нового коммита или релиза злоумышленники использовали украденные учётные данные, чтобы привязать уже существующие теги к вредоносным коммитам.
Под удар попали 75 тегов в trivy-action и ещё семь тегов setup-trivy. Среди затронутых версий оказались и очень распространённые варианты вроде @0.34.2, @0.33 и @0.18.0. По имеющейся информации, незатронутой осталась только версия @0.35.0.
Именно это делает инцидент особенно опасным. Если воркфлоу в GitHub Actions ссылался на один из таких тегов, при запуске Trivy он автоматически подтягивал уже не легитимный код, а вредоносную подмену. Компрометация могла произойти просто в момент очередного штатного сканирования.
По данным Wiz, у атакующих был и запасной канал вывода данных. Сначала зловред пытался отправить собранную информацию на домен scan.aquasecurtiy[.]org. Если это не удавалось, он пробовал использовать украденный GITHUB_TOKEN, чтобы создать репозиторий tpcp-docs и выгрузить данные туда.
Если же зловред понимал, что работает не в пайплайне, а на машине разработчика, он дополнительно записывал кодированный base64 дроппер на Python для закрепления.
Отдельно настораживает и предыстория атаки. Массовая компрометация началась в четверг, но, как пояснил Итай Шакури, её корни уходят в более ранний инцидент — взлом расширения VS Code Aqua Trivy, произошедший ещё в прошлом месяце. Тогда атакующие получили учётные данные с правами записи в GitHub-аккаунт Trivy.
После того случая мейнтейнеры ротировали токены и другие секреты, но процесс, как выяснилось, не устранил все остаточные артефакты доступа. Именно это, по версии исследователей, и позволило атакующим продолжить аутентифицированные операции без необходимости взламывать сам GitHub.
При этом интересно, что атакующие аккуратно подменяли ссылки тегов на новые коммиты, копируя метаданные старых коммитов: автора, почту, дату и даже текст сообщения. За счёт этого компрометация выглядела максимально правдоподобно.










