Eksperci z Check Point Research udostępnili trzecią z kolei edukacyjną platformę dla miłośników bezpieczeństwa — amatorów oraz profesjonalistów. Wcześniej do dyspozycji internautów oddano portal macos.checkpoint.com, który jest w całości poświęcony złośliwemu oprogramowaniu dla systemu macOS. Badacze mogą tam znaleźć przydane linki z opisami wirusów, a także pliki binarne do pobrania celem wewnętrznej analizy. Kluczowym projektem jest blog research.checkpoint.com, który wyraźnie odżył dzięki licznemu zespołowi ekspertów.
Najnowszy portal https://evasions.checkpoint.com, a właściwie encyklopedia wiedzy na temat technik wykrywania maszyny wirtualnej lub sandboxów, takich jak Cuckoo Sandbox, będzie na pewną solidną lekturą dla badaczy, ponieważ w miarę ewolucji szkodliwych zagrożeń, pojawia się konieczność używania zautomatyzowanych rozwiązań do analizy złośliwego oprogramowania.
Próbki wirusów bardzo często są uruchamiane w pewnego rodzaju zwirtualizowanym środowisku. Systemy te różnią się od zwykłych hostów ogromną liczbą znajdujących się artefaktów. Są to na przykład nietypowe pliki, klucze rejestru, obiekty systemowe, sterowniki. Takie artefakty są widoczne dla próbek malware. Wirus może sprawdzać, czy jest uruchamiany w środowisku zwirtualizowanym. Można to w pewien sposób oszukać, utwardzając konfigurację obrazu maszyny wirtualnej, a także samego pliku BIOSU-u wczytywanego przez program do wirtualizacji np. Vmware lub VirtualBox.
W zależności od wykrytych artefaktów złośliwe oprogramowanie będzie kontynuowało swoje działanie, dając badaczom możliwość monitorowania zachowania wirusa.
W encyklopedii „Evasion Techniques” pracownicy Check Point zebrali większość znanych sposobów wykrywania zwirtualizowanego środowiska, grupując je według kategorii. Oto niektóre z nich:
Pliki systemowe, które zdradzają program do wirtualizacji:
c:\windows\system32\drivers\vmmouse.sys -> VMware c:\windows\system32\drivers\VBoxGuest.sys -> VirtualBox
Klucze rejestru „powiedzą” wirusowi w jakim hiperwizorze został uruchomiony:
HKLM\SOFTWARE\Microsoft\Hyper-V HKLM\SOFTWARE\Microsoft\VirtualMachine HKCU\SOFTWARE\VMware, Inc.\VMware Tools HKLM\SOFTWARE\VMware, Inc.\VMware Tools
Konfiguracja urządzeń, rozdzielczość, nazwa użytkownika, ilości pamięci i rdzeni procesora, rozmiar całego dysku. To wszystko ma wpływ na działanie wirusa:
GetUserNameA/W GetComputerNameA/W GetMemoryStatusEx GetDesktopWindow GetWindowRect GetSystemInfo
Uruchomione procesy:
vboxservice.exe vboxtray.exe vmsrvc.exe vmtoolsd.exe vmacthlp.exe vmwaretray.exe vmwareuser.exe vmware.exe vmount2.exe
Sprawdzanie pierwszych trzech oktetów adresu MAC karty sieciowej:
00:1C:42 08:00:27 00:05:69 00:0C:29 00:1C:14 00:50:56 00:16:E3
Wirtualizacja środowisk roboczych (Virtual Desktop Infrastructure) w erze cyberzagrożeń
Na portalu evasions.checkpoint.com takich przykładów jest znacznie więcej. Wirtualizacja posiada wiele zalet. Jedną z nich jest odporność na niektóre zaawansowane zagrożenia, które wykrywają m.in.:
- nazwy procesów (np. TPAutoConnSvc.exe),
- klucze rejestru (np. HKLM\SYSTEM\ControlSet001\Services\VBoxGuest),
- zainstalowane urządzenia,
- sterowniki karty graficznej i USB,
- nazwę komputera,
- dostawcę BIOS-u („SystemBiosVersion”;”VMWARE”),
- pojemność wirtualnego dysku,
- ruchy myszą,
- oprogramowanie służące do analizy,
- adres MAC karty sieciowej (pierwsze 3 oktety są kluczowe),
- instrukcje assemblera (np. IDT, SMSW, CPUID),
- załadowane biblioteki DLL (np. sbiedll.dll, tj. oprogramowanie Sandboxie),
- ilość plików w folderach użytkownika,
- rozdzielczość ekranu.
Jak na ironię, korzystając w organizacji z wirtualnych desktopów, nieświadomie utrudnia się autorom złośliwego kodu uruchomienie malware. Udostępniony pracownikowi system operacyjny w ramach wirtualnej infrastruktury roboczej zazwyczaj nie zostanie zainfekowany przez trojana bankowego, który będzie wykrywał artefakty maszyny wirtualnej, albo znane narzędzia do analizy malware:
Jest to kawałek kodu VBA (język programowania używany do pisania poleceń makro), który weryfikuje, czy uruchomione są procesy zawierające nazwy: fiddler, vxstream, vbox, tcpview, vmware, process explorer, vmtools, autoit, wireshark, visual basic, process monitor. Jeśli wirus wykryje co najmniej jedną, to zakończy swoje działanie.
Wirus może też sprawdzać, czy jest uruchamiany w odpowiednim regionie geograficznym:
Jednym z testów na uruchomienie jest również wykrywanie nazwy sieci organizacji. Jeśli ta nazwa jest przypisana do podmiotów wojskowych, publicznych i rządowych, wirus nie zainfekuje tych komputerów: „hospital”, „university”, „school”, „science”, „army”, „veterans”, „government”, „nuclear”:
Utwardzanie maszyny wirtualnej (hardening) i ukrywanie przed malware
Istnieje co najmniej kilka pomocnych narzędzi w ustaleniu, co należy zrobić, aby ukryć wirtualizację. Skonfigurowanie wirtualnego systemu operacyjnego tak, aby wyglądał jak zwykły komputer, jest zadaniem bardzo trudnym, a wręcz niemożliwym dla nie-ekspertów.
Do takich narzędzi zaliczamy:
- Pafish: https://github.com/a0rtega/pafish
- Al-Khaser: https://github.com/LordNoteworthy/al-khaser
- VMDE: https://github.com/hfiref0x/VMDE
- InviZzzible: https://github.com/CheckPointSW/InviZzzible
Rozpoznanie elementów systemu operacyjnego, które należy ukryć lub zmienić (np. adres MAC karty sieciowej, rozdzielczość, ilość plików na pulpicie, instrukcje procesora, ilość sekund od uruchomienia systemu, rozmiar dysku itp.) to jedna strona medalu.
Znacznie trudniejsze jest oszukanie złośliwego oprogramowania przed wykryciem zwirtualizowanej karty graficznej albo producenta dysku. Takie dane są na stałe zaszyte w obrazie BIOS-u i np. wirtualny dysk będzie zgłaszał się jako Vmware Incorp.
Do najtrudniejszych zadań należy modyfikacja parametrów procesora, a także pliku BIOS-u w celu zmiany nazw urządzeń wirtualnych na prawdziwe. Taką operację można tymczasowo osiągnąć poprzez modyfikację rejestru, przygotowując odpowiedni skrypt, który będzie uruchamiany przy każdym starcie systemu.
Ukrywanie wirtualizacji jest możliwe, ale to zadanie czasochłonne i bardzo trudne technicznie. Systemy wirtualne są popularne, ponieważ nie wymagają praktycznie żadnych nakładów finansowych na przygotowanie środowiska do analizy złośliwego oprogramowania. Z wirtualnego rozwiązania korzysta choćby CERT Polska (używają zmodyfikowanego na własne potrzeby Cuckoo Sandbox), co zaświadcza o skuteczności tego typu rozwiązań.
Do bardziej zaawansowanych narzędzi do analizy malware zaliczamy darmowy projekt DRAKVUF oraz komercyjny VMRay. Ten pierwszy wymaga serwera dedykowanego, a ten drugi obsługuje ponadto analizę w chmurze. Cena za używanie VMRay jest bardzo, ale to bardzo wysoka, jak na polskie standardy, dlatego jest to produkt zarezerwowany raczej dla dużych firm. Oba rozwiązania wykorzystują tzw. analizę bezagentową, która jest znacznie korzystniejsza podczas badania próbek w maszynach wirtualnych. Z tego powodu warto zainteresować się zagadnieniem analizy bezagentowej (agentless).
Czy ten artykuł był pomocny?
Oceniono: 1 razy