Podstawy bezpieczeństwa: jak analizować malware i przetestować antywirusa w domowym labie?

27 kwietnia 2020

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ć testowy system operacyjny w momencie testowania produktu. Pozornie nie ma w tym nic trudnego. W praktyce nie jest to łatwe, 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, dlatego prosimy o wyrozumiałość grono administratorów i miłośników bezpieczeństwa.

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. Licencja, jak na domowe testy, to duży koszt, 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? Kulisy powstawania nowego portalu CheckLab.pl).

Interfejs Vmware Workstation Pro.

Niezależnie od tego, co użyjesz w swoim domowym labie:

1. Zainstaluj system operacyjny. Może to być Windows 8.1 albo Windows 10. Zalecamy korzystać z najnowszej wersji, ponieważ Windows 7 nie jest już wspierany. Windows 10 to teraźniejszość i przyszłości.

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. Może to być darmowy LibreOffice, Microsoft 365 lub starsza wersja pakietu Office.
  • 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, które zweryfikowane jako niebezpieczne:

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.php

https[:]//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[:]//infosec.cert-pa.it/analyze/listurls.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[:]//mb-api.abuse.ch/downloads

Jak dostarczać malware do systemu wirtualnego? To bardzo 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 bardzo wygodne, ale często 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 w sieci lokalnej lub użyć najtańszego serwera VPS za kilka / kilkanaście złotych miesięcznie.

Alternatywnie zamiast paczek wirusów i lepiej jest pobierać pojedyncze próbki ze stron znalezionych w Internecie, ponieważ odzwierciedla to prawdziwy scenariusz ataku. Testowanie na tzw. paczkach prostym skanowaniem jest metodą przestarzałą.

Narzędzia do zbierania logów Windows

Bardzo ważne jest, aby dowiedzieć, czy po uruchomieniu wirusa, cokolwiek stało się w systemie. Jest to konieczne do zarejestrowania np. zmian wprowadzonych przez malware, ale także do prześledzenia reakcji antywirusa na zagrożenie.

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.

Antywirus najpierw śledzi nieznaną aplikację, rejestruje wszystko w niedostępnym dla użytkownika pliku. Dzięki temu może odtworzyć stan komputera sprzed momentu zainfekowania. Dopiero w chwili zdiagnozowania zagrożenia pojawia się komunikat ostrzegawczy, przy czym brak takiego komunikatu nie musi zaświadczać o tym, że antywirus nic nie robi. Można to zaobserwować analizując logi Webroota przy uruchamianiu próbek:

C:ProgramDataWRDataWRLog.txt

C:ProgramDataWRDataWRLog.log

C:ProgramDataWRDataace1.db

C:ProgramDataWRDatadbk.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.

Event Monitor Service jest narzędziem darmowym do analizy malware.

Program ma dużą wagę, ponieważ 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. Rozwiązanie 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.

Na zrzucie ekranu pokazano przeniesienie wirusa do kwarantanny przez antywirus Arcabit.

Jak na pierwszy raz można skorzystać z przygotowanego zestawu reguł do analizy malware, który jest 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:

Sysmon64.exe -i

Wynik polecenia

System Monitor v8.00 - System activity monitor
Copyright (C) 2014-2018 Mark Russinovich and Thomas Garnier
Sysinternals - www.sysinternals.com
Sysmon64 installed.
SysmonDrv installed.
Starting SysmonDrv.
SysmonDrv started.
Starting Sysmon64..
Sysmon64 started.

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.

Sysmon zapisuje wszystko do dziennika Operational.

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 od tego najniższego poziomu.

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 naszym gotowcu, pliku konfiguracyjnym.

Sysmon to narzędzie dobrze znane autorom szkodliwego oprogramowania, którzy wiedzą jak wykryć działające usługi. Z tego powodu bardziej zaawansowana konfiguracja zakłada utwardzenie ustawień Sysmon już od momentu instalacji (zmienia się nazwę instalowanych usług i sterownika Sysmon, ponieważ malware z łatwością mogłoby wykryć lub zatrzymać takie procesy).

Przeglądanie logów Sysmon za pomocą Sysmon View

Sysmon to świetne narzędzie, ale przeglądanie zdarzeń 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:

Narzędzie Sysmon View tworzy drzewo procesów ze wszystkimi szczegółami.

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.

Zarejestrowane hashe zmienionych plików.

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ś korzystałem). Niestety ze względu na AVLab-owe wymagania, nie mogliśmy używać tego narzędzia.

Strona internetowa https://www.imfsecurity.com/compare zawiera porównanie wersji darmowej i płatnej. Na blogu tej firmy można znaleźć wiele unikalnych materiałów dotyczących konfigurowania Windows w aspekcie rejestrowania podejrzanej aktywności. Autor ów artykułów jest ekspertem z dziedziny Windows-forencis.

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. Podsumowując nie można wyciągać wniosków na podstawie niepoprawnie dobranych, niedziałających próbek szkodliwego oprogramowania.

Analiza malware to nie tylko umiejętność czytania logów. Adept tej sztuki z czasem nauczy jak jest zbudowany i jak działa system Windows od wewnątrz. 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. Pisząc inaczej – 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ł, ponieważ takich narzędzi jest mnóstwo, a ich sprawdzenie jest rzeczą niemożliwą ze względu na ograniczony czas. W kolejnym cyklu pokażemy kilka popularnych programów do bezinwazyjnego przeglądania zawartości próbek wirusów, a także w zależności od zainteresowania, podpowiemy z jakich narzędzi online warto korzystać w takiej pracy.

PODZIEL SIĘ:

Share on facebook
Share on twitter
Share on linkedin
Share on email
AUTOR: Adrian Ścibor
Redaktor prowadzący AVLab.pl i CheckLab.pl.
guest
2 komentarzy
Inline Feedbacks
View all comments
apsik
apsik
29 dni temu

fenomenalny atrykuł. dzieki

Mike
Mike
23 dni temu

Również dziękuję za rozbudowany i świetnie opisany artykuł.

Newsletter

BĄDŹ ZAWSZE NA BIEŻĄCO!

Newsletter

ZAPISZ SIĘ NA POWIADOMIENIA
BĄDŹ ZAWSZE NA BIEŻĄCO!
zapisz się

POLECANE PRODUKTY

YUBICO

Klucze zabezpieczające

SILNE UWIERZYTELNIANIE DWUSKŁADNIKOWE, WIELOSKŁADNIKOWE I BEZ HASŁA

ankieta

Czy w Twojej firmie używa się dwuskładnikowego logowania?
GŁOSUJ

Newsletter

BĄDŹ ZAWSZE NA BIEŻĄCO!

Newsletter

ZAPISZ SIĘ NA POWIADOMIENIA
BĄDŹ ZAWSZE NA BIEŻĄCO!
zapisz się

Newsletter

BĄDŹ ZAWSZE NA BIEŻĄCO!

Newsletter

ZAPISZ SIĘ NA POWIADOMIENIA E-MAIL I ZAWSZE BĄDŹ NA BIEŻĄCO!
zapisz się

POLECANE PRODUKTY

YUBICO

Klucze zabezpieczające

SILNE UWIERZYTELNIANIE DWUSKŁADNIKOWE, WIELOSKŁADNIKOWE I BEZ HASŁA

ankieta

Czy w Twojej firmie używa się dwuskładnikowego logowania?
GŁOSUJ