Czytelnicy naszego portalu, którzy dopiero wkraczają w świat cyber-zabezpieczeń i zaczynają poznawać współczesne technologie ochronne, mogą mieć troszeczkę problemów z przetestowaniem swojego antywirusa. Nie dlatego, że pewne zagadnienia mogą być trudne do zrozumienia. Dużym problemem jest znalezienie działającego złośliwego oprogramowania. Czyli takiego, które zdoła zainfekować wirtualny system operacyjny w momencie testowania produktu. Pozornie nie ma w tym nic trudnego. W praktyce nie jest to łatwe, a co gorsze niedziałające próbki wirusów mogą zaburzyć statystyki ochrony.
Ten poradnik testowania antywirusa w domowym zapleczu i podstawy analizowania malware są przeznaczone dla ludzi, który dopiero zaczynają interesować się bezpieczeństwem. Artykuł powstał z myślą o osobach nietechnicznych.
Jak przetestować antywirusa w maszynie wirtualnej?
Jest to metoda najłatwiejsza, najtańsza i najbardziej powszechna. Wirtualna maszyna odseparuje system operacyjny od systemu gościa, w którym chcemy robić ciekawe rzeczy. Odizolowane środowisko od pulpitu roboczego zapewnia duże bezpieczeństwo. Przypadki, kiedy złośliwe oprogramowanie zdołałoby „uciec” z systemu gościa i przedostałoby się do hosta, to literacka fikcja – spotykana niezwykle rzadko w świecie rzeczywistym, częściej w akademickim.
Uruchomienie złośliwego kodu w systemie hosta poprzez wirtualną maszynę może się udać w firmie z infrastrukturą wirtualną. Zresztą przy infrastrukturze wirtualnej zarządcą środowiska pracy, jakim jest hipernadzorca np. Vmware albo Citrix, do tego nowoczesne produkty ochronne analizujące złośliwy kod, wyżej niż uprawnienia systemowe (tak naprawdę za pomocą API programu do wirtualizacji), potrafią zdziałać prawie cuda. Technologia zaimplementowana w rozwiązaniu np. Bitdefender i Kaspersky potrafi skanować kod na poziomie „ring -1” za pomocą technologii Intel VT-x lub AMD-V. Takie produkty ochronne są zarezerwowane wyłącznie dla średnich i dużych przedsiębiorstw. Z tego powodu ucieczka złośliwego kodu z wirtualnego systemu do systemu hosta wcale nie jest oczywista.
Nie komplikując…
Z dostępnych hipernadzorców popularne są programy Vmware Workstation Pro oraz VirtualBox. Ten pierwszy może działać przez 30 dni za darmo. Koszty licencji, jak na domowe testy, są duże, a wersja bezpłatna Vmware Player jest bardzo ograniczona – nie ma możliwości tworzenia migawek systemu. Z tego powodu Vmware Player nie polecamy do domowego labu.
Zdecydowanie lepiej skorzystać z Vmware Workstation Pro albo darmowego VirtualBox, który do zastosowań domowych wystarczy. My w AVLab do testów bezpieczeństwa używamy Vmware Workstation Pro. Mamy ku temu konkretne powody (zobacz porównanie VMware, Citrix, VirtualBox: Jak testujemy antywirusy?).
Niezależnie od tego, co użyjesz w swoim domowym labie…
1. Zainstaluj system operacyjny. Może to być Windows 10 albo Windows 11. Zalecamy korzystać z najnowszej wersji, ponieważ Windows 7 nie jest już wspierany.
2. Zainstaluj potrzebne programy:
- Ulubioną przeglądarkę. Możesz używać najnowszego EDGE od Microsoftu albo innej przeglądarki. Tę, którą lubisz.
- Zastąp systemowy notatnik np. programem Notepad++. Będzie potrzebny do edycji plików konfiguracyjnych. Nie jest to obowiązkowe.
- Przeglądarkę plików PDF. Może to być Adobe Reader. Niektóre próbki wirusów mogą wykorzystywać luki w czytniku PDF (głównie Adobe), dlatego korzystanie z najnowszych wersji programów w środowisku testowym nie zawsze jest tym, co chcemy osiągnąć.
- Środowisko Java, ale nie najnowsze. Z tych samych powodów, co wyżej.
- Net Framework 3.5+. Dużo wirusów nie będzie bez tego działać.
- Pakiet biurowy do otwierania zainfekowanych dokumentów Office z makrami. LibreOffice nie wspiera większości makr, dlatego nie sprawdzi się w domowym labie do analizowania malware.
- Zainstaluj produkt antywirusowy, który chcesz przetestować.
3. Na koniec zrób migawkę systemu. Po wprowadzeniu jakichkolwiek zmian do systemu będzie można przywrócić utworzony obraz systemu do stanu sprzed modyfikacji / zainfekowania. Szybko i bezpiecznie. Bez konieczności instalowania wszystkiego od początku. Zaoszczędzi to mnóstwo czasu.
Źródła malware i stron phishingowych
Teraz najważniejsze. Trzeba zdobyć dostęp do działających próbek złośliwego oprogramowania. Z powodów statystycznych nie jest zalecane używanie starych próbek, które nie działają.
Nowe próbki również mogą nie działać w maszynach wirtualnych i odwrotnie – niektóre zagrożenia będą działać tylko i wyłącznie w maszynie wirtualnej. Dzieje się tak, ponieważ autorzy próbek wirusów wiedzą, że firmy zajmujące się bezpieczeństwem, korzystają z wirtualnych maszyn do analizowania niebezpiecznego kodu. Dlatego utrudniają to, dodając do wirusów mechanizmy, które wykrywają system wirtualny. Więcej na ten temat przeczytasz w artykule pt. TOP10 technik wykrywania maszyn wirtualnych i sandboxów przez malware.
Zachęcamy internautów, aby przeprowadzali własne testy i dzielili się wynikami w komentarzach. Do tego celu można wykorzystać źródła edukacyjne zawierające linki do złośliwego oprogramowania oraz do stron wyłudzających dane osobowe np. fałszywe systemy płatności albo fałszywe logowania do portalów społecznościowych.
Do testowania ochrony pod kątem blokowania stron phishingowych polecamy strony zgłoszone do CERT Polska w ramach walki z koronawirusem w cyberprzestrzeni. Wystarczy otworzyć jeden z poniższych linków i skopiować ręcznie kilka adresów URL do maszyny wirtualnej.
Dodatkowe bazy stron phishingowych i malware
https[:]//openphish.com https[:]//phishtank.com/phish_search.php?valid=y&active=All&Search=Search
Strony z próbkami złośliwego oprogramowania:
http[:]//vxvault.net/URL_List.phphttps[:]//tracker.fumik0.com/api/get-urls
https[:]//objective-see.com/malware.html
https[:]//virusshare.com
https[:]//www.malwares.com
https[:]//urlhaus.abuse.ch/api/#retrieve
https[:]//infosec.cert-pa.it/analyze/statistics.html
https[:]//tracker.fumik0.com
https[:]//threatfeeds.io
https[:]//malsilo.gitlab.io/feeds/dumps/url_list.txt
https[:]//labs.inquest.net/dfi
https[:]//malshare.com
https[:]//beta.virusbay.io/sample/browse
https[:]//tutorialjinni.com
https[:]//app.any.run/submissions
https[:]//bazaar.abuse.ch/browse
https[:]//datalake.abuse.ch/malware-bazaar/daily/
Projekt MWDB od CERT Polska:
https://github.com/CERT-Polska/mwdb-core...
Jak dostarczać malware do systemu wirtualnego? To ważne!
To niezwykle istotny punkt w badaniu skuteczności antywirusów. Na wielu filmikach na YouTube można zobaczyć, że zwykle maszyna do testów jest już gotowa, a próbki malware znajdują się w systemie. W niektórych przypadkach tester popełnia błąd na wizji, przeciągając paczkę wirusów z hosta do gościa, metodą drag-and-drop (przeciągnij i upuść). To wygodne, ale zaburza prawdziwy wynik ochrony, ponieważ większość antywirusów nie skanuje procesu vmwaretools.exe oraz vboxtray.exe, które uczestniczą przenoszeniu plików. W związku z tym próbki wirusów trafiają do systemu nieznaną metodą. Protokołem nie używanym w prawdziwych cyberatakach.
Ten sposób testowania jest niezgodny ze sztuką. Dlatego w przypadku pobierania setek próbek wirusów w jednej paczce ZIP, lepiej jest postawić serwer WWW lub FTP w sieci lokalnej.
Alternatywnie zamiast paczek wirusów, lepiej jest pobierać pojedyncze próbki ze stron znalezionych w Internecie, ponieważ odzwierciedla to prawdziwy scenariusz ataku.
Narzędzia do zbierania logów w Windows
To bardzo ważne, aby dowiedzieć, czy po uruchomieniu wirusa, cokolwiek się działo w systemie. Jest to konieczne do zarejestrowania np. zmian wprowadzonych przez malware, ale także do prześledzenia reakcji antywirusa na zagrożenie.
Po uruchomieniu malware niektóre antywirusy nie wyświetlają ostrzeżenia, ani nie zapisują zmian w graficznym dzienniku, dostępnym z poziomu interfejsu. Takim wyjątkiem jest m.in. Webroot Antivirus.
Webroot najpierw śledzi nieznaną aplikację, rejestruje wszystko w niedostępnym dla użytkownika pliku. Dzięki temu może odtworzyć stan komputera sprzed zainfekowania. Dopiero w chwili zdiagnozowania zagrożenia pojawia się komunikat ostrzegawczy. Brak takiego komunikatu nie musi zaświadczać o tym, że antywirus nic nie robi. Można to zaobserwować analizując logi Webroota:
C:\ProgramData\WRData\WRLog.txt C:\ProgramData\WRData\WRLog.log C:\ProgramData\WRData\ace1.db C:\ProgramData\WRData\dbk.db
Do analizy próbek wirusów, jak i aktywności antywirusów, można posłużyć się programami dla osób początkujących i zaawansowanych.
Event Monitor Service
Event Monitor Service sprawdza, co dzieje się w systemie po uruchomieniu malware. Tworzy na dysku logi, które podpowiedzą o utworzonych plikach, kluczach rejestru, procesach itp.
Program ma jedną, dużą wadę. Otóż nie potrafi wskazywać plików edytowanych, zmienionych przez złośliwe oprogramowanie np. zaszyfrowanych. Niemniej na początek przygody z analizą to narzędzie będzie dobre.
Process Monitor
Process Monitor. Oprogramowanie od Microsoftu jest świetnym narzędziem do zbierania informacji o zdarzeniach w systemie. Najpoważniejszą wadą programu jest pokazywanie logów z całej aktywności Windows, co mocno obciąża procesor. Zbierane są tony tzw. śmieci, szumu, które trzeba w jakiś sposób przefiltrować.
Polecamy korzystać z filtrów utworzonych przez społeczność. Plik z rozszerzeniem PMC importujemy do programu i uruchamiamy złośliwe oprogramowanie. Od teraz program będzie pokazywał tylko najważniejsze zmiany, które będą się działy w systemie.
Początkującym badaczom zalecamy korzystanie z przygotowanego zestawu reguł do analizy malware, które są dostępne do pobrania z tej strony lub z tej.
Sysmon
Sysmon to najbardziej zaawansowane narzędzie od Microsoftu do śledzenia zmian w systemie. Świetnie sprawdza się jako kompleksowe rozwiązanie do dynamicznej analizy złośliwego oprogramowania. Nie jest trudne w konfiguracji. W obsłudze jest łatwiejsze niż graficzny Process Monitor.
Aby zainstalować Sysmon, wydajemy polecenie w CMD / PowerShell jako administrator (lub uruchamiamy plik EXE z uprawnieniami admina):
Sysmon64.exe -i
I tyle. Sysmon został zainstalowany. Od teraz wszystkie logi zapisywane są do systemowego dziennika zdarzeń. Logi można otworzyć w aplikacji „Podgląd zdarzeń”.
Klikamy na START -> szukamy aplikacji „Podgląd zdarzeń” -> dalej wybieramy z menu Aplikacje i Usługi -> Microsoft -> Windows -> Sysmon.
W sieci dostępnych jest mnóstwo samouczków oraz gotowych konfiguracji. Tak przygotowane zestawy reguł będą monitorować np. zmiany w procesach i plikach na dysku, komunikację sieciową, załadowane sterowniki i biblioteki, zmiany w rejestrze, porównywać hashe plików, a nawet zmianę statusu działania usługi Sysmon (np. spowodowaną awarią lub działaniem złośliwego oprogramowania).
Jako reguły do śledzenia zmian polecamy pobranie pliku konfiguracyjnego XML ze strony autorów samego narzędzia Sysmon. Konfiguracja została przygotowana przez Marka Russinovicha i Thomasa Garniera, którzy są współtwórcami oprogramowania i zarazem ekspertami, jeśli chodzi o znajomość środowiska Windows.
Plik sysmonconfig-export.xml zawiera zrozumiałą konfigurację, którą możemy stworzyć od nowa lub edytować już istniejącą. Domyślna konfiguracja od Marka i Thomasa jest bardzo zaawansowana i w zasadzie wystarczająca dla większości ludzi, którzy zajmują się analizą dynamiczną.
Po pobraniu pliku konfiguracyjnego XML trzeba jeszcze powiedzieć aplikacji Sysmon, aby korzystała z nowego zestawu reguł. Odpalamy raz jeszcze w konsoli poniższe polecenie, wskazując na plik konfiguracyjny, który trzeba skopiować do folderu z Sysmon64.exe:
Sysmon64.exe -c sysmonconfig-export.xml
To wszystko. Od teraz Sysmon będzie zapisywał to, co zostało ustawione w pliku konfiguracyjnym.
Przeglądanie logów Sysmon za pomocą Sysmon View
Sysmon to świetne narzędzie, ale przeglądanie zdarzeń z linii poleceń to katastrofa dla początkującego badacza. Można to sobie ułatwić eksportem logów do pliku CSV/XML za pomocą polecenia w PowerShell:
WEVTUtil query-events "Microsoft-Windows-Sysmon/Operational" /format:xml /e:sysmonview > eventlog.xml
Następnie plik eventlog.xml otwieramy narzędziem narzędziem Sysmon View:
Poza aplikacją Sysmon View, prostego narzędzia do przeglądania logów Sysmon niestety nie ma, lub nie jest mi znane. Można posiłkować się integracją z rozwiązaniem Splunk albo Elk, jednak wymaga to zainstalowania i skonfigurowania skomplikowanego rozwiązania na osobnym serwerze, oraz przekierowania logów Sysmon na zewnętrzny serwer. Jest to sposób zarezerwowany dla ekspertów.
LOG-MD Free Edition
To ostanie narzędzie do wyszukiwania śladów włamania. Niestety nie nadaje się do śledzenia akcji wykonanych przez antywirusy ze względu na nakładane ograniczenia przez Windows.
Konfiguracja narzędzia i dostosowanie systemu Windows nie należy do najłatwiejszych i najszybszych. Trzeba się mocno napocić, aby poprawnie wykonać wszystkie instrukcje wdrożeniowe.
Rozwiązanie jest warte polecenia. Szczególnie wersja LOG-MD Professional, która jest bardziej zautomatyzowana.
Narzędzie potrafi zeskanować cały system i utworzyć białą listę hashy bezpiecznych plików. Od tego momentu jakakolwiek modyfikacja pokaże dokładnie, który plik lub klucz rejestru uległ modyfikacji. Produkt posiada doskonałe wsparcie techniczne (kiedyś sam z tego korzystałem). Niestety ze względu na AVLab-owe wymagania, nie mogliśmy używać tego narzędzia.
Strona internetowa producenta zawiera porównanie wersji darmowej i płatnej. Na blogu tej firmy można znaleźć wiele unikalnych materiałów dotyczących konfigurowania Windows pod kątem rejestrowania podejrzanej aktywności. Autor tych artykułów jest ekspertem z dziedziny Windows-forencis.
Analiza malware, testy… O co w tym wszystkim chodzi?
Na koniec warto trochę pomyśleć nad interpretacją wyników. Przy testowaniu produktów ochronnych ważne jest, aby używać działających próbek złośliwego oprogramowania. Jest to etap najtrudniejszy, ale i najważniejszy. W profesjonalnych testach to absolutne minimum, jeżeli chcemy, aby test nie został miażdżąco skrytykowany przez producenta. Dzielenie się zafałszowanymi wynikami z błędnie dobraną metodologią może przynieść więcej złego niż dobrego. Nie można wyciągać wniosków na podstawie niepoprawnie dobranych, niedziałających próbek malware.
Analiza wirusów komputerowych to nie tylko umiejętność czytania logów. Adept tej sztuki z czasem nauczy się, jak jest zbudowany i jak działa system Windows od wewnątrz. Dodatkowo pozna jak działają programy systemowe i jakich technik używają autorzy szkodliwego kodu.
W tym poradniku przedstawiliśmy narzędzia do tzw. dynamicznej analizy złośliwego oprogramowania. Dzięki nim dowiadujemy się, co po kolei może zrobić wirus w systemie operacyjnym, jeżeli próbka zostanie uruchomiona. Statyczna analiza próbek to temat na osobny artykuł.
W artykule zaktualizowano listę stron z malware, a także uzupełniono informacje o Windows 10 i Windows 11.
Czy ten artykuł był pomocny?
Oceniono: 9 razy