Ovo je prevedeni odeljak iz
NetBSD Guide, mislio sam da nesto naskrabam ali kad je vec napisano...a uz to i zvanicna dokumentacija.

Ovo ce se preseliti u Wiki Dokumentaciju uskoro, samo nisam zeleo da NetBSD bezbednost podforum ostane prazan....

_________________________________________________________
NetBSD Veriexec podsistemVeriexec je NetBSD podsistem za proveru integriteta fajlova. Nalazi se u kernelu, tako da moze da pruzi neku zastitu cak iako je root kompromitovan. Poglavlje se odnosi samo na NetBSD 3.0 i novije.
Kako radiVeriexec radi tako sto ucita fajl sa specifikacijama, koji se naziva i fajl sa potpisima, u kernel. Ovaj fajl sadrzi informacije o fajlovima koje Veriexec treba da nadgleda, kao i njihove digitalne potpise (zajedno sa hashing algorimom koji je koriscen da se dobiju ti potpisi), i razne opcije o kojima cemo pricati kasnije.
Za sada, Veriexec podrzava sledece hashing algoritme: MD5, SHA1, SHA256, SHA384, SHA512, i RMD160.
Fajl sa potpisimaUnos u Veriexec fajlu sa potpisima izgleda ovako:
/putanja/do/fajla algoritam potpis opcije
Prvi elemenat, putanja, mora uvek biti apsolutna putanja. Algoritam je jedan od gore navedenih algoritama, i potpis je ASCII potpis.
Generisanje potpisaASCII potpisi se mogu generisati za svaki algoritam koristeci sledece alate:
Veriexec alati za potpis
Algoritam | Alat
---------------------------------------------------
MD5 | /usr/bin/cksum -a md5
---------------------------------------------------
SHA1 | /usr/bin/cksum -a sha1
---------------------------------------------------
SHA256 | /usr/bin/cksum -a sha256
---------------------------------------------------
SHA384 | /usr/bin/cksum -a sha384
---------------------------------------------------
SHA512 | /usr/bin/cksum -a sha512
---------------------------------------------------
RMD160 | /usr/bin/cksum -a rmd160
Na primer, za generisanje MD5 potpisa za /bin/ls:
% cksum -a md5 < /bin/ls
a8b525da46e758778564308ed9b1e493A za generisanje SHA512 potpisa za /bin/ps:
% cksum -a sha512 < /bin/ps
381d4ad64fd47800897446a2026eca42151e03adeae158db5a34d12c529559113d928a9fef9a7c4615d257688d1da4645db004081030d7f080bb7198067eb890Svaki unos moze biti bez opcija ili sadrzati vise opcija. Trenutno ove opcije odredjuju kako se pristupa faju koji unos opisuje. Ovaj tip pristupa se primenjuje samo u strikt nivoima 2 (IPS mod) i visim.
Tipovi pristupa koji se mogu koristiti su “DIRECT”, “INDIRECT”, i “FILE”.
•
DIRECT pristup znaci da se fajl izvrsava direktno, i nije pozvan kao prevodilac za neku skriptu, niti je otvoren koriscenjem uredjivaca teksta. Obicno, vecina programa koji se koriste ce biti pokrenuti koristeci ovaj mod:
% ls /tmp
% cp ~/foo /tmp/bar
% rm ~/foo•
INDIRECT pristup znaci da se fajlu prostupilo indirektno, i pozvan je da izvrsi skriptu. Ovo se uglavnom desava kada skripta sadrzi #! u prvoj liniji skripte. Na primer, Ako imamo skriptu koja sadrzi sledece u prvoj liniji:
#!/bin/sh
i onda se pokrene sa:
% ./script.shOnda ce se /bin/sh izvrsiti indirektno – bice pozvan da prevede skriptu.
•
FILE unosi se odnose na sve sto nije (ili ne treba da bude) izvrsni fajl. Ovo ukljucuje deljene biblioteke, konfiguracione fajlove itd.
Neki primeri za unose u Veriexec fajl sa potpisima:
/bin/ls MD5 dc2e14dc84bdefff4bf9777958c1b20b DIRECT
/usr/bin/perl MD5 914aa8aa47ebd79ccd7909a09ed61f81 INDIRECT
/etc/pf.conf MD5 950e1dd6fcb3f27df1bf6accf7029f7d FILEVeriexec omogucava odredjivanje vise od jednog nacina pristupa fajlu u unosu. Na primer, iako se /usr/bin/perl uglavnom koristi kao prevodilac, moze se isto tako izvrsiti i direktno:
/usr/bin/perl MD5 914aa8aa47ebd79ccd7909a09ed61f81 DIRECT, INDIRECTShell skripte koje koriste #! kako bi bile “izvrsne” isto tako zahtevaju dva tipa pristupa: kada zelimo da budu “DIRECT” tako da se mogu izvrsiti, i “FILE” tako da kernel moze proslediti njihov sadrzaj do prevodioca koji je odredjen skriptom:
/usr/src/build.sh MD5 e80dbb4c047ecc1d84053174c1e9264a DIRECT, FILEDa bi se olaksalo kreiranje fajlova sa potpisima, i da bi se ucinili citljivijim, Veriexec omogucava koriscenje sledecih alias-a:
Veriexec aliasi za tip pristupa
Alias | Oznacava
------------------------------------
PROGRAM | DIRECT
------------------------------------
INTERPRETER | INDIRECT
------------------------------------
SCRIPT | DIRECT, FILE
------------------------------------
LIBRARY | FILE
Primeri skripti za generisanje potpisa su dostupni u /usr/share/examples/veriexecctl. Nakon sto je fajl sa potpisima generisan, treba se sacuvati kao /etc/signatures, i omoguciti Veriexec u rc.conf:
veriexec=YES
Striktni nivoiIz razloga sto ce ljudi zeleti da koriste Veriexec u razlicite svrhe, definisana su i cetiri odredjena nivoa, od 0-3, sa nazivima “learning”, “IDS”, “IPS”, i “lockdown” mod.
U
striktnom nivou 0, learning mod, Veriexec ce se ponasati pasivno i jednostavno upozoravati na nepravilnosti. U kombinaciji sa verbose nivoom 1, sistem koji radi u ovom modu moze pomoci u finom stelovanju fajla sa potpisima. Ovo je ujedno i jedini odredjeni nivo u kojem se mogu ucitavati novi unosi u kernel.
Striktni nivo 1, ili IDS mod, ce zabraniti pristup fajlovima ciji se potpisi ne podudaraju. Ovaj mod najvise odgovara korisnicima koji jednostavno zele da onemoguce pristup fajlovima koje bi napadac mogao da izmeni.
Striktni nivo 2, IPS mod, ide dalje pokusavajuci da zastiti inegritet nadgledanih fajlova. Pored toga sto onemogucava pristup fajlovima ciji se potpisi ne podudaraju isto tako ce zabraniti i dozvole upisa i onemoguciti uklanjanje fajlova koji se nadgledaju, i primeni nacin kojim se nadgledanim fjalovima pristupa (na nacin na koji to fajl sa propisima odredjuje).
Lockdown mod (
striktni nivo 3) se moze koristiti u visoko rizicnim situacijama kao sto su prilagodjene masine za specijalne namene, ili kao zadnja linija odbrane nakon sto je napadac kompromitovao sistem i zelimo da onemogucimo brisanje tragova, tako da se kasnije moze izvrsiti post-mortem analiza. Sprecava se kreiranje novih fajlova, i zabranjuje pristup fajlovima koje Veriexec ne nadgleda.
Preporucljivo je da se Veriexec prvo pokrene u strikt nivou 0 i verbose nivou 1 da bi se fino nastelovao fajl sa potpisima, osiguravajuci da se zahtevane aplikacije izvrsavaju ispravno, i tek onda povecati strict nivo (i smanjiti verbosity nivo).
Moze se koristiti /etc/sysctl.conf da automatski podigne strict nivo na zeljeni nivo nakon restarta:
kern.veriexec.strict=1
Veriexec i slojeviti fajl sistemiVeriexec se moze koristiti na NFS fajl sistemu sa klijent strane i na slojevitim fajl sistemima kao sto je union fajl sistem. Fajlovi koji se nalaze na ovim fajl sistemima treba samo da budu odredjeni u /etc/signatures fajlu i fajl sistem treba biti mount-ovan pre nego sto se potpisi ucitaju.
Ako ce te koristiti slojevite fajl sisteme onda morate da ukljucite potpise za fajlove koje zelite da zastitite na svakom nivou. Ako ovo ne uradite neko moze prekopirati fajl koji Veriexec stiti tako sto ce koristiti drugi sloj u steku slojevitog fajl sistema. Ovaj nedostatak ce mozda biti otklonjen u narednim verzijama NetBSD.
Ako necete koristiti slojevite fajl sisteme ili NFS preporucljivo je da se oni onemoguce u kernel konfiguraciji. Ako morate da koristite slojevite fajl sisteme onda morate pratiti instrukcije u predhodnom paragrafu tako da fajlovi koje zelite da zastitite imaju potpise na svim slojevima. Isto tako trebate podici i securelevel na 2 nakon sto su sva montiranja zavrsena:
kern.securelevel=2
Kako bi sprecili nove slojeve da se mountuju sto moze ugroziti zastitu koju pruza Veriexec.
Konfiguracija KernelaDa bi mogli da koristite Veriexec, osim kreiranja fajla sa potpisima, trebate omoguciti Veriexec (ukloniti komentar ispred) u vasem kernel konfiguracionom fajlu: (npr. /usr/src/sys/arch/i386/conf/GENERIC):
pseudo-device veriexec
Onda, trebate omoguciti hashing algoritme koje zelite da koristite:
options VERIFIED_EXEC_FP_MD5
options VERIFIED_EXEC_FP_SHA1
options VERIFIED_EXEC_FP_RMD160
options VERIFIED_EXEC_FP_SHA512
options VERIFIED_EXEC_FP_SHA384
options VERIFIED_EXEC_FP_SHA256
U zavisnosti od verzije vaseg operativnog sistema i platforme, ove opcije mogu biti vec omogucene. Kada zavrsite, prekompajlirajte i reinstalirajte kernel, pogledajte
Chapter 31, Kompajliranje Kernela za dalje instrukcije.
Ako nemate Veriexec uredjaj /dev/veriexec, mozete ga kreirati rucno koristeci sledece komande:
# cd /dev
# sh MAKEDEV veriexecOriginalni link:
http://www.netbsd.org/docs/guide/en/chap-veriexec.html