Кібершпіонаж APT15: Аналіз кампаній та тактик, технік і процедур
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
APT15 — це китайська кібершпигунська група, що підтримується державою, активна з 2010 року, яка головним чином орієнтована на урядові агенції, дипломатичні місії та військові організації. Актори покладаються на spear-phishing, експлуатацію публічних додатків та кастомні бекдори для отримання початкового доступу та тримання довготривалої присутності. Їхній інструментарій включає стеганографію, маскування, маніпуляцію з реєстром та зашифровані C2 канали, вбудовані в HTTP заголовки або DNS трафік. Кампанія продовжує еволюціонувати з новими інструментами, такими як Graphican та мережа реле ORB3.
Розслідування
Розслідування відобразило декілька сімей зловмисного програмного забезпечення (BS2005, TidePool, MirageFox, Graphican, тощо) та всеосяжний набір технік ATT&CK, що охоплюють початковий доступ, виконання, стійкість, ескалацію привілеїв, ухилення від захисту, доступ до облікових даних, виявлення, збирання, ексфільтрацію та командно-контрольні операції. Аналітики вивели конкретні індикатори, включаючи домени, шляхи до файлів, ключі реєстру та командні лінії з даних випадку. Інфраструктура групи використовує домени, такі як goback.stranged.net and finance.globaleducat.com для C2 операцій.
Мітигація
Рекомандовані заходи захисту включають ретельне сканування прикріплень електронних листів, своєчасне патчення Microsoft Exchange, SharePoint та VPN пристроїв, та моніторинг підозрілих змін у реєстрі, ненормальних запланованих завдань і виконання навантажень на базі rundll32 або COM. Моніторинг мережі повинен зосереджуватися на нетиповій активності HTTP cookie та DNS TXT запитах, узгоджених з відомими C2 шаблонами. Білий список додатків і поведінковий аналіз можуть допомогти блокувати використання переназваних архіваторів і навантажень на базі стеганографії PNG.
Реакція
Коли активність APT15 виявлена, ізолюйте уражений хост, захопіть нестабільні дані та всі пов’язані артефакти IOC, і блокуйте визначені C2 домени та IP-адреси. Проведіть повний судовий аналіз для визначення постійних ярликів, запланованих завдань та змін у реєстрі, потім знищіть шкідливі компоненти і перевстановіть будь-які скомпрометовані облікові дані. Повідомте постраждалих користувачів і оновіть правила виявлення, щоб покрити спостережувані командні лінії, шляхи до файлів та індикатори інфраструктури.
“graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[“<b>Техніка</b> – <b>T1566.001 Spearphishing Attachment</b><br /><b>Опис</b>: Надсилання цільових листів із зловмисними вкладеннями для отримання початкового доступу.”] class node_initial technique node_valid[“<b>Техніка</b> – <b>T1078 Valid Accounts</b><br /><b>Опис</b>: Використання скомпрометованих легітимних облікових даних для доступу до систем.”] class node_valid technique node_exploit[“<b>Техніка</b> – <b>T1190 Exploit Public-Facing Application</b><br /><b>Опис</b>: Експлуатація уразливостей в Інтернет-сервісах для отримання доступу.”] class node_exploit technique node_cmd[“<b>Техніка</b> – <b>T1059.003 Windows Command Shell</b><br /><b>Опис</b>: Виконання команд через cmd.exe для запуску зловмисного коду.”] class node_cmd technique node_shortcut[“<b>Техніка</b> – <b>T1547.009 Shortcut Modification</b><br /><b>Опис</b>: Створення або модифікація ярликів LNK для збереження присутності.”] class node_shortcut technique node_task[“<b>Техніка</b> – <b>T1053 Scheduled Task</b><br /><b>Опис</b>: Використання запланованих завдань для виконання завантажень у визначений час.”] class node_task technique node_active[“<b>Техніка</b> – <b>T1547.014 Active Setup</b><br /><b>Опис</b>: Використання реєстрових ключів Active Setup для збереження присутності.”] class node_active technique node_token[“<b>Техніка</b> – <b>T1134.003 Access Token Manipulation</b><br /><b>Опис</b>: Отримання вищих прав шляхом модифікації токенів доступу.”] class node_token technique node_steg[“<b>Техніка</b> – <b>T1027.003 Steganography</b><br /><b>Опис</b>: Приховування даних у інших файлах для уникнення виявлення.”] class node_steg technique node_masq[“<b>Техніка</b> – <b>T1036 Masquerading</b><br /><b>Опис</b>: Перейменування файлів або маскування під легітимні для уникнення виявлення.”] class node_masq technique node_icon[“<b>Техніка</b> – <b>T1027.012 LNK Icon Smuggling</b><br /><b>Опис</b>: Вбудовування зловмисного коду в ресурси значків LNK.”] class node_icon technique node_proxy[“<b>Техніка</b> – <b>T1218 System Binary Proxy Execution</b><br /><b>Опис</b>: Використання довірених системних бінарників для запуску зловмисного коду.”] class node_proxy technique node_guard[“<b>Техніка</b> – <b>T1480.001 Execution Guardrails</b><br /><b>Опис</b>: Перевірка умов середовища перед виконанням.”] class node_guard technique node_sandbox[“<b>Техніка</b> – <b>T1497 Sandbox Evasion</b><br /><b>Опис</b>: Виявлення та уникнення середовищ аналізу (пісочниць).”] class node_sandbox technique node_keylog[“<b>Техніка</b> – <b>T1056.001 Keylogging</b><br /><b>Опис</b>: Захоплення натискань клавіш для отримання облікових даних.”] class node_keylog technique node_dump[“<b>Техніка</b> – <b>T1003 OS Credential Dumping</b><br /><b>Опис</b>: Витяг хешів паролів з операційної системи.”] class node_dump technique node_sysinfo[“<b>Техніка</b> – <b>T1082 System Information Discovery</b><br /><b>Опис</b>: Збір даних про ОС, апаратне та програмне забезпечення.”] class node_sysinfo technique node_inet[“<b>Техніка</b> – <b>T1016.001 Internet Connection Discovery</b><br /><b>Опис</b>: Визначення активних мережевих підключень і IP-адрес.”] class node_inet technique node_stage[“<b>Техніка</b> – <b>T1074.001 Data Staged</b><br /><b>Опис</b>: Накопичення даних локально перед ексфільтрацією.”] class node_stage technique node_archive[“<b>Техніка</b> – <b>T1560.001 Archive via Utility</b><br /><b>Опис</b>: Стиснення даних за допомогою утиліт, таких як zip.”] class node_archive technique node_email[“<b>Техніка</b> – <b>T1114.002 Remote Email Collection</b><br /><b>Опис</b>: Доступ до електронних скриньок для збирання повідомлень.”] class node_email technique node_http[“<b>Техніка</b> – <b>T1071.001 Web Protocols HTTP</b><br /><b>Опис</b>: Використання HTTP для командно-контрольних комунікацій.”] class node_http technique node_obfusc[“<b>Техніка</b> – <b>T1001 Data Obfuscation</b><br /><b>Опис</b>: Кодування або шифрування даних для приховування їх вмісту.”] class node_obfusc technique node_dead[“<b>Техніка</b> – <b>T1102.001 Dead Drop Resolver</b><br /><b>Опис</b>: Отримання команд або даних з прихованих місць.”] class node_dead technique node_encrypt[“<b>Техніка</b> – <b>T1573.001 Encrypted Channel</b><br /><b>Опис</b>: Шифрування трафіку C2 для приховування комунікацій.”] class node_encrypt technique node_exfil[“<b>Техніка</b> – <b>T1048.003 Exfiltration Over Unencrypted Non C2 Protocol</b><br /><b>Опис</b>: Передача даних за допомогою протоколів, не пов’язаних з C2, без шифрування.”] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil “
Потік Атаки
Виявлення
Виконання Програм Архівації через Командний та Скриптовий Інтерпретатор (через process_creation)
Перегляд
Підозрілі Рядки Powershell (через powershell)
Перегляд
Підозрілі Рядки Powershell (через cmdline)
Перегляд
Підозрілі Бінарні / Скрипти в Розташуваннях Автозапуску (через file_event)
Перегляд
Можливе Виконання XCOPY для Збирання Документів (через cmdline)
Перегляд
Підозрілі Додані Розширення Файлів до Ключів Реєстру [ASEPs] (через registry_event)
Перегляд
Індикації Компромісу (Emails) для виявлення: APT15 Кібершпигунство: Аналіз Кампаній та TTPs
Перегляд
Виявлення APT15 Виконання Команд та Технік Постійності [Створення Процесу Windows]
Перегляд
Виявити APT15 C2 комунікацію через Специфічні HTTP Заголовки [Мережеве З’єднання Windows]
Перегляд
Виконання Симуляції
Передумова: Перевірка Телеметрії та Базової Лінії має бути пройдена.
Опис атаки та команди:
- Підготовка: Зловмисник вже скомпрометував обліковий запис користувача і потрапив на кінцеву точку.
- Етап Збирання Даних (T1059.003): Використовуючи точний
xcopyсинтаксис, спостережений у історичній активності APT15, атакуючий копіює файли робочого столу жертви у приховану тимчасову папку WMI, зберігаючи позначки часу (/D:09-29-2021) щоб зливатися з легітимною системною активністю. - Виконання Навантаження (T1218.002): Атакуючий потім викликає
rundll32.exeз коротким шляхом (C:DOCUME~1ALLUSE~1IEHelpermshtml.dll) щоб виконати шкідливий JavaScript, який встановлює стійкість. - Результат: Обидві команди генерують виразні події створення процесу, що відповідають правилу Sigma
selection1andselection2відповідно, викликаючи оповіщення.
Скрипт регресійного тесту:
# -------------------------------------------------
# Сценарій Симуляції APT15 — викликає правило Sigma
# -------------------------------------------------
# 1. Створити директорії для збирання та фіктивні файли
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "sensitive data" -Encoding UTF8
# 2. Виконуйте точну команду xcopy, використану APT15
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd
# 3. Розгорніть зловмисний DLL (симульоване шляхом копіювання законного DLL)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force
# 4. Виконати rundll32 з точним шаблоном аргументів APT15
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd
# -------------------------------------------------
# Кінець симуляції
# -------------------------------------------------
Команди для очищення:
# Видалити файли і директорії збирання
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue
# Видалити фальшиву папку IEHelper та DLL
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue
# Опціонально: зупинити Sysmon (якщо потрібен лише для тесту)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u