UNC7017 Atakuje AOMEI Technology w Ataku na Łańcuch Dostaw Oprogramowania
Detection stack
- AIDR
- Alert
- ETL
- Query
Podsumowanie
UNC7017 przeprowadził zaawansowaną kampanię ataków na łańcuch dostaw oprogramowania, skierowaną przeciwko infrastrukturze aktualizacyjnej firmy AOMEI Technology. Atakujący używali krótkich okien czasowych manipulacji konfiguracją, aby przekierować żądania aktualizacji na złośliwe serwery, co pomagało uniknąć tradycyjnego skanowania w określonych punktach czasowych. Kampania dostarczyła wieloetapowy łańcuch ładunków zawierający ściągarkę CROSSROAD i tylne drzwi SHINYROAD.
Śledztwo
Śledztwo było prowadzone wspólnie przez Mandiant Google Threat Intelligence Group (GTIG) i ManageEngine Threat Analysis Lab (METAL). Badacze wykryli kampanię za pomocą telemetrii EDR i potwierdzili, że przeciwnik polegał na efemerycznych oknach manipulacji trwających tylko od pięciu do dziesięciu minut. Analiza wykazała również zmianę infrastruktury z dostawców chmurowych na dedykowane domeny tematyczne i legalne magazyny chmurowe.
Zapobieganie
Dostawcy powinni egzekwować weryfikację kryptograficznych podpisów końcowych dla wszystkich pobieranych plików wykonywalnych i plików konfiguracyjnych. Organizacje powinny wdrożyć ścisłe przypinanie docelowych adresów dla klientów aktualizacji, aby zapobiec przekierowaniom na nieautoryzowane domeny. Ograniczanie schematów URI w obsługiwanych aplikacjach może również pomóc w zapobieganiu atakom wymuszenia uwierzytelniania NTLM opartych na WebDAV.
Odpowiedź
Zespoły bezpieczeństwa powinny przeprowadzać retrospektywne łowy na wyciągach i w sieci, obejmujące okres od kwietnia do lipca 2026 roku. Należy priorytetowo monitorować niezauważone procesy potomne uruchamiane przez legalne aplikacje do aktualizacji oraz ślady nieautoryzowanego przekierowywania sieci. Analitycy powinni sprawdzać lokalnie buforowane pliki konfiguracyjne zamiast polegać wyłącznie na bieżących sprawdzaniach adresów URL hostowanych przez dostawców.
Przepływ Ataku
Wciąż aktualizujemy tę część.
Detekcje
Podejrzane Zadanie Planowane (poprzez audyt)
Możliwy Proces Wykonywania Powershell w Podejrzanym Katalogu (poprzez wiersz poleceń)
Alternatywne Oprogramowanie do Zdalnego Dostępu/Zarządzania (poprzez tworzenie procesu)
Możliwe Próbki Komunikacji Domeny Lookup IP (poprzez dns)
IOC (HashSha256) do wykrycia: Badanie Efemerycznej Manipulacji Łańcuchem Dostaw
IOC (SourceIP) do wykrycia: Badanie Efemerycznej Manipulacji Łańcuchem Dostaw
IOC (DestinationIP) do wykrycia: Badanie Efemerycznej Manipulacji Łańcuchem Dostaw
Wykrycie Złośliwego Przekierowania Aktualizacji Oprogramowania AOMEI [Proxy]
Wykrycie Aktywności Złośliwego Oprogramowania CROSSROAD i SHINYROAD [Windows Sysmon]
Wykrycie Złośliwego Pliku DLL i Tymczasowej Usługi dla Kampanii SHINYROAD [Windows File Event]
Przeprowadzenie Symulacji
-
Narracja Ataku i Komendy: Atakujący zdołał wdrożyć ściągarkę CROSSROAD na stacji roboczej poprzez kompromitację łańcucha dostaw (T1195.002). Aby zapobiec interferencji wielu instancji tylnego wejścia lub powodowaniu niestabilności systemu, złośliwe oprogramowanie próbuje stworzyć konkretny Mutex. Celem atakującego jest ustalenie trwałego tylnego wejścia (T1547) dla długoterminowej kontroli i eksfiltrowania danych. Symulacja uruchomi skrypt PowerShell, który imituje to zachowanie poprzez stworzenie dokładnie takich globalnych i lokalnych nazw mutex jak zidentyfikowane w regule detekcji.
-
Skrypt Testu Regresji:
# Skrypt Symulacji Mutex CROSSROAD/SHINYROAD # Ten skrypt symuluje tworzenie specyficznych mutexów celowanych przez regułę detekcji. Write-Host "[*] Rozpoczynanie Symulacji Mutex..." -ForegroundColor Cyan # 1. Symulacja Globalnego Mutex (CROSSROAD) try { $globalMutexName = "GlobalF9E6E3C0-E11A-4F85-9944-AF4AD6E05883" Write-Host "[!] Próba utworzenia Globalnego Mutex: $globalMutexName" -ForegroundColor Yellow $globalMutex = New-Object System.Threading.Mutex($true, $globalMutexName) Write-Host "[+] Globalny Mutex utworzony pomyślnie." -ForegroundColor Green } catch { Write-Error "[X] Nie udało się utworzyć Globalnego Mutex: $($_.Exception.Message)" } # 2. Symulacja Lokalnego Mutex (SHINYROAD) try { $localMutexName = "Local963d3c60-d406-4ad6-aa1e-dc8e45061ccf" Write-Host "[!] Próba utworzenia Lokalnego Mutex: $localMutexName" -ForegroundColor Yellow $localMutex = New-Object System.Threading.Mutex($true, $localMutexName) Write-Host "[+] Lokalny Mutex utworzony pomyślnie." -ForegroundColor Green } catch { Write-Error "[X] Nie udało się utworzyć Lokalnego Mutex: $($_.Exception.Message)" } Write-Host "[*] Mutexy są utrzymywane przez 30 sekund w celu zapewnienia uchwycenia telemetrii..." -ForegroundColor Cyan Start-Sleep -Seconds 30 # Czyszczenie (Ręczne zwolnienie jest obsługiwane przez zakończenie skryptu, ale explicite jest lepsze) if ($globalMutex) { $globalMutex.ReleaseMutex() } if ($localMutex) { $localMutex.ReleaseMutex() } Write-Host "[*] Symulacja Zakończona." -ForegroundColor Cyan -
Komendy Czyszczenia:
# W przypadku przerwania skryptu, uruchom to, aby zwolnić mutexy # Uwaga: W PowerShell, jeżeli proces zakończy się, system operacyjny zazwyczaj usuwa mutex. # To jest środek bezpieczeństwa dla prowadzącego symulację. Write-Host "[*] Uruchamianie Czyszczenia..." # Nie są potrzebne żadne konkretne komendy, jeśli proces się kończy, ale upewniamy się, że nie będzie wisiejących uchwytów.