Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
| racfor_wiki:mrezna_forenzika:bpf_tehnologija [2020/01/09 12:27] ksalamun [Primjena u analizi datotečnog sustava] | racfor_wiki:mrezna_forenzika:bpf_tehnologija [2024/12/05 12:24] (trenutno) | ||
|---|---|---|---|
| Redak 17: | Redak 17: | ||
| ===== Uvod ===== | ===== Uvod ===== | ||
| - | Berkeley Packet Filter (BPF) tehnologija početno je razvijena u svrhu poboljšanja rada alata za primanje i obradu paketa mrežnog prometa. Nakon značajnih promjena osnovne inačice, BPF tehnologija postaje napredan alat za analizu i filtriranje mrežnog prometa i kao takva uključena je u jezgru operacijskog sustava Linux (engl. //kernel//). | + | |
| + | Berkeley Packet Filter (BPF) tehnologija početno je razvijena u svrhu poboljšanja rada alata za primanje i obradu paketa mrežnog prometa. Nakon značajnih promjena osnovne inačice, BPF tehnologija postaje napredan alat za analizu i filtriranje mrežnog prometa i kao takva uključena je u jezgru operacijskog sustava Linux. | ||
| Kako bi se iskoristile prednosti moderne arhitekture računala, uvedena je proširena BPF tehnologija - eBPF (engl. //extended BPF//). Pripadni instrukcijski set prilagođen je na procesore suvremenih računala, što znatno poboljšava performanse. Proširena BPF tehnologija bit će opisana u sljedećem poglavlju. Važno je napomenuti da nakon proširenja funkcionalnosti BPF prestaje biti skraćenica naziva alata za filtriranje, | Kako bi se iskoristile prednosti moderne arhitekture računala, uvedena je proširena BPF tehnologija - eBPF (engl. //extended BPF//). Pripadni instrukcijski set prilagođen je na procesore suvremenih računala, što znatno poboljšava performanse. Proširena BPF tehnologija bit će opisana u sljedećem poglavlju. Važno je napomenuti da nakon proširenja funkcionalnosti BPF prestaje biti skraćenica naziva alata za filtriranje, | ||
| Redak 23: | Redak 24: | ||
| BPF se sastoji od instrukcijskog seta, struktura podataka i pomoćnih funkcija. S obzirom da ima virtualni instrukcijski set, BPF se može smatrati virtualnim strojem. BPF arhitektura bit će detaljnije opisana u poglavlju //Opis arhitekture// | BPF se sastoji od instrukcijskog seta, struktura podataka i pomoćnih funkcija. S obzirom da ima virtualni instrukcijski set, BPF se može smatrati virtualnim strojem. BPF arhitektura bit će detaljnije opisana u poglavlju //Opis arhitekture// | ||
| - | Otkako je BPF tehnologija postala široko primjenjiva, | + | Otkako je BPF tehnologija postala široko primjenjiva, | 
| Redak 83: | Redak 84: | ||
| **opensnoop** | **opensnoop** | ||
| - | Alat opensnoop prati operacije otvaranja datoteka (sistemski poziv //open//) i koristan je za otkrivanje podatkovnih i konfiguraicijskih datoteka te dnevnika. Moguće je otkriti i probleme uzrokovane učestalim otvaranjem datoteka. U nastavku je naveden primjer korištenja naredbe. U ispisu se može uočiti utjecaj naredbe ispis datoteke (cat) na testnu datoteku. | + | Alat '' | 
| < | < | ||
| Redak 97: | Redak 98: | ||
| **scread** | **scread** | ||
| - | Pomoću alata scread moguće je pratiti operacije čitanja datoteka (sistemski poziv //read//). Ime datoteke dohvaća se iz tablice deskriptora datoteka. | + | Pomoću alata '' | 
| < | < | ||
| Redak 111: | Redak 112: | ||
| **filelife** | **filelife** | ||
| - | Alat filelife služi za utvrđivanje vijeka trajanja datoteka za datoteke koje su stvorene tijekom praćenja. Ispisuje vrijeme proteklo od stvaranja datoteke do brisanja. | + | Alat '' | 
| - | Radi ilustracije u primjeru je naveden dio ispisa alata filelife tijekom prevođenja Linux jezgre. U ispisu se mogu uočiti privremene datoteke koje generira prevoditelj gcc. | + | Radi ilustracije u primjeru je naveden dio ispisa alata '' | 
| < | < | ||
| Redak 129: | Redak 130: | ||
| U nastavku su navedeni uobičajeni koraci analize datotečnog sustava: | U nastavku su navedeni uobičajeni koraci analize datotečnog sustava: | ||
| - | 1. identifikacija montirane datotečne sustave (naredba df i [[http:// | + | 1. identifikacija montirane datotečne sustave (naredba | 
| 2. provjera kapaciteta montiranih datotečnih sustava | 2. provjera kapaciteta montiranih datotečnih sustava | ||
| Redak 137: | Redak 138: | ||
| 4. pokrenuti alat [[http:// | 4. pokrenuti alat [[http:// | ||
| - | 5. pokrenuti alat filelife radi provjere postoje li datoteke s kratkoročnom upotrebom | + | 5. pokrenuti alat '' | 
| 6. ispitati brzinu rada datotečnog sustava i utvrditi detalje o aktivnim procesima i datotekama (primjerice alat [[http:// | 6. ispitati brzinu rada datotečnog sustava i utvrditi detalje o aktivnim procesima i datotekama (primjerice alat [[http:// | ||
| Redak 143: | Redak 144: | ||
| 7. ispitati raspodjelu latencije datotečnog sustava (alat [[http:// | 7. ispitati raspodjelu latencije datotečnog sustava (alat [[http:// | ||
| - | 8. utvrditi udio pogodaka priručne memorije | + | 8. utvrditi udio pogodaka priručne memorije | 
| - | 9. usporediti brzinu logičkih i fizičkih ulazno/ | + | 9. usporediti brzinu logičkih i fizičkih ulazno/ | 
| Redak 156: | Redak 157: | ||
| **execsnoop** | **execsnoop** | ||
| - | Alat execsnoop prati izvođenje novih procesa, a koristan je za detekciju kratkotrajnih procesa koje je teško uočiti korištenjem alata kao što je top.  U nastavku | + | Alat '' | 
| < | < | ||
| Redak 163: | Redak 164: | ||
| TIME PID ARGS | TIME PID ARGS | ||
| 22114 | 22114 | ||
| + | 21983 | ||
| </ | </ | ||
| Redak 168: | Redak 170: | ||
| **runqlat** | **runqlat** | ||
| - | Alat runqlat služi za mjerenje latencije raspoređivača. Ova karakteristika korisna je za definiranje zasićenja procesora, stanja u kojem ima više zahtjeva za resursima nego što se može obraditi. Kao što je vidljivo u primjeru, rezultat naredbe je histogram koji pokazuje | + | Alat '' | 
| < | < | ||
| Redak 193: | Redak 195: | ||
| ==== Primjena u analizi mrežnog prometa ==== | ==== Primjena u analizi mrežnog prometa ==== | ||
| - | Mrežni promet odvija se putem različitih slojeva i protokola, uključujući | + | Mrežni promet odvija se putem različitih slojeva i protokola, uključujući | 
| * Koje TCP veze su pokrenute? Od strane kojih procesa? | * Koje TCP veze su pokrenute? Od strane kojih procesa? | ||
| Redak 208: | Redak 210: | ||
| **sockstat** | **sockstat** | ||
| - | Pomoću alata sockstat moguće je ispisati statistiku priključaka uz broj sistemskih poziva vezanih uz priključke. Ispis se ponavlja za svaku proteklu sekundu. U ovom primjeru vidljivi su sistemski pozivi '' | + | Pomoću alata '' | 
| - | Ovaj alat pruža uvid u statistiku priključaka na visokoj razini i koristan je za pokretanje daljnje analize. U ispis je uključen i naziv ispitivača (engl. probe) kako bi se olakšala analiza. Primjerice, ako je uočen prevelik broj '' | + | Ovaj alat pruža uvid u statistiku priključaka na visokoj razini i koristan je za pokretanje daljnje analize. U ispis je uključen i naziv ispitivača (engl. | 
| < | < | ||
| Redak 223: | Redak 225: | ||
| **sofamily** | **sofamily** | ||
| - | Alat sofamily omogućuje praćenje novih povezivanja na priključke putem sistemskih poziva accept i connect. Također, navodi se naziv procesa i obitelj adresa (IPv4 ili IPv6). Alat je koristan za detekciju neočekivane uporabe priključaka. U nastavku je naveden primjer korištenja ovog alata. | + | Alat '' | 
| < | < | ||
| Redak 234: | Redak 236: | ||
| </ | </ | ||
| - | U uglatim zagradama je navedeno redom: ime procesa, broj obitelji adresa te ime obitelji adresa, ukoliko je poznata. Ovakvo mapiranje brojeva adresnih obitelji specifično je za Linux i definirano je u zaglavlju include/ | + | U uglatim zagradama je navedeno redom: ime procesa, broj obitelji adresa te ime obitelji adresa, ukoliko je poznata. Ovakvo mapiranje brojeva adresnih obitelji specifično je za Linux i definirano je u zaglavlju | 
| **soprotocol** | **soprotocol** | ||
| - | Pomoću alata soprotocol također je moguće pratiti nova povezivanja na priključke, | + | Pomoću alata '' | 
| **socketio** | **socketio** | ||
| - | Alat socektio omogućuje ispis količine ulazno/ | + | Alat '' | 
| - | U ovom primjeru proces systemd-resolve, | + | U ovom primjeru proces | 
| < | < | ||
| Redak 269: | Redak 271: | ||
| [3] [[http:// | [3] [[http:// | ||
| + | |||
| + | [4] [[https:// | ||
| + | |||
| + | [5] [[https:// | ||