Objavljeno: 4.2.2007 13:24 | Avtor: Vlado Robar | Monitor Januar 2007

Muholovci na delu

Ali ste se kdaj vprašali, kako pridejo podjetja in organizacije, ki se ukvarjajo z računalniško varnostjo, do primerkov škodljive kode, da preučijo njihovo delovanje in razvijejo sredstva za njihovo nevtralizacijo? Odgovor je v osnovi enostaven: s programom, ki škodljivo kodo dobesedno zvabi v računalnik, na katerem teče tak program. Skupno ime za te programe oziroma računalnike, na katerih so nameščeni, je muholovci (honeypots).

Najbolj jedrnata oznaka, katere avtor je Lance Spitzner (gonilna sila projekta Honeynet, ki se ukvarja z muholovci), pravi, da so muholovci "varnostni viri, katerih vrednost je v tem, da jih lahko napadamo in kompromitiramo". Vsem muholovcem je skupno to, da posnemajo delovanje strežnikov, na katerih teče veliko število storitev (spletni strežnik, strežniki POP3 in SMTP, SSH, telnet, FTP, DHCP...).

Muholovce uporabljajo že dolgo, vendar so šele v zadnjem času postali zanimivi za nekoliko bolj varnostno ozaveščeno računalniško javnost. Prihajajo iz sveta Unixa (in Linuxa), prodrli pa so tudi v okenska okolja - kar je dobro že zato, ker na večini računalnikov na tem svetu teče eden od operacijskih sistemov Windows. Poleg analiziranja ulovljene zlonamerne kode uporabljajo muholovce tudi v druge namene. Muholovec, nameščen v (večjem) omrežju, lahko namreč uporabimo za odvračanje napadov na druge računalnike v tem omrežju. Še veliko več koristnih podatkov, kot jih lahko priskrbi muholovec, dobimo z mrežo muholovcev (Honeynet).

Taka nepovabljena sporočila se prikazujejo na namizju uporabnikov, ki imajo omogočeno storitev Messenger Service.

Kljub navidezni samozadostnosti je treba muholovce skrbno vzdrževati. Zagotoviti je treba, da uspešen napad na muholovca ne kompromitira varnosti v celotnem omrežju. Pri načrtovanju je pomembno zagotoviti to, da napadalec čim pozneje (ali sploh nikoli) ugotovi, da ima opravka z muholovcem, saj navadno temu primerno spremeni svojo strategijo.

Muholovce lahko glede na njihovo delovanje razvrstimo v tri skupine: nizko interaktivne, srednje interaktivne in visoko interaktivne. V prvo skupino sodijo programi, ki lahko simulirajo veliko število strežniških storitev, kaj več od tega pa ne. Za vsako tako storitev znajo prikazati zgolj začetni odziv (banner), potem pa se potuhnejo in prekinejo povezavo z napadalcem. Zgled nizko interaktivnega muholovca je honeyd, ki deluje v okoljih BSD/Linux/Solaris. Srednje interaktivni sistemi zmorejo iz omrežnega prometa, ki prihaja od napadalcev, izluščiti izvršne datoteke (npr. črve ali trojanske konje) in jih shraniti na disku za nadaljnjo analizo. V to skupino lahko uvrstimo okenski HoneyBOT. Pravi visoko interaktivni sistemi so mreže muholovcev. Ves omrežni promet je zabeležen z ustreznim vohljačem (snifferjem), tudi sistemski dogodki so zabeleženi v dnevniških datotekah, vse je pripravljeno za nadaljnjo obdelavo.

Protokola TCP in UDP

Da komuniciranje med računalniki v omrežjih sploh lahko poteka, morajo imeti podatki (ki se pretakajo v obliki različno velikih podatkovnih paketov) natančno določeno obliko, določeno z enim od omrežnih protokolov. Vsak paket je sestavljen iz zaglavja (header) in samih podatkov. TCP/IP je protokol (oziroma družina več protokolov), ki definira pretakanje omrežnih paketkov po medmrežju. Prenos podatkov med dvema računalnikoma v medmrežju omogočata dva protokola, TCP (Transmission Control Protocol) in UDP (User Datagram Protocol).

TCP je protokol, ki zagotavlja prenos za vsako ceno. Da bi bil prenos uspešen, mora ciljni računalnik za vsak paket sporočiti izvirnemu računalniku, da je bil sprejet. Kljub temu da je tok koristnih podatkov enosmeren (vsaj večinoma), je sporazumevanje ves čas dvosmerno. Za uspešno prenašanje je v vsak paket vgrajenih precej nadzornih elementov, zato prenos ni zelo učinkovit.

Nasprotno je UDP enostaven protokol, ki zagotavlja učinkovit prenos z malo nadzornimi elementi. Uporabljajo ga predvsem programi, ki bodisi pošiljajo podatke več ciljnim računalnikom (broadcasting) bodisi so sporočilno zasnovani, oziroma ne zahtevajo popolne zanesljivosti (kot TCP). Na kratko, UDP poskuša po najboljših močeh dostaviti paket, če pa mu iz takega ali drugačnega razloga spodleti, je paket zavržen in ga ne poskuša znova poslati. UDP je zato precej hitrejši od TCP.

Kljub tej razliki pa sta oba protokola posrednika med uporabnikovimi programi in fizičnimi omrežnimi povezavami. Da lahko pravilno posredujeta pakete različnim programom, TCP in UDP v zaglavje paketa na natančno določeno mesto zapišeta dve 16-bitni števili - vrata (port). Eno število vrat je za izvirni in drugo za ciljni računalnik. Tako je za vsakega od protokolov na voljo 65.536 različnih vrat (med 0 in 65535). Števila vrat od 0 do 1023 so dobro znana (well-known port numbers) in vsak količkaj razširjen program uporablja natančno določena vrata (spletni strežnik vrata TCP 80, strežnik FTP vrata TCP 21, poštni strežnik POP3 vrata TCP 110, varni spletni strežnik vrata TCP 443). Praviloma v programih ne vidimo števila vrat, ločimo pa jih z dvopičjem za IP naslovom, npr. www.monitor.si:80 ali http://213.157.243.86:80. V brskalnik lahko vpišemo www.monitor.si:80 in dobimo Monitorjevo spletno stran, po vpisu www.monitor.si:79 ali www.monitor.si:81 pa dobimo sporočilo o napaki.

Število vrat pri spletni povezavi je 80 na strežniški strani, pri odjemalcu pa je številka vrat precej poljubna, ponavadi nad 1024. Če imamo v spletnem brskalniku odprtih več strani, odpre brskalnik vsako povezavo z drugo številko vrat. To je lepo vidno na sliki, ki prikazuje napad na strežnik SQL. Vrata strežnika so za vsak posamezni napad (v obliki enega paketa) TCP 1433, vrata, s katerih so paketi poslani, pa so za vsak paket različna.

Sporočilo prek Messenger Service, ki ga je prestregel naš muholovec HoneyBOT.

Muholovec doma

Muholovec si lahko vsak, ki ga to zanima, namesti v domači računalnik. Vse, kar potrebujemo, je stalna širokopasovna povezava v splet in ustrezen program. Načeloma je mogoče tudi mrežo muholovcev narediti na enem samem fizičnem sistemu prek več navideznih računalnikov (VMWare). Za tako početje potrebujemo kar nekaj znanja in tudi zmogljiv računalnik, ker pa to presega okvir našega članka, smo se vživeli v kožo "lovca na elektronske glave" in namestili nekaj samostojnih muholovcev, ki delujejo v okolju Windows.

Če imamo prek širokopasovnega usmerjevalnika v splet priključenih več računalnikov, moramo najprej poskrbeti, da bo računalnik muholovec tudi navzven videti kot strežnik. Z drugimi besedami, usmerjevalnik mora posredovati nezahtevane dohodne omrežne pakete na čim več vrat. To naredimo v nadzornem programu usmerjevalnika, ki ga navadno nastavljamo kar iz spletnega brskalnika. V naslovno vrstico vpišemo številko IP usmerjevalnika (ponavadi je to 192.168.1.1 ali 192.168.2.1). Nato izberemo nastavitev Virtual Servers (različni usmerjevalniki to možnost sicer različno poimenujejo). Belkinov brezžični usmerjevalnik (s katerim smo preizkušali) npr. omogoča nastavitev 20 navideznih strežnikov, nekateri drugi usmerjevalniki pa manj. Če smo v splet priključeni le z enim računalnikom, je nastavljanje še lažje. Poskrbeti moramo le, da na muholovcu nimamo delujočega požarnega zidu. Nekateri priporočajo, da muholovec "za vsak primer" namestimo v navidezni računalnik, oziroma uporabimo VMWare Workstation, Microsoftov Virtual PC, macovski Parallels Desktop ali linuxovski odprtokodni Xen. Celotno preizkušanje pa je dosti bolj adrenalinsko, če namestimo muholovec na pravi računalnik.

Kaj hočejo od mene?

Cilj vseh napadalcev na računalnike v omrežjih je prikopati se do nadzora nad tujimi računalniki, bodisi v krajevnem omrežju ali kjerkoli na svetu. Nekateri to počnejo iz čistega veselja ali radovednosti, večina pa z namenom pridobivanja koristnih informacij. Mnogokrat uporabljajo kompromitirane sisteme kot odskočno desko za širitev svojega hudodelskega početja.

HoneyBOT

Preizkusili smo tri muholovce, dva komercialna in enega brezplačnega (a ne odprtokodnega). Zelo zanimiv za rabo doma je brezplačni program HoneyBOT podjetja Atomic Software Solutions. Program ima zelo preprost uporabniški vmesnik, odlikuje pa se po velikem številu privzetih odprtih zanimivih vrat - več kot 1200 jih je na seznamu, lahko pa dodamo še druge. Možnosti nastavljanja ni prav veliko: določimo lahko (eno) ime, pod katerim se bodo posamezni strežniki predstavljali svetu. Vsekakor bomo odkljukali tudi možnost shranjevanja zajetih binarnih datotek na disk. Verjetnost, da bi med nekajtedenskim preizkušanjem med prvimi na svetu ujeli novega črva, ni prav velika, je pa že sam vpogled v omrežno dogajanje zelo poučen. V glavnem oknu programa sproti vidimo poskuse vdorov, ki jih lahko filtriramo glede na naslov IP napadalca ali glede na vrata IP, na katera je bil napad usmerjen.

Napadalec je hotel s prekoračitvijo medpomnilnika sesuti spletni strežnik. Zahteval je spletno stran z naslovom, dolgim več tisoč znakov.

Daleč največ je prometa na vratih UDP med 1026 in 1030. Pri vsem tem omrežnem prometu gre za poskus prikaza "reklamnega" sporočila, vsebina teh sporočil pa poskuša prejemnika prepričati, da je okenski register na njegovem računalniku kritično okvarjen. Zapisali smo, da gre za poskus - uspešen je le pri uporabnikih, ki imajo omogočeno storitev Windows Messenger Service (in nimajo nameščenega drugega paketa popravkov SP2 za Windows XP). Mimogrede, ta storitev nima zveze s programi za sprotno sporočanje, kot sta ICQ ali Microsoftov Messenger. Poleg tega morajo imeti odprta vrata TCP 135, 137 in 138 ter vrata UDP 139. Vsako tako sporočilo vsebuje spletni naslov, s katerega si lahko pretočimo program, ki naj bi domnevne kritične napake popravil. Ta sporočila so si podobna, spletnih naslovov, na katere je prejemnik napoten, pa je kar lepo število. Nekateri reklamarji imajo celo smisel za humor, saj trdijo, da se po namestitvi njihovega programa ta nadležna sporočila ne bodo več prikazovala. Na teh spletnih naslovih v resnici ne najdemo veliko reklamiranih programov. Omenimo jih nekaj: Registry Doc, NoAdware, Repair Registry Pro, Evidence Eraser, Registry Admin.

Ko tak program za "popravilo" registra prečeše disk, navadno prikaže "sumljive" vnose v register (nekaterih v registru našega računalnika v resnici sploh ni bilo) in obljubi, da bo vnose odstranil, ko bomo program registrirali - ob primernem plačilu seveda. Naj takoj omenimo, da gre večinoma za okrog 40 dolarjev, za toliko denarja ali celo manj pa dobimo katerega od pravih in dobro preizkušenih (tudi v Monitorju, julij 2005) programov za zdravljenje registra. Poleg tega, da gre za sporen način oglaševanja, so nekateri teh programov tudi škodljivi, saj ob namestitvi disk popackajo z reklamnimi ali vohunskimi programi.

Naslednji po pogostosti so napadi na strežnike zbirk podatkov SQL (vrata 1434). Največkrat gre zgolj za napade vrste "SYN flooding", ko napadalec zasuje računalnik tarčo z velikim številom omrežnih paketov iz velikega števila računalnikov. Ob taki poplavi prometa računalnik poklekne, to pa je zelo neugodno, če npr. poganja spletno trgovino. Občasno pa napadalec poskuša neposredno vdreti v strežnik prek skrbniškega računa. Medtem ko smo reklamna sporočila iz prejšnjega odstavka dobivali le od računalnikov iz tujine, pa je znaten delež napadov na strežnike zbirk podatkov izviral iz slovenskih računalnikov (največ iz tistih, ki so imeli dostop do spleta prek Telemacha, tako kot mi). Seveda nismo mogli izvedeti, ali so napadalci sedeli za temi računalniki ali pa so bili to zgolj računalniki - zombiji (varnostno kompromitirani računalniki, ki jih pravi napadalci od neznano kod uporabijo zato, da za seboj zabrišejo sledi). V obeh primerih je to seveda slaba soseščina za slovenske uporabnike spleta.

Bili smo priča tudi nekaj značilnim napadom na spletni strežnik, ko napadalec poskusi s staro metodo prekoračitve pomnilnika in pošlje zahtevo po spletni strani, katere naslov je dolg več tisoč znakov. Nekatere starejše, nezakrpane različice spletnih strežnikov so tako ranljive in si jih napadalec s tako metodo lahko pokori.

Poleg teh, najpogostejših napadov smo zaznali še vrsto redkejših napadov, ki ciljajo na storitve strežnikov FTP, na programe za nadzor na daljavo (npr. Radmin), in na strežnike elektronske pošte (iskanje strežnikov, ki omogočajo - hote ali nevede - prost prehod oziroma open relay).

Nadzorna plošča muholovca SPECTER je na videz nepregledna, z malo truda pa izberemo zaželene nastavitve.

Specter 8.0

Komercialni Specter podjetja Network Security je eden najbolj znanih, a tudi dragih muholovcev. Ko ga namestimo, se pred nami odpre uporabniški vmesnik, ki nam skorajda vzame pogum. Simulira kar 14 operacijskih sistemov, od Windows 98 prek Windows XP in 2003 (strežniški OS) do Mac OS X, Linuxa in številnih okusov Unixa. V vsakem od simuliranih sistemov teče (spet) 14 omrežnih storitev na vratih TCP, od teh jih polovica omogoča pravi odziv (med njimi spletni, telnet strežnik in strežnik FTP). Preostalih sedem (med njimi strežniki DNS, SSH in IMAP) ne sodi med prave storitve in se zaradi boljšega razlikovanja imenujejo pasti. Pasti zgolj vzdržujejo odprta vrata, zabeležijo poskus vdora in zaprejo povezavo. Eno past lahko sami konfiguriramo, omejeni pa smo le na vrata TCP. Žal s to omejitvijo izgubimo možnost lova napadalcev na strežnike zbirk podatkov (že omenjena vrata UDP 1434).

Napadalci prihajajo iz domačih logov, lahko pa so tudi vmesna postaja za spletne vlomilce od drugod.

Specter je malce nagajiv, saj se nad napadalca spravi z njegovim lastnim orožjem. Če je le mogoče (in če ga tako nastavimo), namreč Specter zbere vrsto podatkov o napadalčevem računalniku, med drugim, iz katere spletne domene je, katera komunikacijska vrata na njem so odprta, kateri (morebitni) strežniki tečejo na njem. Mogoče je tudi "označevanje" napadalca, saj lahko program napadalcu "ponudi" izvršne datoteke. Ko jih napadalec prenese k sebi in zažene, datoteke pustijo sled na napadalčevem računalniku. Vsaj teoretično to pomeni, da si s tem priskrbimo dokazni material v morebitnem sodnem postopku.

Kljub navidezni zapletenosti programa ni tako težko konfigurirati, pri tem pa nam obilno pomaga sprotna pomoč, saj ob vsaki postavki v nastavitvah najdemo gumb za sprotno pomoč. Muholovcu lahko nastavimo, kako naj ga napadalci zaznavajo - od zelo ranljivega strežnika do zelo agresivnega, ki skuša najprej zvedeti čim več o napadalcu, na koncu pa razkriti svojo pravo identiteto. Specter ima možnost pošiljanja lažnih gesel, ki jih napadalci poskušajo razbiti, da bi na koncu ugotovili, da je bil računalniški čas porabljen zaman.

Tudi pri našem lovu na vdiralce s Spectrom smo ugotovili, da so najbolj vztrajno poskušali vdreti v spletni strežnik (poskus vdora s prekoračitvijo medpomnilnika) s štirih računalnikov, katerih spletni ponudnik je Telemach.

KFSensor pokaže, da se je nekdo hotel na vsak način polastiti zbirke podatkov v strežniku SQL ...

KFSensor

Še en komercialni muholovec za okolje Windows prihaja iz podjetja Key Focus. Ob namestitvi imamo dve možnosti - izbiramo lahko med polno namestitvijo in namestitvijo z ohranjeno integriteto - izognemo se tistim delom programa, ki bi nas lahko ob napačnih nastavitvah pripeljali v težave. S KFSensorjem lahko v zasedi čakamo na napadalce na precej večjem številu vrat kot pri programu Specter.

Vmesnik KFSensorja je od muholovcev, ki smo jih preizkusili, najbolj podoben običajnim okenskim programom. Vsaka vrata (TCP in UDP), na katerih poslušajo strežniki, so predstavljena s posebno ikono. Odgovore posameznih strežnikov (sim server v jeziku KFSensorja) lahko zelo podrobno nastavljamo. Hkrati je lahko aktivnih največ 256 vrat.

Vrata TCP in UDP so razdeljena v posamezne skupine, ki jih program imenuje scenariji. Ti scenariji ustrezajo vlogam, ki jih imajo resnični strežniki (npr. strežniki Exchange, POP3, FTP in podobno). Naenkrat lahko delamo samo po enem scenariju, najmanj dela pa imamo, če uporabimo glavni (Main) scenarij, v katerem so zbrani vse storitve, ki jih program obvlada.

... tako da se je poskušal prijaviti z različnimi gesli za skrbniški račun SA.

Zaradi vizualno prepričljivega vmesnika se v programu hitro znajdemo. Vrata, prek katerih je pred kratkim potekal napad, so označena debelo. To nam omogoča sprotno reakcijo. Prestregli smo napad na strežnik SQL, kjer se je napadalec na vso moč trudil, da bi uganil skrbniško geslo naše "zbirke podatkov".

KFSensor je še dražji od programa Specter, zato ne preseneča, da smo od založnika dobili samo različico z izobraževalno licenco. Žal je bil program nestabilen. Ko smo poganjali preizkusno različico, teh težav nismo imeli. Je pa preizkusna različica po funkcionalnosti omejena in za nekatere napade ne prikaže pravih podatkov.

Računalnik Toshiba Tecra A-4, na katerem smo poganjali muholovce, je posodilo podjetje Inea,www.inea.si.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji