Вредоносные Terraform-провайдеры: атака на Go-экосистему

Вредоносные Terraform-провайдеры: атака на Go-экосистему

В начале сентября 2026 года в публичных каталогах появились четыре пакета с вредоносным кодом: два провайдера для Terraform (инструмента, который описывает инфраструктуру в виде конфигурационных файлов) и два модуля для языка Go. Один провайдер - опечаточная копия популярного пакета для Docker, который скачали 56 миллионов раз. Такую подмену называют тайпосквоттингом: злоумышленник регистрирует имя с опечаткой и ждёт, пока разработчик ошибётся при вводе. Случай важен тем, что вредоносный код впервые распространяется через провайдеры Terraform. Обычно заражение находят в обычных библиотеках, а здесь целью стали рабочие станции инженеров, которые разворачивают инфраструктуру. У таких сотрудников под рукой обычно лежат ключи и пароли от промышленных систем.

Описание

Внутри провайдеров код спрятан аккуратно, и беглая проверка его не покажет. Пока значения нескольких переменных конфигурации не совпадут с заранее вычисленным условием, пакет ведёт себя как обычный инструмент. Триггер привязан к сочетанию имени контейнера и идентификатора сети: срабатывает только одна конкретная комбинация. Затем скрытая ветка запускает расшифровку подготовленного архива, замаскированного под служебный файл с данными. Похожая логика встречается в модулях Go, где активация зависит от числового значения в обрабатываемом объекте. Адресность говорит о том, что цель у атаки конкретная, а не массовая.

После срабатывания триггера на компьютер попадает программа удалённого доступа - инструмент, дающий злоумышленнику постоянное управление чужой машиной. Она собирает сведения об оборудовании, версии операционной системы, имени узла и учётной записи, а также проверяет, установлена ли среда Node.js для выполнения JavaScript. Потом эти данные уходят в корпоративный мессенджер Slack, в канал, оформленный как переписка разработчиков. Управление идёт по двум независимым каналам: мессенджер и тайник в цепочке блоков Ethereum, где команды хранят в записях умного контракта - программы, автоматически исполняемой в сети. Заражённые машины опрашивают блокчейн каждые три секунды, мессенджер - каждые десять.

Общий ключ шифрования не даёт посторонним прочитать чужие команды. Поэтому клиент, которому сообщение не предназначено, просто пропускает его. Такая схема усложняет и перехват, и попытки нарушить работу канала. Получив команду, программа запускает дополнительный код на Go или JavaScript либо удаляет себя. Техника перекликается с кампанией Graphalgo, которую в феврале 2026 года описала ReversingLabs: совпадают публичный ключ, инфраструктура Slack и умные контракты. Похожие вредоносные пакеты для менеджера NPM (менеджер пакетов JavaScript) встречались с апреля 2026 года.

Модули Go распространяли тот же код. Один появился 11 августа и содержал вредоносную программу в открытом виде. Второй, опубликованный 8 сентября, прятал её в архиве, который выдавал себя за файл базы данных. Внутри лежали зашифрованные файлы, которые запускались как отдельный модуль. Чтобы пакет выглядел солидно, атакующие подделали даты правок и отнесли их к ноябрю 2025 года. Каталоги пакетов Go считают дату правки достоверной, поэтому ложная дата выпуска отображается как настоящая. Такой приём заметно повышает доверие к чужой библиотеке.

Для продвижения пакетов злоумышленники создали две организации на GitHub (платформе для хранения кода) и два сайта-спутника, которые выдают себя за новые экосистемы пакетов Go. Оба домена появились в течение суток после регистрации организаций, обещают удобную систему коротких имён для модулей и при этом не работают. Добавить туда свой пакет нельзя. Такие ресурсы нужны, чтобы жертва поверила в легитимность загрузки. Периодически атакующие удаляют вредоносный код из репозиториев. Так они продлевают жизнь своим учётным записям и готовят почву для следующих публикаций.

Масштаб операции пока невелик. В канале мессенджера накопилось 1240 зашифрованных сообщений с 16 июля, в блокчейне - 1402 транзакции с 6 августа. Открытые отметки о подключении содержат 18 уникальных имён узлов на 725 сообщений: три устройства работают на Windows, пять на Linux, десять на macOS. Первое подключение относится к 16 июля - с тестовой машины под именем Frank. Значит, автор сначала проверял сборку на себе, а уже потом выпускал её в публичные каталоги.

Разработчикам и администраторам полезно внимательнее относиться к зависимостям. Стоит проверять издателя, сверять имя пакета с официальным, фиксировать версии и просматривать изменения перед обновлением. Компаниям без производственной необходимости в цепочках блоков имеет смысл отслеживать обращения сотрудников к блокчейн-сервисам. Атака на провайдеры Terraform - первый известный случай системного распространения вредоносного кода через этот инструмент. Интерес к Go и инфраструктурным пакетам сохранится: поддельные экосистемы для того и построены.

Индикаторы компрометации

Domain

  • gocommunity.io
  • gogets.dev

URL

  • https://mediumstar.slack.com
  • https://portfolio-devs.slack.com
  • https://portfolio-testers.slack.com

SHA256

  • 5f892a5424e88a21a3eb3d7f82ebf04d8ac31cdb19ada25153be4165df977d0f
  • ab01686d87565250fc4989faddb877d793667b07ec217a61cbd798f5695d62f5

Комментарии: 0