2009.10_Akwizycja i analiza pamięci.pdf

(375 KB) Pobierz
439177263 UNPDF
PRAKTYKA
PRZEMYSŁAW KREJZA
Akwizycja
i analiza
pamięci
Stopień trudności
do popisu dla
malware’u i innego
oprogramowania
oraz sporą
przestrzeń do
przechowywania
ciekawych danych,
które mogą być
śladami lub nawet
dowodami w
różnego rodzaju
incydentach.
Trudno dziś sobie wyobrazić analizy powłamaniowe, czy inne
związane z szeroko pojętą informatyką śledczą, bez analizy
pamięci operacyjnej badanego komputera. Teza ta jest
tym bardziej aktualna, że wielkość pamięci współczesnych
komputerów, średnio od 2 do 8 GB RAM, daje wielkie pole
uznane za dowód w incydencie
muszą zostać w pierwszej kolejności
zgromadzone. Jeśli zebrany materiał nie
będzie pochodził ze wszystkich możliwych
źródeł wyprowadzenie właściwych wniosków
z incydentu może być trudne, a nawet
niemożliwe. Historycznie rzecz ujmując,
cyfrowe dochodzenia opierały się o
zapisy zawarte na twardym dysku i innych
nośnikach, przechowujących dane w sposób
trwały. Większość śledczych zakładało,
że tylko w informacji zapisanej na takim
nośniku można odnaleźć coś ciekawego.
Inne miejsca, zwane pamięciami ulotnymi,
takie jak np. pamięć operacyjna czy ruch
sieciowy pozostawały w sferze niedostępnej
i niezrozumiałej. Podobnie narzędzia służące
do analizy i zabezpieczania takich danych
były właściwie nieosiągalne i trudne w
użyciu. Obecnie, chcąc odnaleźć przyczyny
kompromitacji systemu, jego źródła i powody,
nie sposób nie zajrzeć do pamięci RAM czy
ruchu sieciowego. Niniejszy artykuł stanowi
wprowadzenie do złożonej tematyki analizy
pamięci ulotnych na przykładzie akwizycji
i analizy pamięci operacyjnej podejrzanej
maszyny.
w żywym systemie do celów dalszej analizy.
W uproszczeniu, pozyskana w ten sposób
kopia jest podobna do kopii binarnej np.
dysku twardego, jednak aby ją wykonać
musimy przystosować swoje narzędzia i
techniki do nowych warunków związanych z
koniecznością pracy na działającym materiale
dowodowym. Pozyskiwanie informacji z
działających systemów jest bowiem czym
innym niż praca z pamięciami statycznymi,
gdzie do wykonania kopii binarnej dysku
w pierwszej kolejności należało wyłączyć
komputer. Wykonana kopia była stanem
ustalonym z zamkniętego systemu, gdzie
wszystkie dane są już zapisane. Pracujący
system operacyjny jest natomiast w stanie
nieustannej zmiany a wykonany zrzut pamięci
jest niejako zamrożeniem czasu tj. stanu w
danej chwili. Choć sam proces akwizycji
pamięci RAM jest stosunkowo prosty, łatwo
tu o pomyłkę oraz działania, które mogą
zatrzeć oczekiwane ślady. Dlatego przed
rozpoczęciem prawdziwych spraw warto
przygotować własny set narzędzi i przećwiczyć
odpowiednie procedury.
Na początek, o czym trzeba pamiętać:
Z ARTYKUŁU
DOWIESZ SIĘ
jak ważna jest analiza pamięci
RAM,
jakie są najpopularniejsze
narzędzia do akwizycji pamięci
oraz jakie są ich możliwości,
jakie są najpopularniejsze
narzędzia do analizy pamięci
oraz jakie są ich możliwości,
CO POWINIENEŚ
WIEDZIEĆ
znać podstawy architektury
systemów,
znać podstawy
administrowania komputerem,
znać podstawy informatyki
śledczej.
• Dokumentuj każdy krok. Dokumentacja
zawsze może się przydać.
• Musisz mieć pełny dostęp do systemu.
W innym wypadku akwizycja będzie
niemożliwa.
Akwizycja pamięci
Proces ten sprowadza się do wykonania
kopii binarnej (image, dump, zrzut) pamięci
68
HAKIN9 10/2009
Z anim dane elektroniczne zostaną
439177263.004.png 439177263.005.png 439177263.006.png
AKWIZYCJA I ANALIZA PAMIĘCI
• W docelowej maszynie nie zamykaj
żadnych okien, dokumentów lub
programów. Każda zmiana stanu
systemu ma wpływ na zwartość
pamięci.
• Staraj się wykonać akwizycję w
jak najmniejszej ilości kroków. Miej
narzędzia uprzednio przygotowane.
• Pamiętaj, aby nośnik na który
wykonujesz zrzut pamięci był większy
niż zainstalowana w docelowej
maszynie ilość pamięci (jedynie
WinEn daje możliwość kompresji,
jednak nie zalecamy jej stosowania).
• Dla pewności, w celu uniknięcia
wymieszania danych w sytuacjach
nieprzewidzianych, stosuj odrębny
nośnik na plik kopii, a przed użyciem
wyzeruj całkowicie przygotowaną na
nim partycję.
• Używaj wyłącznie zaufanych narzędzi.
Im mniej pamięci alokuje narzędzie
tym lepiej. Przykładowo Nigilant32
(obecnie beta) zajmuje mniej niż 1Mb
pamięci, a Helix już ok 18Mb. Dzięki
temu pozostawisz mniej własnych
śladów w pamięci.
• Staraj się ustalić dokładną wersję
systemu operacyjnego. Ustalenie
tego faktu jest znacznie łatwiejsze w
działającym systemie niż z wykonanej
kopii binarnej pamięci, a informacja
ta może być przydatna w trakcie
analiz.
zarówno płatnych, jak i darmowych,
przedstawiających sobą różne
możliwości. Wśród nich warto spojrzeć na
przedstawione w Tabelce 1 popularne i
przetestowane rozwiązania.
binarnej, pamięci, jak i jej pełną
analizę z użyciem dostępnych
skryptów.
Akwizycja pamięci
Wybór odpowiedniego narzędzia
w zależności od wersji i składników
systemu to najważniejszy element
procesu akwizycji. W poniższym
przykładzie do zapisania obrazu
pamięci zastosowano nośnik USB i
program WinEn do wykonania akwizycji
na systemie testowym. Narzędzie do
akwizycji uruchomiono z napędu CD-
ROM. W stanie systemu widocznym
na poniższym ekranie, za pomocą
polecenia … wykonano akwizycję
pamięci.
Zapis pamięci, w zależności od
pojemności, trwa dłuższą chwilę.
Większość prezentowanych tu
programów posiada indykator progresu.
Część z nich automatycznie, w trakcie
tworzenia, wylicza hash (MD5, SHA)
obrazu. Wyliczony ponownie hash,
jeśli jest niezmieniony, może być
dowodem autentyczności i wierności
kopii w protokole zabezpieczania. Nie
wszystkie programy do akwizycji mają
taką możliwość. Konieczne może być
wówczas zastosowanie dodatkowego
narzędzia do wyliczenia sumy
kontrolnej.
Tak wykonana kopia pamięci
w dalszej części analiz stanie się
materiałem oryginalnym. Zamrożony
stan systemu jest niepowtarzalny i
jakikolwiek błąd może nas kosztować
• FastDump –został napisany przez
HBGary, firmę specjalizującą się w
narzędziach analizy pamięci, wraz
z profesjonalnym programem do
badania pamięci (Responder) z
wykorzystaniem mechanizmu DNA.
W wersji darmowej jest zubożony o
bardziej złożone funkcjonalności.
• WinEn.exe jest narzędziem płatnym
jednak został dołączony do Helix od
wersji 2.0. Wykonuje kopie binarne
pamięci w formacie EnCase z
możliwością kompresji wersja
dystrybuowana z Encase 6.12
wspiera również sumę kontrolną
SHA-1.
• Mantech Memory DD lub MDD
– proste narzędzie wykonujące
kopie binarne w formacie RAW lub
DD.
• Win32dd – dobrej klasy narzędzie
do wykonywania kopi pamięci w
formacie RAW, DD lub WinDbg.
• Mandiant Memoryze – Mandiant
jest jedną z bardziej znanych firm
wyspecjalizowanych w narzędziach
incident response. Memoryze
wykonuje kopie w formacie DD lub
RAW.
• Encase jest złożoną platformą
analityczną. Encase pozwala
zarówno na wykonywanie kopii
Narzędzia do akwizycji
W sieci dostępnych jest sporo
narzędzi do akwizycji pamięci RAM,
Tabela 1. Wybrane programy do akwizycji pamięci RAM
FastDump
Pro
FastDump
Community
WinEn
WinEn64
MDD Memoryze Win32DD Encase
Producent HBGary HBGary Guidance
Software
ManTech Mandiant Mattieu Suiche Guidance Software
Licencja Free Płatna Płatna Free Free GNU
Płatna
64bit Nie Tak Tak Nie -
-
Tak
>4Gb Nie Tak Tak - -
-
Tak
Win 2008
serwer
Nie Tak - - -
Tak
Tak
Win 2003
serwer
Nie Tak Tak Tak Tak
Tak
Tak
Win XP Tak Tak Tak Tak Tak
Tak
Tak
Vista Nie Tak Tak Tak SP1
Tak
Tak
10/2009
HAKIN9
69
439177263.007.png
PRAKTYKA
utratę ważnych dowodów. Dlatego,
zgodnie z zasadami informatyki
śledczej (również incydent response ),
prawidłowa analiza powinna być
prowadzona wyłącznie na dodatkowej
kopii.
Warto w tym miejscu wspomnieć,
iż dostępne są również rozwiązania
pozwalające na akwizycję pamięci
poprzez sieć komputerową.
Przykładem może być tu F-Response,
pozwalający na zdalny dostęp do
systemu w trybie read-only, w tym
również do pamięci operacyjnej. F-
Response tworzy środowisko, w którym
możliwe jest stosowanie rozwiązań
zewnętrznych np. do wykonywania kopii
I analiz.
Rysunek 1. Stan systemu przed akwizycją
Jeśli komputer
jest zablokowany
Jeśli zablokowany komputer z systemem
2000/XP/Vista posiada port firewire
(wbudowany lub w wymiennej karcie
PCMCIA) możesz wykorzystać dostępne
od Helix 1.9 narzędzia i przejąć nad
nim kontrolę używając winlockpwn ,
który wykorzystuje lukę w specyfikacji
IEEE 1394, umożliwiając spatchowanie
procesu logowania w pamięci i
zalogowanie się do systemu bez
znajomości właściwego hasła.
Proces wymaga przyłączenia
przez firewire drugiego komputera
z uruchomionym systemem Unix/
Linux i załadowanymi bibliotekami
pythonraw1394, zawierającymi romtool
(emuluje IPod na firewire) i skrypt
winlockpwn.py . Helix LiveCD od wersji
1.9 jest już odpowiednio przygotowany.
Wystarczy, że uruchomisz romtool
i winlockpwn . Atakowany system
pozwoli na odblokowanie konsoli bez
znajomości hasła.
Dostępne od Helix 1.9 narzędzia
Adama Boileau pozwalają również na
zimagowanie zawartości pamięci bez
zalogowania się do systemu. Program
1394memimage pozwala na zrzut
pamięci ofiary na dysk usb. Dzięki temu
możliwe jest np. pozyskanie właściwego
hasła konsoli.
Jeśli port nie jest dostępny
to najlepszym rozwiązaniem jest
reboot systemu oraz uruchomienie
alternatywnego systemu operacyjnego,
z małymi potrzebami alokacji (syslinux),
a następnie niezwłoczny zrzut
zawartości pamięci (np. za pomocą
Msramdmp).
Princeton research ( http:
//citp.princeton.edu/memory/ )
opisało również proces związany z
Rysunek 2. Proces akwizycji
Rysunek 3. Zawartość notepad (analiza za pomocą EnCase)
70
HAKIN9 10/2009
439177263.001.png
AKWIZYCJA I ANALIZA PAMIĘCI
pozyskiwaniem informacji z systemów,
po ich wyłączeniu. Przedstawionego
doświadczenia nie udało nam się
powtórzyć w warunkach laboratoryjnych,
jednak możliwe jest, iż ma on związek
z zastosowaną pamięcią lub innymi
czynnikami.
na rozwiązaniach, które muszą
pracować w środowisku, co do
którego nie możemy mieć zaufania
– kernel systemu operacyjnego
maszyny, w której tworzymy kopię
pamięci. Z jakiegokolwiek nośnika
nie uruchomilibyśmy programu,
nie ma możliwości całkowitego
wyeliminowania roli kernel, ponieważ
system musi mieć kontrolę nad
przepływem danych. Możliwym
rozwiązaniem jest spatchowanie
niezbędnych elementów kernel i
zastąpienie ich zaufanymi. Mechanizm
ten wykorzystują niektóre złośliwe
kody. Jednak problemem może
być zdolność skompromitowanego
systemu do obrony przed takimi
operacjami, a ustalenie stanu zaufania
systemu nie będzie możliwe, co w
konsekwencji może doprowadzić do
crash w trakcie akwizycji pamięci lub
pozyskania spreparowanej kopii, nie
zawierającej żadnych śladów infekcji
(zob. Shadow Walker Rootkit ).
Nie bez znaczenia jest również
fakt, że zaangażowanie systemu w
proces wykonania programu do
akwizycji danych powoduje konieczność
alokacji przestrzeni dla zastosowanego
rozwiązania, a tym samym istnieje
ryzyko nadpisania istotnej zawartości.
Można to porównać do instalowania
oprogramowania do odzyskiwania
danych na dysku, z którego chcemy
odzyskać dane.
Dlatego oprócz rozwiązań
softwarowych istnieją również
dedykowane rozwiązania sprzętowe,
wykorzystujące bezpośredni dostęp
do pamięci poprzez mostek PCI.
Rozwiązania takie nie opierają się o
jakikolwiek składnik systemu, jednak
wymagają wcześniejszej instalacji
odpowiedniej karty, co nie zawsze jest
możliwe.
Inne problemy
Część narzędzi służących do
wykonywania kopi binarnej RAM
przygotowana jest do pracy w
podstawowych konfiguracjach XP32/
>4Gb pamięci. W niektórych działaniach
mamy jednak do czynienia z systemami
64-bitowym lub większą ilością
pamięci. Zastosowanie niewłaściwego
rozwiązania może w takiej sytuacji
doprowadzić do crash systemu, co
może nie być pożądane. Najbezpieczniej
stosować wtedy FastDump Pro lub
EnCase WinEn. Niestety są to płatne
programy.
Nie zawsze również mamy
możliwość bezpośredniego
przyłączenia się do badanego systemu.
W takiej sytuacji przydatne okazują
się Helix i Netcat lub F-Response,
a w bardzo zaawansowanych
rozwiązaniach EnCase Enterprise.
Narzędzia analityczne
Ze względu na zaawansowanie
użytkowników, większość dostępnych
narzędzi analitycznych nie posiada
interfejsu GUI. Wymagana jest tu
często znajomość złożonych poleceń,
używanych z wiersza poleceń. Dostępne
narzędzia posiadające GUI są na ogół
płatne. Z przyczyn oczywistych łatwiej
jest również odnaleźć narzędzia do
analizy zrzutów Windows. Poszukując
właściwego dla siebie rozwiązania
warto przetestować kilka narzędzi.
W Tabelce 2 przedstawiono kilka
wybranych.
• BinText jest małym programem,
pozwalającym na wydobywanie
ciągów ASCI lub UNICODE z
plików binarnych. Posiada bardzo
użyteczne mechanizmy filtrowania i
wyszukiwania informacji. Dzięki temu
możliwe jest szybkie wydobywanie
tekstów np. z zawartości otwartych
okien.
Ograniczenia
akwizycji softwarowej
Akwizycja pamięci operacyjnej
działającego komputera, za
pomocą oprogramowania, bazuje
Tabela 2. Wybrane narzędzia stosowane w analizie pamięci
BinText
EnCase Responder Volatitity
Memoryze
Producent Foudstone Guidance Software HBGary
Volatile Systems Mandiant
Licencja GPL
Płatna
Płatna
GPL
GPL
Platforma Windows Windows Windows Windows
Windows
Format i pochodzenie analizowanych kopi binarnych
Vista
Tak
Tak
Tak
Nie
Nie
XP
Tak
Tak
Tak
SP2&SP3
SP2&SP3
2008 -
Tak
Tak
Nie
-
2003 -
Tak
Tak
Nie
SP2
64 bit -
Tak
Tak
Nie
Nie
Akceptowane
obrazy
RAW
EnCase, RAW RAW
RAW, Hiber File, Crash
Dump
RAW
Inne możliwości Tworzy hasła listy do
ataku
Dostępne skrypty Współpraca z
EnCase
Wiele dostępnych
pluginów
Może być użyty z
EnCase
10/2009
HAKIN9
71
439177263.002.png
PRAKTYKA
• Encase – złożona platforma
analityczna, pozwalająca na
wyszukiwanie i ekstrakcję dowolnych
informacji w tym z użyciem skryptów.
W połączeniu HBGary Responder
daje duże możliwości analityczne.
• HBGary Responder – jedno
z bardziej zaawansowanych
narzędzi dostępnych na rynku,
z możliwościami automatycznej
analizy kodów i wykrywania malware
na podstawie obrazu pamięci i
zawartych w niej kodów aplikacji
(mechanizm DNA).
• Volatility Framework – bazuje na
Python. Jest kolekcją narzędzi
pomocną w wydobywaniu artefaktów,
takich jak uruchomione procesy,
połączenia sieciowe, otwarte klucze
rejestru, itd.
• Mandiant Memoryze – element
zestawu narzędzi, służących do
analiz powłamaniowych, reverse
engeenieringu , analizy malware.
Pozwala pozyskiwać informacje
o uruchomionych procesach,
połączeniach sieciowych, driverach (w
tym ukrytych).
systemie, jego historii i działaniach
użytkownika. Jej zawartość może być
zasadniczo analizowana podobnie
jak obraz np. dysku twardego, jednak
można w niej odnaleźć informacje, które
na dysku twardym praktycznie nigdy nie
są zapisywane. W zależności od ilości
zainstalowanej pamięci i intensywności
pracy systemu, przechowywane
informacje mogą pochodzić z wielu dni
– praktycznie od ostatniego włączenia
systemu. Dla przykładu w wyniku analizy
Rysunek 4. Odwiedzane strony internetowe. Analiza za pomocą NetAnalysys i skryptu
EnCase
Przedstawione powyżej narzędzia
są uniwersalne i stosunkowo proste
w zastosowaniu. Rozwiązań, w tym
również dedykowanych do konkretnego
problemu, jest jednak znacznie
więcej. Istotne jest również, że każdy z
popularnych programów typu forensic
(EnCase, FTK, XWays), po zamontowaniu
obrazu tak samo, jak w wypadku kopi
binarnej dysku twardego, pozwoli nam
na badania pod kontem występowania
słów kluczowych, odwiedzanych stron
internetowych, raw recovery, itd.
Analiza pamięci
Pamięć operacyjna może być cennym
źródłem informacji o badanym
Rysunek 5. Uszkodzone zdjęcie wydobyte z pamięci
Ślady w pamięci
Każde zastosowane w działającym komputerze narzędzie pozostawia w pamięci własne ślady. Pamiętajmy, że w zależności od danej sprawy,
zgromadzone przez nas informacje mogą stać się dowodami w sądzie, nawet jeśli tego nie zakładamy (np. zwolniony na ich podstawie nieuczciwy
pracownik uda się do sądu pracy). Pozostawienie śladów w pamięci może wymagać dodatkowych wyjaśnień, a wypowiadający się w danej
sprawie biegły może zwrócić na nie uwagę. Dlatego zabezpieczając jakiekolwiek dane informatyczne, zawsze warto posługiwać się protokołem
zabezpieczania, w którym należy odnotować dokładny czas, miejsce, dokładny przebieg kopiowania i opis zastosowanego narzędzia (nazwa,
wersja, itd.).
72
HAKIN9 10/2009
439177263.003.png
Zgłoś jeśli naruszono regulamin