Клони 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 "[*] Очистка завершена" # -------------------------------------------------