PCPJack — новый фреймворк кражи учётных данных, нацеленный на открытые облачные сервисы (Docker, Kubernetes, Redis, MongoDB, RayML, уязвимые веб‑приложения), который не только массово ворует доступы к облачным, контейнерным, разработческим, офисным и финансовым сервисам, но и сознательно удаляет артефакты, связанные с группировкой TeamPCP, фактически «выселяя» конкурентов из скомпрометированных сред; владельцам облачной инфраструктуры уже сейчас необходимо инвентаризовать открытые сервисы, жёстко ограничить доступ к метаданным инстансов и проверить системы на наличие следов автоматических установочных скриптов и инструмента Sliver.
Технические детали PCPJack
В опубликованном анализе описан законченый, модульный набор инструментов, работающий в несколько этапов и ориентированный на облачную инфраструктуру.
Начальный доступ и подготовка среды
Атака запускается с bootstrap‑shell‑скрипта, который:
- подготавливает среду выполнения и конфигурирует хост для дальнейших загрузок;
- скачивает следующую стадию инструментов (включая шесть Python‑скриптов);
- пытается заразить и собственную инфраструктуру нападающего (что указывает на черты «червя»);
- обнаруживает и останавливает процессы, а также удаляет артефакты, связанные с TeamPCP;
- устанавливает Python, обеспечивает механизм постоянства;
- запускает оркестрационный Python‑скрипт и затем удаляет сам себя, минимизируя следы.
Таргеты для распространения — открытые и/или неправильно сконфигурированные:
- облачные сервисы и инстансы;
- Docker и Kubernetes среды;
- сервисы хранения данных Redis, MongoDB;
- платформа RayML и уязвимые веб‑приложения.
Оркестрация и использование Common Crawl
Ключевая особенность: оркестратор червя получает список целей не из собственного сканера, а из parquet‑файлов, скачиваемых напрямую из публичного дата‑сета Common Crawl. Это позволяет:
- масштабировать кампанию за счёт готовых массовых списков доменов и URL;
- переложить часть «работы по обходу» интернета на легитимный проект;
- замаскировать логику выбора целей под обычную работу с открытыми данными.
Такая схема хорошо ложится на технику T1595 (Active Scanning), но с опорой на внешние источники разведданных.
Кража учётных данных и метрики успеха
Фреймворк системно собирает:
- системную информацию с жертвы;
- учётные данные облачных, контейнерных, разработческих, офисных и финансовых сервисов;
- отдельные «успешные» события, включая специальное поле «PCP replaced», передаваемое на управляющий сервер (C2) и отражающее, удалось ли вытеснить TeamPCP с данного хоста.
Сама модель поведения укладывается в техники MITRE ATT&CK T1552 (Unsecured Credentials) и T1555 (Credentials from Password Stores): систематический обход источников секретов в облаке и контейнерах.
Дополнительный скрипт check.sh и Sliver
На инфраструктуре оператора обнаружен дополнительный shell‑скрипт check.sh, который:
- определяет архитектуру CPU и загружает соответствующий бинарный файл Sliver — известного мультиплатформенного фреймворка командно‑контрольной инфраструктуры, исходный код которого доступен в репозитории Sliver на GitHub;
- сканирует Instance Metadata Service (IMDS) в облаках;
- обходит service account’ы Kubernetes;
- анализирует окружения Docker в поисках конфигураций и токенов.
Цель — извлечение учётных данных и токенов, связанных с:
- Anthropic, OpenAI, Google API;
- Digital Ocean, Grafana Cloud, HashiCorp Vault;
- Discord, OnePassword и другими сервисами.
Все найденные секреты передаются на внешний сервер управления и хранения похищенных данных.
INDICATORS OF COMPROMISE (IOC) в исходном отчёте не приводятся, поэтому обнаружение пока опирается на поведенческие признаки и артефакты (скрипты bootstrap/check.sh, сетевое взаимодействие Sliver, обращения к Common Crawl).
Контекст угроз и связь с TeamPCP
Исследователи отмечают существенное пересечение целей PCPJack с предыдущей группировкой TeamPCP, активно эксплуатировавшей уязвимости (включая React2Shell) и ошибки конфигурации в облачных сервисах для построения распределённой сети хостов для последующей кражи данных и других действий после проникновения.
Ключевые отличия PCPJack от TeamPCP:
- отсутствие майнинга криптовалюты — в отличие от прежней кампании, новый фреймворк явно удаляет функции майнеров, ранее используемых TeamPCP;
- фокус на кражу и монетизацию учётных данных через мошенничество, спам, вымогательство или перепродажу доступа, а не на прямой майнинг;
- антиконкурентное поведение: явное удаление процессов и артефактов TeamPCP и сбор телеметрии «PCP replaced», показывающей, что цель — не просто массовое заражение, а замещение конкурирующей инфраструктуры.
Исследователи предполагают, что сходство кодовой базы и тактик может указывать на возможную связь с бывшим участником TeamPCP, но это остаётся оценочным суждением: подтверждённой технической атрибуции нет.
Оценка воздействия и профиль риска
Наиболее уязвимыми выглядят организации, которые:
- эксплуатируют публично доступные Docker/Kubernetes/Redis/MongoDB без строгих политик аутентификации и сетевой сегментации;
- используют Instance Metadata Service по умолчанию без ограничений и прокси‑слоёв;
- хранят чувствительные токены (API‑ключи к Anthropic, OpenAI, Google API, Grafana Cloud, Digital Ocean, HashiCorp Vault и др.) в переменных окружения, конфигурационных файлах контейнеров или сервис‑аккаунтах Kubernetes;
- имеют длительные или неограниченные по времени токены доступа без ротации.
Потенциальные последствия при успешной атаке:
- компрометация цепочки поставки и разработческих процессов — доступ к репозиториям, CI/CD, секретам в Vault и менеджерах паролей;
- компрометация данных клиентов через доступы к базам данных, панелям мониторинга и системам хранения;
- вторичное злоупотребление учётными данными: рассылка спама, атаки на третьи стороны, вымогательство, мошенничество с финансовыми сервисами;
- репутационные и регуляторные риски, если через украденные ключи атакуют внешних клиентов или партнёров.
Отдельно стоит обратить внимание на глубину доступа, которую даёт кража токенов к провайдерам вроде Anthropic или OpenAI: неконтролируемое использование мощностей, кража внутренних промптов и конфигураций, возможное злоупотребление данными, отправляемыми в модели.
Практические рекомендации по защите
1. Сокращение поверхности атаки в облаке и контейнерах
- Провести инвентаризацию всех публично доступных сервисов (Docker API, Kubernetes API, Redis, MongoDB, RayML, административные интерфейсы веб‑приложений).
- Отключить анонимный и «по умолчанию» доступ, закрыть ненужные порты на уровне облачных брандмауэров и security group.
- Жёстко ограничить доступ к Kubernetes API и Docker сокету только через аутентифицированные каналы.
2. Защита Instance Metadata Service и сервис‑аккаунтов
- Ограничить доступ к IMDS (например, только с доверенных сервисов/sidecar‑прокси), минимизировать использование метаданных для получения долгоживущих токенов.
- Проверить права service account’ов Kubernetes, убрать чрезмерные привилегии, использовать принцип наименьших прав.
- Настроить сетевые политики в кластере, чтобы контейнеры не могли произвольно обращаться к IMDS и Kubernetes API.
3. Управление секретами и токенами
- Вывести API‑ключи (Anthropic, OpenAI, Google API, Digital Ocean, Grafana Cloud, HashiCorp Vault, OnePassword и др.) из переменных окружения и статических конфигураций в специализированные хранилища секретов.
- Включить ротацию токенов, особенно для высокопривилегированных и неограниченных по времени ключей.
- Внедрить мониторинг аномального использования ключей у провайдеров (скачки запросов, новые географии, нетипичные сценарии).
4. Обнаружение PCPJack и связанных активностей
- Поискать в журналах и файловых системах следы запуска неизвестных shell‑скриптов, особенно с поведением «загрузка Python, установка persistence, самоудаление».
- Отслеживать на сетевом уровне:
- нестандартные обращения к Common Crawl (загрузка parquet‑файлов с большими списками доменов);
- подключения и трафик, характерный для Sliver (C2‑шаблоны, взаимный TLS, необычные домены управления).
- Использовать известные детекторы Sliver и MITRE‑ориентированные правила (например, по техникам T1105 (Ingress Tool Transfer) и T1552/T1555) в SIEM и IDS/IPS.
5. Реакция и приоритезация
- Высокий приоритет (срок — дни, не недели): закрытие открытых Docker/Kubernetes/Redis/MongoDB/IMDS, ревизия токенов и ключей к перечисленным сервисам, проверка на присутствие Sliver и подозрительных shell‑скриптов.
- При обнаружении компрометации:
- немедленно отозвать и ротационировать все потенциально скомпрометированные ключи и токены;
- переподнять сильно затронутые инстансы из доверимых образов с новой секретной базой;
- провести ретроспективный анализ логов для выявления действий, совершённых с украденными учётными данными.
Ключевой вывод: PCPJack демонстрирует смещение фокуса от грубого майнинга к более прибыльной и менее заметной монетизации через кражу облачных и API‑учётных данных, поэтому в ближайшее время приоритетом для команд безопасности должно стать закрытие открытых Docker/Kubernetes/IMDS‑точек, немедленная ревизия и ротация токенов к облачным и AI‑сервисам, а также внедрение поведенческого мониторинга для выявления аномальных обращений к метаданным и запуска Sliver.