Исследователи Aikido Security обнаружили новую supply chain атаку Graphalgo, в рамках которой вредоносный RAT на Go распространяется через Terraform провайдеры и Go модули. Впервые зафиксирована доставка malware через HashiCorp Registry: злоумышленники опубликовали вредоносные провайдеры gocommunity-io/dockerd и kreuzwenker/docker (typosquat популярного kreuzwerker/docker с 56 миллионами загрузок), а также Go модули gocommunity.io/orderedbtree и gogets.dev/btreex. Campaign использует целевые триггеры, блокчейн и Slack для command and control, что делает обнаружение крайне сложным.
Ключевые IOCs: Terraform провайдеры gocommunity-io/dockerd и kreuzwenker/docker; Go модули gocommunity.io/orderedbtree и gogets.dev/btreex; домены gocommunity[.]io и gogets[.]dev; Ethereum контракт 0xAD02b5cDE693529d3bdA0266299501ad0193036C на Arbitrum Sepolia; Slack workspace portfolio-devs.slack[.]com и portfolio-testers.slack[.]com.
Вредоносные Terraform провайдеры содержат скрытые точки входа в файле /internal/provider/resource_docker_container_funcs.go, которые активируются только при выполнении специфических условий. Malware остается инертным, пока SHA256 хэш от конкатенации Terraform переменных containerName и networkID не совпадет с целевым значением b9966e3762e9a0d5d263b8cb3cca07294f81af9714d40ddf4628cb85d74e8ad5. Этот механизм означает, что вредоносный провайдер безвреден в большинстве случаев и активируется только при целевой атаке на конкретную инфраструктуру.
Использование специфического триггера подрывает sandbox-тестирование: сканер, устанавливающий Graphalgo провайдер с обычными входами, видит нормальный Docker провайдер. Атакующий, по-видимому, знал или ожидал узнать точные имена контейнеров и сетей цели, что указывает на предварительную разведку или социальную инженерию до того, как пакет был загружен. Это классический признак целевой операции, а не массовой кампании.
Go модуль gogets.dev/btreex впервые появился 8 сентября, но атакующий подделал коммиты, чтобы датировать их ноябрем 2025 года. Поскольку Go Modules считает даты коммитов авторитетными, Go module proxy и pkg.go.dev отображали поддельную дату. Злоумышленник также создал два фальшивых сайта Go пакетов — gogets.dev и gocommunity.io — чтобы сделать свои пакеты выглядящими как устоявшиеся проекты.
Вторая стадия Graphalgo RAT представляет собой Go агент с двумя каналами command and control, что делает его особенно устойчивым к обнаружению и блокировке. Malware первоначально собирает системную информацию, включая аппаратные атрибуты, ОС, hostname и доступность node на зараженной системе, а затем передает эти данные через оба канала.
Malware отправляет собранную информацию в Slack канал frontend-devs в workspace portfolio-devs.slack[.]com (Portfolio Devs).值得注意的是, malware общается с api.slack.com, и субдомен workspace не контактируется напрямую. Для Slack C2 коммуникаций malware использует захардкоженный публичный ключ 302a300506032b656e032100bad013df6eec5d686f4cc8551e0a5c87a0135164bdd1dafb1c75141d1b526702.
Slack API трафик является обычным в большинстве корпоративных сетей, поэтому egress filtering вряд ли отметит Graphalgo check-ins. Это делает Slack идеальным каналом для скрытой коммуникации в средах, где разработчики активно используют этот инструмент.
Для блокчейн-based C2 malware получает данные из Ethereum смарт-контракта на Arbitrum Sepolia testnet, используя захардкоженный адрес контракта 0xAD02b5cDE693529d3bdA0266299501ad0193036C. Процесс работает следующим образом:
C2 механизм дополнительно указывает на то, что этот malware является частью целевой операции. Способность threat actor выдавать команды ограничена, поскольку все клиенты потребляют все сообщения и no-op когда не могут дешифровать сообщения, предназначенные для других клиентов. Это особенно сложная реализация blockchain dead drop, которая интегрирует двунаправленную коммуникацию с минимальным риском утечки информации или disruption. Malware опрашивает блокчейн каждые 3 секунды.
| C2 канал | Интервал опроса | Платформа | Назначение |
|---|---|---|---|
| Slack | 10 секунд | api.slack.com | Первоначальный контакт, обмен ключами |
| Blockchain | 3 секунды | Arbitrum Sepolia | Dead drop команды, постоянная коммуникация |
Блокчейн трафик менее обычен в корпоративных сетях. Aikido рекомендует организациям без бизнес-необходимости взаимодействовать с блокчейнами настроить алерты на сетевые подключения к HTTP-based blockchain сервисам. По команде malware может запускать дополнительный Go или JavaScript код или удалить себя.
Если какой-либо из пакетов или провайдеров Graphalgo был установлен на машине разработчика или CI/CD runner, вся среда должна считаться скомпрометированной. Простое удаление пакета недостаточно для очистки машины, поскольку malware запускает вторую стадию как detached фоновый процесс.
На этой неделе подтвердите, что ни один из четырех Graphalgo пакетов не существует нигде в вашей среде, идентифицируйте всех внутри или снаружи компании, кто запускает Terraform с production credentials, и сократите время жизни этих credentials. Эти три действия адресуют кампанию Graphalgo конкретно и более широкий класс атак, нацеленных на инфраструктурные инструменты.
Для команд, запускающих Terraform in-house, необходимо:
Критическое замечание: Переизображение является единственным надежным способом очистки. Malware запускает вторую стадию как detached процесс, поэтому удаление провайдера не останавливает уже запущенный код. Любая машина, установившая эти пакеты, должна считаться полностью скомпрометированной, и все облачные credentials, которые она имела, должны быть ротированы.
Кампания Graphalgo представляет собой первую задокументированную доставку malware через Terraform провайдеры, но она вписывается в растущий тренд supply chain атак на инфраструктурные инструменты. Terraform используется более чем 75% компаний для управления облачной инфраструктурой, делая его привлекательной целью для злоумышленников, стремящихся получить доступ к production средам через DevOps рабочие станции.
Использование блокчейн и Slack для C2 отражает эволюцию malware техник, где злоумышленники используют легитимные сервисы для скрытой коммуникации. Это делает обнаружение сложнее, поскольку трафик выглядит как обычная бизнес-активность. Blockchain dead drops становятся все более популярными среди продвинутых threat actors, поскольку они обеспечивают устойчивую к takedown инфраструктуру.
Для предотвращения подобных атак организации должны внедрить многоуровневую стратегию защиты supply chain. Это включает использование приватных registry для всех инфраструктурных пакетов, обязательную верификацию checksums и signatures перед установкой, сегментацию доступа к production credentials и непрерывный мониторинг сетевой активности на аномальные подключения к blockchain сервисам.
Кампания Graphalgo демонстрирует, что даже хорошо известные и широко используемые инструменты Infrastructure as Code могут стать вектором для сложных целевых атак. Комбинация специфических триггеров, двойной C2 инфраструктуры и поддельной истории релизов показывает высокий уровень изощренности threat actors, стоящих за этой операцией. Организации должны пересмотреть свои подходы к безопасности supply chain и относиться к инфраструктурным инструментам с той же строгостью, что и к критическим production системам.
«Безопасность цепочки поставок — это не про доверие к каждому звену, а про проверку каждого звена. В мире Infrastructure as Code один непроверенный провайдер может стать дверью ко всей вашей облачной инфраструктуре».
— Брюс Шнайер, криптограф и эксперт по безопасности
