analiza slike radne memorije pomoću volatility...
TRANSCRIPT
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
Seminarski rad u sklopu kolegija „Računalna forenzika“ [2018/2019]
Analiza slike radne memorije pomoću Volatility frameworka
Ivana Marinović
Zagreb, lipanj, 2019.
Sadržaj
1. Uvod ..................................................................................................................... 3
2. Volatility ................................................................................................................ 4
3. Analiza slike radne memorije pomoću Volatility-a ................................................ 5
3.1 Prepoznavanje operacijskog sustava ............................................................ 5
3.2 Popis procesa ............................................................................................... 6
3.3 Analiza specifičnog procesa .......................................................................... 7
3.4 Analiza mrežnih veza .................................................................................... 9
3.5 Povijest preglednika ...................................................................................... 9
3.6 Otkrivanje zapisa u međuspremniku ........................................................... 10
4. Zaključak ............................................................................................................ 11
5. Literatura ............................................................................................................ 12
3
1. Uvod
Porastom broja korisnika osobnih računala i uređaja povećao se rizik od raznih
računalnih napada. Područje računalne forenzike bavi se prikupljanjem i
analiziranjem tragova na računalnim sustavima. Jedna od grana računalne forenzike
je forenzika radne memorije koja se bavi pronalaženjem tragova radne memorije
računala. Posebno je zanimljiva jer je radna memorija računala izrazito promjenjiva
te se u nju zapisuju podaci o trenutnoj aktivnosti i svim programima koji se trenutno
izvršavaju. Zato je forenzika radne memorije postala jako bitna za analizu i otkrivanje
tragova budući da se takvi podaci ne nalaze na drugim jedinicama računala. U
sklopu ovog seminarskog rada bit će opisano korištenje Volatility [4] alata,
najpopularnijeg alata za analizu slike radne memorije.
4
2. Volatility
Forenzika radne memorije računala započinje pribavljanjem (eng. acquisition)
slike radne memorije nakon koje je potrebno analizirati sliku odgovarajućim alatima.
Volatility Framework je skup alata implementiranih u Phytonu za analizu radne
memorije računala koji nudi razne mogućnosti zbog kojeg ga koriste forenzičari
cijelog svijeta. Volatility je alat otvorenog koda (eng. open source) koji pomaže u
analizi radne slike memorije, a dostupan je za širok spektar operacijskih sustava
poput Windowsa, Linuxa, macOS-a. U mogućnosti je procesirati slike raznih formata.
[4] Za operacijski sustav Windows koji se koristi u ovom radu Volatility se instalira u
obliku izvršne datoteke i naredbe se pozivaju u prozoru naredbenog retka (eng.
command line window). Iako se analiza slike izvodi potpuno neovisno o sustavu koji
se istražuje, ovim tehnikama mogu otkriti jako zanimljivi tragovi koji su ostali zapisani
u trenutku snimanja slike memorije. Volatility nam omogućava otkriti operacijski
sustav koji se nalazio na računalu u trenutku pribavljanja slike memorije, procese koji
su bili pokrenuti, korisnike koji su pokretali te procese, popis mrežnih veza, sadržaj
međuspremnika, neke od Web stranica koje su bile posjećene. Volatility se
unaprjeđuje iz dana u dan i moguća su proširenja raznim dodacima kako bi analiza
bila što detaljnija i uspješnija.
5
3. Analiza slike radne memorije pomoću Volatility-a
U ovom poglavlju bit će prikazane osnovne naredbe kojima se analizirala slika
radne memorije snimljena na računalu u laboratoriju Zavoda za elektroničke sustave
i obradbu informacija na Fakultetu Elektrotehnike i računarstva. U posljednjoj inačici
alata Volatility 2.6 koji se koristio nije podržano interpretiranje slika radne memorije
za najnovije verzije Windowsa 10. Zbog tog je slika radne memorije snimljena u
laboratoriju na računalu koji koristi stariju verziju, odnosno Windows XP. Postoje
razni alati za pribavljanje radne slike memorije. U ovom slučaju koristio se alat
Magnet RAM Capture [5] kojim je snimljena slika pod nazivom slikaRAMa3.raw.
Važno je napomenuti kako bilo koji alat koji se koristi za snimanje može utjecati
odnosno izmijeniti stanje memorije koju u tom trenutku želimo snimiti. Osim
softverskog kopiranja slike, slika se još može pribaviti preko virtualnog stroja i
hardware-a. [6] Analiza slike izvodi se postepeno pozivanjem naredbi u naredbenom
retku prije kojeg je potrebno pozicionirati se u direktorij gdje se nalazi Volatility.
3.1 Prepoznavanje operacijskog sustava
Kao što je već spomenuto Volatility alatom mogu se analizirati slike radnih
memorija s raznih računalnih sustava, no za ispravan rad Volatility treba točan
podatak o kojem sustavu i kojoj verziji je riječ. Ponekad je ta informacija izostavljena i
zato se u početku analize koristi naredba imageinfo, točnije u ovom slučaju volatility -
f slikaRAMA3.raw imageinfo. Na Slika 1. prikazani su rezultati te se može vidjeti kako
Volatility predlaže više profila operacijskog sustava za ovu sliku radne memorije.
Osim toga, otkriva se datum i vrijeme kad je slika snimljena. Nama je poznata verzija
operacijskog sustava pa se odlučujemo za profil WinXPSP2x86. U idućim
naredbama trebalo je u sve komande uključiti profil operacijskog sustava i putanju do
slike, odnosno njen naziv budući da se nalazi u istom direktoriju kao i Volatility.
6
Slika 1. Otkrivanje verzije i profila operacijskog sustava
3.2 Popis procesa
Jedan od najlakših načina dobivanja liste procesa koji su se izvršavali u trenutku
kad je slika snimljena je korištenje naredbe pslist. Na Slika 2. mogu se vidjeti
korisne informacije poput imena procesa i vremena njihovog pokretanja. Iz liste
procesa saznaje se PID (eng. Personal ID) svakog procesa koji uključujemo u
naredbe ako se radi o analizi određenog procesa. [3] Osim Windows procesa
dodatnim istraživanjem prepoznajemo još neke među kojima su antivirusni programi
McAfee i McShield, Web preglednike poput Mozzile Firefox i Internet Expolorer,
također kalkulator, Microsoft Word i razni drugi programi. Također u popisu procesa
nalazi se program Magnet Ram Capture kojim se snimala slika radne memorije. Ipak,
problem je što naredba pslist ne može prepoznati procese koji su se sakrili iz te liste
ili su završili neposredno prije nego je slika bila snimljena. Pstree naredba prikazuje
listu procesa u stablastom formatu kako bi bilo jasno razumjeti veze između procesa,
odnosno koji je stvorio kojeg. Budući da se temelji na istom radu kao i pslist lako je
moguće da se neki zloćudni program sakrije iz liste procesa koju pstree može
prikazati. Tad se kreće u potragu s naredbom psscan koja je iznimno korisna metoda
jer može pronaći procese koji su se maknuli s liste procesa kako bi izbjegli detekciju,
ali može i otkriti procese koji su završili prije trenutka snimanja slike. [3]
7
Slika 2. Popis procesa korištenjem naredbe pslist
3.3 Analiza specifičnog procesa
Jednom kad je neki proces iz liste identificiran kao opasnost nužno je poduzeti
dodatne korake kako bi se potvrdile te sumnje i odredila priroda samog procesa. Za
pristupanje ostalim objektima sustava, proces mora imati dopuštenje i osigurati ručku
(eng.handle) za taj objekt [3]. „Ručke (eng. handles) su apstrakcija operacijskog
sustava Windows – to su identifikatori pomoću kojih proces pristupa objektima
operacijskog sustava. Primjeri takvih objekata su datoteke, ključevi registra i
sinkronizacijski mehanizmi“ [2]. Listu ručki nekog procesa možemo dobiti naredbom
handles. Kako bi filtrirali ručke po vrsti objekta za koje služe korisno je u naredbu
handles uključiti findstr i definirati koje objekte želimo ispisati. U ovom primjeru
naredbom volatility -f slikaRAMa3.raw --profile=WinXPSP2x86 handles --pid=3988 |
findstr File ispisane su ručke otvorenih datoteka Microsoft Word kojem je PID=3988.
8
Slika 3. Ispis ručki otvorenih datoteka za Microsoft Word
Volatility alatom moguće je saznati s kojim argumentima naredbene linije je neki
program pozvan. [2] Naredba koja nam to omogućuje je cmdline, u našem slučaju za
McShield potpuna naredba je volatility --f slikaRAMA3.raw --profile=WinXPSP2x86
cmdline --pid=1388. Na Slika 4. prikazan je rezultat te naredbe.
Slika 4. Argumenti naredbene linije za proces McShield
U slučaju sumnje da je neki proces zloćudan naredbom procdump moguće je
rekonstruirati izvršnu datoteku. Iako rezultat neće u potpunosti odgovarati izvornoj
datoteci, sadržaj strojnog koda vjerojatno će biti isti. Rekonstruiranu datoteku
možemo otvoriti raznim alatima, ali i antivirusnim alatima utvrditi radi li se o
zlonamjernom programu. [2] U sklopu ovog rada naredbom volatility -f
slikaRAMa3.raw --profile=WinXPSP2x86 --dump-dir=dump --pid=2256 procdump
rekonstruirana je izvršna datoteka programa Magnet RAM Capture i spremljena u
novi direktorij dump.
Slika 5. Rekonstruirana izvršna datoteka procesa kojem je PID =2256
9
3.4 Analiza mrežnih veza
Jedna od ključnih stvari pri analizi radne slike memorije računala i traženju
malicioznog ponašanja je analiza mrežnih veza. Za novije verzije Windowsa koristi se
naredba netscan, a u ovom slučaju za sliku snimljenu na Windows XP korištena je
naredba connections. Na Slika 6. prikazan je samo dio IP adresa na koje je računalo
bilo spojeno, ali iz TCP priključaka lako saznajemo da se radi o spajanju na Web
stranice. Također preko PID broja gledajući u
Slika 2. može se zaključiti i o kojem procesu je riječ, Internet Explorer.
10
Slika 6. Popis mrežnih veza
3.5 Povijest preglednika
U prethodnom koraku otkriveno je kako se u trenutku snimanja memorije koristio
Web preglednik Internet Explorer. Kako bi pokušali otkriti kada i koje od Web stranica
su bile posjećene potrebno je koristiti naredbu iehistory. Iz Slika 7 može se
pretpostaviti da je korisnik u tom trenu čitao jedan hrvatski portal. Treba napomenuti
kako je naredba iehistory u sklopu osnovnih naredbi Volatility alata, ali postoje razni
dodaci kojima se može istraživati povijest ostalih preglednika.
Slika 7. Povijest preglednika Internet Explorer
3.6 Otkrivanje zapisa u međuspremniku
Međuspremnik se nalazi u radnoj memoriji računala i koristi se dok korisnik
izvršava radnju kopiranja i lijepljenja nekog teksta. Računalnom forenzikom radne
11
memorije moguće je djelomično otkriti što je bilo zapisano u međuspremniku u
trenutku kad je slika spremljena. Naredbom volatility -f slikaRAMa3.raw --
profile=WinXPSP2x86 clipboard može se prepoznati da je u jedan dio spremnika
zapisano „Upi?ite ra?unalnu fore...je ba? dobar predmet :)“ što se može vidjeti na
Slika 8.
Slika 8. Otkrivanje sadržaja međuspremnika
12
4. Zaključak
Radna memorija računala pohranjuje razne podatke među kojima su informacije
o procesima koji se trenutno izvršavaju, poruke, lozinke, privremeni tekstovi, mrežne
veze i priključci, podaci o datotečnom sustavu i razne druge stvari. [5] Zbog tog,
računalna forenzika radne memorije je jako zanimljiva i korisna forenzičarima u
mogućim napadima te se takvi dokazi koriste i u sudskim procesima. Kad se kreće u
analizu radne memorije iz bilo kojeg razloga vrlo je bitno utvrditi jednu od mnogih
metoda prikupljanja slike radne memorije. U sklopu ovog rada, slika je dobivena
korištenjem alata Magnet RAM Capturer, a analiza se provodila jako moćnim i
jednostavnim alatom Volatility. Iako su u radu prikazane samo neke od osnovnih i
najzanimljivijih naredbi, Volatility je alat otvorenog koda dostupan svima i često se
nadograđuje novim dodacima. Slika radne memorije koja se analizirala nije bila
zaražena zloćudnim programom, ali može se zaključiti kako je Volatility u mogućnosti
oporaviti veliku količinu podataka s kojim bi u obrnutom slučaju s malo znanja i volje
sigurno mogli doći do nekih tragova koji vode otkrivanju nepoznatih i zloćudnih
programa.
13
5. Literatura
[1 ] Volatility, https://www.cert.hr/wp-content/uploads/2018/03/alat_volatility.pdf 13.6.2019
[2] Korištenje alata Volatility za forenzičku analizu radne memorije računala https://www.cert.hr/wp-content/uploads/2018/04/volatility.pdf 13.6.2019
[3] Windows memory analysis with Volatility https://www.forwarddefense.com/pdfs/Memory-Analysis-with-Volatility.pdf 13.06.2019
[4] Volatility Foundation: http://www.volatilityfoundation.org 10.06.2019
[5] FREE TOOL MAGNET Process Capture https://www.magnetforensics.com/resources/magnet-process-capture/ 13.06.2019
[6] Forenzika radne memorije, Viktor Kvaternjak, Predrag Pale https://www.fer.unizg.hr/_download/repository/RacFor-RAM-Slides-pp-v11.pdf 24.05.20019