UNC7017 націлюється на AOMEI Technology в атаці на ланцюг постачання програмного забезпечення
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
UNC7017 здійснив складну кампанію програмної компрометації ланцюга постачання, націлену на інфраструктуру оновлення AOMEI Technology. Зловмисник використовував короткі вікна конфігураційного втручання для переадресації запитів на оновлення до шкідливих серверів, що допомогло уникнути традиційного сканування в певний момент часу. Кампанія постачала багатоступеневий ланцюг корисного навантаження, що включав завантажувач CROSSROAD і бекдор SHINYROAD.
Розслідування
Розслідування було проведено спільно групою Mandiant Google Threat Intelligence Group (GTIG) та ManageEngine Threat Analysis Lab (METAL). Дослідники виявили кампанію через телеметрію EDR та підтвердили, що супротивник покладався на епізодичні вікна втручання тривалістю лише від п’яти до десяти хвилин. Аналіз також показав зміну інфраструктури з хмарних постачальників на спеціалізовані домени під тему постачальника та використання легітимного хмарного сховища.
Пом’якшення
Постачальники повинні забезпечити перевірку криптографічного підпису для всіх завантажених виконуваних файлів і конфігураційних файлів. Організації повинні впровадити строгий напрямок з’єднання для клієнтів оновлень, щоб запобігти переадресації на несанкціоновані домени. Обмеження схем URI в межах внутрішньопрограмних обробників також може допомогти запобігти атакам вимагання облікових даних NTLM на основі WebDAV.
Відповідь
Команди безпеки повинні провести ретроспективні пошуки кінцевих точок та мережі за період з квітня по липень 2026 року. Пріоритетне моніторинг проводити для непідписаних дочірніх процесів, запущених легітимними програмами оновлення, та ознак несанкціонованої мережевої переадресації. Аналітики повинні перевіряти локально кешовані конфігураційні файли кінцевих точок, а не покладатися тільки на живі перевірки URL-адрес, розміщених постачальником.
Потік атаки
Ми все ще оновлюємо цю частину.
Виявлення
Підозріле заплановане завдання (через аудит)
Можливий процес виконання Powershell у підозрілому каталозі (через командний рядок)
Альтернативне програмне забезпечення для віддаленого доступу/управління (через створення процесу)
Спроба комунікації з доменами для пошуку IP-адреси (через DNS)
IOC (HashSha256) для виявлення: Розслідування тимчасового втручання в ланцюг постачання
IOC (SourceIP) для виявлення: Розслідування тимчасового втручання в ланцюг постачання
IOC (DestinationIP) для виявлення: Розслідування тимчасового втручання в ланцюг постачання
Виявлення шкідливих переадресацій оновлень програмного забезпечення AOMEI [Проксі]
Виявлення активності шкідливого програмного забезпечення CROSSROAD та SHINYROAD [Windows Sysmon]
Виявлення шкідливих DLL та тимчасового сервісу для кампанії SHINYROAD [Windows File Event]
Виконання симуляції
-
Опис атаки та команди: Супротивник успішно розгорнув завантажувач CROSSROAD на робочій станції через компрометацію ланцюга постачання (T1195.002). Щоб запобігти множинним інстанціям бекдору від взаємного втручання або спричинення нестабільності системи, шкідливе програмне забезпечення намагається створити певний Mutex. Мета зловмисника – встановити стійкий бекдор (T1547) для довготривалого командного й контрольного управління (C2) та витоку даних. Симуляція виконуватиме скрипт PowerShell, що імітує цю поведінку, створюючи точні глобальні та локальні рядки м’ютексів, ідентифіковані в правилі виявлення.
-
Сценарій регресійного тестування:
# Скрипт симуляції Mutex для CROSSROAD/SHINYROAD # Цей скрипт імітує створення певних м'ютексів, націлених правилом виявлення. Write-Host "[*] Запуск симуляції м'ютексів..." -ForegroundColor Cyan # 1. Імітація глобального м'ютексу (CROSSROAD) try { $globalMutexName = "GlobalF9E6E3C0-E11A-4F85-9944-AF4AD6E05883" Write-Host "[!] Спроба створити глобальний м'ютекс: $globalMutexName" -ForegroundColor Yellow $globalMutex = New-Object System.Threading.Mutex($true, $globalMutexName) Write-Host "[+] Глобальний м'ютекс успішно створено." -ForegroundColor Green } catch { Write-Error "[X] Не вдалося створити глобальний м'ютекс: $($_.Exception.Message)" } # 2. Імітація локального м'ютексу (SHINYROAD) try { $localMutexName = "Local963d3c60-d406-4ad6-aa1e-dc8e45061ccf" Write-Host "[!] Спроба створити локальний м'ютекс: $localMutexName" -ForegroundColor Yellow $localMutex = New-Object System.Threading.Mutex($true, $localMutexName) Write-Host "[+] Локальний м'ютекс успішно створено." -ForegroundColor Green } catch { Write-Error "[X] Не вдалося створити локальний м'ютекс: $($_.Exception.Message)" } Write-Host "[*] М'ютекси зберігаються протягом 30 секунд для забезпечення захоплення телеметрії..." -ForegroundColor Cyan Start-Sleep -Seconds 30 # Очищення (ручне звільнення обробляється при виході з скрипту, але кращим є явне) if ($globalMutex) { $globalMutex.ReleaseMutex() } if ($localMutex) { $localMutex.ReleaseMutex() } Write-Host "[*] Симуляція завершена." -ForegroundColor Cyan -
Команди очищення:
# У випадку переривання скрипту, запустіть це для звільнення м'ютексів # Примітка: У PowerShell, якщо процес завершується, ОС зазвичай очищає м'ютекси. # Це запобіжний захід для запуску симуляції. Write-Host "[*] Запуск очищення..." # Немає потреби у спеціальній команді, якщо процес завершується, але ми забезпечуємо відсутність зависання ручок.