Сложная цепная атака на популярный сканер уязвимостей с открытым исходным кодом Trivy переросла в широкомасштабную кампанию, в результате которой было скомпрометировано не менее 47 пакетов npm новым самораспространяющимся червем под названием CanisterWorm. Исследователи безопасности из Aikido Security во главе с Чарли Эриксеном обнаружили, что злоумышленники, предположительно связанные с киберпреступной группой TeamPCP, специализирующейся на облачных технологиях, используют скомпрометированные учетные данные для распространения вредоносных обновлений. Эта кампания представляет собой значительную эволюцию в методах атак, поскольку это первый задокументированный случай, когда вредоносное ПО использует канистру ICP (Internet Computer Protocol) — защищенный от несанкционированного доступа смарт-контракт в блокчейне Internet Computer — в качестве децентрализованного и устойчивого резолвера для передачи команд и управления (C2).
Цепочка заражения начинается, когда пользователь устанавливает один из скомпрометированных пакетов npm, таких как вредоносные версии `trivy`, `trivy-action` или `setup-trivy`. Эти пакеты содержат скрипт postinstall, который автоматически выполняет загрузчик при установке. Этот загрузчик развертывает бэкдор на основе Python, который является основным компонентом червя CanisterWorm. Основная функция бэкдора — обращаться к канистре ICP каждые 50 минут, используя поддельный User-Agent браузера для получения URL-адреса в виде открытого текста. Этот URL-адрес указывает на полезную нагрузку следующего этапа, которая затем загружается и выполняется на зараженном хосте. Децентрализованный характер канистры на основе блокчейна делает инфраструктуру C2 исключительно устойчивой к традиционным попыткам ее отключения, поскольку контроллер может динамически обновлять целевой URL-адрес без изменения внедренного вредоносного ПО.
Для обеспечения устойчивости червь создает себя как службу пользователя systemd, искусно замаскированную под инструменты PostgreSQL под именем "pgmon". Эта служба настроена с директивой "Restart=always", что приводит к ее автоматическому перезапуску после 5-секундной задержки в случае ее завершения по какой-либо причине. Этот механизм позволяет бэкдору сохранять точку опоры в скомпрометированных системах, постоянно связываясь с канистрой для получения новых инструкций или полезных нагрузок. Возможность одновременно推送 новые двоичные файлы на все зараженные хосты без прямого взаимодействия с имплантами предоставляет злоумышленникам мощный и скрытый механизм обновления.
Последствия этой атаки серьезны для сообществ разработчиков программного обеспечения и DevOps. Trivy широко используется для сканирования контейнеров и зависимостей на наличие уязвимостей, поэтому его компрометация является критической проблемой доверия. Разработчикам и организациям настоятельно рекомендуется немедленно проверить целостность своих установок Trivy и связанных зависимостей npm, проверив наличие несанкционированных версий. Кроме того, этот инцидент подчеркивает растущую тенденцию злоумышленников злоупотреблять децентрализованными технологиями, такими как блокчейн, для создания надежной, устойчивой к отключению атакующей инфраструктуры. Защитникам теперь необходимо учитывать мониторинг необычного сетевого трафика в блокчейн-сетях и более тщательно, чем когда-либо, проверять хуки postinstall в зависимостях с открытым исходным кодом.



