Cyberkonflikt Na Ukrainie - Hermetic Wiper, Isaac - Security Bez Tabu

Cyberkonflikt Na Ukrainie – Hermetic Wiper, Isaac

Preludium

Ukraina jeszcze zanim została objęta “specjalną operacją wojskową” odczuła kolejne ataki cybernetyczne, które według jej rządu są „na zupełnie innym poziomie”. W tym samym czasie wykryto nowy atak typu „wiper”, który niszczy dane na zainfekowanych maszynach, wykorzystywany przeciwko organizacjom ukraińskim. 

Zanim 24 lutego na teren Ukrainy zdołały wjechać pierwsze rosyjskie czołgi, wojna wybuchła w cyberprzestrzeni. Atak miał być dyskretny, ale tak intensywny, aby Ukraina z miejsca straciła płynność finansową, a blokada rządowych stron doprowadziła do chaosu. Zależało im na powtórce z  2014 r., gdy przy aneksji Krymu cyberwojskom Putina udało się sparaliżować nie tylko ukraińskie sieci telekomunikacyjne, ale także system dowodzenia i kierowania obroną państwa. 

Okazuje się, że cyberkonflikt ma podłoże globalne a sam atak na Ukrainę rozegrał się nie tyle w samej Ukrainie, ile w zupełnie innych miejscach. Na drugim końcu świata w Seattle, siedzibie Microsoftu, oraz kilkaset kilometrów na zachód od Ukrainy, w siedzibie technologicznej słowackiej firmy ESET wyspecjalizowanej w walce ze złośliwym oprogramowaniem. 

Eksperci w obydwu miejscach wykryli złośliwe oprogramowanie typu wiper, które wymierzono w instytucje finansowe Ukrainy i w jej ministerstwa. Wiper to rodzaj malware, który po prostu niszczy całe serwery i znajdujące się na nich dane. Aby zatrzeć ślady, atakujący wykorzystali certyfikat cyfrowy należący do małej cypryjskiej firmy produkującej gry o nazwie Hermetica Digital Ltd. 

Eksperci Microsoftu nie tylko zidentyfikowali zagrożenie i zablokowali je, ale po doświadczeniach ze styczniowego cyberataku na Ukrainę z miejsca zawiadomili amerykańskie służby. Te zaś zaalarmowały sojuszników w Polsce i krajach bałtyckich, ale i tak część oprogramowania „HermeticWiper” zdążyła rozprzestrzenić się choćby na Litwę i Łotwę. 

Konflikt fizyczny i w cyberprzestrzeni

To pierwsza wojna w historii, w trakcie której ataki cybernetyczne są na równi z tymi w terenie. Jest to pierwsza wojna, w której nie ma co liczyć na to, że cyfrowe działania ustąpią równocześnie z konfliktem zbrojnym  

Postępująca wojna na Ukrainie,powoduje, że sytuacja w cyberprzestrzeni zaczyna się zaogniać. Na front wkraczają kolejne grupy hakerskie stojące często po dwóch stronach konfliktu. Z  jednej strony są Anonymous, po drugiej rosyjska grupa #Conti. Ukraina poprosiła o wsparcie w walce także na cyfrowym froncie, ze względu na brak możliwości walki w tym obszarze. 

Działania zabezpieczające podjęły też kraje wschodniej flanki NATO. „W odpowiedzi na prośbę Ukrainy Litwa, Holandia, Polska, Estonia, Rumunia i Chorwacja aktywują cybernetyczne siły szybkiego reagowania, aby pomóc władzom (Ukrainy) w reagowaniu na wyzwania związane z cyberbezpieczeństwem” – napisał na Twitterze 6. dnia rosyjskiej inwazji litewski wiceminister obrony, Margiris Abukevicius. 

Eksperci ds. bezpieczeństwa cybernetycznego z firm ESET i Symantec poinformowali, że zarejestrowali drugą formę ataku na systemy komputerowe przy użyciu wyrafinowanego złośliwego oprogramowania typu „wiper”.  

Badacze ESET odkryli kilka rodzin złośliwego oprogramowania atakujących organizacje ukraińskie. 23 lutego 2022 r. destrukcyjna kampania przy użyciu HermeticWiper skierowana była przeciwko wielu ukraińskim organizacjom.

Początkowe wektory dostępu różniły się w zależności od organizacji. Potwierdzono jeden przypadek usunięcia Wipera przez GPO i odkryto robaka używanego do rozprzestrzeniania Wipera w innej zaatakowanej sieci. 24 lutego 2022 r. rozpoczął się drugi destrukcyjny atak na ukraińską sieć rządową przy użyciu wipera o nazwie IsaacWiper.

Firma ESET Research nie była jeszcze w stanie przypisać tych ataków znanemu podmiotowi zagrażającemu. Telemetria ESET wskazała że złośliwe oprogramowanie zostało zainstalowane na ogromnej ilości urządzeń w całej Ukrainie. Zespół twierdzi, że w przypadku HermeticWipera  znacznik czasu powstania wskazywał na 28 grudnia 2021 r., co oznacza, że atak mógł być planowany od tego czasu. ESET Research ustalił, że wiele organizacji na Ukrainie zostało dotkniętych cyberatakiem, który obejmował nowe złośliwe oprogramowanie do usuwania danych o nazwie HermeticWiper i wpłynął na setki komputerów w ich sieciach. Atak nastąpił zaledwie kilka godzin po tym, jak seria ataków typu DDoS spowodowała wyłączenie kilku ważnych witryn w kraju. Wykryty przez produkty firmy ESET jako Win32/KillDisk.NCV narzędzie do usuwania danych zostało po raz pierwszy zauważone tuż przed godziną 17:00. czasu lokalnego (15:00 UTC).

Tymczasem sygnatura czasowa wipera wskazuje, że została ona skompilowana 28 grudnia 2021 r., co sugeruje, że atak mógł trwać od jakiegoś czasu lub był zaplanowany dużo wcześniej. HermeticWiper nadużywał legalnych sterowników popularnego oprogramowania do zarządzania dyskami. Według badaczy ESET „Wiper wykorzystuje legalne sterowniki z oprogramowania EaseUS Partition Master w celu uszkodzenia danych”. Ponadto osoby atakujące wykorzystały autentyczny certyfikat do podpisywania kodu, wydany cypryjskiej firmie Hermetica Digital Ltd., stąd nazwa wipera. Wydaje się również, że przynajmniej w jednym przypadku cyberprzestępcy mieli dostęp do sieci ofiary przed uwolnieniem szkodliwego oprogramowania. Wcześniej w  kilka ukraińskich stron internetowych zostało wyłączonych z nowej fali ataków DDoS, które są wymierzone w ten kraj od tygodni.  

Te destrukcyjne ataki wykorzystywały co najmniej trzy elementy:

HermeticWiper: uniemożliwia działanie systemu, uszkadzając jego dane

HermeticWizard: rozpowszechnia HermeticWiper w sieci lokalnej za pośrednictwem WMI i SMB

HermeticRansom: oprogramowanie ransomware napisane w języku Go 

HermeticWiper został zaobserwowany na setkach systemów w co najmniej pięciu ukraińskich organizacjach. 24 lutego 2022 wykryto kolejnego, nowego wipera w ukraińskiej sieci rządowej. Został nazwany  IsaacWiper i obecnie nadal oceniane są jego powiązania, jeśli takie istnieją, z atakami HermeticWiper. Należy zauważyć, że IsaacWiper był widoczny w organizacji, która nie została dotknięta przez HermeticWiper.  

Na tą chwilę nie znaleziono żadnego namacalnego związku z wcześniej znanymi podmiotami odpowiedzialnymi za złośliwe oprogramowanie. HermeticWiper, HermeticWizard i HermeticRansom nie wykazują żadnego znaczącego podobieństwa kodu z innymi próbkami z kolekcji złośliwego oprogramowania ESET. IsaacWiper również.. Oś czasu HermeticWiper i HermeticWizard są podpisane certyfikatem do podpisywania kodu \ przypisanym do Hermetica Digital Ltd wystawionym 13 kwietnia 2021 r. DigiCert unieważnił ten certyfikat w dniu 24 lutego 2022 r 

Jak donoszą źródła Reutersa  certyfikat ten nie został skradziony Hermetica Digital. Jest prawdopodobne, że zamiast tego atakujący podszyli się pod cypryjską firmę, aby uzyskać ten certyfikat od DigiCert. Badacze ESET oceniają i są do tego niemalże pewni, że zainfekowane organizacje zostały zaatakowane na długo przed wdrożeniem wipera. Świadczą o tym następujące rzeczy: 

  • Znacznik czasu kompilacji HermeticWiper PE to 28 grudnia 2021 r.  
  • Data wydania certyfikatu podpisywania kodów 13 kwietnia 2021 r.  
  • Wdrożenie HermeticWiper przez GPO w co najmniej jednym przypadku sugeruje, że atakujący mieli wcześniej dostęp do jednego z serwerów Active Directory ofiary 

HermeticWiper

Początkowy wektor dostępu jest obecnie nieznany, ale zaobserwowaliśmy artefakty ruchu bocznego w docelowych organizacjach. W jednej jednostce wiper został wdrożony za pomocą domyślnej polityki domeny (GPO), na co wskazuje jego ścieżka w systemie:

C:\Windows\system32\GroupPolicy\DataStore\0\sysvol\<zredagowano>\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\cc.exe 

Oznacza to, że osoby atakujące prawdopodobnie przejęły kontrolę nad serwerem Active Directory. W innych przypadkach możliwe jest, że Imppacket został użyty do wdrożenia HermeticWiper. W wpisie na blogu firmy Symantec stwierdzono, że wiper został wdrożony przy użyciu następującej sekwencji wiersza polecenia:

cmd.exe /Q /c move CSIDL_SYSTEM_DRIVE\temp\sys.tmp1 CSIDL_WINDOWS\policydefinitions\postgresql.exe 1> \\127.0.0.1\ADMIN$\__1636727589.6007507 2>&1 

Ostatnia część jest taka sama jak domyślnie w wmiexec.py Impaket, które można znaleźć w serwisie GitHub. Robak o nazwie HermeticWizard został wykorzystany do rozprzestrzeniania HermeticWiper w zaatakowanych sieciach za pośrednictwem SMB i WMI.  

IsaacWiper  

Początkowy wektor dostępu również jest obecnie nieznany. Jest prawdopodobne, że atakujący używali narzędzi takich jak Imppacket do poruszania się po zainfekowanych urządzeniach.. Na kilku maszynach zaobserwowano również RemCom, narzędzie zdalnego dostępu, wdrażane w tym samym czasie co IsaacWiper.  

Z bardziej technicznego punktu widzenia.

Hermetic Wiper 

HermeticWiper to plik wykonywalny systemu Windows z wbudowanymi czterema sterownikami w swoich zasobach. Są to legalne sterowniki z oprogramowania EaseUS Partition Master podpisanego przez CHENGDU YIWO Tech Development Co. i implementują operacje dyskowe niskiego poziomu.

Zaobserwowano następujące pliki:  

  • 0E84AFF18D42FC691CB1104018F44403C325AD21: sterownik x64  
  • 379FF9236F0F72963920232F4A0782911A6BD7F7: sterownik x86  
  • 87BD9404A68035F8D70804A5159A37D1EB0A3568: sterownik x64 XP  
  • B33DD3EE12F9E6C150C964EA21147BF6B7F7AFA9: sterownik x86 XP 

W zależności od wersji systemu operacyjnego, jeden z tych czterech sterowników jest wybierany i umieszczany w C:\Windows\System32\drivers\<4 losowe litery>.sys. Następnie jest ładowany poprzez utworzenie usługi. HermeticWiper następnie wyłącza usługę kopiowania woluminów w tle (VSS) i usuwa się z dysku, nadpisując własny plik losowymi bajtami. Ten zabieg prawdopodobnie ma na celu uniemożliwienie analizy wipera w analizie po zdarzeniu. Warto zauważyć, że większość operacji na plikach jest wykonywana na niskim poziomie przy użyciu wywołań DeviceIoControl. Następujące lokalizacje są zastępowane losowymi bajtami generowanymi przez funkcję Windows API CryptGenRandom:  

  • Główny rekord rozruchowy (MBR)  
  • Główna tabela plików (MFT)  
  • $Bitmap i $LogFile na wszystkich dyskach  
  • Pliki zawierające klucze rejestru (NTUSER*)  
  • C:\Windows\System32\winevt\Dzienniki 

Ponadto rekurencyjnie czyści również foldery i pliki w folderach Windows, Program Files, Program Files (x86), PerfLogs, Boot, System Volume Information i AppData za pomocą operacji FSCTL_MOVE_FILE. Ta technika wydaje się być dość nietypowa i bardzo podobna do tej, którą zaimplementowano w projekcie Windows Wipe na GitHub (zobacz funkcję wipe_extent_by_defrag). Usuwa również dowiązania symboliczne i duże pliki w folderach Moje dokumenty i Pulpit, nadpisując je losowymi bajtami. Na koniec maszyna zostaje ponownie uruchomiona. Jednak uruchomienie się nie powiedzie, ponieważ MBR, MFT i większość plików zostały wyczyszczone.Na tą chwilę, nie jest możliwe odzyskanie uszkodzonych maszyn.  

HermeticWizard 

Wśród podpisanych tym samym certyfikatem podpisywania kodu (Hermetica Digital Ltd), znaleziono nową rodzinę złośliwego oprogramowania, którą nazwano HermeticWizard. Jest to robak, który został wdrożony w systemie na Ukrainie o 14:52:49 23 lutego 2022 UTC. Jest to plik DLL opracowany w C++, który eksportuje funkcje DllInstall, DllRegisterServer i DllUnregisterServer. Jego nazwa eksportu DLL to Wizard.dll. Zawiera trzy zasoby, którymi są zaszyfrowane pliki PE:  

  • Próbka HermeticWiper (912342F1C840A42F6B74132F8A7C4FFE7D40FB77)  
  • exec_32.dll, odpowiedzialny za rozprzestrzenianie się na inne komputery lokalne przez WMI (6B5958BFABFE7C731193ADB96880B225C8505B73)  
  • romance.dll, odpowiedzialne za rozprzestrzenianie się na inne komputery lokalne za pośrednictwem SMB (AC5B6F16FC5115F0E2327A589246BA00B41439C2)  

Zasoby są szyfrowane odwrotną pętlą XOR. Każdy blok czterech bajtów jest XOR-owany z poprzednim blokiem. Na koniec pierwszy blok jest poddawany operacji XOR z zakodowaną na sztywno wartością 0x4A29B1A3. HermeticWizard jest uruchamiany za pomocą wiersza poleceń regsvr32.exe /s /i <path>. Najpierw HermeticWizard próbuje znaleźć inne maszyny w sieci lokalnej. Gromadzi znane lokalne adresy IP za pomocą następujących funkcji systemu Windows:

DNSGetCacheDataTable 

 GetIpNetTable  

WNetOpenEnumW (RESOURCE_GLOBALNET, RESOURCETYPE_ANY)  

NetServerEnum  

GetTcpTableGetAdapterAddresses 

Następnie próbuje połączyć się z tymi adresami IP (i tylko wtedy, gdy są to lokalne adresy IP), aby sprawdzić, czy nadal są osiągalne. W przypadku podania argumentu -s podczas uruchamiania HermeticWizard (regsvr32.exe /s /i:-s <path>), skanuje również pełny zakres /24. Jeśli więc 192.168.1.5 zostanie znaleziony na przykład w pamięci podręcznej DNS, skanuje on przyrostowo od 192.168.1.1 do 192.168.1.254. Dla każdego adresu IP próbuje otworzyć połączenie TCP na następujących portach: 

  • 20: ftp  
  • 21: ftp  
  • 22: ssh 
  • 80: http  
  • 135: rpc 
  • 137: netbios  
  • 139: smb 
  • 443: https 
  • 445: smb 

Porty są skanowane w losowej kolejności, więc nie jest możliwe odtworzenie fingerprintów ruchu HermeticWizard. Po znalezieniu osiągalnej maszyny infekuje dysk  WMI spreaderem. 

Tworzy nowy proces za pomocą wiersza poleceń

rundll32 <bieżący folder>\<6 losowych liter>.ocx #1 -s <ścieżka do HermeticWizard> – <docelowy adres IP>. 

To samo robi z rozprzestrzeniaczem SMB (szczegóły poniżej), który jest również umieszczany w <bieżący folder>\<6 losowych liter>.ocx, ale z różnymi losowymi literami. Na koniec umieszcza HermeticWiper w <bieżący folder>\<6 losowych liter>.ocx i wykonuje go.

WMI Spreader 

Program rozpowszechniający WMI, nazwany przez jego twórców exec_32.dll, przyjmuje dwa argumenty: -i: docelowy adres IP -s: plik do skopiowania i wykonania na komputerze docelowym Najpierw tworzy połączenie ze zdalnym udziałem ADMIN$ celu przy użyciu WNetAddConnection2W. Plik podany w argumencie -s jest następnie kopiowany za pomocą CopyFileW. Zdalny plik ma losową nazwę wygenerowaną za pomocą CoCreateGUID (np. cB9F06408D8D2.dll) i format ciągu c%02X%02X%02X%02X%02X%02X. Po drugie, próbuje uruchomić skopiowany plik, HermeticWizard, na zdalnym komputerze za pomocą DCOM. Wywołuje CoCreateInstance z CLSID_WbemLocator jako argumentem. Następnie używa WMI Win32_Process do utworzenia nowego procesu na zdalnym komputerze za pomocą wiersza polecenia

C:\windows\system32\cmd.exe /c start C:\windows\system32\\regsvr32.exe /s /i C:\ windows\<nazwa pliku>.dll. 

Zwróć uwagę, że argument -s nie jest przekazywany do HermeticWizard, co oznacza, że ​​nie będzie on ponownie skanował sieci lokalnej z tej nowo zhakowanej maszyny. Jeśli technika WMI zawiedzie, próbuje utworzyć usługę za pomocą OpenRemoteServiceManager z tym samym poleceniem, co powyżej. Jeśli uda mu się w jakikolwiek sposób wykonać zdalną bibliotekę DLL, uśpi się, dopóki nie będzie mógł usunąć zdalnego pliku.  

SMB Spreader 

Program rozpowszechniający SMB, nazwany przez jego twórców romance.dll, przyjmuje te same dwa argumenty, co program rozpowszechniający WMI. Jego nazwa wewnętrzna jest prawdopodobnie odniesieniem do exploita EternalRomance, nawet jeśli nie wykorzystuje żadnego exploita. Najpierw próbuje połączyć się z następującymi potokami w zdalnym udziale SMB (na porcie 445): 

  • samr 
  • browser 
  • netlogon 
  • lsarpc 
  • ntsvcs 
  • svcctl 

Program rozpowszechniający ma listę zakodowanych na stałe danych uwierzytelniających, które są używane podczas prób uwierzytelnienia za pośrednictwem NTLMSSP do udziałów SMB:  

— usernames — 

  • guest 
  • test 
  • admin 
  • user 
  • root 
  • administrator 
  • manager 
  • operator 

— passwords — 

  • 123 
  • Qaz123 
  • Qwerty123 

Ta lista danych uwierzytelniających jest zaskakująco krótka i prawdopodobnie nie będzie działać nawet w najsłabiej chronionych sieciach. Jeśli połączenie się powiedzie, próbuje usunąć do docelowego udziału ADMIN$ plik, do którego odwołuje się argument -s. Jeśli chodzi o rozpowszechnianie WMI, zdalna nazwa pliku jest generowana przez wywołanie CoCreateInstance. Następnie wykonuje, za pośrednictwem SMB, wiersz poleceń

$ cmd /c start regsvr32 /s /i ..\\<nazwa pliku> i start cmd /c \"ping localhost -n 7 & wevtutil cl System\".  

HermeticRansom 

Badacze ESET zaobserwowali również HermeticRansom – oprogramowanie ransomware napisane w Go – używane na Ukrainie w tym samym czasie, co kampania HermeticWiper. HermeticRansom został po raz pierwszy zgłoszony we wczesnych godzinach 24 lutego 2022 UTC w tweecie od AVAST.. To ransomware zostało wdrożone w tym samym czasie co HermeticWiper, potencjalnie w celu ukrycia działań wycieraczki. Na jednej maszynie zaobserwowano następujący harmonogram:  

  • 2022-02-23 17:49:55 UTC: HermeticWiper w C:\Windows\Temp\cc.exe wdrożony  
  • 2022-02-23 18:06:57 UTC: HermeticRansom w C:\Windows\Temp\cc2.exe wdrożony przez usługę netsvcs  
  • 2022-02-23 18:26:07 UTC: Wdrożono drugi HermeticWiper w C:\Users\com.exe  

Zaobserwowano również, że HermeticRansom jest wdrażany przez GPO, podobnie jak HermeticWiper:

C:\WINDOWS\system32\GroupPolicy\DataStore\0\sysvol\<redacted>\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\cpin.exe  

Atakujący pozostawili w pliku binarnym kilka ciągów; odwołują się do prezydenta USA Bidena i Białego Domu: _/C_/projects/403forBiden/wHiteHousE.baggageGatherings _/C_/projects/403forBiden/wHiteHousE.lookUp _/C_/projects/403forBiden/wHiteHousE.primaryElectionProcess _/C_/projects/403forBiden/wHiteHousE.GoodOffice1  

Po zaszyfrowaniu plików ofierze wyświetla się wiadomość: 

IsaacWiper 

IsaacWiper znajduje się w Windows DLL lub EXE bez podpisu Authenticode. 

Pojawił się 24 lutego 2022 r. Jak wspomniano wcześniej, najstarszy znaleziony znacznik czasu kompilacji PE to 19 października 2021 r., co oznacza, że ​​jeśli jego znacznik czasu kompilacji PE nie został naruszony, IsaacWiper mógł być używany dużo wcześniej. W przypadku próbek DLL nazwa w katalogu eksportu PE to Cleaner.dll i zawiera pojedynczy eksport _Start@4.  

IsaacWiper można znaleźć w %programdata% i C:\Windows\System32 pod następującymi nazwami plików:  

  • clean.exe  
  • cl.exe  
  • cl64.dll  
  • cld.dll  
  • cll.dll  

Nie ma podobieństwa w kodzie z HermeticWiper i jest znacznie mniej wyrafinowany. Biorąc pod uwagę oś czasu, możliwe jest, że oba są ze sobą powiązane, ale nie nie ma ewidentnych dowodów na silny związek pomiędzy nimi.

IsaacWiper zaczyna od wyliczenia dysków fizycznych i wywołuje DeviceIoControl za pomocą IOCTL IOCTL_STORAGE_GET_DEVICE_NUMBER, aby uzyskać numery ich urządzeń. Następnie wymazuje pierwsze 0x10000 bajtów każdego dysku za pomocą generatora pseudolosowego Mersenne Twister PRNG. Generator jest inicjowany przy użyciu wartości GetTickCount. Następnie wylicza dyski logiczne i rekursywnie zastępuje każdy plik każdego dysku losowymi bajtami również generowanymi przez Mersenne Twister PRNG. Warto zauważyć, że rekursywnie wymazuje pliki w jednym wątku, co oznacza, że ​​wyczyszczenie dużego dysku zajęłoby dużo czasu. 25 lutego 2022 r. osoby atakujące upuściły nową wersję IsaacWipera z dziennikami debugowania. Może to oznaczać, że atakujący nie byli w stanie wyczyścić niektórych zaatakowanych maszyn i dodali komunikaty dziennika, aby zrozumieć, co się dzieje. Dzienniki są przechowywane w C:\ProgramData\log.txt. 

Podsumowanie

Analiza szczegółowo opisuje niszczycielski cyberatak, który dotknął organizacje ukraińskie 23 lutego 2022 r., oraz drugi atak, który dotknął inne  ukraińskie organizacje w dniach 24–26 lutego 2022 r. W tym momencie nie ma żadnych wskazań, że celem były inne kraje, natomiast na terenie Polski nadal utrzymuje się trzeci stopień zagrożenia CRP – Charlie CRP. Jednak ze względu na obecny kryzys na Ukrainie nadal istnieje ryzyko, że pojawią się te same wektory zagrożeń i rozpoczną dalsze kampanie przeciwko państwom, które wspierają ukraiński rząd lub sankcjonują rosyjskie podmioty.