W tym artykule opisujemy i testujemy nową metodę omijania skanerów bezpieczeństwa poczty i antywirusów – ukrywanie złośliwych plików wewnątrz pliku VHD(X). Metoda jest niewykrywalna przez specjalistyczne oprogramowanie. Pokazujemy, jak utworzyć takie plik oraz sprawdzimy skuteczność wykrywalności tej metody przez oprogramowanie antywirusowe. Na końcu artykułu zamieściliśmy porady jak się chronić przed tego typu zagrożeniem.
Co to jest format *.vhd i *.vhdx?
Na pewno dla wielu osób z branży IT rozszerzenia plików *.vhd i *.vhdx są dobrze znane. Dla tych, którzy jeszcze nie mieli z nimi styczności postanowiliśmy je opisać poniżej.
VHD (Virtual Hard Disk) to format pliku reprezentujący wirtualny dysk twardy (HDD). Jego wnętrze może zawierać to, co znajduje się na fizycznym dysku twardym, czyli partycje dysku oraz system plików, który z kolei może zawierać pliki i foldery. VHD zwykle używany jest jako dysk twardy maszyny wirtualnej.
VHDX to format pliku wirtualnego dysku twardego przeznaczonego dla wirtualizatora Hyper-V. VHDX posiada znacznie większą pojemność (nawet 64 TB) w porównaniu do limitu formatu VHD wynoszącego 2 TB. Zapewnia również ochronę przed uszkodzeniem danych podczas awarii zasilania i optymalizuje wyrównanie strukturalne dysków dynamicznych i różnicowych, aby zapobiec pogorszeniu wydajności na nowych dyskach fizycznych posiadających sektory o dużym rozmiarze.
Po zainicjowaniu pliku .vhd lub .vhdx w systemie Windows zostanie on dodany jako nowy dysk w komputerze.
W czym tkwi problem?
Z badań przeprowadzonych przez specjalistę od zabezpieczeń Will’a Dormann’a okazało się, że system operacyjny Windows i oprogramowanie antywirusowe traktują pobieranie obrazów dysków VHD i VHDX jak czarną skrzynkę -„Black Box”. Skanowanie wnętrza tych plików nie nastąpi, dopóki cały obraz dysku nie zastanie zainicjowany w systemie i nie zostaną w nim uruchomione i przeczytane pliki, w naszym przypadku złośliwe.
Oznacza to tyle, że atakujący mogą umieścić złośliwe oprogramowanie w obrazie dysku, zwabić ofiarę poprzez umieszczenie do niego linku w Internecie lub przesłać go w celu ominięcia początkowej ochrony w systemie Windows.
Drugi problem jaki został odkryty to brak oflagowania tych plików dodatkowymi metadanymi podczas pobierania ich z Internetu.
System Windows od wersji Windows XP SP2 przyznaje plikom różne poziomy zaufania, w zależności od ich źródła pochodzenia. Znakuje je dodatkowymi flagami i podczas uruchamiania ich z dysku komputera. Użytkownik dostaje ostrzeżenie o niebezpieczeństwie związanym z otwarciem takiego pliku. Dzieję się tak, ponieważ zwykle dane pobierane z Internetu są bardziej złośliwe i są traktowane z większą ostrożnością.
W przypadku plików pochodzących z Internetu system Windows oznacza pobrany plik etykietą Mark of the Web (MOTW), dzięki czemu ma ograniczony dostęp do zasobów komputera. Użytkownicy zobaczą ostrzeżenia o potencjalnym ryzyku uruchomienia tych plików i zwykle są zobowiązani do wyrażenia zgody na ich wykonanie.
MOTW jest stosowany do wszystkich plików pochodzących z Internetu (lokalizacji online), w tym poszczególnych elementów w kontenerach takich jak archiwa, pod warunkiem, że do ich otwarcia używany jest Eksplorator Windows lub narzędzia zgodne z ZIP.
Powyższe stwierdzenie nie dotyczy plików VHD i VHDX, które zachowują się podobnie do archiwum ZIP, ponieważ zawartość jest wyświetlana po dwukrotnym kliknięciu pliku.
W celu zademonstrowania problemu, poniżej zamieściliśmy nagranie wideo Dormana pokazujące, jak reagują zabezpieczenia systemu Windows 10 podczas uruchamiania złośliwych plików w pliku w paczce ZIP i pozostają uśpione, gdy plik jest dyskiem VHD.
Postanowiliśmy przetestować scenariusz, w którym sprawdzimy wykrywalność złośliwego oprogramowania umieszczonego w pliku VHD przez oprogramowanie antywirusowe. Wyniki zamieściliśmy poniżej w artykule. Lecz zanim wykonany test pokażmy, jak utworzyć plik VHD(X) w systemie Windows.
Jak utworzyć plik VHD(X) oraz podpiąć go do systemu Windows?
W celu utworzenia oraz podpięcia dysku VHD(X) w systemie Windows 10 konto użytkownika musi posiadać uprawnienia lokalnego administratora (członkostwo w grupie Administrators) lub uprawnienia do wykonywania kopii zapasowych (członkostwo w grupie Backup Operators
).
Jest to kolejny opisywany przez nas przykład świadczący o tym, dlaczego nie powinniśmy pracować na lokalnych uprawnieniach administracyjnych na systemie Windows – inaczej cyberprzestępca będzie miał ułatwione zadanie na komputerze.
Jeśli Twoje konto posiada powyższe uprawniania bez problemu będziesz mógł wykonać na nim następujące kroki:
1. Uruchomić konsolę do zarządzania komputerem (compmgmt.msc) i przejść do sekcji “Zarządzanie dyskami”.
2. Prawym przyciskiem myszy wybrać opcję utworzenia dysku VHD.
3. Wykonać dalsze kroki zgodne z poniższymi ekranami.
Jeśli uda Ci się podpiąć dysk do systemu skopiuj do niego pożądane przez Ciebie pliki. W naszym przypadku skopiowaliśmy nasza skompilowaną wersję programu Mimikatz (kapitan.exe) – złośliwe oprogramowanie wykrywane przez większość antywirów.
4. Po udanym skopiowaniu plików na dysk możesz bezpiecznie odpiąć dysk w konsoli do zarządzania komputerem.
Od teraz nowoutworzony plik VHD możesz skopiować na inny komputer lub przesłać pocztą i sprawdzić, czy zostanie zablokowany przez Twoje skanery bezpieczeństwa.
Automatyczne zainicjowanie dysku VHD(X)
Poniżej przedstawiliśmy jeden z wielu sposobów natywnego podpięcie i odpięcia dysku VHD(X). w systemie Windows 10. Podpięcia można wykonać klikając 2 razy myszką na pliku vhd lub wykonując następującą Komedę.
Zainicjowanie dysku VHD z linii komend
Zapisz poniższe 2 linie do pliku tekstowego np. o nazwie parameters.txt:
vdisk file=”C:\temp\tools\tools.vhd”
attach vdisk
Wykonaj poniższe polecenie w linii komend:
DISKPART /s C:\temp\tools\parameters.txt
Odpięcie dysku VHD
Odpięcie pliku VHD wykonuje się tak samo jak przypięcie, z taką różnica, że w pliku z parametrami zamiast „attach” musimy użyć parametru „detach”.
Dla osób chcących zautomatyzować inicjację VHD podczas uruchamiania Windows 10 lub Windows 8 poniżej umieszczamy link do gotowego skryptu w PowerShell.
Scenariusz – sprawdzenie pliku VHD z malware przez antywirusa
W celu przeprowadzenia naszego scenariusza umieściliśmy w pliku VHD popularny program Mimikatz, który jest wykrywany przez większość oprogramowania antywirusowego. Następnie wgraliśmy go na portal VirusTotal.
Po umieszczeniu naszego pliku VHD na portalu VirusTotal, żaden z silników skanujących nie oznaczył obrazu VHD jako potencjalnego ryzyka.
Co oznacza ten problem w środowisku korporacyjnym?
W środowisku korporacyjnym niemożność przeskanowania tych plików pozostawia martwy punkt, dopóki nie trafią one na komputer ofiary. Jeśli zawartość plików VHD i VHDX nie zostanie przeskanowana przez oprogramowanie zabezpieczające pocztę e-mail i bramy internetowe, oznaczać to będzie poważną lukę w zabezpieczeniach firmy.
Jak się zabezpieczyć?
Firmy powinny podjąć jak najszybsze działania w celu zmitygowania ryzyka związanego z opisana w tym artykule luką. Zalecamy:
1. Monitorować podpinanie nowych dysków do systemu podobnie jak podpinanie urządzań USB opisanych tutaj. Log, w którym się dowiesz na temat podpiętego nowego dysku posiada identyfikator 98 i znajduje się w logu systemowym:
2. Zablokować rozszerzenia VHD, VHDX, ISO i IMG w bramach e-mail.
3. Wyłącz powiązania plików dla tych rozszerzeń w systemie operacyjnym Windows na końcówkach, aby nie były automatycznie otwierane przy podwójnym kliknięciu. Tutaj znajdziesz wskazówkę ja to wykonać.
4. Ograniczyć przesyłanie plików VHD, VHDX, ISO i IMG w firmie i zastosować wyjątki tylko na te komputery lub źródła skąd to jest dozwolone np. zaufane serwery lub stacje administratorów.