Malware
jak wojna to wojna!
Dla początkujących
Michał Bucko
stopień trudności
Malware to potoczne określenie złośliwego oprogramowania
(ang. malicious software). Jest ono szeroko rozpowszechnione
w Internecie, infekując tysiące komputerów na całym świecie.
Wiedza hakerów jest bardzo duża, a współczesne programy typu
malware są coraz bardziej zaawansowane.
przyszłości ataki z wykorzystaniem " Struktura PE zawiera informacje dostar-
malware mogą mieć miejsce na czające systemowi operacyjnemu wiedzy,
Wogromną skalę i przede wszystkim jak obsłużyć należy zawarty w pliku kod
dlatego tak ważna stała się kwestia bezpie- wykonywalny.
czeństwa systemów informatycznych. Jednym
z kluczowych zagadnień jest tu analiza malware.
Z artykułu dowiesz się
Aby obronić się przed rozchodzącym się w da-
nej chwili po sieci malware wymagana jest duża
" wprowadzenie do analizy programów typu mal-
wiedza: nie tylko wykorzystują one zazwyczaj
ware,
dopiero co odkryte luki, ale też instalują w sys-
" przegląd niektórych ze stosowanych przez
temach swoich ofiar rootkity, są spakowane na-
badające malware laboratoria, technik,
prawdę wrednymi pakerami oraz wykrywają
" jak radzić sobie z robakami, złośliwymi aplika-
działające debuggery. W niniejszym artykule cjami i wirusami,
" jak wygląda od środka laboratorium badania
chciałbym przedstawić Czytelnikom kilka za-
malware.
gadnień, z którymi często borykają się analitycy
bezpieczeństwa; nie jest moją intencją stworze-
Co powinieneś wiedzieć
nie słownika czy ujęcia komplementarnego.
" podstawowa znajomość zagadnień związanych
Kilka terminów,
z bezpieczeństwem technologii informacyjnych,
które musisz zrozumieć
" terminy takie jak XSS, DNS spoofing, phishing,
zero-day, rootkit będą wykorzystywane bez
" PE / portable executable (przenośne wyko-
uprzedniego ich wyjaśnienia,
nywalne), natywny format plików Windows.
" warto także zapoznać się z narzędziami pre-
W telegraficznym skrócie, pliki takie mają
zentowanymi w artykule. Pozwoli to na lepsze
być w założeniu przenośne (pomiędzy zrozumienie tematu i będzie z całą pewnością
stanowiło bardzo dobre ćwiczenie praktyczne.
platformami zarówno programowymi, jak
i sprzętowymi).
hakin9 Nr 5/2007
2 www.hakin9.org
Podstawy badania malware
" Paker PE / kompresja i/lub This program must be run under Win32 informacje sygnalizujące zagrożenie.
maskowanie treści plików PE; UPX0 Przeprowadzając statyczną analizę
w skrócie, używa się ich aby: UPX1 możemy znalezć:
" zamaskować zawarte w kodzie .rsrc
adresy sieciowe i URL, utrudnić 1.25 " pewne szczególne adresy URL (na
jego modyfikację, zmniejszyć je- UPX! przykład banków, instytucji finan-
go rozmiar, ograniczyć kradzież sowych, serwisów transakcyjnych,
kodu. Wspomniane powyżej pakery to tyl- paneli administracyjnych itp.),
ko pojedyncze przykłady. W rzeczy- " fragmenty wiadomości e-mail,
Krótkie szkolenie wistości istnieje bardzo duża ilość stron HTML, skryptów JS bądz
z pakerów różnych narzędzi tego rodzaju, ActiveX, VBS itp.)
Fragment pierwszego programu Li- częściowo wyspecjalizowanych pod " obrazy o treści powiązanej z in-
sting 1. Jaki wykorzystano paker? kątem określonego złośliwego opro- stytucjami finansowymi,
Dwa wytłuszczone zapisy sygnalizu- gramowania. Przykładowo, popular- " numery kart kredytowych,
ją zastosowanie narzędzia PECom- nym pakerem jest Themida; jest on " typowe nazwy i hasła użytkowni-
pact2. A w przypadku ukazanym na często wykorzystywany, ponieważ ków,
Listingu 2.? Wytłuszczenie wskazuje umie wykrywać wirtualne maszyny, " dziwne parametry dla połączeń
na paker ASPACK (obecność sekcji co utrudnia analizę spakowanego sieciowych, itd.
.aspack). Bardzo popularny jest rów- nim malware.
nież paker UPX: Przykładowymi informacjami po-
Jak zidentyfikować chodzącymi z analizy statycznej
paker? mogłyby być te zaprezentowane na
Listing 1. Fragment
Do identyfikacji ciągów znaków Listingu 3.
pierwszego programu
wykorzystuje się programy strings Powyższy fragment kodu nie
!This program cannot be
(firmy Sysinternals) bądz BinText. wymaga, jak sądzę, szczegółowego
run in DOS mode.
Bardzo popularnym w środowisku komentarza. Wyraznie widać, że
Rich
analityków bezpieczeństwa na- jest on powiązany z wysyłaniem na
Xx0C
.text rzędziem jest także PEiD; niestety zdalną maszynę listu z jakimiś infor-
PEC2
korzysta on z ograniczonej bazy macjami. W kontekście analizy mal-
.rsrc
pakerów, w efekcie czego niektóre ware, listy tego rodzaju służą zwykle
,Xh($
pakery muszą być analizowane kradzieży poufnych informacji bądz
ject1
ręcznie. wysyłaniu niechcianej koresponden-
ltFp.7
PECompact2 Skąd wiemy że to malware, jeżeli cji. Kolejny fragment kodu:
go nie otworzyliśmy? Cóż, odpowiedz
Listing 2. Fragment programu
na to pytanie jest problematyczna: www.evilwhatever############
gdyby ocena taka była prosta, od- evilhack#####################
This program must be
powiednie rozwiązanie zostałoby Internet Banking HELLOWORLD
run under Win32
zapewne wbudowane we wszyst- Mr President
CODE
DATA
kie istniejące systemy operacyjne. Admin
.idata
W rzeczywistości zadanie to wydaje Admin1234admin
.tls
się bardzo trudne można jednak
.rdata
za pomocą wstępnej statycznej ana- Tutaj można domniemywać, iż złośliwy
.reloc
lizy pod kątem malware wyszukać program atakuje infrastrukturę interne-
.rsrc
.aspack
.adata
Listing 3. Informacje
pochodzące z analizy statycznej
RCPT TO:<
...
MAIL FROM:<
DATA
X-Mailer
...
steal@###########
evil@########
smtp.#########
Rysunek 1. Monitor plików
www.hakin9.org hakin9 Nr 5/2007 3
Początki
Po co korzystać tutaj powiedzieć o wykrywaniu wir-
static analysis
z maszyn wirtualnych tualnych maszyn temat ten można
Zastosowanie maszyny wirtualnej drążyć miesiącami, nie jest on jednak
start observation tools
(ang. virtual machine, VM) przy przedmiotem niniejszego artykułu.
analizie malware pozwala na pracę
execute malware application
z różnymi systemami operacyjnymi, Co robić,
network observation
ułatwia monitorowanie, pozwala na gdy malware wykrywa VM
process observation new files?
przywrócenie wcześniejszego stanu W przypadkach takich, naszym zada-
strange actions? didn't execute ;(
maszyny oraz zapewnia izolację od niem jest obejście w jakiś sposób tej
probably VM
rootkitprobable?
właściwego systemu operacyjnego. detekcji. Czasami korzystamy z root-
the registry!
kitów, by ukryć VM przed złośliwymi
Metody wykrywania programami (przykładowo, było to
maszyn wirtualnych niegdyś skuteczne wobec pakerów
Rysunek 2. Co mam zrobić?!
Maszyna wirtualna pozostawia w pa- Themida); ogółem staramy się uczy-
towych usług bankowych; posiadamy mięci ślady, posiada swój wirtualny nić wirtualną maszynę niewidzialną.
jednak zdecydowanie za mało infor- sprzęt i własne instrukcje. Jej ślady VMware oferuje pewne nieudoku-
macji, by wydać jednoznaczny osąd. znalezć można wśród procesów mentowane możliwości, które pozwa-
Wciąż nie chcemy próbować i w systemie plików, a także w reje- lają mu ukrywać się przed malware.
uruchamiać programu? Jest on spa- strze. Analityk może także znalezć Istnieje także szereg innych metod
kowany UPXem, widoczne są ciągi w pamięci pewne ciągi znaków, pozwalających na ukrywanie VM;
programu WinRAR. Po wnikliwej względnie rozejrzeć się w różnych część z nich powstaje chałupniczo,
analizie możemy dojść do wniosku, że miejscach struktur systemu opera- jako że ograniczenie wykrywalności
złośliwy program zamierza rozpako- cyjnego (bardzo ważne jest przyj- wciąż jest w kontekście analizy zło-
wać z archiwum jakieś pliki. Także i ten rzenie się Tablicy Deskryptorów śliwych programów zagadnieniem
sposób działania jest bardzo popularny Przerwań ang. Interrupt Descriptor stosunkowo nowym.
malware wyciąga pliki z archiwum, Table). W listopadzie 2004 Joanna
dodaje odpowiednie klucze do rejestru Rutkowska przedstawiła tak zwaną Co nam potrzeba, by zacząć?
i uaktywnia się tuż po restarcie kompu- czerwoną pigułkę, pozwalającą na Przede wszystkim należy zaopatrzyć
tera. Dzięki temu na początku nie jest dość skuteczne wykrywanie maszyn się w kilka narzędzi:
uruchamiany żaden złośliwy kod. wirtualnych. Czerwona pigułka wy-
wołuje SIDT (ang. single machine " BinText wydobywa łańcuchy zna-
Wprowadzenie language instruction, pojedynczą ków i jest bardzo przydatny pod-
do analizy malware instrukcję kodu maszynowego) i pa- czas statycznej analizy malware
Czego nam potrzeba? Zdecydowa- trzy na rezultaty; jako że położenie (tj. przed uruchomieniem czego-
nie powinniśmy uruchamiać złośli- IDT określane jest przez odpowiednie kolwiek)
we oprogramowanie pod wirtualną reguły, pierwszy bajt zwracany przez " Filemon to jeden z wielu dostęp-
maszyną; z drugiej strony, w wielu SIDT stwierdza, czy wykorzystywana nych monitorów plików obserwu-
przypadkach malware wykrywa jest wirtualna maszyna. Jest to jed- je on działania na systemie plików.
maszynę wirtualną i nie uruchamia nak dopiero początek wykrywania " Regmon monitoruje stan rejestru.
się (przypadek ten omówimy za maszyny wirtualnej, a oprócz SIDT Programy sieciowe wykorzystuje
chwilę). Dalej, przydadzą nam się można w tym celu wywołać SGDT się do obserwacji generowanego
monitory plików i rejestru, sniffery, i SDLT. Wirtualne maszyny często przez złośliwy program ruchu
wykrywacze rootkitów i wiele innych definiują też swój własny, wirtualny sieciowego.
narzędzi. Tuż przed uruchomieniem sprzęt, który może zostać zidentyfi- " Bardzo przydatnym, w przypadku
programu zalecane jest zastosowa- kowany. To wszystko, co chcieliśmy pracy z rejestrem narzędziem jest
nie technik odzyskiwania danych
stosowanych w śledztwach kompu-
terowych. W wielu przypadkach zło-
śliwe oprogramowanie (szczególnie
to atakujące instytucje finansowe)
zawiera obrazy i logo imitujące bank
ofiary i niekiedy można wydobyć zeń
te dane. W miarę upływu czasu staje
się to coraz bardziej skomplikowane,
jako że dane tego rodzaju są nie-
zwykle subtelnie maskowane nie
Rysunek 3. Cześć jestem Olly
mamy ich podanych na tacy.
www.hakin9.org
4 hakin9 Nr 5/2007
Podstawy badania malware
także Regshot pozwala on na może mieć poważne konsekwencje, banku. Załóżmy, że nie spodziewamy
porównanie stanu rejestru np. tuż jeżeli złośliwy program zdoła obejść się zastosowania spoofingu DNS;
przed i po iniekcji. wirtualizację i otrzymać nieuprawnio- istotą problemu jest tu więc zapewne
" Dzięki Process Explorerowi mo- ny dostęp do systemu. podatność serwisu banku na ataki
żemy obserwować działające Nie należy nigdy zdradzać infor- cross-site scripting bądz zezwalanie
w danej chwili procesy, opcjonal- macji na temat malware osobom, do na stosowanie przekierowań. Przykład
nie w czasie rzeczywistym, których nie mamy zaufania. Nie do takiej sytuacji: www.our-good-bank-
" UPX paker często stosowany uniknięcia jest kontrola dostępu. Pliki site.com/?page=%68%74%74%70%3A/
przez twórców malware, powinny być przekazywane innym /%77%77%77%2e%68%61%63%6B
" OllyDBG bardzo popularny de- analitykom w postaci skompresowa- %2e%70%6C
bugger. nej i zabezpieczonej hasłem, a także Chcemy połączyć się z zaufa-
poprzez bezpieczne kanały komuni- ną (w naszym przypadku) stroną,
Chcielibyśmy wiedzieć, jakie porty kacyjne. Najbardziej zalecane jest, by w dodatku znacznie lepiej zabezpie-
są otwierane i co jest wysyłane po prostu nigdy nie rozsyłać malware czoną niż przeciętna; niemniej, podą-
(prawdopodobnie skradzione poufne nawet pojedyncza pomyłka może żamy za jakimś innym odnośnikiem.
informacje) z naszej maszyny. Waż- mieć tutaj poważne konsekwencje. W przypadku luk typu XSS można
ne jest także znajdowanie serwerów, Ochrona przed podwójnym kliknię- też po prostu przygotować tego typu
z którymi łączy się malware. W efek- ciem należy pamiętać, że pliki mogą fałszywe strony, przeznaczone do
cie potrzebny jest nam szereg narzę- przez przypadek zostać uruchomione oszukania użytkownika.
dzi do obserwacji sieci, takich jak: przez kliknięcie na nie, w związku z Co dalej? Podążając za odnośni-
czym powinno się zmieniać rozsze- kiem, trafiamy na odpowiednio przy-
" TCPView wyświetla listę otwar- rzenie na jakieś bezpieczne. Jest to gotowaną stronę. Atak ten nie ma nic
tych portów, jeden z najpowszechniejszych błędów wspólnego z phishingiem; strona ta
" TDIMon obserwuje aktywność wśród niedoświadczonych analityków powoduje tylko nagłe zamknięcie
w sieci, robaków. przeglądarki, my zaś zapominamy
" Ethereal, Snort bądz inny sniffer. wkrótce o całym incydencie. Dwa
Coś prostego tygodnie pózniej następuje kradzież
Typowe procedury na początek poufnych informacji.
postępowania w analizie Otrzymaliśmy informację o nowym
złośliwych programów problemie z bezpieczeństwem. Opi- Analiza
Nigdy nie powinniśmy ryzykować za- sano go tak, jak to widzimy poniżej: Jest całkiem prawdopodobne, że
rażenia innych komputerów. Analiza [..] Każda osoba w naszym dziale w niniejszym przypadku zastoso-
powinna mieć zatem miejsce w izolo- otrzymała e-mail z odnośnikiem do wano malware, wykorzystujące nie-
wanym środowisku; popularnym roz- strony banku, z którym firma współ- dawno odkrytą lukę. Przyjrzano się
wiązaniem są tu maszyny wirtualne. pracuje. [..] Nikt nie spodziewał się podejrzanemu odnośnikowi; treść
Komputery do analizy bywają często jakichkolwiek problemów.[..] Dwa przygotowanej pod nim strony WWW
fizycznie odłączone od sieci, by tygodnie pózniej ukradziono nam jest zamaskowana, po jej zdekodo-
zapobiec przypadkowemu rozprze- poufne informacje[..]. Nasze maszy- waniu stwierdzamy, iż atakowała ona
strzenianiu próbki; z drugiej strony, ny mają zainstalowane wszystkie nieznaną wcześniej wadę przeglą-
w wielu przypadkach (gdy wykorzy- dostępne łaty[..] darki. Wykorzystany w tym eksploicie
stywana jest wirtualizacja) stosowana A zatem pracownik firmy otrzy- szelkod należał do kategorii pobierz
jest jedynie separacja logiczna, co muje e-mail z odnośnikiem do strony i uruchom, powodował pobranie ze
zdalnej maszyny pliku wykonywalne-
go. Przyszła pora na pobranie tego
pliku i rozpoczęciu nad nim pracy.
Analiza statyczna
Przede wszystkim ważne było osza-
cowanie możliwości działań złośliwe-
go programu, na podstawie zawartych
w nim ciągów znaków. Wydobyliśmy je
z pliku za pomocą narzędzia BinText.
Zastosowanie potem IDA Pro pozwo-
liło na stwierdzenie, iż plik spakowany
jest UPXem. Po rozpakowaniu pliku
wykonywalnego ponownie wykorzy-
stano BinText; tym razem byliśmy
Rysunek 4. Co mamy w rejestrze?
www.hakin9.org hakin9 Nr 5/2007 5
Początki
w stanie wydobyć z programu znacz- zostać zabite, nieprawdaż? Znalez- wać ten proces, zachodzące zmiany
nie więcej interesujących informacji. liśmy również podejrzane nazwy w rejestrze i systemie plików, a także
plików w rodzaju go2hell2398728.exe prowadzić analizę ruchu sieciowego.
Aańcuchy znaków te z kolei wykorzystywane są do Wyjście programu Regshot zasy-
SOFTWARE\Microsoft\Windows\ propagacji. Znaleziono także obra- gnalizowało stworzenie kilku plików;
CurrentVersion\Run Jeden z najpo- zek logo zaufanego banku, jednak kilka innych dodano do plików współ-
pularniejszych wśród malware łań- suma kontrolna MD5 tego logo oraz dzielonych. Nastąpiło wiele zmian
cuchów, pozwala uruchomić złośliwy zastosowanego obrazka, różniły się. w rejestrze. Analiza ruchu w sieci wy-
program zaraz po restarcie. Najprawdopodobniej miało to na celu kazała, że wysyłane e-maile zawie-
MAIL FROM Odkryliśmy, że dany ominięcie pewnych zabezpieczeń. rały treść losowo wybranych plików
program wysyła e-maile zawierające dokumentów. Złośliwy program gene-
jakieś informacje. Póki co, nie wiemy Analiza dynamiczna rował wiele ruchu, nikt jednak niczego
jednak nic o tym, jakie to informacje. Znalezienie istotnych informacji nie spostrzegł. W końcu leżący u pod-
Znalezliśmy również inne łańcuchy pozwoliło nam na odgadnięcie spo- staw problem został naprawiony.
typowe dla malware, na przykład na- sobu działania złośliwego programu: Najważniejszą częścią analizy mal-
zwy plików przypominające te, które najprawdopodobniej wykorzystuje on ware jest debugowanie. Debugowanie
stosowane są przez różne rozwiązania połączenia sieciowe do wykradania złośliwego programu pomaga nam
antywirusowe. Do czego one służą? poufnych informacji z komputerów zrozumieć szczegóły jego konstrukcji.
Cóż,w końcu jakieś procesy powinny swoich ofiar. Zamierzamy zaobserwo- Z drugiej strony, dokładne zdebugowa-
nie takiej aplikacji wymaga czasu ta
dziedzina bezpieczeństwa wymaga
niekonwencjonalnego podejścia. Jest
ono już obsługiwane przez narzędzia
automatycznej wizualizacji, IDA Pro po-
siada wiele wtyczek ulepszających je-
go funkcjonalność, jednak wciąż wiele
pozostało w tej sprawie do zrobienia.
Powyższy przykład analizy mal-
ware jest przykładem prostym. Zło-
śliwy program mógłby zainstalować
rootkit bądz wykrywać wirtualne ma-
szyny. W tym przypadku podstawo-
wym problemem było zastosowanie
nowo odkrytej luki, którą można było
wykorzystać na wiele sposobów.
Podsumowanie
Mam nadzieję, że niniejszy artykuł
pomógł wam zrozumieć sposoby ra-
dzenia sobie z malware. Zaintereso-
wanych dokładniejszym poznaniem
tego zagadnienia odsyłam do technik
obchodzenia sygnatur programów
Rysunek 5. Polączenia na talerzu(1)
antywirusowych, ataków, masko-
wania, pakowania i wydobywania
danych. Artykuł ten nie zawiera żad-
nych informacji o stosowanych przez
malware rootkitach, nie wspomina
też o sposobach unikania firewalli.
Warto pamiętać jednak, że wiedza
na ten temat jest niezbędna. l
O autorze
Michał Bućko jest niezależnym bada-
czem z dziedziny bezpieczeństwa infor-
matycznego.
Rysunek 6. Połączenia na talerzy(2)
www.hakin9.org
6 hakin9 Nr 5/2007
Wyszukiwarka
Podobne podstrony:
Polacy jak wy to robicieDobrze jest być dużym czyli jak oni to robiąJak wychowac gospodarne dzieci Wszystko o tym co powinny wiedziec i jak im to wytlumaczyc jawygoJak powstało to zdjęcie Poradniki Jak powstało to zdjęcie Swiatobrazu plPolska będzie w Afganistanie tak długo jak będzie to konieczneJak by to było DKAJak przygoda toJak trwoga to do KeynesaWybuch E coli w Europie to wojna biologicznawięcej podobnych podstron