====== Analiza skupljenih podataka ====== Analiza podataka je dijelom znanost, a dijelom umjetnost. Znanstveni dio analize nalaže dobru pripremu, detaljno ispitivanje klijenta te poznavanje alata kojima će se provoditi istraga. Umjetnički dio znači da istražitelj treba imati "osjećaj" za istragu - što je bitno i gdje to naći. ===== Procjena situacije ===== Prije početka analize, istražitelj treba biti upoznat sa sljedećim podacima kako bi bio siguran da potpuno razumije incident te da ga može riješiti efikasno i efektivno. - **Vremenski slijed događaja**\\ Ako je moguće, pokušati staviti incident u određeni vremenski okvir. - **Topografiju mreže** - **Tok podataka**\\ - **Sigurnosne aplikacije**\\ Što klijent ima u mreži i da li se drže zapisničke datoteke. - **Stanje napadnutih sustava**\\ - **Normalno stanje poslovanja**\\ Što je "normalno" za klijenta? Način na koji dodjeljuju imena, procesi koji se standardno vrte, kakav im je svakodnevni promet, koji sustavi normalno komuniciraju i još mnogo mogućih varijabli koje će omogućiti istražitelju da dobro obavi posao. ===== Analiza zapisničkih datoteka ===== {{ :capture:var_log_nocolor.jpg?400|Ispis svih log datoteka na ispitivanom poslužitelju}} Sve zapisničke datoteke (eng. //log files//) na Linux sustavu se pohranjuju u ''/var/log'' direktoriju. Tu su i datoteke sustava i dodatnih programskih aplikacija instaliranih na računalu.\\ Na slici ispisa ''/var/log'' direktorija desno se mogu primijetiti datoteke s brojevima na kraju. To su tzv. "rotirani arhivi". Trenutna verzija datoteke, npr. ''dmesg'', nema nikakvih dodataka na ime. Prethodna inačica se zove ''dmesg.0'', ona prije nje ''dmesg.1.gz'' i tako dalje. Najstarija datoteka ima najveći broj. To omogućuje alat ''logrotate'' koji, obično jednom dnevno (detalji u ''/etc/cron.daily''), "zarotira" datoteke, odnosno otvori novu, a ostalima poveća indeks i po potrebi ih komprimira. Podaci o ovom postupku se mogu vidjeti i promijeniti u ''/etc/logrotate.conf'' datoteci.\\ Prilikom pregledavanja datoteka, korisne su naredbe: ^ Naredba ^ Opis ^ | ''zgrep '' | Pretražuje komprimirane datoteke za određenim parametrom (riječ, izraz). | | ''tail - '',\\ ''tail -f /var/log/messages'' | Ispisuje posljednjih '''' redaka datoteke.\\ Slučaj s opcijom ''-f'' ispisuje sadržaj zapisničke datoteke dok skuplja podatke u stvarnom vremenu. | | ''more '' | Ispisuje sadržaj datoteke na zaslon stranicu po stranicu uz napomenu o tome koliki postotak datoteke preostaje: ''--More--(x%)''. Tipka ''b'' vraća ispis unatrag jednu stranicu. Opcija ''/'' omogućuje pretraživanje datoteke - u slučaju višestrukog pojavljivanja traženog pojma, tipkom ''n'' se preskače na sljedeći, a tipkom ''p'' na prethodni. Tipkom ''q'' se izlazi iz ispisa. | | ''less '' | Slično kao i ''more'', ali brže i pruža više kontrole korisniku. | | ''grep '' | Traži dani pojam u danoj datoteci. | Prilikom analize uzetih podataka, dobra praksa je imati popis ključnih riječi koje bi se mogle pojaviti u dokazima. Taj popis će biti specifičan za svaku pretragu i mijenjati će se kako istražitelj bude dolazio do novih spoznaja.\\ [[kljucne_rijeci_forenzika|Popis ključnih riječi za početak po preporuci autora knjige Unix and Linux Forensics Analysis]] ===== Aktivnosti korisnika ===== ==== Shell History ==== Linux pohranjuje aktivnosti korisnika u //shell history// datoteci lociranoj u direktoriju ''/home/''. Većina Linux distribucija pohranjuje posljednjih 500 linija upisanih u komandnu liniju. No tu su pohranjene samo naredbe koje je korisnik utipkao, ne i odziv sustava na naredbe. Ovi podaci se trebaju koristiti u kombinaciji s ostalim podacima iz istrage kako bi se dobila smislena slika. Pregled datoteke ''.bash_history'' se može dobiti naredbom ''$ cat .bash_history'' ili jednostavno ''$ history''. Neke od najpopularnijih ljuski su: * **BASH** - ''.bash_history'' * **C-Shell** - ''history.csh'' * **Korn** - ''.sh_history'' * **POSIX** - ''.sh_history'' * **Z-Shell** - ''.history'' ==== Ulogirani korisnici ==== {{ :capture:who_w.jpg?500|Ispis naredbi "who" i "w"}} Naredbama ''$ who'' i ''$ w'' se dobivaju podaci o trenutno ulogiranim korisnicima.\\ Polja u ispisu naredbe ''$ w'' su: * **User**\\ Ime korisnika. * **TTY Teletype**\\ ''tty#'' znači da je korisnik ulogiran u lokalnu konzolu. ''pts#'' i ''ttyp#'' znači da je ulogiran preko mreže. Na slici je korisnik dakle ulogiran preko mreže. * **From**\\ Lokacija ulogiranog korisnika. U slučaju lokalnog korisnika će biti ":0" ili ":0.0". U slučaju udaljenog korisnika će biti njegova IP adresa. * **Idle**\\ Koliko je vremena prošlo od posljednje aktivnosti korisnika. * **JCPU**\\ Ukupno vrijeme koliko su procesi korisnika koristili procesor od posljednjeg logina. * **PCPU**\\ Procesorsko vrijeme trenutnog procesa (onog u polju **What**) * **What**\\ Proces kojeg korisnik trenutno vrti. ===== Mrežne veze ===== ''netstat -an'' ''netstat -rn'' ===== Pokrenuti procesi ===== ''ps aux'' ''top'' ===== Open File Handlers ===== ''lsof'' - //List Open Files// pokazuje koje datoteke su (bile) otvorene i kojim procesima. Dodatne opcije su navedene u tablici: | ''lsof -i -U '' | Popisuje sve datoteke otvorenih Internet, x.25 (HP-UX) i Unix domena. | | ''lsof -i 4 -a -p 1234 '' | Popisuje sve otvorene IPv4 mrežne datoteke koje koristi proces s ID brojem 1234. | | ''lsof -i 6 '' | Popisuje sve otvorene IPv6 mrežne datoteke. | | ''lsof -i @wonderland.cc.purdue.edu:513-515'' | Popisuje sve datoteke koje koriste bilo koji protokol na portovima 513, 514, 515 na računalu wonderland.cc.purdue.edu | | ''lsof -i @mace'' | Popisuje sve datoteke koje koriste bilo koji protokol na bilo kojem portu računala mace.cc.purdue.edu (cc.purdue.edu je standardna domena). | | ''lsof -p 456,123,789 -u 1234,abe'' | Popisuje sve datoteke za login ime "abe" ili korisnički ID 1234 ili proces 456 ili 123 ili 789| | ''lsof /dev/hd4'' | Popisuje sve otvorene datoteke na uređaju ''/dev/hd4''. | | ''lsof /u/abe/foo'' | Traži proces koji koristi datoteku ''/u/abe/foo''. | | ''+L1'' | Označava sve odbačene (eng. //unlinked//) datoteke ili koje su označene za brisanje. |