Группа хакеров TeamPCP, известная своими атаками на облачную инфраструктуру, значительно эволюционировала. Если ранее их деятельность была сосредоточена на краже данных и скрытом закреплении в системах, то теперь исследователи обнаружили в их арсенале новый, разрушительный инструмент. Этот скрипт не просто крадет учетные данные, а целенаправленно уничтожает целые кластеры Kubernetes, причем делает это выборочно, ориентируясь на системы, связанные с Ираном. Обнаружение такого вредоносного кода сигнализирует об опасной эскалации в тактике киберпреступников, которые теперь готовы наносить необратимый физический ущерб цифровой инфраструктуре своих жертв.
Описание
Технический анализ показал, что новый скрипт использует ту же самую инфраструктуру командования и управления, что и ранее документированная кампания CanisterWorm. Речь идет об ICP-контейнере (canister) с идентификатором "tdtqy-oyaaa-aaaae-af2dq-cai[.]raw[.]icp0[.]io". Это совпадение неслучайно: идентичны путь размещения бэкдора ("/tmp/pglog"), код полезной нагрузки и методы перемещения внутри среды Kubernetes с использованием объектов DaemonSet. Однако новая версия добавляет ключевой, ранее не наблюдавшейся компонент - геополитически мотивированную разрушительную функцию, нацеленную исключительно на иранские системы.
Алгоритм работы скрипта построен на простой, но эффективной логике ветвления. Первым делом он определяет, запущен ли он внутри кластера Kubernetes, проверяя наличие стандартных маркеров, таких как смонтированный сервисный аккаунт. Затем происходит критически важная проверка геолокации: скрипт анализирует часовой пояс системы (читая "/etc/timezone" или вывод команды "timedatectl") и переменную окружения "LANG". Если обнаруживаются значения "Asia/Tehran", "Iran" или локаль "fa_IR", система помечается как иранская. Именно это условие запускает деструктивный сценарий.
В зависимости от окружения, скрипт выбирает один из четырех путей. Для кластеров Kubernetes, идентифицированных как иранские, он развертывает специальный DaemonSet с говорящим названием "host-provisioner-iran". Этот объект, благодаря настройке "tolerations: [operator: Exists]", запускается на всех узлах кластера, включая управляющую плоскость (control plane). Контейнер внутри DaemonSet, названный "kamikaze", работает с привилегиями "privileged: true", монтирует корневую файловую систему хоста и выполняет команду, которая стирает все данные на верхнем уровне смонтированного каталога, после чего принудительно перезагружает систему. Результат - полный вывод из строя всех узлов кластера, его фактическое уничтожение.
Если же кластер Kubernetes не является иранским, скрипт действует иначе. Он развертывает DaemonSet "host-provisioner-std", который устанавливает на каждый узел классический бэкдор CanisterWorm, маскирующийся под системный сервис "internal-monitor". Этот бэкдор, как сообщалось ранее, обеспечивает постоянное закрепление в системе, периодически опрашивая ICP-контейнер для получения и выполнения новых команд. Для не-Kubernetes хост-систем, определенных как иранские, сценарий еще более прямолинеен: выполняется команда "rm -rf / --no-preserve-root", безвозвратно удаляющая все данные на диске. На всех остальных системах скрипт просто завершает работу, не оставляя следов.
Особую тревогу вызывает последняя, третья итерация этого вредоносного кода, которая демонстрирует способность к самостоятельному распространению в сети. Новая версия, обнаруженная по адресу "trycloudflare[.]com/prop.py", отказывается от зависимости от Kubernetes для горизонтального перемещения. Вместо этого она использует два автономных метода. Во-первых, скрипт анализирует логи аутентификации SSH ("/var/log/auth.log" или "/var/log/secure"), извлекая IP-адреса и имена пользователей, которые успешно входили в систему. Во-вторых, он сканирует локальную подсеть "/24" на наличие открытого Docker API на порту 2375.
Для атаки через SSH скрипт собирает все доступные приватные ключи и пытается подключиться к найденным хостам, выполняя на них свою полезную нагрузку. Для атаки через Docker API он создает привилегированный контейнер, монтирующий корневую файловую систему хоста, и запускает деструктивную команду напрямую. Таким образом, одна скомпрометированная машина может стать плацдармом для зачистки всей сетевой инфраструктуры, отвечающей иранским критериям. При этом маскировка под легитные сервисы, связанные с PostgreSQL (например, переименование сервиса в "pgmonitor"), становится все более изощренной.
Это развитие событий имеет серьезные последствия для глобальной кибербезопасности, особенно в свете растущей геополитической напряженности. TeamPCP демонстрирует переход от тайного шпионажа и монетизации к целенаправленным разрушительным операциям. Использование инфраструктуры Cloudflare для доставки вредоносного кода и ICP (Internet Computer Protocol) для управления подчеркивает сложность обнаружения таких атак, так как трафик может маскироваться под легитный. Для специалистов по безопасности приоритетом должно стать усиление контроля за привилегированными контейнерами, особенно за DaemonSet, монтирующими корневую файловую систему хоста, и регулярный аудит сетевых политик, запрещающих неавторизованный доступ к API Docker и SSH. Обнаружение деструктивных сценариев на ранней стадии, до выполнения геолокационной проверки, может быть единственным способом предотвратить катастрофические последствия.
Индикаторы компрометации
Domains
- tdtqy-oyaaa-aaaae-af2dq-cai.raw.icp0.io
URLs
- https://championships-peoples-point-cassette.trycloudflare.com
- https://investigation-launches-hearings-copying.trycloudflare.com/
- https://souls-entire-defined-routes.trycloudflare.com/