Изследователи по киберсигурност разкриха зловреден софтуер, базиран на Go, разпространяван чрез два Go модула и два Terraform доставчика, отбелязвайки първия случай, в който автори на заплахи използват централизираното хранилище, поддържано от HashiCorp, като вектор за разпространение на злонамерен код.

Според Aikido списъкът с Terraform доставчици и Go модули е следният -

  • gocommunity-io/dockerd (222 изтегляния)
  • kreuzwenker/docker (1 449 изтегляния)
  • gocommunity.io/orderedbtree
  • gogets.dev/btreex

Зловредният софтуер, внедрен чрез тези пакети, показва припокривания с Graphalgo – кампания, която за първи път беше документирана от ReversingLabs по-рано през февруари и приписана на севернокорейски (известни още като КНДР) киберпрестъпници.

Като част от тези действия потенциални разработчици биват приближавани чрез социални платформи като LinkedIn и Facebook или чрез обяви за работа във форуми, представяйки се за несъществуващи Web3 компании, след което са помолени да изпълнят задача по програмиране, като им се предоставя легитимно GitHub хранилище, което въвежда злонамереното поведение чрез зависимост, публикувана в npm или PyPI.

Струва си да се отбележи, че последното разкритие съвпада с идентифицирането на нов набор от злонамерени npm пакети едва от тази седмица за доставяне на същия зловреден софтуер. Списък с някои от маркираните пакети, както подчертават Checkmarx, JFrog и SafeDep, е следният -

  • indexed-btree
  • mathsbase
  • mathmain
  • math-universe
  • modern-events
  • quick-events
  • crypto-hasher
  • events-router
  • sort-btree
  • graphcore-js
  • graphlib-js

Анализ на тези пакети показва, че в някои случаи изпълнението на зловредния софтуер се задейства само при извършване на специфична криптографска операция, демонстрирайки всички белези на целева операция.

„Зловредният код се декриптира само когато жертвата реши линейна система с една конкретна матрица, приема инструкциите си от интелигентен договор в тестовата мрежа Ethereum Sepolia, поддържа втори команден канал отворен през Slack и се крие зад брой изтегляния, фабрикувани от ферма от GitHub Actions работници“, казаха от JFrog.

Веригата на атаката проправя пътя за криптиран зловреден код, чиито точни функции остават неизвестни поради факта, че е криптиран с асиметрична криптография. Имплантът също така е проектиран да се свързва със Slack канал, проверява крайната точка „conversations.history“ на всеки 10 секунди и изпълнява следващото действие въз основа на типа пакет -

  • Start пакет, за стартиране на прехвърляне на файл
  • Chunk пакет, за подаване на съдържанието на файла
  • End пакет, за обединяване на фрагментите

„Блокчейн пътят също така декриптира отдалечени данни, записва subwatcher и го стартира с Node.js“, казаха от SafeDep. „Тези пътища позволяват на оператор да достави код за изпълнение на хост, където необходимата конфигурация успее. Възстановихме импланта, но не и последващия код, доставен през тези канали. Следователно не можем да кажем какви задачи е изпълнил операторът върху жертвата.“

Aikido съобщи, че зловредният софтуер, разпространяван чрез Terraform доставчиците и Go модулите, е Go порт, който споделя блокчейн и Slack инфраструктура с npm версията. Той разполага с двойни канали за управление и контрол (C2), използвайки блокчейн тайници (dead drops) и токен за Slack бот.

В началото той събира системна информация, включително хардуерни атрибути, операционна система, име на хоста и дали възелът е достъпен на заразената система. Заснетите данни след това се предават към контролирания от атакуващия Slack канал чрез API.

„След повикването за регистрация зловредният софтуер генерира ефимерна двойка публичен-частен ключ“, заяви изследователят по сигурността Oliver Smith. „Зловредният софтуер генерира споделени ключове чрез комбиниране на своя ефимерен ключ с два публични ключа на злонамерения субект. Споделеният ключ позволява на зловредния софтуер да комуникира със заразени клиенти, използвайки споделени канали, без да излага C2 комуникациите или да изпуска съобщения между заразените хостове.“

Базираният на блокчейн C2 извлича данни от интелигентен договор на Ethereum в тестовата мрежа Arbitrum Sepolia, използвайки твърдо кодиран адрес на договор, като го използва, за да прави справки за криптирани команди на всеки три секунди. След това командите се изпълняват като Go или JavaScript код.

„C2 механизмът е допълнително указание, че този зловреден софтуер е част от целева операция“, каза Smith. „Способността на злонамерения субект да издава команди е ограничена като тясно място, тъй като всички клиенти консумират всички съобщения и не извършват действия (no-op), когато не успеят да декриптират съобщения, предназначени за други клиенти.“

„Това е забележително сложна имплементация на блокчейн тайник, която интегрира двупосочна комуникация с минимален риск от изтичане на информация или прекъсване.“

Изследователят по сигурността от Socket Karlo Zanki заяви пред The Hacker News, че Graphalgo продължава да се придържа към същия оперативен модел, като вероятно използва фалшиви интервюта за работа като основен вектор за първоначален достъп.

„Изпълнението е обусловено от базова проверка за данни, вероятно предоставени от клиентския компонент (front-end)“, каза Zanki. „Въпреки че това поведение може да предполага тясно таргетирана активност, по-вероятно е предназначено да затрудни анализа, ако изследователите открият бекенд злонамерения код без съответния преден край. Първоначалната операция Graphalgo демонстрираше същата характеристика.“

Дали Terraform Registry е новият вектор за атаки по веригата за доставки?

Появата на Terraform доставчици е нова тактика, но може би напълно очаквана, тъй като може да осигури по-директен път до критични производствени идентификационни данни, добавиха от Aikido. Това също така илюстрира, че авторът на заплахата разширява обхвата на кампанията, излизайки извън рамките на npm и PyPI.

Това обаче не е първият път, в който противници от Северна Корея прибягват до използването на Terraform доставчици за разпространение на зловреден софтуер. В доклад, публикуван миналата седмица, SentinelOne детайлизира как клъстерът от заплашителна активност с кодово име TraderTraitor е разчитал на модифицирани Terraform lock файлове, за да улесни доставянето на Rust-базирани задни врати (backdoors) от персонализирани регистри на Terraform доставчици, контролирани от атакуващите.

„Твърде рано е да се заключи със сигурност, че свързаните с КНДР злонамерени субекти използват Terraform регистрите като нова тактика за разпространение“, каза Zanki. „Въпреки това неотдавнашната им поява в две отделни кампании, свързани с тези оператори, прави съвпадението по-малко вероятно. Тези автори на заплахи имат история на въвеждане на нови техники за инфектиране и прилагане на успешни методи в множество кампании.“

„Свързаните със КНДР злонамерени субекти са изключително адаптивни и непрекъснато разширяват набора си от инструменти с техники, които могат да достигнат до широк кръг от цели. Регистрите на Terraform могат да представляват следващия канал за разпространение, който те ще приемат в голям мащаб.“

Злонамерен npm пакет споделя връзки към PolinRider

Това развитие идва в момент, когато CloudSEK подчерта несъобщаван досега JavaScript зареждащ модул (loader), наречен GHAPPIER, който е бил разпространен след компрометирането на легитимен npm пакет, "@dforge-core/dforge-mcp". Към момента не е известно как атакуващите са получили достъп до акаунта на поддържащия пакета, въпреки че се подозира, че компютърът на разработчика може да е бил заразен от злонамерено разширение или пакет.

Основната цел на зареждащия модул е да извлече код от сървър, контролиран от оператора, и да го изпълни, което позволява на автора на заплахата динамично да променя злонамерения код по време на изпълнение.

Зловредната версия (0.2.21) се съобщава, че е останала активна в npm в продължение на 35 минути и 38 секунди на 9 септември 2026 г., преди оригиналният поддържащ акаунта да върне промените и да публикува чиста версия (0.2.22). Същият зареждащ модул е наблюдаван в 65 публични хранилища, принадлежащи на 22 отделни акаунта.

„Той е достигнал до тях по един и същ начин във всеки случай: операторът е получил съхранените идентификационни данни на разработчик и след това е използвал тези данни, за да записва във всяко хранилище, в което този разработчик е имал права за качване“, заяви изследователят от CloudSEK Викас Кунду.

Сравнението на две копия на зареждащия модул – едното от npm пакета, а другото получено от хранилището на втора жертва – разкрива, че веригата на атаката използва един и същ хост за междинно съхранение (staging host) и заявка към Vercel домейн, но се различава по използвания етикет на кампанията ("ghappier" срещу "g0115").

Интересното е, че при втория злонамерен код е наблюдавано използването на техниката NullReceiver за получаване на неговия C2 адрес ("193.247.144[.]38") от портфейл на атакуващия и разполага със същата завършваща последователност от байтове ("68656c6c6f6970626f742121"), която се декодира до низа "helloipbot!!". Тази активност се припокрива с продължителна кампания, свързана със Северна Корея, известна като PolinRider.

Rust предупреждава за интервюта за работа със злонамерен код

Констатациите следват и предупреждение от проекта Rust относно текуща кампания, насочена към членове на rust-lang и собственици на популярни crate пакети с цел компрометиране на техните устройства и акаунти за разпространение на зловреден софтуер.

„Видеоразговорът се организира за нещо позитивно – например за работа, проект или възможност за договор – и след това се използва как вектор за заразяване, за да накара целта или да инсталира нещо на компютъра си (като уж липсващ аудио кодек), или да изпълни друга команда (например чрез поставяне на команда в клипборда)“, каза Адам Харви, софтуерен разработчик в Rust Foundation.

„Тези атакуващи създават нови, но изглеждащи легитимни фирмени профили, включително правдоподобно присъствие в LinkedIn, за да преминат бегла проверка.“

От проекта Rust заявиха, че начинът на действие се припокрива с кампанията Contagious Interview, свързана със Северна Корея, като призоваха сътрудниците и собствениците на crate пакети да бъдат внимателни, да се уверят, че е активирана многофакторна автентификация (MFA), и да проверят акаунтите си за неочаквани влизания.