Червь Miasma распространяется через GitHub и крадёт учётные данные
Miasma, самораспространяющийся червь с открытым исходным кодом для кражи учётных данных, распространяется в npm под именем voicefromtheouterworld. В README автором названа TeamPCP, но эта атрибуция не подтверждена: с кампаниями, связанными с группировкой, есть технические пересечения, однако сходство кода само по себе не устанавливает авторство. По имеющимся данным, опубликованный исходный код не использовали как вредоносный пакет в реестре, а основной доменный канал C2 отключили в сборке с открытым исходным кодом. При этом эксфильтрация данных и выполнение команд через коммиты GitHub остаются активными.
Сбор и передача учётных данных
Для работы червю нужен токен персонального доступа GitHub (PAT). С его помощью он собирает учётные данные из локальных файлов, облачных сервисов, памяти процессов, менеджеров паролей, CI-раннеров и инструментов разработчика. Miasma просматривает более 100 местоположений в файловой системе, в том числе ищет учётные данные облачных сервисов, SSH-ключи, историю командной строки, данные Slack и Telegram, конфигурации VPN, кошельки Monero и файлы конфигурации Claude.
В GitHub Actions червь считывает память процесса Runner.Worker, чтобы получить секреты, которые могут никогда не попадать на диск. Среди целей атаки указаны AWS Secrets Manager, SSM Parameter Store, Kubernetes, Vault и несколько менеджеров паролей. Miasma также злоупотребляет рабочими процессами GitHub, чтобы выгружать секреты репозитория в артефакт перед их эксфильтрацией.
Собранные данные червь сжимает с помощью gzip, шифрует алгоритмом AES-256-GCM и защищает с использованием RSA-OAEP и встроенного открытого ключа длиной 4096 бит. Актуальная версия передаёт данные через коммиты в публичные репозитории GitHub. Подписанный триггер коммита позволяет также доставлять и выполнять произвольный JavaScript с помощью eval(). Отдельный постоянно работающий монитор использует systemd или macOS LaunchAgents, чтобы опрашивать GitHub на предмет подписанных команд и выполнять загруженный код на Python.
В сборках для оператора можно восстановить канал C2, который отправляет зашифрованные данные на api.anthropic.com/v1/api. Подписанные сообщения GitHub поддерживают смену конечных точек.
Распространение и воздействие на инструменты разработки
Miasma распространяется через модификацию репозиториев GitHub, веток, тегов Actions, рабочих процессов npm, имён пакетов PyPI, SSH-хостов, систем AWS EC2 через SSM, JFrog Artifactory и других экосистем. Червь внедряет задачи VS Code, хуки Claude и Gemini, а также конфигурации или инструкции на естественном языке для 13 инструментов ИИ-кодинга, включая Cursor и Claude Code.
Червь может перехватывать теги semver Actions с помощью осиротевших коммитов и развёртывать рабочие процессы, которые публикуют троянизированные пакеты npm через легитимные механизмы GitHub OIDC и Sigstore provenance. Для PyPI он создаёт поддельные имена пакетов с опечатками и суффиксами -mcp или -mpc.
В числе приёмов противодействия анализу указаны обнаружение EDR, распознавание среды CI, подавление сигналов и блокировка PID. Miasma также пытается отключать StepSecurity Harden-Runner, используя Docker, sudo, изменения DNS или привилегированные контейнеры.
Признаки закрепления и индикаторы компрометации
К признакам закрепления и индикаторам компрометации относятся:
- файл
~/.config/index.js; - файл
.claude/settings.json; - файл
.vscode/tasks.json; - файл
GITHUB_MONITOR.py; - файл
site-packages/INJECT_PTH.pth; - подозрительные теги Action;
- названия рабочих процессов или коммитов Run Copilot и Dependabot Updates.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



