Клони 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-адрес, попереджати про встановлення чотирьох шкідливих імен пакетів, і перевіряти системи на наявність вбудованого публічного ключа, пов’язаного зі шкідливим програмним забезпеченням. Будь-яка система, що встановила один з пакетів, повинна пройти судово-медичний огляд для визначення чи були розгорнуті постійні служби, заплановані задачі або додаткові корисні навантаження.
graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 initial_access[“<b>Техніка</b> – <b>T1195.002 Компрометація Ланцюга Постачання</b><br/>Компрометація програмного ланцюга постачання для отримання початкового доступу.”] class initial_access technique automated_collection[“<b>Техніка</b> – <b>T1119 Автоматизоване Збирання</b><br/>Автоматичне збирання облікових даних, змінних середовища та конфігураційних файлів хмари.”] class automated_collection technique creds_in_files[“<b>Техніка</b> – <b>T1552.001 Незахищені Облікові Дані</b><br/>Облікові дані, збережені у файлах, збираються.”] class creds_in_files technique private_keys[“<b>Техніка</b> – <b>T1552.004 Незахищені Облікові Дані</b><br/>Приватні ключі витягуються з небезпечних місць.”] class private_keys technique victim_identity[“<b>Техніка</b> – <b>T1589 Збір Ідентифікаційної Інформації Жертви</b><br/>Збір персональних ідентифікаторів жертви.”] class victim_identity technique victim_org[“<b>Техніка</b> – <b>T1591.001 Збір Інформації про Організацію Жертви</b><br/>Визначення фізичних локацій організації жертви.”] class victim_org technique code_repos[“<b>Техніка</b> – <b>T1213.003 Дані з Інформаційних Репозиторіїв</b><br/>Збір кодових репозиторіїв.”] class code_repos technique npm_persistence[“<b>Техніка</b> – <b>T1176 Розширення ПЗ</b><br/>Підтримка доступу через шкідливий npm-пакет.”] class npm_persistence technique exfil_over_http[“<b>Техніка</b> – <b>T1011 Виведення Даних Через Інші Мережеві Канали</b><br/>Передача даних до C2 через HTTP/HTTPS.”] class exfil_over_http technique cloud_transfer[“<b>Техніка</b> – <b>T1537 Передача Даних до Хмарного Облікового Запису</b><br/>Переміщення викрадених даних у хмарне сховище.”] class cloud_transfer technique initial_access –>|призводить_до| automated_collection automated_collection –>|збирає| creds_in_files automated_collection –>|збирає| private_keys automated_collection –>|збирає| victim_identity automated_collection –>|збирає| victim_org automated_collection –>|збирає| code_repos automated_collection –>|збирає| npm_persistence creds_in_files –>|виводить| exfil_over_http private_keys –>|виводить| exfil_over_http victim_identity –>|виводить| exfil_over_http victim_org –>|виводить| exfil_over_http code_repos –>|виводить| exfil_over_http npm_persistence –>|виводить| exfil_over_http exfil_over_http –>|зберігає_в| cloud_transfer
Потік атаки
Виявлення
Підозріле завантаження виконуваного файлу (через проксі)
Перегляд
Можливе створення конфігураційного файлу автоматичних завдань 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 "[*] Очистка завершена" # -------------------------------------------------