14 marca 2010

Domowa oraz profesjonalna analiza złośliwego oprogramowania w praktyce

Analiza oprogramowania typu malware ma na celu przede wszystkim dokładne zrozumienie wszystkich funkcji zaimplementowanych w złośliwym programie, co w konsekwencji pozwala na opracowanie odpowiednich metod detekcyjnych, zapobiegawczych oraz leczniczych. Dokładne poznanie szkodliwego kodu wykorzystanego w trakcie konkretnego ataku, pozwala również na dokładną ocenę skutków całego incydentu, całkowite usunięcie zagrożenia oraz wdrożenie mechanizmów zdolnych do powstrzymania podobnych ataków w przyszłości. Profesjonalna analiza złośliwego oprogramowania jest zadaniem niezwykle złożonym, trudnym oraz wymagającym szerokiej wiedzy teoretycznej oraz praktycznej. Mało kto jednak wie, że z pomocą darmowych narzędzi, każdy może w prosty sposób przeprowadzić podstawową analizę malware'u.

Do podstawowej analizy złośliwego oprogramowania świetnie nadaje się serwis CWSandbox. Ta dostępna za darmo dla wszystkich usługa online, pozwala nam na zautomatyzowane przeanalizowanie funkcji zawartych w złośliwym programie. Przykładowo, przekażmy za pomocą przeznaczonego do tego celu formularza przygotowany przeze mnie na tę okazję plik testowy i zaczekać chwilę na wyniki. W wyniku otrzymamy szereg szczegółowych informacji na temat naszego pliku. W przypadku pliku test.exe najciekawsze informacje zawiera zakładka Network Activity (zrzut ekranu poniżej). Otóż wynika z niej, że plik zawiera funkcję nawiązywania połączenia z adresem 192.168.1.100 na porcie TCP port 31337. Wygląda więc na to, że nasz program testowy, po jego uruchomieniu, próbuje nawiązać połączenie zwrotne z komputerem intruza, czyli pełni prawdopodobnie rolę trojana. W taki o to prosty sposób, każdy może na swój użytek analizować zasadę działania odnalezionego przez siebie złośliwego kodu.
Profesjonalna analiza złośliwego oprogramowania to jednak zupełnie inna bajka. W tym przypadku nie obędzie się już bez zastosowania trudnych oraz czasochłonnych technik inżynierii odwrotnej. Jako, że złośliwe oprogramowanie dociera do nas w ogromnej większości przypadków w postaci binarnej (wykonywalnej) i nie mamy dostępu do jego kodów źródłowych, to chcąc poddać je analizie musimy wykonać najpierw dezasemblację. Otrzymany w ten sposób program w języku asemblera możemy już za pomocą odpowiednich narzędzi analizować.

Wszystkie osoby zainteresowane metodami profesjonalnej analizy złośliwego oprogramowania zapraszam do obejrzenia poniższego nagrania przygotowanego przez jednego z pracowników SANS Institute. Lenny Zeltser udostępnił do swego nagrania również prezentację oraz próbkę omawianego złośliwego oprogramowania, co daje nam unikalną możliwość praktycznego wypróbowania wszystkich omawianych metod oraz narzędzi. Mam nadzieję, że poniższy materiał uzmysłowi wszystkim na czym polega praca analityków złośliwego oprogramowania oraz pozwoli docenić ogrom pracy i wiedzy niezbędny do przeprowadzania tego typu analiz.