wtorek, 23 września 2014

Analiza Malware dla każdego #1

Malware są to wszelkie aplikacje, skrypty mające szkodliwe, przestępcze lub złośliwe działanie w stosunku do komputera. W obecnych czasach cyberprzestępcy organizują się w grupy, które tworzą exploity typu 0day, czyli złośliwe kody, które pojawiają się na czarnym rynku jeszcze przed publikacją poprawki przez producenta. Coraz głośniej jest o atakach APT przeprowadzonych z wykorzystaniem złośliwego oprogramowania i jest to problem dotykający zarówno organizacje jak i użytkowników domowych.

Minęły już czasy, gdy analizą malware zajmowały sie tylko i wyłącznie firmy antywirusowe. Na rynku istnieją darmowe narzędzia, które są bardzo łatwe w użyciu i pozwolą na podstawową analizę malware. Celem analizy jest zdobycie wiedzy o malware, która pozwoli odpowiedzieć na dwa bardzo ważne pytania: W jaki sposób komputer został zainfekowany przez malware i co dokładnie robi malware.


Dzisiaj przedstawię dwa rodzaje analizy. Pierwsza to dynamiczna analiza malware na Androidzie, do której wykorzystam emulator Androida MobiSec w celu uruchomienia malware i program REMnux, na którym zostanie przeprowadzona analiza. Do drugiej analizy zostanie wykorzystany program Redline firmy Mandiant i pokaże jak wykonać analizę pamięci zainfekowanego komputera.

Rodzaje analizy malware

Istnieją dwa rodzaje analizy malware: statyczna (analiza kodu) i dynamiczna (behawioralna), czyli jak sie zachowuje malware). Oba rodzaje analizy mają ten sam cel, aby poznać jak działa malware, ale różnią się ze względu na narzędzia, czas i umiejętności, jakich użyjemy. Analiza kodu jest to nic innego jak przeglądanie kodu i na podstawie tego poznawanie jak działa malware. Bardzo często w celu analizy kodu używa się narzędzi do reverse engineering takich jak deasemblery, debuggery czy dekomlipatory. Po udanym procesie reverse engineering, będzie można zobaczyć jak działa kod źródłowy malware i zastosować mechanizmy obronne.

Analiza behawioralna polega na tym, że obserwuje się zachowanie malware, z czym się łączy, co zostało zainstalowane i jak działa. Zazwyczaj szukamy zmian w systemie i innych podejrzanych zdarzeń, jakie malware spowodowało np. pliki zostały wgrane, zmodyfikowane, nowe serwisy zostały zainstalowane, nowe procesy uruchomione, zmiany w rejestrze itd. Jest to analiza typu "quick and dirty". Analizę behawioralną powinno się wykonywać na komputerze, który jest odłączony od sieci a pliki powinny być kopiowane przez read only media jak CD-ROM. W celu całkowitego poznania jak działa malware powinno się wykonać obie analizy.




Narzędzia do analizy malware

Istnieją różne narzędzia w zależności od rodzaju analizy, którą będziemy wykonywać. Poniżej przedstawię kilka darmowych narzędzi do analizy dynamicznej i statycznej, które pozwolą zaobserwować, w jaki sposób malware zachowuje sie w środowisku systemowym

Narzędzia do analizy dynamicznej:

Monitorowanie systemu plików i rejestru:

Process Monitor i Capture BAT pokazują w czasie rzeczywistym aktywność rejestru, systemu plików oraz procesów. Programy dostarczają informację na temat każdej pozycji. Wszystkie działania zostają zapisane w dzienniku zdarzeń. Programy te pozwalają zrozumieć, w jaki sposób malware próbuje osadzić się w systemie podczas infekcji.
http://technet.microsoft.com/en-ie/sysinternals/bb896645.aspx
https://www.honeynet.org/node/315

Monitorowanie procesów:
Process Explorer, Process Monitor i Process Hacker - wyświetlają szczegółowe informacje o każdym z uruchomionych procesów wraz z podaniem, jakie pliki i biblioteki DLL są przez dany proces używane, umożliwiają sprawdzanie cyfrowych podpisów plików. Każdy uruchomiony program może zostać uśpiony, wyświetlana jest też lista parametrów, z jakimi został uruchomiony. Ponadto, w zasobniku systemowym (tzw. tray) wyświetlane jest użycie mocy procesora i procesu, który pochłania najwięcej mocy obliczeniowej. Pokazują w czasie rzeczywistym aktywność rejestru, systemu plików oraz procesów i jakie porty sieciowe malware stara sie otworzyć.
http://technet.microsoft.com/en-ie/sysinternals/bb896653.aspx
http://technet.microsoft.com/en-ie/sysinternals/bb896645.aspx
http://processhacker.sourceforge.net/

Monitorowanie sieci:


Wireshark i  SmartSniff -  Umożliwiają przechwytywanie, analizowanie ruchu sieciowego.
http://www.wireshark.org/
http://www.nirsoft.net/utils/smsniff.html

Wykrywanie zmian:

Regshot - program do porównywania zmian systemu przed i po infekcji. Pokazuje zmiany, jakich dokonalo malware w systemie plików i rejestrze.
http://sourceforge.net/projects/regshot/

Narzędzia do monitorowania dynamicznego dają nam możliwość poznania kluczowych zasad działania malware. Natomiast szczegółowe informacje poznamy po wykonaniu analizy kodu.

Narzędzia do analizy kodu:
Przeglądanie kodu złośliwego oprogramowania pozwoli nam odkryć dodatkowe informacje, które mogą być trudne do uzyskania za pomocą analizy behawioralnej. Uzyskanie dostępu do kodu źródłowego będzie możliwe za pomocą darmowych programów.

Deasemblery i debuggery:


OllyBbd i IDA Pro Freeware - umożliwiają analizę kodu skompilowanych plików EXE w formacie PE. Ponadto pozwalają znajdować istotne fragmenty programu, ponieważ umożliwiają śledzenie, jakie operacje wywołują poszczególne polecenia zawarte w kodzie analizowanego programu.
http://www.ollydbg.de/
https://www.hex-rays.com/products/ida/support/download_freeware.shtml

Programy do zrzutów pamięci:

LordPE i OllyDump - są bardzo przydatne w przypadku gdy oryginalny kod zostaje spakowany, a do pliku dodany zostaje krótki program wykonujący operację odwrotną.
http://www.woodmann.com/collaborative/tools/index.php/LordPE
http://www.woodmann.com/collaborative/tools/index.php/OllyDump


Labolatorium

Głównym założeniem analizy malware jest zainfekowanie próbką malware systemu i następnie za pomocą odpowiednich narzędzi obserwacja, w jaki sposób malware działa. Jest to proces bardzo niebezpieczny, ponieważ nieuwaga może spowodować, że malware rozprzestrzeni się i zainfekuje pozostałe komputery. Najlepszym sposobem na analizę malware jest zbudowanie własnego laboratorium, które będzie odizolowane od środowiska produkcyjnego. Najbardziej popularnym i wygodnym sposobem będzie użycie darmowych narzędzi do wirtualizacji takich jak VMware Server, Windows Virtual PC, Microsoft Virtual Server czy VirtualBox.


Na powyższym diagramie malware będzie uruchamiane na maszynie Windows XP lub MobiSec w zależności od rodzaju analizy, która zostanie przeprowadzona na REMnuxie lub Redline. Wszystkie maszyny są podłączone do tej samej sieci (192.168.11.0/24) dzięki czemu pozwoli to nam na monitorowanie ruchu sieciowego generowanego przez próbki malware na REMnuxie. Kolejną dobrą praktyką jest stosowanie snapshots w celu odtwarzania poprzedniego stanu systemu operacyjnego przed każdą infekcją malware.



Brak komentarzy:

Prześlij komentarz