Senitnel One informuje, że 23 lutego otrzymał informację od zaprzyjaźnionych badaczy cyberzagrożeń z firmy Symantec i ESET, którzy zamieścili na Twitterze hasze związane z atakiem na Ukrainę.
Sentinel One przanalizował nowe złośliwe oprogramowanie, nazywając je „HermeticWiper” w odniesieniu do certyfikatu cyfrowego użytego do podpisania próbki. Certyfikat cyfrowy jest wydany pod nazwą firmy „Hermetica Digital Ltd” i jest ważny od kwietnia 2021 r. Obecnie nie widziano żadnych legalnych plików podpisanych tym certyfikatem. Możliwe, że osoby atakujące wykorzystały firmę, jako przykrywkę lub przywłaszczyły sobie nieistniejącą już firmę, aby wystawić certyfikat cyfrowy.
Podpis cyfrowy HermeticWiper. Źródło Sentinel One
Jest to wczesna analizy pierwszej dostępnej próbki HermeticWiper. Sentiel One zdaje sobie sprawę, że sytuacja na Ukrainie bardzo szybko ewoluuje i ma nadzieję, że poprzez swoje zaangażowanie wniesie swój niewielki wkład w wysiłek wspólnej analizy nowych cyberzagrożeń.
Analiza techniczna
Na pierwszy rzut oka HermeticWiper wydaje się być napisaną na zamówienie aplikacją z bardzo niewielką liczbą standardowych funkcji. Próbka szkodliwego oprogramowania ma rozmiar 114 KB, z czego około 70% składa się z zasobów. Deweloperzy wykorzystują wypróbowaną i przetestowaną technikę złośliwego oprogramowania Wiper malware (jest to klasa złośliwego oprogramowania, którego celem jest wyczyszczenie dysku twardego zainfekowanego komputera), nadużywając sterownika zarządzania partycjami, w celu przeprowadzenia bardziej szkodliwych elementów swoich ataków. Zarówno Lazarus Group ( Destover ) jak i APT33 ( Shamoon ) wykorzystały Eldos Rawdisk w celu uzyskania bezpośredniego dostępu do systemu plików bez wywoływania Windows API. HermeticWiper wykorzystuje podobną technikę, nadużywając innego sterownika, empntdrv.sys.
Zasoby HermeticWiper zawierające sterowniki EaseUS Partition Manager. Źródło Sentinel One
Kopie sterownika są zasobami skompresowanymi w ms. Szkodnik wdraża jeden z nich w zależności od wersji systemu operacyjnego i przekierowania SysWow64.
Wybór zasobów sterownika EaseUS. Źródło Sentinel One
Sterownik EaseUS jest nadużywany do udziału w poważniejszych zadaniach, uzyskuje on bowiem bezpośredni dostęp do dysków fizycznych, a także wszelkich informacji o partycjach. Zwiększa to trudność analizy HermeticWiper, ponieważ wiele funkcji jest odłożonych na DeviceIoControl i wywołania określonych IOCTL.
MBR i korupcja partycji
HermeticWiper wielokrotnie wylicza szereg i zakres dysków fizycznych, od 0 do 100. Dla każdego dysku fizycznego \\.\EPMNTDRV\urządzenie jest wywoływane w celu uzyskania numeru urządzenia.
Następnie złośliwe oprogramowanie koncentruje się na uszkodzeniu pierwszych 512 bajtów, głównego rekordu rozruchowego (MBR) dla każdego dysku fizycznego. Chociaż powinno to wystarczyć, aby urządzenie nie uruchomiło się ponownie, HermeticWiper przystępuje do wyliczenia partycji dla wszystkich możliwych dysków.
Następnie rozróżnia partycje FAT i NTFS. W przypadku partycji FAT, złośliwe oprogramowanie wywołuje tego samego „bit fiddler”, aby uszkodzić partycję. W przypadku NTFS HermeticWiper analizuje główną tabelę plików przed ponownym wywołaniem tej samej funkcji manipulacyjnej.
Parsowanie MFT i wywołania manipulacji bitami Źródło SentinelOne. Źródło Sentinel One
Sentinel One zauważa wywołania interfejsów API systemu Windows w celu pozyskania dostawcy kontekstu kryptograficznego i wygenerowania losowych bajtów. Jest wysoce prawdopodobne, że jest to używane do wbudowanej implementacji krypto i nadpisywania bajtów, ale w tej chwili mechanizm nie jest całkowicie jasny. Dalsza funkcjonalność dotyczy interesujących pól MFT ( $bitmap, $logfile) i strumieni NTFS ( $DATA, $I30, $INDEX_ALLOCATION). Atakujący wylicza również popularne foldery („Moje dokumenty”, „Pulpit”, „AppData”), odwołuje się do rejestru („ntuser”) i dzienników zdarzeń systemu Windows ( „\\\\?\\C:\\Windows\\System32\\winevt\\Logs”). Analiza Sentinel One jest ciągle w toku, chcą bowiem ustalić, w jaki sposób funkcja ta jest wykorzystywana, wiadome jest, że po uszkodzeniu MBR i partycji dla wszystkich dysków, system ofiary nie będzie już działać. W trakcie analizy Sentinel One pozyskuje kolejne informacje o wykonywanych operacjach przez HermeticWiper, są to kolejne IOC do monitorowania. Obejmują one chwilowe utworzenie nadużywanego sterownika oraz usługę systemową. Modyfikowane są również klucze rejestru, w tym: SYSTEM\CurrentControlSet\Control\CrashControl CrashDumpEnabled zmiana klucza na 0 , skutecznie wyłącza systemowe zrzuty awaryjne, przed rozpoczęciem procesu użycia sterownika.
Wyłączanie CrashDumps za pośrednictwem rejestru. Źródło Sentinel One
Złośliwe oprogramowanie czeka na uśpione wątki, zanim zainicjuje zamknięcie systemu, finalizując niszczycielski efekt złośliwego oprogramowania.
Wnioski
Po tygodniu zafałszowań i nasilających się ataków DDoS, rozprzestrzenianie się operacji sabotażowych za pomocą złośliwego oprogramowania wiper malware jest godną pożałowania eskalacją. W obecnej chwili Sentinel One ma bardzo ograniczony dostęp do ataków na Ukrainie, to implikuje również w rozprzestrzenianie się złośliwego oprogramowania na sąsiednie kraje i sojuszników. Jeśli w tak trudnej sytuacji jest otwarta współpraca między zespołami badawczymi ds. cyberzagrożeń, niezależnymi badaczami i dziennikarzami, którzy chcą wyjaśniać sprawy. Sentinel One kieruje swoje podziękowania między innymi badaczom z firmy Symantec, ESET, Stairwell i RedCanary, którzy dostarczyli próbki złośliwego oprogramowania, poświęcili swój cenny czas i wiedzę.
Ochrona klientów SentinelOne
Wskaźniki kompromisu
HermeticWiper | SHA1 |
Win32 EXE | 912342f1c840a42f6b74132f8a7c4ffe7d40fb77 |
Win32 EXE | 61b25d11392172e587d8da3045812a66c3385451 |
ms-compressed | SHA1 |
RCDATA_DRV_X64 | a952e288a1ead66490b3275a807f52e5 |
RCDATA_DRV_X86 | 231b3385ac17e41c5bb1b1fcb59599c4 |
RCDATA_DRV_XP_X64 | 095a1678021b034903c85dd5acb447ad |
RCDATA_DRV_XP_X86 | eb845b7a16ed82bd248e395d9852f467 |
rule MAL_HERMETIC_WIPER {
meta:
desc = „HermeticWiper – broad hunting rule”
author = „Friends @ SentinelLabs”
version = „1.0”
last_modified = „02.23.2022”
hash = „1bc44eef75779e3ca1eefb8ff5a64807dbc942b1e4a2672d77b9f6928d292591”
strings:
$string1 = „DRV_XP_X64” wide ascii nocase
$string2 = „EPMNTDRV\\%u” wide ascii nocase
$string3 = „PhysicalDrive%u” wide ascii nocase
$cert1 = „Hermetica Digital Ltd” wide ascii nocase
condition:
uint16(0) == 0x5A4D and
all of them
}