Хакерская группа TeamPCP нацеливается на кластеры Kubernetes с помощью вредоносного скрипта, который уничтожает все машины при обнаружении систем, настроенных для Ирана.
Эта угроза ответственна за недавнюю атаку на цепочку поставок сканера уязвимостей Trivy, а также за кампанию на базе NPM под названием «CanisterWorm», начавшуюся 20 марта.
Выборочная полезная нагрузка для уничтожения
Исследователи из компании по безопасности приложений Aikido сообщают, что кампания, нацеленная на кластеры Kubernetes, использует тот же командно-контрольный центр (C2), код бэкдора и путь размещения, что и в инцидентах с CanisterWorm.
Однако новая кампания отличается тем, что включает деструктивную полезную нагрузку, нацеленную на иранские системы, и устанавливает бэкдор CanisterWorm на узлы в других регионах.
«Скрипт использует тот же ICP-каннистер (tdtqy-oyaaa-aaaae-af2dq-cai[.]raw[.]icp0[.]io), который мы документировали в кампании CanisterWorm. Тот же C2, тот же код бэкдора, тот же путь размещения /tmp/pglog», — сообщает Aikido.
«Латеральное перемещение, нативное для Kubernetes через DaemonSets, соответствует известному сценарию TeamPCP, но этот вариант добавляет то, чего мы раньше у них не видели: геополитически нацеленную деструктивную полезную нагрузку, направленную конкретно на иранские системы».
По словам исследователей Aikido, вредоносное ПО создано для уничтожения любой машины, соответствующей часовому поясу и локали Ирана, независимо от того, присутствует ли на ней Kuberenetes.
Если оба условия выполнены, скрипт развертывает DaemonSet с именем ‘Host-provisioner-iran’ в ‘kube-system’, который использует привилегированные контейнеры и монтирует корневую файловую систему хоста в /mnt/host.
Каждый под запускает контейнер Alpine с именем ‘kamikaze’, который удаляет все каталоги верхнего уровня в файловой системе хоста, а затем принудительно перезагружает хост.
Если Kubernetes присутствует, но система идентифицируется как неиранская, вредоносное ПО развертывает DaemonSet с именем ‘host-provisioner-std’, используя привилегированные контейнеры с смонтированной файловой системой хоста.
Вместо стирания данных каждый под записывает Python-бэкдор в файловую систему хоста и устанавливает его как службу systemd, чтобы он сохранялся на каждом узле.
На иранских системах без Kubernetes вредоносное ПО удаляет каждый файл на машине, включая системные данные, доступные текущему пользователю, выполняя команду rm -rf/ с флагом –no-preserve-root. Если привилегии root недоступны, оно пытается использовать sudo без пароля.

В системах, где ни одно из условий не выполняется, вредоносные действия не предпринимаются, и вредоносное ПО просто завершает работу.
Aikido сообщает, что недавняя версия вредоносного ПО, использующая тот же бэкдор ICP-каннистера, исключила латеральное перемещение на основе Kubernetes и вместо этого использует распространение через SSH, анализируя журналы аутентификации на предмет действительных учетных данных и используя украденные закрытые ключи.
Исследователи выделили некоторые ключевые индикаторы этой активности, включая исходящие SSH-соединения с ‘StrictHostKeyChecking+no’ с скомпрометированных хостов, исходящие соединения с Docker API по порту 2375 в локальной подсети и привилегированные контейнеры Alpine через неаутентифицированный Docker API с / смонтированным как hostPath.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Bill Toulas




