Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

IDS Sustav Snort

Sažetak

Snort, otvoreni sustav za otkrivanje i sprječavanje upada (IDS/IPS), predstavlja snažan alat u domeni kibernetičke sigurnosti. Ovaj seminar analizira njegovu arhitekturu, naglašavajući modularnost koja omogućuje prilagodbu različitim okruženjima. Opisana je i praktična primjena Snorta kao IDS ili IPS rješenja te načina pisanja pravila i politika koje definiraju njegovo ponašanje.

Uvod

Snort je besplatan alat otvorenog koda koji se koristi kao sustav za otkrivanje (engl. Intrusion Detection System) i prevenciju upada (engl. Intrusion Prevention System) u mrežu. Kao sustav za otkrivanje upada, Snort analizira IP pakete u stvarnom vremenu kroz sustav potpisa i pravila te ispisuje relevantne podatke na korisničko sučelje ili ih zapisuje u dnevnike za daljnju analizu. Kao sustav za prevenciju upada Snort primjenjuje sustav akcija koje definira korisnik sukladno analiziranom prometu te tako prevenira maliciozno ponašanje prema mreži [1].

Arhitektura

Snort je dizajniran za prihvat maksimalne količine podataka te njihovu obradu, bez da kompromitira brzinu mreže ili zauzima preveliku količinu resursa. Njegova arhitektura je modularna te je svaka komponenta samostalna, a sve komponentne tvore cjelinu primarno komunikacijom preko programskog API-a [2].

Osluškivač (engl. Sniffer) služi za skupljanje samih paketa s mreže kao svojevrstan ulaz u aplikativni složaj. On je usko vezan uz mrežno sučelje na kojem se promet osluškuje. U IDS konfiguraciji mrežno sučelje se postavlja u promiskuitetan modus rada kako bi se prihvaćali svi paketi s mreže.

Predprocesor (engl. Preprocessor) razlaže paket na elementarne dijelove koje će obrađivati ostale komponentne. Također, vrši rudimentarno obogaćivanje ili izmjene u paketu poput dekodiranja. Ova komponenta je zadužena i za optimizaciju i ubrzanje prolaska paketa kroz ostatak složaja.

Sustav za otkrivanje (engl. Detection Engine) je srž Snort arhitekture. Ova komponenta primjenjuje skup pravila (engl. Ruleset) na primljeni paket te vrši odluku o akciji koja će se na paket primijeniti.

Sustav za zapisivanje ili upozorenje (engl. Alerts/Logging System) služi za stvaranje konačnog rezultata analize u vidu upozorenja ili dnevničkog zapisa.

Dijagram arhitekture samog složaja prikazan je na Slici 1.

                  Slika 1. Arhitektura Snort složaja

Ovisno o implementaciji u arhitekturu sustava, Snort može obnašati dvije dužnosti:

  • Sustava za otkrivanje upada
  • Sustava za prevenciju upada

Snort kao IDS

Snort primarno obnaša dužnost sustava za otkrivanje upada. To podrazumijeva nadzor mreže u stvarnom vremenu te zapisivanje u dnevnike ili upozoravanje korisnika prilikom događaju koji zadovoljavaju unaprijed definirana pravila. Snort se može koristiti u svojoj izvornoj formi u kojoj se dnevnici spremaju u /var/log direktorij, a upozorenja se ispisuju na standardni izlaz ljuske operacijskog sustava. Uobičajeno je koristiti Snort uz NoSQL bazu poput Elasticsearcha u koju se spremaju dnevnički zapisi, kako bi se olakšalo baratanje velikom količinom informacija. Također, moguće je integrirati Snort s drugim alatima poput Simple Watcher ili Syslog kako bi se proširila funkcionalnost upozoravanja. Snort nudi i mogućnost API-a kroz koji se mogu implementirati i proizvoljna rješenja poput primjerice okidanja komande ili skripte prilikom nekog događaja [3].

Ukoliko je Snort u IDS konfiguraciji tada je preporučljivo da se nalazi na vanjskim rubovima mreže, odmah iza vatrozida, kako je prikazano na Slici 2. U ovom modu rada, dovoljno je na uređaj na kojem je Snort aktivan slati kopiju mrežnog prometa kako se ne bi stvaralo dodatno zagušenje mreže.

           Slika 2. Arhitektura mreže u kojoj je snort u IDS konfiguraciji

Snort kao IPS

Snort može obnašati dužnost sustava za prevenciju upada. Takvi sustavi podrazumijevaju tehnologiju (ili skup tehnologija) koji konstantno nadziru mrežu te identificiraju prijetnje koje se zatim otklanjaju definiranim pravilima i politikama. Sustavi za prevenciju upada nužno uključuju i sustave za otkrivanje upada s obzirom na to da je za primjenu pravila prvo potrebno razumijevanje sadržaja samog paketa [4].

Kako bi Snort radio kao IPS potrebno ga je konfigurirati u linijsku (engl. Inline) arhitekturu, prikazanu na Slici 3. U takvoj arhitekturi uređaj na kojem je Snort aktivan mora imati dva mrežna sučelja kako bi kroz njega aktivno prolazili izvorni paketi koji se onda po potrebi mogu odbaciti [5].

         Slika 3. Arhitektura mreže u kojoj je snort u IPS konfiguraciji

Struktura pravila

Kako bi Snort mogao implementirati funkcionalnosti opisane u prethodna dva poglavlja, korisnik unaprijed mora definirati politike i pravila po kojima će se ponašati. Svako od pravila primjenjuje se na uhvaćene pakete (ili na korespondirajući mrežni tok) te se njihovim nadziranjem definiraju potrebne akcije [6]. Pravila se sastoje od dvije cjeline:

  • Zaglavlja
  • Opcije

Zaglavlje pravila definira primarnu filtraciju vrste paketa na koju će se ostatak pravila primjenjivati te koja vrsta akcije će se primijeniti ukoliko se zadovolje parametri. Pravilo se filtrira paket na koji će se ostatak pravila primjenjivati po IP adresama, TCP/UDP vratima, protokolu te smjeru kretanja paketa. Ključan dio zaglavlja je definiranje akcije koja će se izvršiti ukoliko se zadovolje parametri pravila. Moguće akcije su:

  • Alert – Generirat će se upozorenje na korisničkom sučelju ili u dnevnicima
  • Block – Blokirat će se trenutni paket te svi sljedeći paketni u pripadajućem mrežnom toku
  • Drop – Ispustit će se trenutni paket
  • Log – Zapisat će se čitav sadržaj trenutnog paketa u dnevnike
  • Pass – Paket će se označiti kao „ispitan“ te se na njega neće primjenjivati daljnja pravila

Opcije su tijelo svakog Snort pravila. Sastoje se od dvije cjeline.

Prva cjelina su podaci vezani uz samo pravilo koji se ne odnose direktno na paket, poput meta sadržaja svakog pravila u vidu proizvoljnih informacija koje opisuju pravila ili pak njegovog identifikatora. Unutra tijela je moguće postaviti komentar na samo pravilo. Također u tijelu se definira poruka koju će pravilo ispisati kada se okine.

Druga cjelina su podaci vezani uz provjeru samog paketa, odnosno evaluacije njegovog sadržaja. Dijele se na dvije vrste, pravila koja se odnose na korisnički sadržaj unutar paketa te ona koja ispituju meta podatke samog paketa.

Korisnički sadržaj podrazumijeva onaj dijela paketa kojeg je stvorio korisnik unosom podataka ili poruke. Pravilo može ispitivati sam sadržaj (kao ASCII znakove, heksadekadske ili binarne brojeve). Moguće je provjeravati i gotovo sve karakteristike HTTP zaglavlja poput povratnih kodova, verzija, metoda, parametara, URI-a, verzija i dr. Kod HTTPS prometa, moguće je provjeravati verziju SSL/TLS-a. Također, ugrađena je i podrška za provjeru parametara kod protokola poput IEC 104, SIP, CIP, DNP3, MMS, Modbus, GTP. Uz to moguće je i provjeravati sadrži li paket SHA256, SHA512 i MD5 sažetke.

Kod ispitivanja ne korisničkih podataka samog paketa podrazumijevaju se zastavice ili opcije koje su definirane protokolima na mrežnom složaju. Tako je moguće provjeravati karakteristike poput TTL-a, zastavica TCP rukovanja, ICMP opcija, offseta, veličine samog paketa, fragmentacije, oznake protokola i sl.

Zaključak

Snort se pokazao kao pouzdan alat za implementaciju IDS i IPS rješenja u mrežama. Kao alat otvorenog koda, pristupačan je i svakodnevnom korisniku te otvara mogućnosti integracije s drugim sustavima i alatima. Analizom arhitekture i funkcionalnosti, Snort se dokazuje kao mudro osmišljeno i agilno rješenje prihvata i analize velike količine podataka. Snort se usprkos svojoj starosti ističe kao suvremeno i učinkovito rješenje koje doprinosi sigurnosti mreža.

Literatura

racfor_wiki/seminari2023/ids_sustav_snort.txt · Zadnja izmjena: 2024/01/21 17:55 od Cigula Luka
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0