===== Forenzika Linux desktopa ===== Seminarski rad iz kolegija Računalna forenzika, akademske godine 2024./25. [[https://www.youtube.com/watch?v=7_CNzkc5aqI|Video prezentacija]] ===== Sažetak ===== U ovom radu obrađena je forenzika Linux sustava, ključno područje računalne forenzike, s naglaskom na analizu datotečnih sustava, RAM memorije, log datoteka te detekciju zlonamjernog softvera i neovlaštenih upada. Posebna pažnja posvećena je očuvanju integriteta dokaza korištenjem metoda poput stvaranja disk i RAM slika pomoću alata kao što su dd, Guymager i Volatility Framework. Razmatrane su specifičnosti ext datotečnih sustava, uključujući značajke inode strukture i journaling funkcionalnosti kod ext3 i ext4 sustava, koje omogućuju rekonstrukciju i oporavak izbrisanih podataka. U analizi RAM memorije istaknuta je važnost alata poput Volatility Frameworka za identifikaciju aktivnih procesa, mrežnih veza i zlonamjernih aktivnosti. Analiza log datoteka naglašena je kao ključan korak u rekonstrukciji događaja na sustavu, uz identifikaciju korisničkih aktivnosti i potencijalnih sigurnosnih prijetnji. Korišteni alati, poput chkrootkit, rkhunter i Snorta, omogućuju detekciju malwarea i otkrivanje anomalija u mrežnim aktivnostima. Zaključno, rad ističe važnost stručnog pristupa i specijaliziranih alata u forenzičkoj analizi Linux desktopa kako bi se osigurala prevencija i učinkovito upravljanje sigurnosnim incidentima. ===== Uvod ===== U današnjem digitalnom svijetu, računalna forenzika postala je ključan alat u istraživanju cyber kriminala i incidenta vezanih uz sigurnost informacijskih sustava. Dok se većina korisnika računala oslanja na operativne sustave poput Windowsa i Mac OS-a, mnogi poslužitelji i serverske infrastrukture koriste upravo Linux kao preferirani operacijski sustav. Zbog svoje fleksibilnosti, sigurnosti i otvorenog koda, Linux se često koristi u okruženjima gdje su pouzdanost, stabilnost i jednostavnost ključni. Forenzička analiza Linux sustava omogućuje stručnjacima da identificiraju zlonamjerne aktivnosti, analiziraju datotečne sustave, istražuju mrežne upade i dohvaćaju ključne podatke iz RAM memorije. S obzirom na sve veću upotrebu Linuxa u poslovnim i institucijskim okruženjima, razumijevanje i primjena Linux forenzike postaje neophodno za učinkovito upravljanje sigurnosnim incidentima i prevenciji istih. Računalna forenzika može biti korisna i onom manjem dijelu korisnika računala koji koriste Linux, ne samo zbog razumijevanja i prevencije sigurnosnih incidenata, već i iz razloga što neke forenzičke prakse mogu i sami koristiti, poput vraćanja izbrisanih datoteka. Cilj ovog rada je pružiti pregled metoda i alata korištenih u forenzici Linux desktopa, s posebnim naglaskom na analizu datotečnih sustava, RAM memorije, log datoteka, te otkrivanje zlonamjernog softvera i neovlaštenih upada. ===== Forenzika datotečnog sustava ===== Računala bi bila gotovo neupotrebljiva da ne postoji način trajne pohrane podataka, dostupnih i nakon gašenja računala. Kako bi računalo moglo upravljati memorijom i prepoznati značenje svakog pojedinog spremljenog bita, ona mora biti strukturirana kao datotečni sustav. Datotečni sustav je hijerarhijska organizacijska shema koja omogućuje računalu organizaciju, spremanje i dohvaćanje podataka. Najčešći datotečni sustavi na Windows računalima su FAT i NFTS, HFS na Mac OS-u i ext, ext2, ext3 i ext4 na Linuxu. U nastavku ovog odlomka fokus će biti na Linux datotečnim sustavima. U forenzici se analiza podataka gotovo uvijek provodi na slici diska, a ne na izvornom disku. Ovo pravilo je ključno za očuvanje integriteta dokaza, jer svaka manipulacija izvornim diskom može promijeniti podatke i ugroziti vjerodostojnost rezultata istrage. Korištenje slike diska osigurava da se izvorni disk ostavi netaknut, čime se omogućuje ponovna analiza ako je potrebno. Način provjere vjerodostojnosti i autentičnosti slike je hashiranje, gdje se koriste algoritmi poput MD5 ili SHA-256. Da bi se stvorila slika diska, koriste se alati za kloniranje poput dd, dcfldd, ili Guymager. Ovi alati kopiraju podatke sektor po sektor, stvarajući identičnu kopiju diska. Za učinkovitu forenzičku analizu Linux sustava, ključno je razumjeti način na koji je datotečni sustav organiziran. Diskovi su podijeljeni na fizičke sektore, koji su najmanje jedinice pohrane podataka na disku. Skup sektora čini particiju, a particijske informacije pohranjuju se u MBR (Master Boot Record) ili GPT (GUID Partition Table), ovisno o tipu diska. Forenzički alati mogu analizirati MBR kako bi identificirali skrivene particije ili modificirane podatke koji ukazuju na prisutnost zlonamjernog softvera ili skrivanja podataka. Koncept svih ext datotečnih sustava zasniva se na blokovima, grupama blokova i indeksnim čvorovima (engl. inode). Inode je glavna podatkovna struktura ext sustava. Svaki objekt u memoriji predstavljen je odgovarajućim indeksnim čvorom. Svaki inode sadrži metapodatke datoteke, uključujući: vlasnika, dozvole, vremenske oznake te lokacije blokova gdje su stvarni podaci datoteke pohranjeni. Indeksni čvorovi su vrlo važni u forenzičkoj analizi jer je pomoću njih moguće identificirati lokaciju datoteka i njihov sadržaj, povijest izmjena datoteka te potencijalno izbrisane ili fragmentirane podatke. Razumijevanje ovih elemenata omogućava forenzičarima da rekonstruiraju datotečni sustav, prate tok podataka i čak oporave datoteke koje su naizgled izgubljene. Oporavak izbrisanih datoteka relativno je jednostavan kod datotečnih sustava poput ext i ext2, jer oni prilikom brisanja samo uklanjaju referencu na datoteku, dok podaci ostaju netaknuti sve dok nisu pregaženi novim zapisima. Međutim, kod ext3 i ext4 oporavak je mnogo teži ili gotovo nemoguć jer ovi sustavi aktivno prepisuju metapodatke prilikom brisanja, čime uklanjaju ključne informacije potrebne za rekonstrukciju podataka. No, čak i kod ext3 i ext4 postoje načini na koje je moguće vratiti izbrisane podatke, a to su pretraga običnog teksta i file carving po magic numberu datoteka, uz uvjet da podaci nisu fragmentirani. Alati poput extundelete koriste journaling značajku ext3 i ext4 datotečnih sustava za vraćanje podataka iz dnevnika transakcija (engl. journal), gdje se promjene privremeno pohranjuju prije zapisivanja na disk. To omogućuje vraćanje izbrisanih datoteka ako podaci u journalu nisu prepisani, no alat ima ograničenja kod složenijih slučajeva ili sustava bez journaling funkcionalnosti. S druge strane, Autopsy je moćan forenzički alat otvorenog koda koji pruža širok spektar mogućnosti za analizu datotečnih sustava. Omogućuje istražiteljima da pregledavaju strukturu datoteka, analiziraju vremenske oznake, identificiraju korisničke aktivnosti, oporavljaju izbrisane datoteke te pretražuju disk slike. ===== Forenzika RAM memorije ===== RAM (engl. Random Access Memory) je radna memorija koja privremeno pohranjuje podatke potrebne za rad operativnog sustava i trenutačno pokrenutih aplikacija. U trajnoj memoriji su programi pohranjeni, a u RAM memoriji se oni izvršavaju. Za razliku od trajne memorije, poput tvrdih diskova i SSD-ova, podaci iz RAM-a se gube prilikom isključenja računala. RAM forenzika je ključna jer se u RAM memoriji nalaze podaci koji nisu spremljeni na disk, poput lozinki, ključeva za enkripciju, sadržaja aktivnih mrežnih veza, privremeno spremljenih datoteka te podataka o trenutačno pokrenutim procesima. Analiza RAM memorije omogućuje forenzičarima pregled aktivnosti sustava u realnom vremenu, pronalazak zlonamjernih procesa ili analize napada koji nisu ostavili trag na trajnim medijima. Slično kao i u prethodnom poglavlju, analiza memorije provodi se nad njenom slikom. Važnost ovog pravila u slučaju RAM memorije je još veća budući da se RAM memorija konstantno mijenja te će sama analiza memorije vrlo vjerojatno rezultirati uništenjem potencijalnih dokaza. Postoji više načina dobivanja slike RAM memorije, a priloženi dijagram toka vrlo intuitivno prikazuje koji način je u kojoj situaciji najbolji. {{ :racfor_wiki:seminari2024:flowchart.png?350 |}} **Slika 1**: Dijagram toka odabira načina dobivanja slike RAM memorije, [[https://www.fer.unizg.hr/predmet/racfor/materijali|Izvor]] Ako je sustav na kojem se želi izvršiti forenzička analiza virtualni stroj, RAM se može lako izdvojiti korištenjem ugrađenih funkcija za pauziranje i spremanje stanja virtualnog stroja. Ako se ne radi o virtualnom stroju, a sustav je ugašen, tada je RAM memorija prazna. U tom slučaju jedino što preostaje je pregled crash dump datoteke, ako je došlo do greške sustava, ili hibernacijske datoteke i datoteke straničenja. Ukoliko postoji, hibernacijska datoteka sadrži kompletni sadržaj RAM-a prije gašenja sustava, a datoteka straničenja sadrži trenutačno neaktivne stranice memorije. Ako sustav nije ugašen i imamo pristup rootu, posežemo za softwerskim alatima koji mogu stvoriti dump RAM memorije, npr. imap, pmem, Belkasoft RAM Capturer itd. Na kraju, ako nemamo pristup rootu, jedino što preostaje su specijalizirani uređaji koji koriste tehnologije poput PCI Express kartica i Direct Memory Access (DMA) za izdvajanje sadržaja RAM-a, ili cold boot. Analiza RAM memorije provodi se na dva načina. Prvi, i najjednostavniji je pretraga teksta memorije po poznatom sadržaju. U ovoj metodi mogu se koristiti alati terminala poput grepa, a korisno je i korištenje regularnih izraza (engl. regex). Drugi način je korištenje naprednih alata Volatility Frameworka ili Mandiant Redlinea, koji omogućuju forenzičarima da analiziraju sadržaj RAM memorije na razini strukture jezgre. Ovi alati su također vrlo korisni jer mogu identificirati aktivne procese, mrežne veze, biblioteke u memoriji, a čak i skrivene ili zlonamjerne procese. ===== Log datoteke i ostali Linux desktop artefakti ===== Analiza log datoteka ključni je dio forenzike jer omogućuje istraživanje prošlih događaja na sustavu. Logovi pružaju povijest aktivnosti sustava, korisnika i aplikacija, što forenzičarima daje uvid u potencijalne sigurnosne incidente, nepravilnosti ili aktivnosti zlonamjernih korisnika. Log datoteke u Linux sustavima bilježe sve od prijava korisnika, izvršavanja zadataka, mrežnih aktivnosti, do sistemskih grešaka. Njihovo razumijevanje i analiza omogućuju rekonstrukciju događaja koji su prethodili potencijalnom incidentu. Log datoteke su tekstualni zapisi u kojima sustav i aplikacije bilježe informacije o svom radu. Na Linux sustavima logovi su obično spremljeni u obliku običnih tekstualnih datoteka unutar specifičnih direktorija, pri čemu se najčešće nalaze u direktoriju /var/log/. Činjenica da su zapisi u tekstualnom formatu znači da je i sama analiza jednostavna, no to svojstvo također koriste i napadači za pronalazak i brisanje vlastitih tragova. Log zapisi su najčešće jednolinijski, tj. jedna linija predstavlja jedan log zapis. Syslog je standardni sustav za generiranje i upravljanje logovima na Unix i Linux sustavima. Syslog koristi klijent-server model pa se logovi mogu spremati lokalno, na nekom udaljenom serveru, ili oboje. Syslog logovi sadrže vrijeme i datum stvaranja loga, naziv računala na kojemu se događaj dogodio, naziv procesa koji je napravio događaj, te tekst događaja. Nove Linux distribucije sve češće koriste umjesto Sysloga koriste Journald, koji logove zapisuje u binarnom formatu što omogućuje brže pretraživanje i filtriranje logova. Moguće je da na istom sustavu budu i Journald i syslog logovi. Osim log datoteka, forenzička analiza često uključuje i druge artefakte koji mogu otkriti korisničke aktivnosti i promjene na sustavu. Neki od bitnijih su konfiguracijske datoteke i logovi protokola SSH, Cron zadaci koji se automatski izvršavaju u određenim vremenskim intervalima te Bash povijest koja sprema povijest naredbi unesenih u terminal sustava. Analiza ovih artefakata zajedno s log datotekama omogućuje forenzičarima da dobiju potpunu sliku o aktivnostima sustava i korisnika. Kombinacijom osnovnih alata za pretraživanje i naprednih forenzičkih aplikacija može se identificirati i rekonstruirati tijek događaja koji su doveli do sigurnosnih incidenata. Bitni direktoriji i opis što spremaju navedeni su u tablici koja slijedi. **Tablica 1:** Bitni direktoriji i opis spremljenih logova | **DIREKTORIJ** |**OPIS** | | /var/run/utmp | Aktivne prijave. | | /var/log/wtmp | Spremljene informacije o prijavama. | | /var/log/lastlog | Informacije o zadnjoj prijavi svih korisnika. | | /var/log/syslog | Glavna datoteka za zapisivanje sistemskih poruka. | | /var/log/messages | Općeniti sistemski log o događajima na razini sustava. | | /var/log/auth.log | Bilježi sve pokušaje prijave u sustav. Bilježi prijave SSH protokolom. Bilježi sudo privilegirane komande.| | /var/log/httpd/* | Logovi Apache Web Servera. | | /var/log/nginx/ | Logovi pristupa i greški za nginx. | | /var/log/maillog | Logovi mail servera. | | /etc/ssh | Pohranjuje SSH ključeve i konfiguracijske datoteke. | | /var/log/cron | Logovi vezani uz automatski zakazane Cron zadatke. | | /var/spool/cron | Korisnički Cron zadaci. | | ~/.bash_history | Povijest naredbi unešenih u terminal. | ===== Malware i Intrusion Detection ===== Malware (od engl. malicious software) predstavlja softver osmišljen za nanošenje štete, krađu podataka ili neovlašten pristup sustavima. Primjeri malicioznih aktivnosti uključuju ransomware, keyloggere, backdoor programe i rootkitove. Rootkit je vrsta zlonamjernog softvera koja napadaču omogućuje udaljenu administrativnu kontrolu nad kompromitiranim računalom. Razvijeni su s ciljem da budu nevidljivi na zaraženom računalu. Iako se Linux sustavi često smatraju sigurnijima od Windows sustava, nisu imuni na napade, osobito jer su široko korišteni na poslužiteljima i ključnoj infrastrukturi. Intrusion Detection je proces prepoznavanja neovlaštenog pristupa ili aktivnosti na sustavu. Forenzička analiza usredotočuje se na tragove koji otkrivaju zlonamjerne aktivnosti, poput izmjena u sustavu, neuobičajenih mrežnih komunikacija, instaliranog malicioznog softvera ili prilagođenih skripti za eksploataciju. Za otkrivanje malwarea koriste se specijalni alati poput chkrootkit i rkhunter (od engl. rootkit hunter), koji skeniraju sustav tražeći poznate tragove rootkita ili drugih zlonamjernih softverskih komponenti. ClamAV jedan je od najboljih besplatnih antivirusnih alata koji omogućuje detekciju virusa, malwarea i općenito zlonamjernih programa na Linux sustavu. Lynis je open-source alat za sigurnosni audit UNIX/Linux sustava koji provodi detaljne sigurnosne provjere, identificira ranjivosti i nudi preporuke za unapređenje sigurnosti sustava. Sveobuhvatna analiza ovog alata uključuje provjeru konfiguracija, korisničkih računa, firewall-a i softverskih ranjivosti, čime pomaže u otkrivanju ranjivih točaka i jačanju sustava. Dodatno, IDS (engl. Intrusion Detection Systems) poput open-source alata Snort ili komercijalno dostupnog IBM Security NIPS alata omogućuju otkrivanje neuobičajenih mrežnih aktivnosti pomoću analiza paketa i uzoraka napada. Ovi alati oslanjaju se na unaprijed definirane pravila ili analizu ponašanja kako bi otkrili potencijalne prijetnje. Također, ovi alati održavaju svoje dnevnike, pomoću kojih je ponekad moguće rekonstruirati napad. IDS alati su često zapravo IPS (engl. Intrusion Prevention Systems), jer moderni sigurnosni sustavi ne samo da detektiraju prijetnje, već i automatski poduzimaju akcije kako bi spriječili potencijalne napade i neovlašteni pristup. ===== Zaključak ===== Forenzika Linux sustava predstavlja kompleksno, ali iznimno važno područje u računalnoj forenzici. Kako sigurnosne prijetnje postaju sve sofisticiranije, potreba za detaljnim razumijevanjem datotečnih sustava, RAM memorije, logova te alata za otkrivanje malwarea postaje ključna. Ovaj rad pružio je pregled osnovnih metoda i alata koji se koriste u forenzičkoj analizi Linux desktopa, od osnovne analize log datoteka i artefakata do naprednih tehnika oporavka podataka i analize RAM-a. Poseban naglasak stavljen je na važnost očuvanja integriteta dokaza, što je temelj svakog uspješnog forenzičkog istraživanja. Također, naglašena je uloga specijaliziranih alata kao što su Autopsy, Volatility Framework, chkrootkit, Snort i mnogi drugi, koji omogućuju istražiteljima preciznu analizu i otkrivanje zlonamjernih aktivnosti. U konačnici, učinkovita primjena forenzičkih alata i metoda ne samo da omogućuje otkrivanje uzroka incidenta nego i pomaže u njegovoj prevenciji, čime se značajno doprinosi sigurnosti informacijskih sustava. ===== Literatura ===== [1] Pale, P., Predavanja iz kolegija Računalna Forenzika (Nastavni materijali) - https://www.fer.unizg.hr/predmet/racfor/materijali [2] Patil, D., Digital Forensic Analysis of Ubuntu File System (2016), International Journal of Cyber-Security and Digital Forensics 5(4):175-186 [3] Creating a Forensic Disk Image with the Linux Guymager Utility (2020) - https://www.cybrary.it/blog/creating-a-forensic-disk-image-using-the-linux-guymager-utility, Pristup: 27.12.2024. [4] Tools memory imaging - https://forensics.wiki/tools_memory_imaging/, Pristup: 27.12.2024. [5] 7 essential Linux forensics artifacts every investigator should know (2024)- https://www.magnetforensics.com/blog/linux-forensics-artifacts-every-investigator-should-know/, Pristup: 5.1.2025. [6] Linux Log Files Location And How Do I View Logs Files on Linux? (2024) - https://www.cyberciti.biz/faq/linux-log-files-location-and-how-do-i-view-logs-files/, Pristup: 5.1.2025. [7] O rootkit softveru - https://www.cert.hr/rootkitovi/, Pristup: 20.1.2025. [8] 5 Tools to Scan a Linux Server for Malware and Rootkits (2023) - https://www.tecmint.com/scan-linux-for-malware-and-rootkits/, Pristup: 20.1.2025. [9] The Three Best Tools You Need to Scan Your Linux System for Malware (2024) - https://linuxsecurity.com/features/the-three-best-tools-you-need-to-scan-your-linux-system-for-malware, Pristup: 20.1.2025.