Sustavi za detekciju napada (OSSEC)
Dinka Jurinić, Luka Mikolaj, Luka Lovrenčić, Domagoj Ličanin, Ivan Vuljak
Mentor: Tonimir Kišasondi, mag.inf., asistent
Sadržaj
|
UVOD
Veoma vrijedna imovina u današnjim poduzećima su informacije. Baš zbog tog razloga ne treba se čuditi pažnji koja se posvećuje njihovoj zaštiti. Računalni podaci, marketinške strategije, porezi, osobni zapisi, vojne strategije, financijski podaci i poslovni planovi samo su neki od niza pojmova koji se kriju iza riječi informacija. Gubitak informacija ujedno se smatra i financijskim gubitkom. Isto tako, posjedovanje veće količine informacija od konkurencije može garantirati opstanak. Budući se većina odluka donosi na osnovu raspoloživih informacija, njihov integritet mora biti zagarantiran. Upravo iz tih razloga se razvojem računalnih sustava razvija i informacijska sigurnost. Dolazimo do pojma informacijske sigurnosti, a to je stanje povjerljivosti, cjelovitosti i raspoloživosti podatka, koje se postiže primjenom propisanih mjera i standarda informacijske sigurnosti te organizacijskom podrškom za poslove planiranja, provedbe, provjere i dorade mjera i standarda. Pod informacijskom sigurnosti se podrazumijeva provođenje skupa nužnih mjera u svrhu nadzora i zaštite povjerljivih informacija. Za postizanje sigurnosti informacija potrebno se pridržavati nekih pravila. Svaka raspodjela informacija mora se provoditi na siguran način. Svi pojedinci koji imaju pristup kritičnim informacijama moraju se educirati. Informacije je nužno klasificirati i razgraničiti na različite sigurnosne nivoe. Potrebno ih je nadzirati i pratiti konzistentno i kontinuirano tokom cijelog vremena njihovog postojanja. Dolazimo do pojma mrežne sigurnosti. Mrežna sigurnost jest najznačajniji dio informacijske sigurnosti. Naime, upravo kroz mrežu prolaze najveće opasnosti. Mrežna sigurnost se odnosi na sve funkcije, značajke, operacijske procedure, sigurnosne mjere, kontrole te politike, potrebne za postizanje prihvatljivog nivoa zaštite za sklopovsku i programsku podršku te informacije u mreži. Zanimljiv događaj dogodio se 1988. godine kada je virus putem Interneta pušten te je onesposobio 60000 računala povezanih na Internet na dva dana. To je osiguralo promjenu načina razmišljanja. U narednim desetljećima cjelokupna tehnologija i broj korisnika računalnih sustava rastu, a s njima i količina sigurnosnih prijetnji. Upravo zato ne čudi podatak da je danas upravo sigurnost glavna tema u računalnom svijetu. Niti jedna ozbiljnija tvrtka danas ne može opstati bez sigurnosnog administratora i jasne sigurnosne politike. Na žalost, prijetnje koje dolaze kroz mrežu i ostvaruju se kroz različite oblike napada nisu njihova jedina briga. Naime prijetnje dolaze i od strane zaposlenika. Nedovoljna educiranost ili sama sklonost destruktivnom ponašanju također su prijetnja sustavu i informacijama koje su na njima. Upravo je iz tog razloga potrebno imati jasnu sigurnosnu politiku koja će definirati dopuštene radnje te kroz sigurnosne nadzorne alate u samom začetku spriječiti delikventno ponašanje. Osim tvrtki, opasnosti su svjesni i obični korisnici koji se često nazivaju kućni korisnici. Oni možda ne brinu o zaštiti nekih kritičnih informacija, ali im je u interesu očuvati ispravnu funkcionalnost svog računala. Upravo zbog navedenih razloga ne čudi činjenica da su uz operacijski sustav, za računala postali neophodni i brojni sigurnosni alati, poput vatrozida (eng. firewall) i dobrog anti-virusnog programa. Korak više su sustavi za detekciju neovlaštenog pristupa (eng. Intrusion Detection Systems - IDS). Područje mrežne sigurnosti je vrlo široko i složeno, zbog čega ne postoji idealan multifunkcionalan alat, koji bi osigurao sustav od svih oblika prijetnji. Međutim, kombinacija spomenutih alata daje i više nego dobre rezultate. Sustavi za detekciju napada namijenjeni su uočavanju neobičnih i/ili nedozvoljenih aktivnosti na računalnim sustavima. Neovlašteni upadi otkrivaju se uočavanjem obrazaca zlonamjernih radnji koje mogu ugroziti sigurnost napadnutog računala. Neke od tih radnji su mrežni napadi usmjereni na pojedine ranjive usluge, napadi posebno oblikovanim podatkovnim strukturama (eng. data driven attack) te pokušaji neovlaštenog stjecanja povišenih korisničkih ovlasti, neovlaštene prijave u sustav ili neovlaštenog pristupa potencijalno osjetljivim podacima.
--Ivan.vuljak 20:28, 22. studenog 2012. (CET)
SUSTAVI ZA DETEKCIJU NAPADA
IDS (eng. Intrusion Detection System)
Za otkrivanje različitih tipova napada, koji mogu ugroziti sigurnost računalnog sustava koristimo IDS (eng. Intrusion Detection System) sustave, odnosno sustave za detekciju neovlaštenog pristupa. U takve se napade ubrajaju napadi na ranjive mrežne servise, napadi na aplikacije i takozvani eng. host based napadi, u koje se ubraja povećanje ovlasti, neovlaštena prijava i pristup osjetljivim informacijama te napadi korištenjem zlonamjernih programa (eng. malware), kao što su virusi, trojanski konji i crvi. Za zaštitu računalnih resursa najčešće se koriste antivirusni programi i vatrozidi koji su namijenjeni blokiranju neovlaštenih aktivnosti, kao i specijalizirani sustavi za detekciju napada. Takva kombinacija sigurnosnih mehanizama sprečava velik broj neovlaštenih aktivnosti. Ponekad je međutim potrebno koristiti i druge tehnologije zaštite. Vatrozidi npr. mogu blokirati različite portove i protokole pa čak i pratiti stanje pojedinih veza (eng. stateful inspection), ali oni ipak ne mogu učiniti mnogo ukoliko se napad izvršava preko dozvoljenih protokola i portova. U takvim slučajevima mogu jedino pružiti zaštitu od napada velikim količinama paketa (eng. Denial of Service). Nedovoljnu zaštitu pružaju i sustavi za detekciju neovlaštenih aktivnosti. Njihov rad zasniva se na prikupljanju informacija s čitavog niza mrežnih i računalnih izvora i analiziranju tih informacija s ciljem otkrivanja eventualnih nedozvoljenih aktivnosti i zlouporaba. Oni prate i analiziraju mrežni promet, ali ne čine ništa da bi spriječili neželjeni promet. Ukoliko se on uoči, najčešće se samo obavještavaju nadležne osobe. Sustavi za otkrivanje napada su jedna od novijih tehnologija za podizanje ukupne razine sigurnosti sustava. Njihov rad se zasniva na prikupljanju informacija s čitavog niza mrežnih i računalnih izvora te analiziranju tih informacija s ciljem otkrivanja eventualnih nedozvoljenih aktivnosti i zlouporabe sustava na kojem se nalaze. Sustavi za otkrivanje napada prate i analiziraju mrežni promet i različite dijelove operacijskog sustava, međutim ne poduzimaju nikakve akcije koje bi spriječile štetni i neželjeni promet. Ukoliko se takav promet uoči, najčešće se samo zabilježi u datoteke dnevnika te se obavještavaju nadležne osobe putem različitih mehanizama obavještavanja. U literaturi se često razlikuju sustavi koji otkrivaju napade od onih koji otkrivaju pogrešno korištenje sustava. Uobičajeno se napadom smatra štetna aktivnost koja na sustav djeluje s lokacije izvan sustava, a iste takve aktivnosti koje djeluju unutar samog sustava se smatraju pogrešnim korištenjem. Na primjer, zaposlenik prijavljen za rad na jednom od računala u lokalnoj mreži koji više puta za redom unese krivo korisničko ime kod autentifikacije na neku mrežnu uslugu u korporacijskom intranetu krivo koristi sustav, dok se isti postupak, ali s računala izvan tvrtkine lokalne mreže smatra napadom. U većini stvarnih implementacija ovakvih programa najčešće se ne pravi razlika između napada i pogrešnog korištenja sustava već se oboje tretiraju jednako. IDS sustavi sastoje se od sljedećih komponenti: senzora koji otkrivaju sigurnosne prijetnje upravljačke ploče koja služi za praćenje događaja i uzbuna te kontrolu senzora središnjeg uređaja koji događaje zabilježene senzorima sprema u bazu podataka te, uz pomoć sustava pravila, generira uzbune (eng. alert) na temelju uočenih događaja. Ovdje je bitno za napomenuti da su u jednostavnim implementacijama IDS sustavima, sve tri komponente ugrađene u jedan uređaj.
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
Vrste sustava za detekciju upada
Postoji nekoliko vrsta sustava za detekciju upada:
NIDS (eng. network intrusion detection system)
Kad se govori o sustavima za otkrivanje napada, većinom se misli na mrežno zasnovane sustave. Mrežno zasnovani sustavi za otkrivanje napada funkcioniraju na način da prate i analiziraju mrežne pakete koji prolaze mrežnim sučeljem. To mrežno sučelje najčešće radi na načinu rada koji dozvoljava hvatanje apsolutno svih paketa koji se pojave na mrežnom sučelju, a ne samo onih koji kao odredište imaju IP adresu tog sučelja. Mrežno zasnovani sustavi za otkrivanje napada su najčešće uređaji koji su smješteni negdje u mrežnoj topologiji (slično kao i vatrozid (eng. firewall)) i nadziru sav promet na mreži. Analiza prometa i reagiranje na pojavu sumnjivog prometa se vrše koristeći tri metodologije: traženjem uzoraka u uhvaćenim paketima, praćenjem učestalosti pojave određenih paketa i traženjem određenih anomalija u mrežnom prometu koje mogu biti indikacija da je napad u tijeku. Velika prednost ovog tipa sustava za otkrivanje napada nad HIDS vrsti sustava je ta što se otkrivanje provodi u stvarnom vremenu. Time je napadaču praktički onemogućeno brisanje tragova svog napada, za razliku od HIDS sustava gdje je napadaču relativno lako zamesti tragove izvršenog napada. Jedan primjer ovakvog sustava je alat Snort.
PIDS (eng. protocol-based intrusion detection system)
U ovoj vrsti sustava radi se o sustavu ili agentu koji se obično instalira na poslužitelju te prati i analizira komunikacijski protokol (npr. HTTP) između povezanih uređaja (računala ili sustava).
APIDS (eng. application protocol-based intrusion detection system)
U ovoj vrsti sustava radi se o sustavu ili agentu koji obično između grupe poslužitelja prati i analizira komunikaciju specifičnim aplikacijskim protokolima. Npr. za web poslužitelj s bazom podataka pratio bi se SQL protokol.
HIDS (eng. host-based intrusion detection system)
Zadnja vrsta sustava te se u njoj radi o agentu vezanom uz jedno računalo. On identificira upade pomoću analize sistemskih poziva, aplikacijskih zapisnika, izmjena datotečnih sustava i drugih računalnih aktivnosti i stanja. Primjer takvog sustava je upravo OSSEC HIDS. Ova vrsta sustava je posebno bitna za naš seminarski rad te ćemo dalje u radu više govoriti o samom OSSEC sustavu, no u ovom poglavlju još ćemo nešto definirati općenito o sustavima za detekciju napada. HIDS sustave možemo definirati kao računalno zasnovane sustave za otkrivanje napada, dok s druge strane NIDS sustave možemo definirati kao mrežno zasnovane sustave za otkrivanje napada. Za razliku od mrežno zasnovanih sustava za otkrivanje napada, HIDS sustavi su najčešće aplikacija koja se izvršava na jednom računalu i prati zapise u dnevnicima događaja tražeći neuobičajene uzorke. Dnevnici događaja koje ovaj tip sustava za otkrivanje napada prati se razlikuju od operacijskih sustava do operacijskih sustava. Na operacijskom sustavu Windows su to najčešće tri dnevnika: aplikativni, sistemski i sigurnosni dnevnici događaja. Na operacijskom sustavu Linux se najčešće radi o syslog sistemskom dnevniku događaja. Iako se svi ti dnevnici događaja mogu ručno pregledavati, računalno zasnovani sustavi su pogodni zbog svog automatizma i brzine. Ovaj tip sustava za otkrivanje napada koristi iste metodologije kao i mrežno zasnovani sustavi. No, iako koristi iste pristupe u otkrivanju napada, nepogodni su za ozbiljniju primjenu u velikim mrežama. Naime, kao problem se nameće samo ime ovog tipa sustava, računalno zasnovani. Kao što je već rečeno, ova vrsta sustava za otkrivanje napada su aplikacije koje se izvršavaju na jednom računalu, pa bi za efektivno praćenje svih aktivnosti na velikoj mreži računala bilo potrebno instalirati i izvršavati ovakve sustave na svim računalima u toj mreži. Takvo nešto je praktički nemoguće jer bi bilo potrebno mnogo ljudskih resursa za kvalitetno održavanje svih instanci ovih sustava. Nadalje, ovi sustavi su dosta podložni za napade jer napadači imaju mogućnost, jednom kad dobiju pristup računalnom sustavu, zamesti tragove svojih napada brišući zapise u dnevnicima događaja. Kako većina ovih sustava ne čita dnevnike događaja konstantno već u određenim vremenskim intervalima, napadači mogu biti vrlo uspješni u zaobilaženju ovog tipa sustava za otkrivanje napada. Bez obzira na spomenute nedostatke, računalno zasnovani sustavi za otkrivanje napada su u nekim aspektima rada bolji od mrežno zasnovanih sustava. Ovaj tip sustava ima znatno veću otpornost na pogreške pri otkrivanju napada. Naime, ovaj tip sustava čitajući dnevnike događaja u mogućnosti je saznati da li je određeni napad bio uspješan ili ne, što je kod mrežno zasnovanih sustava gotovo nemoguće. Također, ovaj tip sustava ne mora nužno pratiti mrežne aktivnosti računala na kojem se nalazi. On je sposoban pratiti i druge aktivnosti na računalu, poput neautoriziranog pokušaja pristupa povjerljivim podacima ili pokretanja određenih programa itd. Osim spomenutih, postoje i sustavi koji kombiniraju nekoliko prethodno opisanih pristupa. Također, postoji i podjela na pasivne i reaktivne sustave – pasivni sustavi uoče potencijalnu opasnost, zabilježe odgovarajuće informacije i generiraju uzbunu, dok reaktivni sustavi, koji se često nazivaju i IPS (eng. intrusion prevention system), reagiraju na uočeni problem resetiranjem veze, reprogramiranjem vatrozida i sl.
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
Rad IDS alata
Rad IDS alata temelji se na pregledavanju različitih dnevničkih zapisa (eng. log) te sadržaja mrežnih paketa. Obje vrste podataka sadrže informacije o aktivnostima korisnika pa je na temelju analize njihovog sadržaja moguće identificirati neovlaštene aktivnosti. Za to se najčešće koriste dvije metode koje se u novije vrijeme i kombiniraju, a te metode su: 1) Prepoznavanje potpisima U pretraživački program šalje se sadržaj dnevničkih zapisa i/ili mrežnih paketa te se u tom pretraživačkom programu uspoređuje s unaprijed definiranim potpisima napada. 2) Prepoznavanje statističkim anomalijama Prepoznaju se anomalije koje se prijavljuju kao napad na sustav na temelju profila uobičajenog rada sustava koji se dobiva prikupljanjem i statističkom obradom tih podataka.
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
Karakteristike IDS (eng. Intrusion Detection System)
Neovisno o tipu IDS-a i mehanizmu na kojem je baziran, postoje neke stavke koje su često izdvajane kao karakteristike dobrog IDS-a. U skladu s njima IDS bi trebao zadovoljavati sljedeće: sustav mora biti dovoljno pouzdan da se kontinuirano može vrtjeti u pozadini sustava, bez ljudskog nadzora, ne skrivajući pritom detalje unutrašnjih aktivnosti. IDS mora biti otporan na pogreške kao što je rušenje sustava. To podrazumijeva kontinuiranu upućenost u zbivanja u sustavu, bez potrebe za obnovom 'znanja' u trenutku ponovnog pokretanja sustava. Također mora biti otporan na subverzije. Ostvarivanje ove stavke može uključivati i da IDS nadzire samog sebe. Mora imati minimalan utjecaj na sustav koji nadzire. Uzrokovanje zamjetnog usporavanja sustava je neprihvatljivo. IDS također mora pratiti odstupanja od normalnog ponašanja, mora se jednostavno moći uklopiti u nadzirani sustav, mora se moći nositi s promjenama profila sustava, koje se povremeno javljaju uslijed dodavanja novih aplikacija i sličnog. Danas je nemoguće pratiti korak sa svim potencijalnim prijetnjama i ranjivostima kompjutorskih sustava. Nove tehnologije i Internet, svakim danom unose promjene u računalna okruženja, koje hakeri često znaju prepoznati kao prilike za napad. Upravo iz toga proizlazi potreba za detekcijom napada, kao alatom u funkciji zaštite sustava od prijetnji koje se javljaju uslijed povećanja stupnja povezanosti sustava na mrežu i oslanjanja na sam informatički sustav. Osim detektiranja, identificiranja i zaustavljanja napadača, IDS pomaže i u otkrivanju načina na koji je napad izvršen i sprječavanja ponavljanja istog. Nadalje informacije prikupljene od strane IDS-a, mogu se koristiti u istrazi i kaznenom gonjenju napadača. Pokazalo se da i samo postojanje IDS-a na sustavu, djeluje na psihu potencijalnih napadača. Naime povećanje rizika pronalaženja i kažnjavanja onih koji bi napali ili na bilo koji način zlouporabili sustav, već u samom startu sprječava problematično ponašanje. Osim što otkriva napade i sigurnosne prekršaje, koji nisu spriječeni ostalim sigurnosnim mjerama, prednost IDS-a je i u tome što može detektirati i sam uvod u napad te pružiti osoblju šansu da ga pravilnom reakcijom blokiraju. Za organizacije se IDS pokazuje korisnim i kod dokumentiranja prijetnji i prikupljanju informacija o napadima, u cilju poboljšanja sigurnosne infrastrukture, ali i same kontrole kvalitete sigurnosnog dizajna. Dokumentiranje prijetnji pruža uvid u frekvencije i karakteristike napada te predstavlja smjernicu kod odabira sigurnosnih mehanizama. Uz korištenje IDS-a kroz duže vrijeme, iskristalizirat će se slabe točke dizajna i upravljanja sigurnošću sustava omogućujući pritom njihovo ispravljanje. Napadi međusobno mogu uvelike varirati po načinu izvođenja, cilju napad i sl. no svima je zajednička prva faza, a to je ispitivanje sustava ili mreže. Svaki napadač mora prvo ispitivanjem sustava pronaći način da uđe u sustav. U sustavu bez IDS-a, to je lako izvedivo jer napadača nitko ne sprječava da temeljito ispita sustav. S druge strane, isti taj sustav s IDS-om koji ga nadgleda, predstavljat će veliki izazov napadaču u pokušaju pronalaženja njegove slabe točke. Velika učestalost napada na računalne sustave na Internetu implicira nužnost uporabe IDS alata za provođenjem i uspostavljanjem sigurnosne politike organizacije na javno, ali i interno dostupnim računalnim sustavima. Istraživanja pokazuju da najveći broj neovlaštenih upada na računalne sustave dolazi upravo sa internih računalnih mreža, odnosno zaposlenika organizacija.
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
Dva načina spriječavanja neovlaštenih aktivnosti korisnika
Postoje dva načina spriječavanja neovlaštenih aktivnosti korisnika. Prvi način je izrada potpuno sigurnog računalnog sustava. Moguće je napraviti takav računalni sustav koji će zahtijevati od svih korisnika potpunu identifikaciju i autentifikaciju, te koji će zaštititi podatke različitim kriptografskim metodama i vrlo striktnim mehanizmima za kontrolu pristupa. Međutim, ovo rješenje nije moguće izvesti iz nekoliko razloga. U praksi, nije moguće izraditi potpuno sigurni računalni sustav. Mnogo informacijskih stručnjaka definira u svojim radovima da ne postoji operacijski sustav ili program bez sigurnosnih rupa i da se proizvođači niti ne trude napraviti takav operacijski sustav ili program. Dizajniranje i implementiranje potpuno sigurnog računalnog sustava je izrazito kompliciran zadatak. Osim toga, kriptografske metode imaju druge probleme, a ti problemi su da je zaporke moguće otkriti, da korisnici mogu izgubiti ili zaboraviti svoje zaporke i na taj način cijeli kriptografski sustavi mogu biti provaljeni. Osim navedenih sigurnosnih propusta potrebno je napomenuti da i na potpuno siguran sustav može biti provaljeno ukoliko korisnici iznutra zlouporabe svoje korisničke privilegije. Drugi način sprječavanja neovlaštenih aktivnosti korisnika je upravo detekcija tih aktivnosti. Ukoliko postoji napad na neki računalni sustav, potrebno je taj napad detektirati što je prije moguće (poželjno u stvarnom vremenu) da bi se mogla poduzeti neka akcija. Ovo esencijalno predstavlja predmet rada alata za detekciju neovlaštenih upada (IDS-a). IDS alati obično ne poduzimaju preventivne mjere kada su detektirane neovlaštene aktivnosti, već obično samo obavještavaju za to nadležne osobe. Najčešći način detektiranja neovlaštenih aktivnosti implementiran u IDS alatima je pregledavanje logova generiranih od strane operacijskog sustava. Logove predstavljaju zapise aktivnosti korisnika na računalnim sustavima koji su zapisani u pojedine datoteke kronološkim redoslijedom. Budući da se u njih zapisuju sve aktivnosti korisnika neovlaštene aktivnosti je moguće detektirati i ručnim pregledavanjem datoteka sa logovima od strane administratora sustava. Međutim, ove datoteke su iznimno velike što ručno pregledavanje čini nemogućim. IDS alati automatiziraju pregledavanje datoteka sa logovima. U mnogo slučajeva, čak i nakon napada, važno je analizirati podatke o aktivnostima iz log datoteka kako bi se mogla ustanoviti napravljena šteta ili otkrivanje neovlaštenih korisnika, kao i koraci koje je potrebno poduzeti da bi se takvi napadi onemogućili u budućnosti. IDS alat se također može koristiti za analiziranje tih podataka. Zanimljiv podatak govori da je krađa informacija porasla za 250% u zadnjih 5 godina, da je 99% velikih organizacija prijavilo barem jedan sigurnosni incident i da šteta pričinjena neovlaštenim upadima u računalne sustave raste na 10 milijardi US dolara godišnje. Zbog navedenih činjenica vidimo nužnost implementacije dobrog IDS alata na računalne sustave.
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
Prednosti i nedostatke sustava za detekciju napada
U ovom poglavlju još ćemo definirati prednosti i nedostatke sustava za detekciju napada i zatim prelazimo na sljedeće poglavlje. Prednost korištenja sustava za detekciju napada je u tome što oni ne usporavaju mrežni promet. Analizu mrežnog prometa moguće je obavljati na računalu posebno namijenjeno samo svrsi prepoznavanja i praćenja napada na određeno računalo, odnosno aplikaciju. Još neke od prednosti su: nadgledanje i analiza kako aktivnosti u sustavu, tako i ponašanja korisnika, ispitivanje stanja sustavskih konfiguracija, prepoznavanje uzoraka aktivnosti, koje statistički variraju od normalne aktivnosti (detekcija nepravilnosti), prepoznavanje uzoraka događaja u sustavu, koji odgovaraju poznatim napadima (detekcija zlouporabe), upravljanje zapisima operacijskog sustava i mehanizmima zapisivanja logova, alarmiranje adekvatnog osoblja prikladnim sredstvima u trenutku otkrivanja napada, mjerenje koliki se dio sigurnosne politike uistinu provodi u djelo, omogućavanje, po pitanju sigurnosti, nestručnom osoblju izvođenje važnih sigurnosnih funkcija nadgledanja. Uz brojne prednosti, naravno da postoje i određeni nedostaci, a neki od njih su: detekcija bez sprečavanja, ne mogu zaustaviti ili usporiti aktivne mrežne napade. Naime, zbog mogućih dojava o lažnim napadima na sustav, nije niti poželjno da sustavi za detekciju napada prekidaju uspostavljene veze, što bi rezultiralo velikim brojem prekida u radu. Sljedeći nedostatak je vremenski raskorak između napada i detekcije, zbog velikog broja zapisa koje IDS treba analizirati te moguće potrebe za naknadnom provjerom dojave o napadu od strane administratora, IDS-ovi pružaju spor odgovor na napade na računalne i mrežne resurse. Lažne dojave također smatramo jednim od nedostataka, odnosno sustavi za detekciju napada kada pregledavaju sadržaj mrežnih paketa i dnevničkih zapisa često krivo okarakteriziraju dozvoljeni promet kao nedozvoljeni, odnosno nedozvoljeni promet kao dozvoljeni, do čega dolazi uslijed previše općenitih definicija potpisa pojedinih napada. Javlja se i nedostatak velikih količina dnevničkih zapisa o napadima – zbog činjenice da IDS nije u mogućnosti prekinuti napade, IDS generira onoliko upozorenja koliko ima dnevničkih zapisa o samim napadima. Pošto se ponekad i legitimni promet neopravdano prepoznaje kao napad, količina upozorenja za administratore se time dodatno povećava. I zadnji nedostatak koji ćemo navesti je izostanak detekcije novih vrsta napada – kako IDS-ovi uglavnom uspoređuju sadržaje dnevničkih zapisa i mrežnih paketa s definiranim potpisima za napade, novi napadi nisu sadržani u bazi potpisa pa ih IDS ne prepoznaje. Detekcija nepoznatih napada moguća je samo ukoliko je IDS zasnovan ili kombiniran s metodom prepoznavanja statističkih anomalija. U ovom poglavlju smo detaljnije objasnili što su to sustavi za detekciju napada, koje podjele postoje te prednosti i nedostatke. U sljedećem poglavlju detaljnije ćemo opisati što je to OSSEC alat te kako ga implementirati
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
OSSEC
OSSEC je open source sustav za detekciju napada koji obavlja log analysis, provjeru integriteta datoteka, otkrivanje rootkita te pruža real-time zaštitu. Ukratko, OSSEC objedinjuje sve aspekte HIDS-a (host-based intrusion detection). Podržava rad na većini sustava, kao što su Windows, Linux, Solaris, MacOS i dr.
Osnovne prednosti OSSEC sustava
OSSEC pomaže klijentima da ispune specifične zahtijeve poput PCI (Payment Card Industry) i HIPAA (Health Insurance Portability and Accountability Act). On omogućuje klijentima da samostalno detektiraju neovlaštene promjene u sistemskim datotekama te bilo kakav oblik zlonamjernog ponašanja koji je zapisan u log datotekama. Osim toga, OSSEC pruža podršku klijentima pri konfiguriranju sustava na način da definiraju radnje koje će biti tretirane kao ozbiljnije i koje će imati veći prioritet. Takav pristup omogućio je bržu reakciju u slučaju napada.Osim prethodno navedenih prednosti, OSSEC pruža mogućnost za nadziranja samog sustava i mrežnih komponenti poput routera, firewalla i sl.
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Osnovne značajke OSSEC sustava
Provjera integriteta datoteka: kao dodirna točka svih neovlaštenih i zlonamjernih napada uvijek se navodi da oni na neki način mijenjaju sustav. Stoga je cilj provjere integriteta podataka detekcija i upozorenje kada se takav napad dogodi.
Log monitoring: Log datoteke su namijenjene prenošenju poruka korisnicima, no velik broj korisnika ih ne zna protumačiti. U log datotekama najčešće su zapisani događaji koji opisuju kada se i što se u sustavu dogodilo. Stoga OSSEC prikuplja, analizira i uspoređuje događaje te o tome informira korisnika. U log datoteku zapisuju se događaji poput promjene pravila u firewallu, instalacije aplikacije na neko računalo i sl.
Detekcija rootkita: OSSEC omogućuje detekciju rootkita, tj. aplikacija koje pokušavaju prikriti svoje zlonamjerne aktivnosti na način da mijenjaju sistemske datoteke.
Brza reakcija: OSSEC pomaže u pravovremenoj i automatiziranoj reakciji u slučaju napada na sustav.
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Način rada OSSEC-a
OSSEC je sastavljen od nekoliko dijelova, a njih nadzire sustav koji prati, bilježi i prima sve informacije od agenata (mali programi instalirani na sustavu koji se nadzire, služe za prikupljanje i proslijeđivanje informacija koje se prate i bilježe), syslog-a, baza podataka i različitih uređaja. Dakle, centralni sustav pohranjuje informacije vezane uz integritet datoteka, log datoteke, pravila i konfiguracije kako bi se njima lakše upravljalo. Na sustavima koji ne omogućavaju instalaciju agenata OSSEC omogućuje rad i bez njih. To je vrlo korisna opcija, osobito za nadzor firewalla, routera i sl. uređaja. Agenti se također mogu instalirati na virtualne uređaje gdje također prikupljaju bitne informacije i pritom upozoravaju ukoliko se pojavi događaj koji narušava sigurnost.
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Syscheck
Syscheck predstavlja proces provjere integriteta datoteka unutar OSSEC-a. Pokreće se automatski u definiranim intervalima i otkriva promjene u datotekama. Detekcija promjena u datotekama OSSEC otkriva pomoću MD5/SHA1 kontrolne sume svih sistemskih datoteka i registara. Nakon skeniranja sustava sve kontrolne sume šalju se na server koji ih potom uspoređuje sa prethodnima te u slučaju modifikacije šalje upozorenje. Prema standardnim postavkama Syscheck se radi svakih 6 sati, no korisnici mogu sami definirati intervale. Sam proces provjere integriteta ne zahtijeva velike resurse. Lažne prijetnje mogu se ignorirati ručno ili pomoću pravila. Prema standardnim postavkama, kada se datoteka promijeni tri puta i svaki puta se upozorenje ignorira, tada se daljnje prijetnje za tu datoteku automatski ignoriraju. Na operacijskim sustavima Linux i Windows moguća je provjera integriteta u realnom vremenu. Osim navedene provjere pomoću MD5/SHA1 kontrolne sume postoje i provjere:
check_all : provodi sve moguće provjere integriteta
check_size : provjerava promjene u veličini datoteke
check_owner : provjerava promjene u vlasništvu datoteke
check_group : provjerava promjene u grupnom vlasništvu datoteke
check_perm : provjerava promjene ovlasti
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Rootcheck
OSSEC sustav će automatski raditi provjeru rootkita na svim sustavima na kojima je instaliran agent. Ta provjera radi se u zadanim intervalima. Zadani interval je dva sata, no korisnik može modificirati tu vrijednost. Kada se koristi sa log analizom i integritetom datoteka, Rootcheck predstavlja vrlo korisno rješenje za nadzor sustava.
Koraci koje Rootcheck provodi su slijedeći:
1. Čitanje rootkit_files.txt datoteke koja sadrži bazu podataka rootkita i najčešćih datoteka koje oni koriste. Rootcheck potom nad tim datotekama provodi određene sistemske naredbe poput stats, fopen i opendir.
2. Čitanje rootkit_trojans.txt datoteke koja sadrži bazu podataka za trojance. Rootkit često napada datoteke trojancima. Ova metoda neće naći nepoznate rootkite, niti rootkite koji napadaju kernel.
3. Skeniranje /dev direktorija tražeći razne nepravilnosti. /dev direktorij sadrži podatke vezane za uređaje. Kada rootkit napadne sustav, vrlo često koristi /dev da sakrije datoteke. Ova tehnika je vrlo korisna i može otkriti rootkite koji nisu javni.
4. Skeniranje cjelokupnog sustava datoteka tražeći neuobičajene datoteke i probleme vezane uz ovlasti. Datoteke koje posjeduje root, sa ovlastima zapisivanja u druge datoteke su izuzetno opasne. Ovaj korak također analizira skrivene direktorije.
5. Traženje prisutnosti skrivenih procesa. Rootcheck koristi getsid() i kill() naredbe za provjeru ukoliko se neki pid koristi ili ne. Ako se koristi to često može označavati rootkit koji napada kernel.
6. Traženje pristunosti skrivenih portova. Koristi se bind() naredba za provjeru svih udp i tcp portova u sustavu. Ako se ne može „bind“ u port koji se koristi, a netstat ga ne prikazuje, postoji realna mogućnost da je na sustavu instaliran rootkit.
7. Skeniranje svih sučelja u sustavu i traženje onih što imaju uključen „promisc“ mod. Ako je sučelje u tom modu, to treba biti zabilježeno u ifconfig-u (interface configuration). Ako nije, postoji opasnost da je instaliran rootkit.
Opcije kod konfiguriranja Rootchecka su slijedeće:
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Rad s OSSEC Agent Managerom
Na prethodnoj slici prikazano je sučelje OSSEC Agent Managera. Verzija koju koristimo je v2.7. za Windows platformu. U kartici Manage postoje opcije Start OSSEC, Stop OSSEC, Restart, Status i Exit. Dakle, u toj kartici moguće je odabrati osnovne operacije koje se tiču pokretanja i zaustavljanja OSSEC-a. Ukoliko odaberemo Status, dobit ćemo informaciju o tome je li OSSEC pokrenut ili ne. Nadalje, u kartici View postoje opcije View Logs i View Config. Tu možemo pregledati log datoteku (ossec.txt) i datoteku koja se odnosi na konfiguraciju OSSEC-a (ossec.conf.txt). U kartici Help možemo dobiti informacije o OSSEC-u ili pronaći određene informacije koje nam mogu pomoći (Help i About). Kao što je prikazano na slici jedan, za početak rada potrebno je popuniti dva tekstualna okvira. Prvi se odnosi na OSSEC Server IP, a drugi je Authentication Key. Te podatke ne možemo unijeti pravilno ukoliko prije samoga rada nismo postavili opcije u manage_agents.exe programu. On se nalazi na lokaciji gdje smo instalirali OSSEC Agent Manager.
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Kao što vidimo, manage_agents.exe nam nudi dvije opcije, prva je Import key from the server, a druga Quit. U našem slučaju, s obzirom da prvi puta konfiguriramo postavke, ne biramo niti jednu od ponuđenih opcija, već pritiskom na tipku „A“ (add), koja predstavlja dodavanje novog agenta, kreiramo agenta. Potrebno je unijeti njegovo ime, u našem slučaju to je „agent007“, definirati njegovu IP adresu za koju smo upisali „111.222.3.4 te upisati ID novog agenta, za što smo upisali „007“. Na kraju je potrebno potvrditi dodavanje novog agenta. Ukoliko želimo izbrisati kreiranog agenta to možemo učiniti odabirom tipke „R“ (remove) i izborom agenta kojeg želimo izbrisati. Pregled svih agenata možemo ostvariti pritiskom tipke „L“ (list).
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Za korištenje OSSEC Agent Managera potrebno je imati Authentication Key. Njega preuzimamo iz manage_agents.exe programa na način da pritisnemo tipku „E“ (extract key) i unesemo ID agenta, onako kako je to prikazano na slijedećoj slici.
Primjetimo da se prethodno generirani ključ pojavio u OSSEC Agent Manageru, te je još potrebno unijeti OSSEC Server IP tj. „111.222.3.4“. Nakon toga možemo spremiti Server IP i pokrenuti OSSEC pritiskom na Start OSSEC. OSSEC Agent Manager porukom javlja da je OSSEC pokrenut, što možemo u bilo kojem trenutku provjeriti odabirom opcije Status.
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Sve bitne informacije zapisuju se u View Log.
To izgleda ovako: 2013/01/11 14:36:55 (null): INFO: System is Vista or Windows Server 2008.
2013/01/11 17:23:46 ossec-execd(1350): INFO: Active response disabled. Exiting.
2013/01/11 17:23:46 ossec-agent(1410): INFO: Reading authentication keys file.
2013/01/11 17:23:46 ossec-agent: INFO: Trying to connect to server (111.222.3.4:1514).
2013/01/11 17:23:46 ossec-agent: INFO: Using IPv4 for: 111.222.3.4 .
2013/01/11 17:28:13 ossec-agent: Received exit signal.
2013/01/11 17:28:13 ossec-agent: Exiting...
2013/01/11 17:28:13 ossec-execd(1350): INFO: Active response disabled. Exiting.
2013/01/11 17:28:13 ossec-agent(1410): INFO: Reading authentication keys file.
2013/01/11 17:28:13 ossec-agent: INFO: No previous counter available for 'agent007'.
2013/01/11 17:28:13 ossec-agent: INFO: Assigning counter for agent agent007: '0:0'.
2013/01/11 17:28:13 ossec-agent: INFO: No previous sender counter.
2013/01/11 17:28:13 ossec-agent: INFO: Assigning sender counter: 0:0
2013/01/11 17:28:13 ossec-agent: INFO: Trying to connect to server (111.222.3.4:1514).
2013/01/11 17:28:13 ossec-agent: INFO: Using IPv4 for: 111.222.3.4 .
2013/01/11 17:29:20 ossec-agent: Starting syscheckd thread.
2013/01/11 17:29:20 ossec-rootcheck: INFO: Started (pid: 1984).
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software \Classes\batfile'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software \Classes\cmdfile'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\comfile'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\exefile'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\piffile'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\AllFilesystemObjects'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\Directory'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\Folder'. 2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\Protocols'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Policies'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Security'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurePipeServers\winreg'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\URL'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/win.ini'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/system.ini'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\autoexec.bat'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\config.sys'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\boot.ini'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/CONFIG.NT'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/AUTOEXEC.NT'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/at.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/attrib.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/cacls.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/debug.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/drwatson.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/drwtsn32.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/edlin.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32 /eventcreate.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32 /eventtriggers.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/ftp.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/net.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/net1.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/netsh.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/rcp.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/reg.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/regedit.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/regedt32.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/regsvr32.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/rexec.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/rsh.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/runas.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/sc.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/subst.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/telnet.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/tftp.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/tlntsvr.exe'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/drivers/etc'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Documents and Settings/All Users/Start Menu/Programs/Startup'.
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Users/Public/All Users/Microsoft/Windows/Start Menu/Startup'.
2013/01/11 17:29:20 ossec-agent: INFO: Started (pid: 1984).
2013/01/11 17:29:30 ossec-agent: WARN: Process locked. Waiting for permission...
2013/01/11 17:29:41 ossec-agent(4101): WARN: Waiting for server reply (not started). Tried: '111.222.3.4'.
2013/01/11 17:29:43 ossec-agent: INFO: Trying to connect to server (111.222.3.4:1514).
2013/01/11 17:29:43 ossec-agent: INFO: Using IPv4 for: 111.222.3.4 .
Iz podataka ove log datoteke možemo pročitati razne korisne informacije. Npr. možemo vidjeti da je OSSEC nadzirao registre. To se da pročitati iz linija kao što je slijedeća:
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring registry entry: 'HKEY_LOCAL_MACHINE\Software\Classes\batfile'.
Nadalje, vidimo da su analizirane datoteke iz /System32 direktorija. To se vidi u slijedećem primjeru:
2013/01/11 17:29:20 ossec-agent: INFO: Monitoring directory: 'C:\Windows/System32/rsh.exe'.
Popis svih datoteka i registre koji se nadziru možemo vidjeti u View Config. U toj datoteci općenito možemo vidjeti različite elemente, kao što su:
Osim navedenih osnovnih elemenata u prethodnoj tablici, u datoteci internal_options.conf možemo mijenjati dodatne mogućnosti za konfiguraciju. Pri tome treba biti oprezan jer loše konfiguriran OSSEC sustav može predstavljati opasnost da će nastati problemi prilikom pokretanja. Opcije koje su sadržane u datoteci internal_options.conf su slijedeće:
Prije svakog mijenjanja konfiguracije OSSEC-a poželjno je napraviti backup prethodnih postavki.
--Dolicanin 10:28, 17. siječnja 2013. (CET)
Brza reakcija (Active Response)
Jedna od svojstva i funkcionalnosti OSSEC sustava je i brza reakcija (eng. Active response). Njegova svrha jest automatska sanacija sigurnosnih napada i prijetnji te samim time predstavlja bitnu i snažnu ulogu u smanjenju rizika i štete. Brza reakcija predstavlja kombinaciju izvršnog programa, odnosno skripte te definiciju naredbe i OSSEC pravila. Pokreće određenu skriptu svaki put kad se pravilo poklopi sa OSSEC skupom pravila, a broj reakcija ovisi o određenom pravilo. Active response skripte dolaze zajedno sa instalacijom OSSEC programa te odmah omogućuje njegovu primjenu.
--Luka Mikolaj 21:00, 19. siječnja 2013. (CET)
Vrste skripta
Active response skripte nakon instalacije moguće je pronaći u active-response/bin/ direktoriju a neke od njih su:
- disable-account.sh – isključuje login račun na većini Unix-like operacijskim sustavima
- host-deny.sh – dodaje host u etc/host.deny datoteku na servisima koji koriste tcpwrappers sustav
- route-null.sh – dodaje IP adresu na crnu listu. Slična je kao i firewall-drop.sh, ali za razliku od nje koristi se samo kod hostova koji prosljeđuju pakete na internet poput rutera.
- firewall-drop.sh – firewall response skripta koja radi na Linux/Unix operacijskim sustavima
- ipfw_mac.sh – firewall-drop response skripta koja se koristi za Mac OS firewall
- ipfw.sh - firewall-drop response skripta koja se koristi za FreeBSD IP filtriranje paketa
- pf.sh - firewall-drop response skripta koja se koristi za BSD filtriranje paketa
Sve te skripte napisane su kako bi blokirale i spriječavale opasne akcije mjenjajući konfiguraciju koristeći IP adrese i korisnička imena. Međutim, kod pisanja skripti treba biti oprezan, jer loše napisane skripte omogučavaju napadačima šanse za uspješan napad.
--Luka Mikolaj 21:00, 19. siječnja 2013. (CET)
Naredbe
Kako bi se izvršila neka brza reakcija (eng. Active response) OSSEC skripta mora biti referencirana na neko pravilo. Način na koji se ta referenca ostvaruje jest definiranje naredbe (eng. Command). Sve naredbe nalaze se u active-response/bin direktoriju, a u pozivaju se u ossec.conf datoteci. Na ovom primjeru pokazat ćemo prikazat ćemo način pozivanja host-deny skripte uz pomoć naredbe:
- <command>
- <name>host-deny</name>
- <executable>host-deny.sh</executable>
- <expect>srcip</expect>
- <timeout_allowed>yes</timeout_allowed>
- </command>
- <command>
Prikaz tag elemenata koji mogu biti uključeni u naredbu
Dakle, kako bi se definirala neka naredba potrebno je otvoriti <command> tag, unutar njega navesti ime naredbe, skriptu koju će ta naredba izvršavati kod poziva brze reakcije, listu varijabli koja se prosljeđuje izvršnoj skripti te mogućnost pauziranja.
Nakon što se definira naredba, potrebno ju je pozvati unutar brze reakcije, odnosno povezati sa određenim pravilom ili jačinom, kako bi se željena skripta izvršila. Osim što je treba povezati sa nekim pravilom, potrebno je i odrediti gdje će se ona izvršiti ( lokalno, na serveru ili na svim agentima).
- <active-response>
- <disabled>no</disabled>
- <command>host-deny</command>
- <location>local</location>
- <agent_id>001</agent_id>
- <level>6</level>
- <rules_id>444,458</rules_id>
- <rules_group>webserver</rules_group>
- <timeout>600</timeout>
- </active-response>
- <active-response>
Prikaz tag elemenata koji mogu biti uključeni u Active Response
--Luka Mikolaj 21:00, 19. siječnja 2013. (CET)
Primjer kreiranja jednostavne brze reakcije (Active Response-a)
Jedan od najlakših brzih reakcija je ona koja šalje e-mail sa upozorenjem o korisniku ili IP adresi . Prvo je potrebno napisati skiptu koja će poslati e-mail, zatim definirati naredbu te na kraju povezati naredbu s brzom reakcijom.
Prvo ćemo napisati skriptu po imenu mail-notify.sh
- #!/bin/sh
- # Adds an IP to the /etc/hosts.deny fi le
- # Requirements: working local SMTP relay (example: sendmail)
- # Expect: user, srcip
- ACTION=$1
- USER=$2
- IP=$3
- MAIL_SUBJECT=“OSSEC HIDS Response”
- MAIL_ADDRESS=“ossec_user@domain.tld”
- MAIL_CMD=mail -s “$MAIL_SUBJECT” $MAIL_ADDRESS
- MAIL_BODY=“This is an automated response. $ACTION restriction for
- $USER at $IP”
- echo “$MAIL_BODY” | $MAIL_CMD
Navedena skripta u komentarima ima navedene parametre koji su potrebni za izvršavanje te njezinu svrhu. Parametre koje skripta očekuje su user i IP adresa koje će zatim poslati na e-mail zajedno sa porukom. Nakon što smo definirali skriptu, potrebno je definirati i naredbu u ossec.conf datoteci.
- <command>
- <name>mail-notify</name>
- <executable>mail-notify.sh</executable>
- <expect>user,srcip</expect>
- <timeout_allowed>no</timeout_allowed>
- </command>
- <command>
Definirali smo naredbu po imenu mail-notify, koja izvršava mail-notify.sh skriptu te joj prosljeđuje korisničko ime i izvorišnu IP adresu. Zadnji zadatak jest da definiramo brzu reakciju i u njoj pozovemo prethodno definiranu naredbu.
- <active-response>
- <disabled>no</disabled>
- <command>mail-notify</command>
- <location>server</location>
- <rules_group>sshd</rules_group>
- </active-response>
- <active-response>
Brza reakcija dogodit će se za svaki događaj iz grupe pravila sshd i izvodit će se na serveru.
--Luka Mikolaj 21:00, 19. siječnja 2013. (CET)
OSSEC dekoderi i pravila
Uvod
Dekoderi i pravila daju OSSEC HIDS-u njegovu moć. Kada se kombiniraju, omogućuju konfiguriranje i podešavanje svakog upozorenja OSSEC HIDS-a, uključujući i one koji se generiraju za provjeru integriteta upozorenja, syslog i agent zapisanog događaja, te upozorenje kod detekcije rootkit-a. Svako OSSEC pravilo se sprema u mapu rules/ gdje je instaliran OSSEC HIDS. Obično se nalazi u /var/ossec/rules/. Svako pravilo je definirano u zasebnoj XML datoteci te je nazvano u skladu s pravilom. Instalacija OSSEC HIDS-a prema zadanome sadrži 43 datoteke pravila, koje su nabrojane i opisane na sljedećoj slici:
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
OSSEC HIDS proces analiziranja
Na sljedećoj slici je prikazano kako OSSEC HIDS postupa s događajima koje je primio:
U trenutku kada je događaj primljen, OSSEC HIDS pokušava dekodirati i izvući sve relevantne informacije iz njega. Dekodiranje i normalizacija događaja se odvija u dva dijela koja se nazivaju: pred dekodiranje i dekodiranje. Polja koja se koriste kod dekodiranja prikazana su u sljedećoj tabeli:
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Događaji pred dekodiranja
Proces pred dekodiranja je veoma jednostavan, te mu je svrha da izdvoji samo statičke informacije iz dobro poznatih polja događaja. Obično se koristi s zapisima koje prate najkorištenije protokole, kao što su Syslog i ASL formati. Informacije koje se izdvajaju u ovoj fazi su: vrijeme, datum, naziv poslužitelja, naziv programa te zapis.
Primjer: Sljedeći zapis prikazuje da je syslog stao. Pred dekoder može analizirati taj zapis te izdvojiti važne informacije koje su prikazane u tabeli.
Jan 14 7:03:41 linux_server syslogd: stopped
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Dekodiranje događaja
Dekodiranje je faza koja dolazi nakon pred dekodiranja. Glavni cilj dekodiranja je izdvajanje ne statičnih informacija događaja, koje se mogu kasnije koristiti u pravilima. Uglavnom se izdvaja informacija o IP adresi, korisničko ime te slični podaci.
Jan 14 21:52:03 linux_server sshd[1025]: Accepted password for dcid from 192.168.2.191 port 1618 ssh2
Ako zapis sadrži potrebne informacije, poruka će biti dekodirana, te će izdvojiti sljedeća polja:
Dekodiranje, za razliku od pred dekodiranja, nije statično, te se može razlikovati od događaja do događaja. Svi dekoderi su korisnički podešeni u decoder.xml datoteci u etc/ direktoriju OSSEC HIDS instalacije. Ovo je obično smješteno u /var/ossec/etc/decoder.xml. Postoji nekoliko dekoderskih opcija koje su dostupne, te su one navedene i objašnjene u sljedećoj tabeli.
Svaki dekoder je omeđen s <decoder> </ dekoder> oznakom, gdje je ime dekodera navedeno. Unutar <decoder> </ dekoder> oznake mogu se koristiti polja koja su navedena u prethodnoj tabeli.
<decoder name=“Proba_dekodiranja”></decoder>
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Primjer dekodiranja
U ovom primjeru prikazano je kako napraviti dekoder koji će iz sshd zapisa izdvojiti korisničko ime i izvorišnu IP adresu. Sshd poruka glasi:
Jan 14 21:52:03 linux_server sshd[1025]: Accepted password for dcid from 192.168.2.191 port 1618 ssh2
Kako bi se informacija izdvojila, potrebno je definirati dekoder. Prvi korak je kreiranje dekodera, kojeg ćemo nazvati
<decoder name=“sshd-testiranje”>
</decoder>
Unutar dekodera potrebno je također definirati oznaku <program_name></program_name> tako da će se dekoder opozvati samo ako se ime programa podudara sa sshd u syslog zaglavlju. <program_name>sshd</program_name>
Za izdvajanje korisničkih podataka i informacije o portu iz poruke, potrebno je koristiti <regex></regex> oznaku. Potrebno je staviti \S+ koji će pregledavati niz uzastopnih znakova koji nisu prazan prostor (npr. tabulatori i razmaci). Dvije skupine za snimanje (u zagradama) će se podudarati s djelom poruke gdje se nalazi korisničko ime i IP adresa.
<regex>^Accepted \S+ for (\S+) from (\S+) port </regex>
Također je potrebno odrediti poredak kojim će OSSEC HIDS raščlanjivati polja iz poruke. U ovom slučaju, redoslijed je: korisničko ime, pa nakon toga izvorišna IP adresa.
<order>user, srcip</order>
Potpuni dekoder će izgledati ovako:
<decoder name=“sshd-testiranje”>
<program_name>sshd</program_name>
<regex>^Accepted \S+ for (\S+) from (\S+) port </regex>
<order>user, srcip</order>
</decoder>
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
OSSEC pravila
Nakon što je informacija izvađena preko pred dekodiranja i dekodiranja, pozivaju se pravila kako bi provjerila da li je potrebno poslati upozorenje ili ne. OSSEC HIDS vrednuje pravila kako bi znao da li je za primljen događaj potrebno poslati obavijest upozorenja, ili bi to trebao biti dio kompozitnog obavještavanja (s više događaja). Kao što smo već spomenuli prije, svako OSSEC pravilo se sprema u mapu rules/ gdje je instaliran OSSEC HIDS. Obično se nalazi u /var/ossec/rules/. Svako pravilo je definirano u zasebnoj XML datoteci te je nazvano u skladu s pravilom.
Postoje dvije vrste OSSEC HIDS pravila: nerazdvojiva (jednostavna) i kompozitna (složena). Jednostavna pravila se temelje na jednom događaju, bez ikakve povezanosti. Npr., ako se vidi da je netko upisao krivu lozinku, može se poslati upozorenje na temelju tog jednog događaja. Za razliku od jednostavnih, kompozitna pravila se temelje na više događaja. Npr., ako korisnik želi da ga se obavijesti, tj. upozori kada je lozinka krivo upisana 5 puta sa iste IP adrese, tada su potrebna kompozitna pravila.
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Jednostavna pravila
Ovdje će biti objašnjeno na koji način se kreiraju jednostavnih pravila. Svako pravilo, ili grupa pravila, mora biti definirano unutar <group></group> oznake. Atribut name mora sadržavati pravila za koja korisnik želi da budu dio te grupe. U ovom primjeru grupa će sadržavati syslog i sshd pravila.
<group name=“syslog,sshd,”>
</group>
Grupa može sadržavati koliko god pravila korisnik želi. Pravila se definiraju putem <rule></rule> oznake, te mora sadržavati barem dva atributa, id i level (razina). ID je jedinstveni identifikator, a level predstavlja ozbiljnost upozorenja. U sljedećem primjeru su kreirana dva pravila, od kojih svaka ima drukčiji ID i razinu.
<group name=“syslog,sshd,”>
<rule id=“100001” level=“5”>
- </rule>
- <rule id=“100002” level=“6”>
- </rule>
</group>
Pravila koja definira korisnik trebala bi imati ID u rasponu od 100000 do 119999. Ukoliko korisnik upotrijebi bilo koji drugi ID, taj ID bi se mogao podudarati s onima iz OSSEC HIDS projekta.
Moguće je definirati dodatne podgrupe unutar roditelj grupe koristeći <group></group> oznaku (moguće OSSEC HIDS grupe prikazane su u poglavlju "OSSEC HIDS grupe"). Također je potrebno staviti opis unutar <description></description> oznake, kako bi korisnik morao razlikovati kreirana pravila.
<group name=“syslog,sshd,”>
- <rule id=“100001” level=“5”>
- <group>authentication_success</group>
- <description>SSHD testiranje uspješnosti autentifikacije</description>
- </rule>
- <rule id=“100002” level=“6”>
- <description>SSHD testiranje pravila</description>
- </rule>
</group>
Još jedna važna oznaka je <decoded_as></decoded_as> oznaka. Putem toga se određuje da će pravilo biti vrednovano samo ako se dekodira pomoću određenog dekodera. U ovom primjeru je putem te oznake određeno da će se pravilo moći prevesti samo ako se događaj dekodira putem sshd dekodera. Dobro je dodati i opis koji će opisati da će pravilo zapisati svaku dekodiranu sshd poruku.
<rule id=“100003” level=“5”>
- <decoded_as>sshd</decoded_as>
- <description>Zapisivanje svake sshd poruke</description>
</rule>
Možda ovo prethodno pravilo i nije od neke koristi, ali se može proširiti koristeći <match></match> oznaku kako bi se vrednovali dijelovi zapisa. Npr., ukoliko se želi zapisati neuspjele pokušaje prijave na server prouzrokovane unosom krivih SSH lozinki, moglo bi se kreirati pravilo za podudaranje s određenim nizom znakova nekog događaja. U nastavku je prikazan zapis o neuspjeloj Linux sshd lozinki:
Jan 14 21:42:03 linux_server sshd[1125]: Failed password for invalid user lcid from 192.168.2.191 port 1799 ssh2
Koristeći <match></match> oznake, moguće je pretražiti zapis i iskoristiti dio gdje piše "Failed password" (neuspjela lozinka) te na taj način detektirati sve događaje ove vrste.
<rule id=“100004” level=“5”>
- <decoded_as>sshd</decoded_as>
- <match>^Failed password</match>
- <description>Neuspjeli pokušaj unosa SSHD lozinke</description>
</rule>
Na taj se način može korisnika upozoriti na neuspjele pokušaje unosa sshd lozinke. U nastavku su još nabrojane uvjetne mogućnosti jednostavnih pravila, te mogućnosti grananja.
Uvjetne mogućnosti jednostavnih pravila su: match, regex, decoded_as, srcip, dstip, srcport, dstport, user, program_name, hostname, time, weekday, id, url. Opisi ovih mogućnosti mogu se vidjeti u poglavlju "Sintaksa pravila".
Često je potrebno proširiti neko pravilo kako bi se dobila željena funkcionalnost. To se postiže uz grananje. Mogućnosti grananja su prikazane u slijedećoj tabeli:
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Kompozitna pravila
U prošlom poglavlju bile su objašnjene mogućnosti za pojedinačne događaje. Ukoliko korisnik želi povezati više događaja, postoji nekoliko drugih opcija koje je potrebno razumjeti kod kompozitnih pravila. Kompozitna pravila bi trebala podudarati trenutni događaj s onim koji je OSSEC HIDS već zaprimio. Mogućnost frequency (učestalost) određuje koliko puta se neki događaj mora dogoditi prije nego što pravilo generira upozorenje. Timeframe opcija pokazuje OSSEC HIDS-u koliko daleko unatrag, u sekundama, treba promatrati događaje.
Sva kompozitna pravila imaju sljedeću strukturu:
<rule id=“100123” level=“10” frequency=“x” timeframe=“y”>
</rule>
Moguće je napraviti kompozitno pravilo koje kreira upozorenje veće važnosti nakon 5 krivih lozinki u periodu od 5 minuta. Korištenjem oznake <if_matched_sid></if_matched_sid> moguće je navesti koja pravila je potrebno promatrati u okviru željene frekvencije i vremenskog okvira kako bi novo pravilo kreiralo upozorenje. U slijedećem primjeru, korištena je mogućnost level kako bi se važnost upozorenja stavila na razinu 10. Mogućnost frequency je postavljena tako da pošalje upozorenje kada su vidljiva 5 upozorenja OSSEC HIDS-a, a mogućnost timeframe se koristi kako bi se postavio vremenski okvir na 300 sekundi (5 minuta).
Oznaka <if_match_sid></if_match_sid> se koristi kako bi se definiralo koje će pravilo kompozitno pravilo promatrati. U ovom slučaju promatrat će se upozorenja koja se odnose na jednostruke promašaje lozinke, a to je pravilo 100124. Poželjno je staviti i opis putem <description></description> oznake.
Pravilo sada izgleda ovako:
<rule id=“100123” level=“10” frequency=“5” timeframe=“300”>
- <if_matched_sid>100124</if_matched_sid>
- <description>5 krivo unesenih lozinki unutar 5 minuta</description>
</rule>
Postoji nekoliko dodatnih oznaka koje možemo koristiti za stvaranje detaljnijih kompozitnih pravila. Ta pravila, kao što je prikazano u sljedećoj tabeli, omogućuju određivanje da pojedini dijelovi događaja moraju biti isti. To omogućuje podešavanje pravila te smanjenje lažno pozitivnih upozorenja.
Putem tih dodatnih oznaka može se prethodno pravilo poboljšati kako bi ga ograničili na isti izvor IP adrese. To se postiže korištenjem oznake <same_source_ip /> . Na taj način smanjit će se lažno pozitivna upozorenja u korisničkom mrežnom okruženju. Ako se OSSEC HIDS koristi na velikoj mreži, često se mogu vidjeti po nekoliko pogrešno unesenih lozinki tijekom normalnog dana. Ograničavanjem kompozitnog pravila na jedan izvor IP adrese, osigurava da će pravilo slati upozorenje samo ako se korisnik bezuspješno pokuša prijaviti 5 puta za redom.
<rule id=“100130” level=“10” frequency=“5” timeframe=“600”>
- <if_matched_sid>100124</if_matched_sid>
- <same_source_ip />
- <description>5 krivo unesenih lozinki unutar 5 minuta </description>
</rule>
Pravilo se može podesiti tako da upozorava na svaki neuspjeli pokušaj autentifikacije. Kako bi se to postiglo, potrebno je zamijeniti oznaku <if_matched_sid></if_matched_sid> s oznakom <if_matched_ group></if_matched_ group> . To omogućuje da se odredi kategorija kao što je authentication_ failure, koja pretražuje cijelu infrastrukturu za neuspjele pokušaje autentifikacije.
<rule id=“100123” level=“10” frequency=“5” timeframe=“300”>
- <if_matched_group>authentication_failure</if_matched_group>
- <same_source_ip />
- <description>5 krivo unesenih lozinki unutar 5 minuta </description>
</rule>
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Sintaksa pravila
rule
- Definira pravilo
- Atributi:
- level
- Određuje razinu pravila. Ovu vrijednost koriste upozorenja i odgovori
- Dozvoljeno: bilo koji broj od 0 do 15
- id
- Određuje ID pravila
- Dozvoljeno: bilo koji broj od 100 do 99999
- maxsize
- Određuje maksimalnu veličinu događaja
- Dozvoljeno: bilo koji broj od 1 do 99999
- frequency
- Određuje koliko se puta pravilo podudaralo prije nego što je pokrenuto
- Pravilo se mora podudarati za 2 broja više od tog broja
- Dozvoljeno: bilo koji broj od 1 do 999
- Primjer: frequency = 5 znači da se pravilo mora podudarati 7 puta
- timeframe
- Vremenski okvir u sekundama
- Ova opcija je namijenjena korištenju u paketu s frequency opcijom
- Dozvoljeno: bilo koji broj od 1 do 9999
- ignore
- Vrijeme (u sekundama) za ignoriranje ovog pravila nakon što je pokrenuto (iz razloga da se izbjegne preopterećenje)
- Dozvoljeno: bilo koji broj od 1 do 9999
- overwrite
- Koristi se kako bi se OSSEC-ovo pravilo zamijenilo lokalnim promjenama
- Overwrite je koristan kod promjene razine (level) ili drugih opcija koje su uključene u OSSEC
- Dozvoljeno: da
- level
match
- Bilo koji niz znakova koji se podudara s zapisanim događajem
- Dozvoljeno: bilo koji OS_Match/sregex sintaksa
regex
- Bilo koji regex koji se podudara s zapisanim događajem
- Dozvoljeno: bilo koji OR_Regex/regex sintaksa
decoded_as
- Bilo koje dekodersko ime
- Dozvoljeno: bilo koje deodersko ime
category
- Slaganje s dekodiranom kategorijom (ids, syslog, firewall, web-log, squid ili windows)
- Dozvoljeno: bilo koja kategorija od category
srcip
- Bilo koja IP adresa ili CIDR blok se uspoređuje s IP decoded as scrip-om
- Za negiranje se koristi "!"
- Dozvoljeno: bilo koji scrip
dstip
- Bilo koja IP adresa ili CIDR blok se uspoređuje s IP decoded as dstip-om
- Za negiranje se koristi "!"
- Dozvoljeno: bilo koja dstip
user
- Bilo koje korisničko ime (dekodirano kao korisničko ime)
- Dozvoljeno: bilo koja OS_Match/sregex sintaksa
program_name
- Ime programa je dekodirano putem imena procesa syslog-a
- Dozvoljeno: bilo koja OS_Match/sregex sintaksa
hostname
- Bilo koji naziv poslužitelja (koje je dekodirano kao syslog naziv poslužitelja) ili log datoteka
- Dozvoljeno: bilo koja OS_Match/sregex sintaksa
time
- Vrijeme generiranja događaja
- Dozvoljeno: bilo koji vremenski raspon (hh:mm-hh:mm)
- Primjer: <time>8 am – 8 pm</time>
weekday
- Dan u tjednu kada je događaj generiran
- Dozvoljeno: Monday-Sunday, weekday, weekend
id
- Bilo koji ID (koji je dekodiran kao ID)
- Dozvoljeno: bilo koja OS_Match/sregex sintaksa
url
- Bilo koji URL (koji je dekodiran kao URL)
- Dozvoljeno: bilo koja OS_Match/sregex sintaksa
if_sid
- Podudara se ako se ID podudara
- Dozvoljeno: bilo koji ID pravila
if_group
- Podudara se ako se grupa već prije podudarala
- Dozvoljeno: bilo koja grupa
if_level
- Podudara se ako se razina već prije podudarala
- Dozvoljeno: bilo koja razina od 1 do 16
if_matched_sid
- Podudara se ako je upozorenje definiranog ID-a bilo pokrenuto u određenom broju sekundi.
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Upozorenje: pravila na razini 0 su odmah odbačena i neće se koristiti s if_matched_ rules. Razina mora biti najmanje 1, ali <no_log> opcija se može dodati pravilu kako bi se osiguralo da se pravilo ne zabilježi.
- Dozvoljeno: bilo koji ID pravila
if_matched_group
- Podudara se ako se upozorenje definirane grupe pokrene u određenom broju sekundi
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Dozvoljeno: bilo koja grupa
if_matched_level
- Podudara se ako se upozorenje definirane razine pokrene u određenom broju sekundi
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Dozvoljeno: bilo koja razina od 1 do 16
same_source_ip
- Određuje da ip izvora mora biti isti
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Primjer: <same_source_ip />
same_source_port
- Određuje da port izvora mora biti isti
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Primjer: <same_source_port />
same_dst_port
- Određuje da port odredišta mora biti isti
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Primjer: <same_source_port />
same_location
- Određuje da lokacija mora biti ista
- Ova opcija se koristi u kombinaciji s učestalošću (frequency) i vremenskim okvirom (timeframe)
- Primjer: <same_location />
same_user
- Određuje da dekodirani username mora biti isti
same_id
- Određuje da dekodirani ID mora biti isti
description
- Opis pravila
- Dozvoljeno: Bilo koji niz znakova
list
- Preoblikovanje CDB pretraživanja pomoću OSSEC liste. Ovo je brzo na bazi podataka diska, koji će uvijek pronaći ključeve u roku dva pretraživanja datoteke.
- Atributi
- field
- Polje koje se koristi kao ključ za pregled CDB datoteke:
- Vrijednost: scrip
- Vrijednost: srcport
- Vrijednost: dstip
- Vrijednost: dstport
- Vrijednost: user
- Vrijednost: url
- Vrijednost: id
- Vrijednost: hostname
- Vrijednost: program_name
- Vrijednost: status
- Vrijednost: action
- Polje koje se koristi kao ključ za pregled CDB datoteke:
- lookup
- Ovo je vrsta lookup-a koji se izvodi:
- Vrijednost: match_key
- Podudaranje ključeva: polje je ključ koji se pretražuje unutar cdb-a i podudarat će se ukoliko je ključ prisutan
- Ovo je prema zadanoj vrijednosti ako lookup nije zadan.
- Vrijednost: not_match_key
- Nepodudaranje ključeva: polje je ključ za pretraživanje te će se podudarati ako NIJE prisutan u bazi podataka.
- Vrijednost: match_key_value
- Ključ i podudaranje vrijednosti: polje se pretražuje unutar cdb-a te će se, ukoliko je pronađena, ta vrijednost uspoređivati s regex-om iz atributa check_value.
- Vrijednost: address_match_key
- Podudaranje ključa: polje je IP adresa te ključ koji se pretražuje unutar cdb-a i podudarat će se ukoliko je ključ prisutan
- Vrijednost: not_address_match_key
- Nepodudaranje ključa: polje je IP adresa te ključ koji se pretražuje unutar cdb-a i podudarat će se ako NIJE prisutan u bazi podataka
- Vrijednost: address_match_key_value
- Ključi i vrijednost se podudaraju: polje je IP adresa koja se traži unutar cdb-a te će se, ukoliko je pronađena, vrijednost će se usporediti s regexom iz atributa check_value.
- Vrijednost: match_key
- Ovo je vrsta lookup-a koji se izvodi:
- check_value
- Regex obrazac za pronalaženje podudaranja vrijednosti koja je izvađena iz cdb-a kad se koriste vrste lookup-a kao što su: address_match_key_value, match_key_value
- field
- Dozvoljeno: Put do cdb datoteke koja se koristi za lookup u OSSEC direktoriju. Ova datoteka također mora biti uključena u ossec.conf datoteku
- Primjer:
<rule id="100000" level="7">
- <list lookup="match_key" field="srcip">path/to/list/file</list>
- <description>Provjera srcip-a za cdb list datotekom</description>
</rule>
info
- Dodatna informacija može biti dodana putem sljedećih atributa:
- Atributi:
- type
- Vrijednost: text
- Ovo je stavljeno prema zadanoj vrijednosti, kada nije izabran niti jedan tip. Koristi se samo dodatnu informaciju o upozorenju/događaju (alert/event).
- Vrijednost: link
- Poveznica na više informacija o upozorenju/događaju.
- Vrijednost: cve
- CVE broj koji je povezan s tim upozorenjem/događajem.
- Dozvoljeno: Bilo koji niz znakova, ali je sadržaj ovisan o tipu atributa.
- Vrijednost: text
- type
options
- Dodatne opcije za pravila
- Dozvoljeno:
- alert_by_email
- Uvijek upozoriti putem e-maila
- Primjer: <options>alert_by_email</options>
- no_email_alert
- Nikad ne upozoriti putem e-maila
- Primjer: <options>no_email_alert</options>
- no_log
- Nemoj prijaviti ovo upozorenje
- Primjer: <options>no_log</options>
- alert_by_email
check_diff
- Koristi se za određivanje kada je došlo do promjene izlazne naredbe
- Korištenje: <check_diff />
group
- Dodaj upozorenje dodatne grupe
- Primjer: <group>group5, group6</group>
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
Klasifikacija pravila kroz razine
Level (razina) može biti u rasponu od 0 do 15, gdje je 0 najniža razina ozbiljnosti, a 15 najviša. Kad se pravila pišu, ona se pohranjuju na taj način da se spremaju prema hijerarhiji. Na taj način se pravila s više razine ozbiljnosti vrjednuju prva. Jedini izuzetak je razina 0, koja se vrednuje prije svih ostalih razina. Razine su definirane na sljedeći način:
Level 0: Ignoriran, ne poduzima se nikakva radnja
- Uglavnom se koristi kako bi se izbjegao lažni pozitivni. Ova pravila se skeniraju prije svih drugih i uključuju događaje koji nemaju sigurnosni značaj
Level 1: Nema Level 2: Sustav niskog prioriteta obavijesti
- Odnosi se na obavijesti sustava ili na poruci o statusu. Nemaju sigurnosnu važnost.
Level 3: Uspješni/Ovlašteni događaji
- Uključuju uspješne pokušaje prijave, događaje koje vatrozid dozvoljava, itd.
Level 4: Sustavna greška niskog prioriteta
- Pogreške se odnose na loše konfiguracije ili na nekorištene uređaje/aplikacije. One nemaju sigurnosnu važnost i obično su uzrokovane putem zadanih instalacija ili softverskim testiranjem.
Level 5: Pogreška koju je generirao korisnik
- Ove pogreške uključuju pogrešne lozinke, nedopuštene akcije, itd. Same po sebi nemaju
Level 6: Napadi niske važnosti
- Pokazuju na crv ili virus koji nemaju utjecaj na sustav. Uključuju češće IDS događaje te česte pogreške.
Level 7: Podudaranje loših riječi“
- U to spadaju riječi poput bad, error, itd. Ovi događaji su većinu vremena neklasificirani, te ponekad imaju neku sigurnosnu važnost.
Level 8: Događaji koji su prvi put viđeni
- Šalje upozorenje kada je IDS događaj prvi put pokrenut ili se korisnik po prvi put prijavio. Ukoliko netko tek počinje koristiti OSSEC HIDS, ova upozorenja će mu vjerojatno dolaziti često. Nakon nekog vremena to bi trebalo prestati. Također uključuje i sigurnosne radnje.
Level 9: Pogreška od nevažećih izvora
- Uključuje i pokušaje prijave kao nevažeći korisnik ili s nevažećeg izvora. Mogu imati sigurnosni značaj (pogotovo ako se ponavljaju).
Level 10: Višestruke korisnički generirane pogreške
- Ovo uključuje unošenje nekoliko loših lozinka, više neuspjelih prijavljivanja, itd. Oni mogu ukazati na napad ili se može desiti da je korisnik samo zaboravio svoju lozinku.
Level 11: Upozorenje provjere integriteta
- Odnosi se na slanje obavijesti u vezi izvršnih datoteka ili prisutnosti rootkita (putem rootcheck-a)
Level 12: Događaj od velikog značaja
- Odnose se na pogrešku ili poruke upozorenja iz sustava, kernel, itd. Oni mogu ukazati na napad protiv određene aplikacije.
Level 13: Neobična pogreška (visoka važnost)
- Većinu vremena se podudara s uzorkom zajedničkih napada.
Level 14: Sigurnosni događaj velikog značaja
- Većinu vremena provodi se s korelacijom te ukazuje na napad.
Level 15: Teški napad
- Kod ove razine nema šanse da se radi o lažno pozitivnom nalazu. Potrebno je istog trena posvetiti pozornost tom napadu.
--Luka Lovrenčić 18:04, 17. siječnja 2013. (CET)
OSSEC HIDS grupe
--Dinjurini 21:37, 20. siječnja 2013. (CET)
Implementacija uspješne OSSEC politike
Da bi bili uspješni prilikom provedbe OSSEC-a u organizaciji, mora se voditi učinkovita politika i podržavati svoje akcije. Ovo poglavlje objašnjava korake koji se moraju poduzeti kako bi se brzo i uspješno razvila i provela politika. Politika u širem smislu, ukazuje na poslovnu vrijednost OSSEC-a koji donosi i vodi tehničku provedbu.
Politika prethodi provedbi
Većina ljudi je neodlučna što se tiče politike. Dok neki svojim razmišljanjem pokazuju da politika mora prva biti razvijena, drugi se ne slažu. Prije nego što se može napisati učinkovita politika, moraju se razumjeti informacije i okruženje koje se štiti. U slučaju OSSEC-a, mora se imati jasno razumijevanje o moći alata i način na koji se namjerava implementirati i djelovati kao dijelom strategije.
Politika pokreće proces
Kao što je na početku rečen plan u tri koraka, ne smije se zaboraviti da poltika pokreće proces. Razmišljajući o uokviravanju i učinkovitoj privatnosti, čak je i nacrt dobar korak za postavljanje zahtjeva.
Rješenja slijede zahtjeve
Nakon što ste naučili moć OSSEC-a i već odlučili da ga implementirate, prije nego što odaberete rješenje trebate definirati zahtjeve. Čak i samostalno, radite s drugima, jer drugi ovise o vašim djelima. Pravi uvjeti prikupljanja i postavljanja uključuju:
- Fokusiranje na izazove i mogućnosti dokumentiranja prave potrebe umjesto "želje" za organizaciju
- Bojanje slike koja liči na uspjeh
- Usmjerenost na ljude, i oni rade svoj posao
--Dinjurini 23:01, 20. siječnja 2013. (CET)
1. Korak: Vodite politiku
Uz moći OSSEC-a, uspostava pilot programa s nekim planiranjem omogućit će korist vrednovanja OSSEC-a u kontekstu svojih organizacijskih potreba. Ako se učini ispravno, dobiju se informacije potrebne za lakšu provedbu i primjenu ovog alata u svojoj strategiji zaštite. Ovo poglavlje se fokusira na tri stvari:
- Procjena okruženja
- Učenje o alatu
- Izgradnja učinkovitih zahtjeva
Procjena okruženja - Iako je procjena obično ne tradicionalna komponenta pilot programa, ona je veoma važna. Većina procjena ograničena je tehnološkim procjenama, ali su i dodatno ograničene na mrežnim skenerima i eventualno kodnim pregledom. Nema sumnje da su važne, ali ne otkrivaju cijelu sliku potrebnu za izgradnju odgovarajuće politike, zahtjeva, ili za davanje informacija koje su potrebne za izgradnju konciznog i uvjerljivog poslovnog slučaja. Kada se s obzirom na ovu vrstu procjene, proširi perspektiva i razmotri procjena, vrijeme je za sljedeća četiri fokus područja: Informacije, okruženje, rizik i tolerancija rizika.
- Informacija - informacija je osnova organizacije te je cilj zaštititi tu informaciju preko povjerljivosti, integriteta i dostupnosti. Pri procjeni informacije, treba se fokusirati na korisnike informacija i kako ih oni koriste. Bez izdavanje presuda, važno je razumjeti različite oblike korištenja za obradu podataka, kao što su npr. elektronički, fizički ili verbalni. Nužno je razumjeti kako se informacije koriste i kako su zaštićene u mirovanju i u prijenosu. Pronađite pet najvažnijih informacijskih imovina i suzite fokus.
- Okruženje - okruženje uključuje prirodu poslovanja; konkretno, koliko je veliko vaše okruženje u smislu ljudi i strojeva te na koliko mnogo lokacija i zemalja se proseže.
- Rizik - procijeniti rizik informacija i okruženja najbolje što se može.
- Rizik tolerancije - organizacijske tolerancije za rizik će vam pomoći shvatiti koje mjere će biti prihvatljive.
Izgradnja učinkovitih zahtjeva -
Sposobnost za implementaciju rješenja i pisanja privatnosti uvelike ovisi o uspješnim zahtjevima. Nažalost, većina nastojanja zaobilaze zahtjeve i faze politike zbog učinkovitosti. Pisajući svoje zahtjeve treba se usredotočiti na sljedeća tri koncepta i tako povećati šanse za uspjeh.
- Širok fokus na dostupnost, integritet i povjerljivost - to su tri temeljna koncepta u sigurnosti i postavljeni zahtjevi moraju obuhvatiti svo troje, zbog toga su zahtjevi široki. Bitno je napomenuti da se izrađuju zahtjevi, a ne rješenja. Npr. „Povjerljive informacije trebaju biti zaštićene tijekom odmora i tijekom prijenosa“, a ne „Informacije moraju biti kriptirane“ jer je enkripcija rješenje. Uvjet je da su podaci zaštićeni od objavljivanja.
- Uključiti druge – važno je uključiti druge ljude u zahtjevima i procesu povjerljivosti. Iskustva i mišljenja drugih mogu pomoći u poboljšanju nastojanja. Raznolika ekipa će dati priliku da podučavate, međusobno razmijenjujete i naučite nešto novo.
- Riješiti poslovni problem – fokusirati se na ono što je potrebno da bi ljudima bilo lakše raditi svoj posao pritom štiteći podatke. Označite poslovne i funkcionalne potrebe i rješenje će se moći graditi na tome.
Provoditi put do uspjeha
Pilot program je velika prilika za učenje elemenata OSSEC-a i uključivanje drugih, tj. onih koji koriste OSSEC i onih koji imaju koristi od njega. Prilikom objašnjavanja sustava dajte drugima da ga vide u akciji te: nastojite razumijeti njihova pitanja jer mogu dati nova saznanja.
--Dinjurini 23:32, 20. siječnja 2013. (CET)
2. Korak: Procijenite svoj trenutni okvir politike
Iz taktičke perspektive, morate se usredotočiti na tri koraka:
- Razumjeti elemente učinkovite politike
- procijeniti vašu trenutnu arhitekturu politike
- Procijenite elemente potrebne za izgradnju, a ne povećanje
To bi značilo brzi i taktički pristup jer treba vremena za procjenu učinkovitosti trenutnog programa politike. Politika je planiranje. Ako želite biti uspješni, morate imat nacrt.
Politička podloga
Riječ politika često se koristi na pogrešan način. Slijedi kratak pregled na četiri osnovna elementa koja se mogu koristiti za provedbu uspješne politike:
- Politika - politika iznosi očekivanja manadžmenta tvrtke i očekivanja posla. U principu politika se većinom donosi jednom i gotovo se nikad ne mjenja
- Standardi – standardi su specifična i detaljna rješenja, uključujući ključnu konfiguraciju softversku reviziju brojeva, definiraju prihvatljiva rješenja kako bi se zadovoljjile potrebe politike organizacije i diktiraju razvoj i implementaciju rješenja. Moraju biti pregledani i ažurirani redovito, preporučeno svaka 3 mjeseca.
- Procedure – postupci su opcionalni. Kad su kreirani, postupci su korak po korak obavezne akcije koje se poduzimaju pri uporabi sustava. Razvijeni su da se jasno prati i održava usklađenost s normom i politikom te uklanjaju nejasnoće.
- Smjernice – smjernice su također opcionalne i neobvezujuće sugestije akcija koje slijede. Smjernice i procedure nemaju nikakvu vezu jedna s drugim. Smjernice se obično izdaju s novim rješenjima, gdje se procedure tek trebaju razvijati ili kad se više načina poslovanja koristi.
Procjena onoga što zasad imamo
Važno je procijeniti politiku, standarde, procedure i smjernice koje su već u uporabi. U većini organizacija, promjene u politici zahtjevaju podosta vremena i truda. Odgovor na pitanje da li rješenje udovoljava il je ovisno o određenim standardima može biti kompliciran te može zahtjevati i pomoć od pravnog savjetnika ili stručnjaka za privatnost.. U idealnom slučaju, ispravno izgrađena politika već postoji i zadovoljava usklađenosti i smjernice vodstva.
--Dinjurini 23:33, 20. siječnja 2013. (CET)
3. Korak: Graditi i implementirati pravila
Do ovog koraka već se treba imati završena procjena okruženja, izgrađeni zahtjevi, eventualno stvoriti visoku razinu političke strukture i provoditi svog pilota. Informacije, iskustvo i pregled trenutnih elemenata politike, olakšat će vašu sposobnost da razvijete i implementirate svoju OSSEC politiku. Minimalni elementi politike koji su potrebni su politika dobiti i gubitka i standard. U slučaju da prikladna politika postoji, tada se treba fokusirati samo na izradu odgovarajućeg standarda.
Izgradnja politike
Postoje 3 osnovna izbora, od najjednostavnijih do najtežih:
- Integracija u trenutnim pravilima bez promjena
- Izmjena govora tekuće politike
- Stvaranje nove politike
Ako se integrira u postojeću politiku, proces i odluku treba preispitati i dokumentirati kako bi se osigurala buduća usklađenost. Kada se mijenja ili stvora nova politika, treba se zalagati za jednostavan i jasan govor. Moguće je pronaći postojeći predložak politike, tada se treba politika uskladiti da zadovoljava te zahtjeve. Vaši procesi politike moraju se poštivati, preporučeno je angažiranje s cijelim timom na početku procesa i korištenje njihovih smjernica za razvijanje politike. Najuspješnije politike su kratke, jasne i fokusirane na posao tako da bilo tko kad je pročita može odmah shvatiti vrijednost OSSEC-a.
Izgradnja standarda
Ako se OSSEC uvodi prvi puta, vjerojatno OSSEC standardi ne postoje. Standardi se uglavnom zadržavaju kratko. Kod izgradnje vlastitog OSSEC standarda treba se usredotočiti na specifičnosti OSSEC-a, dakle koja je verzija, konfiguracija i drugi specifični elementi. Nužno je testirati standarde tako da netko pregleda pilot ili planiranu implementaciju. Nakon pregleda on bi trebao biti u mogućnosti odgovoriti s „da“ ili „ne“ na pitanje: „Da li je sustav u skladu s normom?“ U početku će vjerojatno biti potrebno često ažuriranje, no kasnije će promjene dolaziti samo s OSSEC nadogradnjom ili kod promjena konfiguracije.
Provedba i primjena
Većina elemenata politike zahtijevaju po nekoliko izmjena prije nego što se odobre. Fokusirajući se na proces i poslovne vrijednosti te korištenjem jasnog jezika bez žargona olakšati će proces. Uzmite si vremena za pojašnjavanje elemenata i učite iz procesa kako bi poboljšali politiku i standard koji će osigurati uspjeh.
--Dinjurini 23:00, 20. siječnja 2013. (CET)
Literatura
Knjige
1. Tudor J.K. (2001). Information Security Architecture. CRC Press LLC.
2. Anonymous (2004). Hakerski vodič za zaštitu. Beograd: Kompjuter Biblioteka
3. Bray R., Cid D., Hay A. (2008). OSSEC Host-Based Intrusion Detection Guide. Syngress Publishing, Inc.
Internet
1. Hay A., Cid D., Bray R. OSSEC HIDS Host-Based Intrusion Detection Guide. Dostupno 28.10.2012. na: http://tiny.cc/v9nylw
2. OSSEC. Dostupno 28.10.2012. na: http://www.ossec.net/
3. Carnet. OSSEC HIDS. Dostupno 3.11.2012. na: http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2008-03-222.pdf
4. Carnet. OSSEC HIDS. Dostupno 21.11.2012. na: http://www.cert.hr/node/15380
5. Carnet. Sustavi za sprečavanje neovlaštenih aktivnosti (IPS). Dostupno 21.11.2012. na: http://www.cert.hr/node/17267
6. Edicija dokumenata iz područja informacijske sigurnosti. Dostupno 22.11.2012. na: http://www.cis.hr/www.edicija/index.html
7. Edicija dokumenata iz područja informacijske sigurnosti. Sustavi za detekciju neovlaštenih aktivnosti na bežičnim računalnim mrežama. Dostupno 22.11.2012. na: http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2004-07-83.pdf
8. Edicija dokumenata iz područja informacijske sigurnosti. Detekcija neovlaštenih upada (IDS). Dostupno 22.11.2012. na: http://www.cis.hr/www.edicija/LinkedDocuments/CCERT-PUBDOC-2000-09-04.pdf
9. Pavković N. Detekcija upada u sustav: seminarski rad. Dostupno 22.11.2012. na: http://os2.zemris.fer.hr/ns/2007_pavkovic/IDS.html
10. Modrić E. Sigurnosni sustavi za otkrivanje napada. Dostupno 23.11.2012. na: http://bib.irb.hr/datoteka/361852.diplomski_rad.pdf
11. Pavković N. Sustavi za otkrivanje napada : diplomski rad. http://os2.zemris.fer.hr/ns/2008_pavkovic/Sustavi_za_otkrivanje_napada.html
12. OSSEC. Rules Syntax. Dostupno 12.1.2013. na: http://www.ossec.net/doc/syntax/head_rules.html
13. OSSEC. Create Custom decoder and rules. Dostupno 12.1.2013. na: http://www.ossec.net/doc/manual/rules-decoders/create-custom.html
14. OSSEC. Rules Classification. Dostupno 12.1.2013. na: http://www.ossec.net/doc/manual/rules-decoders/rule-levels.html
--Ivan.vuljak 21:40, 22. studenog 2012. (CET)
--Luka Lovrenčić 18:15, 20. siječnja 2013. (CET)