Ovo je stara izmjena dokumenta!
Prezentacija: prezentacija
U ovome radu će biti opisano nekoliko manje očitih načina pomoću kojih potencijalno možemo detektirati dvije najosnovnije vrste Nmap skeniranja. Također će biti navedeni glavni principi zaštite od Nmap-a, te nekoliko dodatnih trikova pomoću kojih možemo pojačati sigurnost.
Nmap je programski alat otvorenog koda koji se koristi za otkrivanje i analizu uređaja na računalnoj mreži. Omogućuje skeniranje portova na uređajima u svrhu detekcije operacijskog sustava, identifikacije servisa tj. usluga koje se odvijaju ili su prisutne na računalu, pronalaska ranjivosti i razne druge usluge.
Način na koji Nmap ostvaruje ove funkcionalnosti jest kroz različite vrste skeniranja koje može izvesti. Svako skeniranje ima posebne karakteristike i generira određenu vrstu prometa pomoću kojeg bi ga mete skeniranja mogle prepoznati. Međutim da li je moguće sa sigurnošću tvrditi kako se radi o Nmap skeniranju samo na temelju vrsta paketa koji su se razmijenili ?
U ovome seminaru će se proučiti 2 najosnovnije vrste skeniranja: TCP connect sken i SYN sken(stealth sken). Neke pojedinosti ovih skeniranja možda nisu na prvu vidljive korisnicima, a mogu ukazivati da se radi upravo o tim vrstama skeniranja. Proučavat će se promet koji ovi skenovi generiraju u alatu Wireshark kako bi se uočilo te pojedinosti.
Također će se razmotriti principi zaštite od Nmap skeniranja, te nekoliko trikova koji mogu pojačati sigurnost.
SYN sken predstavlja najpopularniju vrstu skena koju može pokrenuti Nmap. Sken funkcionira na principu polu-ostvarene veze, tj. ne ostvaruje se standardno TCP trostruko rukovanje. Na ovaj način se uspješno izbjegava da sustavi u zapisnik unesu podatke o vezi, s obzirom na to da nije u potpunosti uspostavljena.
Jedna od znamenitijih točaka koja može pomoći prilikom detekcije ovog skena je činjenica da vezu uspostavlja sam Nmap. Ovo će se pokazati kao jedna od ključnih stvari kod detekcije samog skena.
Za razliku od SYN skena TCP connect sken se pokreće od strane operacijskog sustava na kojemu radi Nmap te tako ostvaruje vezu koja na prvu izgleda puno legitimnije od one generirane SYN skenom. Uspostavlja se potpuna veza u skladu s TCP trostrukim rukovanjem.
No za razliku od SYN skena, TCP connect se može skoro uvijek otkriti, zato što razni sustavi za zaštitu mogu lako prepoznati ovakvu vrstu skeniranja i napraviti zapis o tome ili generirati upozorenje da je u tijeku skeniranje.
Osnovni načini za prepoznavanje ovih skeniranja je pregled zastavica u paketima koji stižu na žrtvino računalo. SYN Scan prati obrazac: SYN paket od napadača, SYN,ACK odgovor od žrtve, RST od napadača.
TCP connect() Scan prati standardni obrazac uspostave TCP veze, te nakon toga šalje RST paket kojim terminira vezu.
No ovo predstavlja samo najosnovniji način detekciju ovih skenova. U situaciji kada imamo ogromne količine mrežnog prometa, lako je moguće da se pojave slični obrazci koji ne moraju nužno predstavljati sken. U tu svrhu postoji još nekoliko načina kako se može prepoznati ove skenove.
Jedan od načina preko kojega možemo identificirati SYN Scan je veličina prozora SYN paketa. SYN Scan započinej skeniranje slanjem SYN paketa prema portovima na uređaju kojega skenira. S obzirom da se za uspostavu ove veze koristi Nmap a ne OS na kojem se Nmap vrti, veličina tog paketa će biti jako mala.
S druge stranje prvi SYN paket kojega pošalje TCP connect() Scan će imati vrijednost koja je blizu, ili iznosi 65535 što nam govori da se radi o connect pozivu operacijskog sustava, a ne nekoga alata ili programa. Slike 1 i 2 prikazuju istaknute vrijednosti window-a za dvije različite vrsta skena.
Druga metoda preko koje možemo shvatiti da se radi o SYN Scan-u je prisutsvo/odsutstvo TCP opcija u zaglavlju paketa. Paket poslan od strane SYN Scan-a sadrži samo jedno opciju: Maximum segment size.
S druge strane TCP connect() Scan SYN paket sadrži nekoliko opcija i veću veličinu zaglavlja što znači da ga se ovom metodom ne može razlikovati od normalnog prometa.
Iako ovo predstavlja zanimljivo svojstvo za detekciju SYN Scan-a, ako je napadač svjestan ovoga vrlo lako može izmjeniti veličinu zaglavlja što čini metodu beskorisnom.
Na slikama 1.1 i 1.2 se mogu vidjeti istaknute TCP opcije.
Slika 1.1 SYN Scan SYN paket za uspostavu konekcije (uočiti veličinu prozora i broj opcija)
Slika 1.2 TCP connect() Scan SYN paket za uspostavu konekcije (uočiti veličinu prozora i broj opcija)
Do sada smo vidjeli dva načina uz pomoću kojih možemo lako uočiti SYN Scan, no oni nam ne mogu poslužiti za TCP connect() Scan. Tu dolazimo do posebnog svojstva SYN paket pod nazivom TCP conversation completeness. Ovo svojstvo nam omogućava da dodijelimo numeričke vrijednosti paketima koje se tipično razmjenjuju prilikom uspostave TCP komunikacije.
Vrijednosti i paketi kojima ih dodijeljujemo su:
Uz pomoč ovog mapiranja možemo ,sumacijom vrijednosti paketa koji su se razmjenili prilikom komunikacije, odrediti o kakvoj vrsti komunikacije je bilo riječ (da li je bilo podataka ili nije, da li je komunikacija uspješno provedena ili je prekinuta).
U slučaju TCP connect() Scan-a ćemo dobiti vrijednost 39 kao što je prikazano na slici. Samo po sebi ovo ne mora značiti da se radi o skenu, međutim ako iskoristimo vrijednost ovog svojstva kao filtar i pronađemo takvu situaciju više puta u prometu, to bi nam lako moglo pokazati da se radi o skenu.
Slika 1.3 Primjer TCP conversation completeness za TCP connect() Scan
Postoje 3 ključna principa za zaštitu od Nmap skeniranja:
Proaktivno skeniranje obuhvaća proces skeniranja vlastite mreže kako bi korisnik bio svjestan koje uređaja ima na svojoj mreži, koji su portovi otvoreni na tim uređajima, da li postoje skrivene usluge kojih korisnik nije svjestan te pronalazak ranjivosti na uređajima. Na ovaj način korisnik može osvjestiti koje su kritične točke u njegovom sustavu i pobrinuti se za njih.
Otkrivanjem uređaja korisnik je svjestan što je sve spojeno na njegovu mrežu.
Otvoreni portovi koji trebali biti privatni se zatvaraju ili blokiraju.
Ranjivosti na koje korisnik naiđe se mogu ublažiti, maknuti ili staviti pod nadzor.
Korisnik također saznaje za postojanje potencijalno skrivenih usluga kojih nije bio svjestan.
Također, proaktivno skeniranje nije nešto što bi se trebalo koristiti jednokratno, već bi korisnik morao periodički obavljati takva skeniranja kako bi imao ažurno stanje svoje mreže.
Vatrozidi, uz sustave za detekciju napada, i dalje predstavljaju najbolju vrstu zaštite računalnih sustava i uređaja. Korisnik može postaviti vatrozid na postavke koje blokiraju sav promet, te onda stvarati pravila koje se promet smije pustiti. Na ovakav način korisnik puno lakše može blokirati razne varijante malicioznog prometa, nego da za svaki od njih smišlja pravila. Također je preporučeno da se paketi koji su prepoznati kao maliciozni odbacuju, jer se na taj način Nmap sili na gubljenje vremena zbog retransmisija.
Uz metode zaštite važno je imati i sustave koji unose zapise u dnevnike o mrežnoj aktivnosti. Ovako se redovito ima pregled mreže te se u slučaju čudnog ponašanja može proućiti situacija i pravovremeno reagirati ako je došlo do Nmap skeniranja.
Uz navedena pravila i savjete, postoji i niz trikova koji mogu otežati Nmap skeniranja i tako pružiti dodatnu razinu sigurnosti. To su:
Nmap je moćan alat koji nude na tisuće kombinacija skeniranja. Uzevši ovo u obzir apsolutna zaštita od takvog uređaja nije moguća. Međutim pažljivim proučavanjem mrežnog prometa, te svih njegovih aspekata, od onih obskurnih do uočljivih moguće je pronaći i razviti načine kako bi mu se otežao posao.