Cайт программиста Ruby, веб-разработчика Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

CVSS 9 из 10 без единой строчки уязвимого кода. Хакеры взломали официальный реестр Coder

Хакерам не понадобился поддельный сайт, чтобы подсунуть разработчикам вредоносные Terraform-модули. Неизвестные получили доступ к инфраструктуре Cloudflare, которую использует Coder, добавили собственные IP-адреса в пул официального реестра registry.coder.com и заставили настоящий домен временами отдавать модифицированные пакеты с похитителем секретов.

Атака продолжалась около 14 часов 31 августа, с 07:35 до 21:45 UTC. Часть запросов к официальному реестру попадала на серверы злоумышленников, где находилась изменённая копия Coder Registry. В результате разработчик мог обратиться к правильному адресу registry.coder.com и всё равно получить вредоносный Terraform-модуль. Простая проверка домена или разрешение загрузок только с доверенного адреса от такой схемы не защищали.

Вредоносный код запускался через Terraform-блок data "external" "telemetry" и скрипты dlp.sh и dlp-docker.sh. Похититель искал секреты в переменных окружения, конфигурационных файлах и истории терминала. Под угрозой оказались ключи облачной инфраструктуры и ИИ-сервисов, учётные данные CI/CD, SSH-ключи, OIDC-токены и другие данные, доступные компонентам Coder.

При запуске заражённого модуля во время сборки рабочего пространства риск становился ещё выше. Провижионер мог получить пользовательский OIDC-токен, настроенный SSH-ключ и одноразовые токены внешних служб аутентификации. Если провижионер работал внутри coderd, вредоносный код потенциально видел также пароль базы данных и другие параметры самого Coder. Собранную информацию отправляли на похожий на инфраструктуру разработчика домен coder-infra[.]com, зарегистрированный 28 августа, за три дня до атаки.

Под подозрение попадают организации, которые в опасный период создавали новые шаблоны, обновляли их версии, запускали пробную сборку либо разворачивали рабочие пространства без кэширования Terraform-модулей. Кэширование включено по умолчанию, поэтому уже сохранённые ранее безопасные копии могли не затронуть часть установок.

Coder не может точно определить всех пострадавших. Вредоносные серверы принадлежали атакующим, поэтому у компании нет их журналов. Администраторам советуют проверить DNS, межсетевые экраны, прокси и журналы VPC на соединения с coder-infra[.]com, поискать в журналах провижионера строку data.external.telemetry, удалить подозрительные модули из кэша и сменить все секреты, к которым мог получить доступ провижионер.

Компания оценила инцидент как критический с рейтингом CVSS 9,0 из 10. Исправленные выпуски Coder получили номера 2.37.0, 2.36.4, 2.35.7 и 2.34.9. Отдельный CVE инциденту не присвоили, поскольку речь идёт не о классической программной уязвимости, а о компрометации инфраструктуры распространения компонентов.

Coder утверждает, что признаков доступа к клиентским данным, которые хранит сама компания, пока нет. Однако атака показывает неприятную особенность компрометации цепочки поставок: доверенный домен и правильный адрес реестра уже не гарантируют, что полученный оттуда компонент действительно пришёл с сервера разработчика.

SecurityLab