soho honeypot fejlesztese openwrt kornyezetben dolgozat 1

66

Upload: valaki-valami

Post on 25-Nov-2015

37 views

Category:

Documents


2 download

DESCRIPTION

honeypot

TRANSCRIPT

  • 2

    Budapesti Mszaki s Gazdasgtudomnyi Egyetem Villamosmrnki s Informatikai Kar

    Tvkzlsi s Mdiainformatikai Tanszk

    Kamars Roland

    SOHO HONEYPOT FEJLESZTSE OPENWRT KRNYEZETBEN

    KONZULENS

    Dr. Fehr Gbor BUDAPEST, 2011

  • Tartalomjegyzk

    Tartalomjegyzk ............................................................................................................. 3 sszefoglal ..................................................................................................................... 6 Abstract............................................................................................................................ 7 1. Bevezets ...................................................................................................................... 8

    1.1 A feladat indokoltsga ............................................................................................ 9 1.2 A feladat rtelmezse.............................................................................................. 9 1.3 A feladat clja ......................................................................................................... 9 1.4 A szakdolgozat felptse ..................................................................................... 10

    2. Irodalmi ttekints.................................................................................................... 11 2.1 A honeypotok tpusainak ttekintse .................................................................... 11 2.2 Az automatikusan terjed malwarek mkdse ................................................... 12 2.3 High-interaction honeypotok ................................................................................ 14 2.4 Az Argos high-interaction honeypot..................................................................... 16 2.5 Low-interaction honeypotok................................................................................. 17 2.6 A Nepenthes low-interaction honeypot ................................................................ 18 2.7 High- vs. low-interaction honeypotok .................................................................. 21

    2.8 Honeypotok alkalmazsa SOHO krnyezetben.................................................... 22

    3. Tervezs ..................................................................................................................... 26 3.1 A honeypot funkcionlis tervezse ....................................................................... 26

    3.1.1 A programmal szemben tmasztott kvetelmnyek ...................................... 26 3.1.2 A megvalstand funkcik sszegzse felhasznli szempontbl............... 27

    3.2 Architekturlis tervezs ........................................................................................ 28 3.3 Az alkalmazs objektummodellje ......................................................................... 31 3.4 A vlasztott sebezhetsgek ................................................................................. 37 3.5 Az exploitok mkdse ........................................................................................ 39

    3.5.1 A stack ........................................................................................................... 39 3.5.2 Kdfuttats buffer overflow eredmnyeknt ................................................. 42

    3.6 Vulnerability modulok mkdsnek tervezse ................................................... 45 4. Implementls ........................................................................................................... 47

    4.1 A vlasztott programozsi nyelv........................................................................... 47

    4.2 Az alkalmazs krnyezete..................................................................................... 47

  • 4.3 Fordts, telepts, futtats .................................................................................... 48 4.4 A teleptett alkalmazs struktrja, llomnyai .................................................... 51 4.5 A konfigurcis llomny..................................................................................... 53 4.6 A naplllomny szerkezete ................................................................................. 53 4.7 A webes megjelent fellet.................................................................................. 55 4.8 Dokumentcik ..................................................................................................... 56

    5. Tesztels, rtkels .................................................................................................... 57 5.1 Metasploit Framework.......................................................................................... 57 5.2 A tesztels elksztse, tesztkonfigurci ........................................................... 57 5.3 A tesztels kivitelezse ......................................................................................... 58 5.4 A tesztek eredmnye, rtkelse ........................................................................... 59 5.5 Egy plda tmadsra s annak feldolgozsra ...................................................... 60

    6. sszefoglals.............................................................................................................. 62 6.1 Eredmnyek .......................................................................................................... 62 6.2 Tovbbfejlesztsi lehetsgek .............................................................................. 62

    Ksznetnyilvnts ...................................................................................................... 63 Irodalomjegyzk............................................................................................................ 64 Rvidtsjegyzk............................................................................................................ 65

  • HALLGATI NYILATKOZAT

    Alulrott Kamars Roland, szigorl hallgat kijelentem, hogy ezt a szakdolgozatot meg nem engedett segtsg nlkl, sajt magam ksztettem, csak a megadott forrsokat (szakirodalom, eszkzk stb.) hasznltam fel. Minden olyan rszt, melyet sz szerint, vagy azonos rtelemben, de tfogalmazva ms forrsbl tvettem, egyrtelmen, a forrs megadsval megjelltem. Hozzjrulok, hogy a jelen munkm alapadatait (szerz(k), cm, angol s magyar nyelv tartalmi kivonat, kszts ve, konzulens(ek) neve) a BME VIK nyilvnosan hozzfrhet elektronikus formban, a munka teljes szvegt pedig az egyetem bels hlzatn keresztl (vagy autentiklt felhasznlk szmra) kzztegye. Kijelentem, hogy a benyjtott munka s annak elektronikus verzija megegyezik. Dkni engedllyel titkostott diplomatervek esetn a dolgozat szvege csak 3 v eltelte utn vlik hozzfrhetv.

    Kelt: Budapest, 2011. 12. 06.

    .....................................................................

    Kamars Roland

  • 6

    sszefoglal

    Napjaink gyors informatikai fejldsnek kvetkeztben egyre nagyobb hangslyt kap a szmtgpes rendszerek vdelme. Az internet rohamos terjedsnek ksznheten jabb s jabb alkalmazsok jelennek meg. Az alkalmazsok megjelensvel prhuzamosan jnnek ltre azok hibit kihasznl kis programok, az gynevezett exploitok, valamint az exploitokat felhasznl krtkony alkalmazsok, a

    malwarek.

    Az exploitok, illetve malwarek elleni vdelemben hatkony megoldst jelenthetnek a honeypotok. A honeypotok olyan szmtgpes rendszerek, melyeket azzal a cllal teleptenek, hogy tmadsok rjk, ezltal rszletes informcival kpesek szolglni a tmadsokat illeten. Ezen informcik felhasznlsval az les rendszer biztonsga nvelhet.

    A dolgozat elejn a klnbz tpus honeypot rendszerek felptst s mkdst ismertetem, illetve sszehasonltom azokat, majd megvizsglom SOHO krnyezetben val alkalmazhatsgukat. Ezt kveten egy ltalam ltrehozott, OpenWrt krnyezetben mkd, alacsony interaktivits (low-interaction) honeypot funkcionlis s architekturlis tervezst ismertetem. A tervezst kveten implementlom a

    honeypotot, valamint a hozz kapcsold kezel-, megjelent felletet. Dolgozatomat a ltrehozott rendszer Metasploit Framework behatols tesztel alkalmazs segtsgvel trtn tesztelsvel, ellenrzsvel zrom.

  • 7

    Abstract

    In our days computer system and network security has increasing importance due to the fast evolution of Information Technology Industry. Due to growth of the internet, there are more and more network applications are developed. In parallel with the issue of the applications, small programs (so-called exploits) and malicious applications that use exploits (so-called malwares) appear to exploit their flaws.

    In protection against malwares and exploits, honeypots can be an effective solution. Honeypots are computer systems that are installed for the purpose of capturing attacks and therefore they can serve detailed informations about the attack. With the use of these informations the security of the production system can be increased.

    In my thesis I review the different kinds of honeypot systems, including their architecture and operation and compare them, then I examine their applicability in a SOHO environment. After that I will present my low-interaction honeypot system reviewing the functional and architectural design of the honeypot and its implementation as well as the associated user interface. Finally I finish my thesis with testing of the system with Metasploit Framework penetration tester application.

  • 8

    1. Bevezets

    Az informatikai biztonsg krdse napjainkban egyre nagyobb hangslyt kap a szmtstechnika gyors fejldse, az internet trhdtsa kvetkeztben. A nagyiram fejldsnek ksznheten folyamatosan jelennek meg jabb vllalatok, cgek, illetve magnszemlyek az interneten. Hatalmas sebessggel bvl a vilghln szabadon elrhet, ingyenes alkalmazsok, szolgltatsok, illetve a korbbi desktop alkalmazsok online vltozatainak szma.

    Ezzel prhuzamosan az alkalmazsok hibit kihasznl kis programok, az gynevezett exploitok is gyorsan napvilgra kerlnek. Egy alkalmazsban (legyen az akr egy opercis rendszer, egy dokumentum megjelent, egy bngsz plugin stb.) lv hiba nyilvnossgra kerlst kveten gyakorlatilag nhny napon bell elkszl a hibt kihasznl exploit, majd ezt kveten az exploitot felhasznl, automatikusan terjed malwarek is. ppen ezrt nagyon fontos feladat az internetrl rkez folyamatos tmadsoknak kitett szmtgpek vdelme. A klnbz biztonsgi megoldsok kzl erre szolglnak az gynevezett honeypotok is.

    A honeypotok olyan monitorozott szmtgpes erforrsok, melyeket arra

    talltak ki, hogy gyjtsk a bels hlzatbl vagy az internetrl rkez tmadsokat. Segtsgkkel detektlhatjuk, illetve analizlhatjuk a hozzjuk rkez, illetve azokat elhagy kros forgalmat. Msik fontos feladatuk pedig az olyan, mg nem ismert sebezhetsgek (vulnerability) detektlsa, amelyekre mr ltrehoztak exploitokat. Az olyan exploitokat, amelyek mg nem ismert sebezhetsgeket hasznlnak ki, rviden 0-day (zero-day) exploitoknak nevezzk. Ezek a legveszlyesebbek, hiszen az ltaluk kihasznlt hibkra mg nem lteznek a biztonsgi rst befoltoz patchek, frisstsek. Ezek detektlsa teht kulcsfontossg a hlzat s az azt alkot szmtgpek vdelme szempontjbl.

    Ugyanakkor a honeypotok kpessgei is korltozottak. A honeypotok csak a

    tmadsok s azok eredmnyeknt letlttt kros programok (malwarek) gyjtsre, trolsra, a biztonsgi rsek, sebezhetsgek emullsra, illetve a kompromittl forgalmak naplzsra alkalmasak. Vagyis segtenek minket a tmadsok megrtsben azzal, hogy a rendszer sebezhet pontjnak tettetik magukat s gy megprbljk elhitetni a tmadval, pldul egy msik fertztt szmtgppel, hogy ugyanolyan

  • 9

    potencilis clpontok, mint a valdi, les krnyezetben zemel szmtgpek, de az exploit ltal kihasznlt biztonsgi rs megtallsa a mi feladatunk. Szerencsre ma mr erre is szmos automatizlt megolds ltezik, illetve jelenleg is intenzv kutats folyik tbbek kztt a 0-day exploitok ltal kihasznlt biztonsgi sebezhetsgek automatikus felkutatsn. A kzeljvben valsznleg ilyen jelleg alkalmazsok is piacra kerlnek majd.

    1.1 A feladat indokoltsga Az informatika fejldse abba az irnyba halad, hogy a kzeljvben otthonunk

    eszkzei (mint pldul VoIP telefon, IP TV stb.) is az internet egy-egy vgpontjai lesznek a mr meglv otthoni hlzat rszeknt. Ezen hlzatokkal szembeni biztonsgi fenyegetst az internetrl, valamint a bels hlzatbl rkez tmadsok jelentenek. A loklis hlzatbl rkez fenyegetst jelentheti pldul egy idegen laptop vagy mobil kszlk bels hlzatba val beengedse. Ennek kvetkeztben az emltett informcis rendszerek vdelmben kulcsfontossg szempont a megelzs, melynek hatkony eszkzei lehetnek a honeypotok, ezrt mindenkppen rdemes mkdsket megrteni, foglalkozni velk.

    1.2 A feladat rtelmezse A szakdolgozat keretein bell a feladatom az volt, hogy tanulmnyozzam a

    honeypotok tpusait, az exploitok mkdsnek folyamatt, majd a megszerzett ismereteket felhasznlva tervezzek meg, implementljak s teszteljek egy SOHO (Small Office/Home Office) krnyezetben (SOHO routeren) mkd honeypot alkalmazst.

    1.3 A feladat clja A feladat clja egy olyan SOHO honeypot alkalmazs fejlesztse, amely kpes

    az internetrl, valamint a bels hlzatbl rkez meghatrozott tpus tmadsok fogadsra, alkalmas a tmadsok klnbz paramtereinek rgztsre, valamint az sszegyjttt informcikat egy knnyen ttekinthet webes felleten jelenti meg, amelyen keresztl lehetsg nylik az alkalmazs konfigurlsra is.

  • 10

    1.4 A szakdolgozat felptse A szakdolgozat msodik fejezetben ttekintem a honeypot rendszerek kt

    alapvet tpust, azok mkdst, tulajdonsgait, majd ezen tulajdonsgok mentn sszehasonltom azok elnyeit, illetve htrnyait. A fejezet htramarad rszben megvizsglom, hogy miknt alkalmazhatk az ismertetett funkcik otthoni/irodai krnyezetben.

    A harmadik fejezetben a ltrehozand rendszer szerkezett vzolom fel, illetve ismertetem a fejleszts sorn meghozott fontos tervezi dntseket, tovbb ttekintem a rendszer mkdshez nlklzhetetlen jrulkos ismereteket.

    A negyedik fejezetben a megvalsts rszleteit, mg az tdik fejezetben a tesztels kivitelezst s eredmnyeit rom le. A hatodik fejezetben kitrek a ltrehozott rendszer tovbbfejlesztsi lehetsgeire.

  • 11

    2. Irodalmi ttekints

    2.1 A honeypotok tpusainak ttekintse Ahogy a korbbi fejezetben mr felvzoltam, a honeypotok az informcis

    rendszerek vdelmi feladatai kzl a megelzst szolgljk, azzal hogy monitorozzk az internetrl, valamint a bels hlzatbl rkez tmadsi ksrleteket. A honeypotok alapveten tetszleges opercis rendszer futtatsra, illetve tetszleges szolgltats emullsra alkalmasak. A honeypotokat sokfle szempont szerint lehet csoportostani,

    az egyik legalapvetbb csoportostsi szempont a tmadval val interakci szintjben tesz klnbsget a rendszerek kztt. Ennek alapjn megklnbztethetnk alacsony interaktivits (low-interaction) s magas interaktivitsi szint (high-interaction) honeypotokat.

    A high-interaction honeypotok [1] alapveten egy teljes rtk rendszert szolgltatnak a tmad fel, a tmad fl ugyangy tud kommuniklni a rendszerrel, mintha az egy les rendszer volna. Ezek a rendszerek tipikusan egy fizikai gpen (host) lv virtulis krnyezetben futnak (guest), mint pldul a Linuxos QEMU virtualizcis rendszer. Ilyen tpus honeypotra j plda a holland Vrije Universiteit Amsterdam egyetem dikjai ltal fejlesztett Argos. Termszetesen nemcsak virtulis, de fizikai honeypotok is lteznek. Ezek kzvetlenl a fizikai gpen futnak, a hlzat rszeknt

    sajt hlzati cmmel (IP-cmmel). Ezekkel ellenttben a low-interaction honeypotok [1] egy tnyleges rendszernek

    csak nhny elemt emulljk, mint pldul a hlzati stacket vagy bizonyos sebezhet szolgltatsokat. A high-interaction honeypotok teht a megfelel exploitok

    alkalmazsval lehetv teszik a tmad szmra, hogy az teljes kr hozzfrsre tegyen szert a virtualizlt (esetleg fizikai) rendszeren s ezltal a rendszer tovbbi hlzati tmadsokat fedjen fel, valamint gy a tmad szndkai is knnyebben meghatrozhatk. A low-interaction honeypotok mivel csak szolgltatsokat

    emullnak nem teszik lehetv a teljes rendszer feletti irnyts tvtelt (hiszen ebben az esetben teljes rtk rendszer nem is ltezik), vagyis korltozottabb kpessgek, mint high-interaction tpus trsaik. Arra viszont alkalmasak, hogy

    segtsgkkel kpet kapjunk a hlzati betrsi ksrletekrl, illetve a klnbz wormok (frgek) hlzati tevkenysgrl. Ilyen jelleg honeypotra j plda a The

  • 12

    Honeynet Project ltal fejlesztett Nepenthes, illetve annak rokonai, mint pldul a Dionaea vagy az Amun honeypotok.

    A honeypotok mellett az internetrl rkez tmadsokat is kt nagy csoportra lehet osztani. Az egyik csoportba tartoznak a kevsb intelligens tmadsok, amelyekrt tipikusan az exploitokat felhasznl automatikusan terjed malwarek a felelsek. A malwarek feladata tipikusan abbl ll, hogy az exploitot felhasznlva egy, mr kompromittlt szmtgprl kihasznljk ms szmtgpek biztonsgi sebezhetsgeit s rveszik a clpontot arra, hogy egy meghatrozott helyrl (pldul a tmads sorn harmadik flknt jelenlv fertztt gprl) tltse le s futtassa is magt a clpontot megfertz binrist. Az gy letlttt binris pedig maga a malware, amely ily mdon kpes terjedni a rendszerek kztt jabb s jabb gpeket megfertzve.

    A malwarek tevkenysgt is teht kt rszre lehetne osztani. Egyrszt

    biztostjk a hlzatban trtn terjedsket, msrszt valamilyen jrulkos (s ltalban kros) tevkenysget is kifejtenek az ldozat gpn. Ez lehet pldul egy hts-ajt (backdoor) nyitsa, amelyen keresztl a malwaret kszt szemly hozz tud frni a megtmadott szmtgphez.

    Vagyis a tmadsok msik tpusrt (az intelligens tmadsokrt) a biztonsgi rsek kihasznlshoz rt szemlyek (hackerek) felelsek. k vagy a maguk ltal rt programokkal (illetve sok esetben mr meglv alkalmazsokkal) veszik r a szmtgpet, hogy tegye lehetv szmukra a tvoli hozzfrst (a szmtgp feletti teljes kontrollal), vagy a malwarek ltal nyitott hts-ajtkat hasznljk ki.

    A malwarek ltal megtmadott szmtgpek, amelyek akr a Fld egymstl tvoli pontjain is elhelyezkedhetnek, egy hlzatot alkothatnak, ezt botnetnek nevezzk. Egy botnet hatalmas rtket kpviselhet a tmad kezben, hiszen a tmad a botnet rszeknt zemel zombie gpek hts-ajtit kihasznlva utasthatja valamilyen tevkenysgre azokat. Pldul egy nagyobb botnet segtsgvel akr maradand krokat okoz DDoS (Distributed Denial of Service) jelleg tmadst is lehet kivitelezni valamely vllalat szmtgpes rendszere, internetes szolgltatsai ellen.

    2.2 Az automatikusan terjed malwarek mkdse Az elzekben ismertetett honeypot tpusok alapveten az automatikusan

    terjed malwarek ellen hasznlhatk. Az automatikusan terjed malwarek mkdsnek ciklust az 1. bra szemllteti.

  • 13

    1. bra - Automatikusan terjed malwarek mkdse

    Egy adott alkalmazsban lv hiba nyilvnossgra kerlst kveten nhny napon bell elkszl a hibt kihasznl exploit [1], majd ltalban tbb ezt az exploitot felhasznl automatikusan terjed malware jn ltre egymstl fggetlenl. Ezt a folyamatot szemllteti az bra fels rsze. Ezt kveten a ltrehozott malware a krnyezetben sebezhet clpontokat kezd el keresni. Ha egy clpontot sikeresen azonostott, akkor megksrli vgrehajtani rajta az exploitot.

    Egy, a szmtgp valamely szolgltatsban rejl biztonsgi hiba, akr egy hlzati protokoll alkalmazs hibja pldul gy hasznlhat ki, hogy a tmad malware az ldozatnak szndkosan hibs krseket vagy hibs csomagokat kld. A hibs krsek/csomagok feldolgozsa sorn az ldozat gpen a biztonsgi hiba kvetkeztben valamilyen rendellenes esemny, viselkeds kvetkezik be. Ez nagyon gyakran az adott szolgltats folyamatnak rszt kpez valamely buffer tlcsordulst vagy alulrst jelenti (buffer over- vagy underflow), amelynek eredmnyeknt rzkeny memriaterletek rhatk fell s ennek kvetkeztben a hlzati alkalmazs olyan memria terletet cmez meg, ahol a tmad a buffer over- vagy undeflownak

  • 14

    ksznheten elhelyezett kros kdja tallhat, ezzel pedig a folyamat futsba kpes a tmad beleavatkozni. Az gy elhelyezett futtathat kdot shellkdnak nevezzk. A shellkd elnevezs onnan ered, hogy a tmad ltal elhelyezett kd leggyakrabban egy parancsrtelmezt (shellt) indt el s a parancsrtelmezn keresztl trtnik a tovbbi mveletek vgrehajtsa. A shellkdok, illetve exploitok mkdst egy ksbbi fejezetben rszletesen ismertetem.

    Ahogy a fenti brn is olvashat az imnt emltett folyamatot nevezhetjk exploitlsnak. Nyilvnval mdon az exploitls csak akkor lehet sikeres, ha a clpont gp a felhasznlt exploit ltal rintett biztonsgi hibt tartalmazta. Ebbl kvetkezen a malwarek csak az esetek kis rszben jrnak sikerrel, de mivel kellen sok gpet prblnak megtmadni, ezek kztt mindig elfordulnak majd olyanok, amelyek esetben sikeresek lesznek. A tmadst vgz malwarek tipikusan a fire-and-forget elvet kvetik, vagyis nem trdnek a szndkosan hibs csomagokra adott clponttl rkez vlasszal, ha az adott gp nem volt tmadhat, akkor egy kvetkeznl prblkoznak. Azrt sem trdnek a visszakldtt vlaszokkal (ugyan az lehet, hogy olyan informcit hordozna, amellyel egy msik tpus tmads sikeresen kivitelezhet lenne), mivel a vlaszok nagyon klnbzek lehetnek, platformtl, opercis rendszertl, annak verzijtl, nyelvi vltozattl vagy service packtl fggen, illetve gy a malwarek is egyszerbbek lehetnek.

    Az exploitls eredmnyeknt teht kdfuttatsra nylik lehetsg az ldozat gpen. A futtatand kd ltalban a tmadst vgz malware futtathat llomnynak a letltsre irnyul. A kdfuttats eredmnyeknt az ldozat gp letlti a binrist vagy a tmad gprl vagy valamely ms hlzaton elrhet erforrsrl. Miutn letltdtt a malware, a clpont elkezdi azt futtatni, aminek kvetkeztben fertztt vlik s a malware az eddig ismertetett ciklust kezdi ellrl immr az j gpen is. Mindezek mellett a malware ltalban valamilyen kros tevkenysget is kifejt az ldozat gpen, amely gyakran egy backdoor nyitst jelenti. Ezen a backdooron keresztl a malware tulajdonosa hozzfrst szerezhet az adott szmtgphez.

    2.3 High-interaction honeypotok A high-interaction honeypotok egy teljes rendszert tesznek ki a hlzatbl

    rkez tmadsoknak. Ez azt jelenti, hogy nem egy klnll szolgltatst, funkcionalitst emullnak, hanem egy vals rendszert biztostanak az azon fut alkalmazsokkal, szolgltatsokkal, gy a tmad teljes mrtkben tveheti az irnytst

  • 15

    a rendszer felett. Ennek ksznheten tbbet megtudhatunk a tmad cljairl, az ltala alkalmazott eszkzkrl, eljrsokrl, mlyebben megismerhetjk a tmads folyamatt. A high-interaction honeypotok tetszleges opercis rendszert futtathatnak, leggyakrabban azonban a Windows opercis rendszer valamelyik verzijt, ugyanis a Windowsos krnyezetben a leggyakoribbak az ilyen jelleg tmadsok.

    A high-interaction honeypotok lehetnek fizikai vagy virtulis gpek. Fizikai gp

    hasznlata esetn clszer erre a clra dediklt eszkzt biztostani, hiszen ebben az esetben a tmad nem fr hozz a rendszeren trolt esetlegesen rzkeny adatainkhoz. Ilyen rendszer lehet pldul egy szeparlt gpen fut patch nlkli Windows 2000 vagy XP opercis rendszer, amely gyakorlatilag nhny perc alatt kompromittlhat.

    A virtulis honeypotok egy fizikai gpen fut virtualizlt krnyezetben futnak. A legelterjedtebb megoldsok a VMware, User-Mode Linux (UML), illetve a QEMU rendszerekkel megvalstott megoldsok.

    A magas interaktivitsi szint honeypotok fizikailag hagyomnyos szmtgpes

    rendszerek, lehetnek szerver szmtgpek, PC-k (Personal Computer), routerek, switchek. ltalban a rendeltetsszer feladatukat nem ltjk el a hlzatban, aktv felhasznlik sincsenek, gy az alapvet httrfolyamatokat, szolgltatsokat leszmtva nem hoznak ltre jabb processzeket (folyamatokat), nem generlnak tovbbi hlzati forgalmat. Ebbl kvetkezen minden egyb forgalmat, illetve a honeypotokkal folytatott interakcit gyansnak kell tekinteni s lehetsges kros tevkenysgknt kell

    kezelni.

    Az ilyen high-interaction rendszerek teht mentesek a tvedsektl, vakriasztsoktl s ez az egyik legfontosabb elnyk a behatols detektl rendszerekkel (IDS, Intrusion Detection System) szemben. Tovbbi elnyk, hogy lthatv vlik, miknt derti fel a clpontokat a tmad, illetve milyen technikkat hasznl annak rdekben, hogy j informcikat szerezzen az ldozatrl. Rszletes kpet kaphatunk a rendszer tmadsnak folyamatrl, illetve, hogy pontosan milyen exploitokat hasznl a tmad fl. Ebbl kvetkezen a msik nagy elnye a high-interaction rendszereknek, hogy olyan sebezhetsgeket is kpesek felfedni, amelyekre mg nincsenek biztonsgi javtsok (0-day exploitok). Vgezetl nyomon kvethetv vlik a tmad honeypoton vgzett tevkenysge.

    Tovbbi rv a magas interakci szint rendszerek mellet a knny telepthetsg. Hasznlhatunk fizikai vagy virtulis gpet, esetleg egy fizikai gpen tbb egymssal prhuzamos virtulis honeypotot klnbz konfigurcival. Tovbbi

  • 16

    lehetsg az elkonfigurlt honeypotok hasznlata, melyek esetben csak nmi finomhangolsra van szksg a futtats eltt. A virtulis honeypotok tovbbi jellemzje a knny karbantarthatsg. Ezeknl ugyanis, ha tmads trtnt, knnyen eltrolhat az opercis rendszer aktulis llapota ksbbi elemzs cljbl s egy korbban elmentett, jl definilt opercis rendszer llapot (pillanatkp, snapshot) tlthet vissza. A virtulis honeypotok hasznlata radsul kevsb kockzatos, mivel ekkor kisebb a valsznsge annak, hogy a tmad krt tesz a tnyleges gpben, amelyen a virtulis rendszer fut.

    A korbban emltett WMware, illetve UML rendszerek virtulis gpek teleptsre, kezelsre alkalmasak. A velk megvalstott klnbz tpus (klnbz platform, klnbz opercis rendszert futtat) high-interaction honeypotokat (legyenek azok akr egyetlen fizikai eszkzn) virtulis hlzatba lehet szervezni, ezt honeynetnek nevezzk. A QEMU virtualizcis megoldsra pl Argos honeypotrl a kvetkez alfejezetben mg sz esik.

    Mindezen elnyk mellett termszetesen htrnyokkal is rendelkeznek a magas interaktivits rendszerek, a tmad ugyanis elrheti, hogy azok ms gpeket kezdjenek el tmadni az interneten, ez pedig jogi s etikai problmkat vet fel. Msik htrnyuk, hogy a tmad kpes lehet klnbsget tenni a virtulis s vals gpek kztt s gy megtrtnhet az, hogy a tmad egy prblkozs alkalmval felismeri a gyans krnyezetet s felhagy a honeypot tovbbi tmadsval, vagy a korbbitl eltr mdszerekkel prblkozik annak rdekben, hogy becsapja a honeypotot. Vgezetl az ilyen jelleg rendszerek egy tmads esetn tipikusan memory dumpot ksztenek, vagyis elmentik a rendszer memrijnak aktulis llapott, de az abban rejl informcik kinyersre mr nem alkalmasak, gy azt neknk kell analizlnunk. Sajnos erre a feladatra jelenleg is kevs eszkz ll rendelkezsre s jelenleg is intenzv kutats zajlik az emltett terleten.

    2.4 Az Argos high-interaction honeypot Az Argos honeypot [1] fizikai gpen fut virtulis krnyezetben mkdik.

    Alapjt a mr emltett QEMU virtualizcis rendszer jelenti. A QEMU egy nylt forrskd processzor emultor program, amely segtsgvel Linux rendszeren futtatsi krnyezet emullsra nylik lehetsg, amely egy kernel modul hozzadsval kzvetlenl a processzoron (kernel mdban) kpes az emulcit vgezni gynevezett dynamic translation technikt hasznlva.

  • 17

    Az Argos teht e felett mkdik s monitorozza az emullt rendszer hlzati tevkenysgt. Erre gynevezett dinamikus fertzs analzis (dynamic taint analysis) technikt hasznl, vagyis els lpsknt az sszes hlzatbl rkez forgalmat megjelli. Az gy megjellt forgalmat ezt kveten vgigkveti a memriban s ha azt szleli, hogy a korbban megjellt forgalom rszt kpez valamely adatot arra hasznltak, hogy azzal befolysoljk a vgrehajts folyamatt, vagyis a tmad beavatkozott a rendszer futsba, akkor az Argos ezt detektlja s generl a tmadsrl egy memria lenyomatot. Ez arrl tartalmaz informcit, hogy mi okozta a program

    mkdsnek normlistl val eltrst s ebbl a tmads sorn vgrehajtott mveletekre lehet kvetkeztetni. Az Argos ltal detektlt esemny leggyakrabban egy buffer overflow kvetkeztben kialakul memria terlet trs, amely lehet pldul egy JMP (jump), vagyis ugr utasts beszrsa a tmad ltal elhelyezett kdra. Ezt elssorban specilisan formzott bjtsorozatok clpontnak val kldsvel ri el a tmad. Fontos megjegyezni, hogy az Argos nem a memria terletek trsakor, hanem ezen terletek hasznlatakor detektlja a tmadst.

    Az ismertetett megolds legnagyobb elnye az, hogy gy vagyunk kpesek tmadsokat detektlni, illetve azokat felderteni, hogy nem rendelkeznk azokrl semmifle elzetes informcival. Ez nem teljesl a low-interaction honeypotokra.

    2.5 Low-interaction honeypotok A low-interaction honeypotokra szmos megolds ltezik, fontos jellemzjk a

    knny telepthetsg s karbantarthatsg, nem ignyelnek szmottev erforrst. Az informatikai biztonsg tern kevsb jrtas szemly is knnyen ltrehozhat egy akr tbb szz low-interaction honeypotbl ll hlzatot. Egy alacsony interaktivits honeypot csak korltozott hozzfrst kpes biztostani egy adott opercis rendszerhez, ugyanis nem egy komplett rendszert emull, hanem csak annak nhny szolgltatst. Emiatt a tulajdonsguk miatt nem alkalmasak 0-day exploitok feldertsre. Ehelyett viszont hatkonyan hasznlhatk a mr ismert exploitok detektlsra, illetve annak mrsre, hogy a rendszert milyen gyakran rik kls tmadsok. Az alacsony interaktivits jelz teht azt jelenti, hogy a honeypot egy bizonyos fokig megprblja a tmadt flrevezetni, de az nem jelent teljes rtk rendszert.

    A low-interaction honeypotok tipikusan csak az emullt hlzati

    szolgltatsokhoz felttlenl szksges internet protokollokat implementljk, gy, mint a hlzati rtegben elhelyezked IP (Internet Protocol) vagy a transzport rtegben

  • 18

    tallhat TCP (Transmission Control Protocol), illetve UDP (User Datagram Protocol) protokollokat. Gyakori mg az alkalmazs szint protokollok megvalstsa, mint a

    HTTP (Hypertext Transfer Protocol) vagy az FTP (File Transfer Protocol) protokollok. Az alacsony interaktivits honeypotok kisebb kockzatot jelentenek egy les

    rendszerben, mint high-interaction tpus trsaik, mivel a tmad nem tud betrni ezekbe a rendszerekbe. Msfell ez a tulajdonsg jelenti a htrnyukat is, mert egy sikeres exploitls alkalmval nem kpesek pldul egy root shellt kiszolglni a tmadnak. A low-interaction honeypotok koncepcijt rdemes egy konkrt honeypot megoldson keresztl ttekinteni, amelyre alkalmas pldul a Nepenthes.

    2.6 A Nepenthes low-interaction honeypot A Nepenthes honeypot felptst hivatott mutatni a 2. bra:

    2. bra - A Nepenthes honeypot felptse [1]

    Ahogy a fenti brn lthat, a Nepenthes [1] s ltalnossgban a tbbi low-interaction honeypot modulris felpts. Az egyes modulok a tmads folyamatnak klnbz fzisaihoz tartoznak s a tmads feldolgozsi lncnak megfelel sorrendben kapcsoldnak egymshoz. Amikor egy tmad, pldul egy automatikusan terjed malware megprblja a honeypot ltal emullt sebezhetsget kihasznlni, akkor a Nepenthes ugyangy reagl, mintha az egy vals rendszer lenne.

    A tmad malware a sebezhetsg kihasznlshoz szksges exploit mellett tartalmaz egy gynevezett payloadot, vagyis magyarul hasznos terhet. Ez a payload hatrozza meg, hogy a sikeres tmadst kveten a kdfuttats sorn milyen tevkenysg hajtdjon vgre a clponton. A Nepenthes s ltalnossban a low-

  • 19

    interaction honeypotok esetben a payloadok futtatsra nincs lehetsg, mivel nem valdi rendszerek (futtatskor nyilvn azonnal fny derlne a payload szndkra), az egyetlen lehetsgk, hogy megprbljk kitallni a payloadbl a tmad szndkt, amely leggyakrabban egy binris letltst jelenti.

    A malware ltal tartalmazott payload tipikusan kdolva van, hogy az ne legyen szrevehet a tzfalak, antivrus szoftverek, illetve behatols detektl rendszerek ltal s gy beengedjk a kros forgalmat a bels hlzatba, illetve az ldozat gpre. A leggyakoribb s legegyszerbb kdolsi mdszer az gynevezett XOR-kdols. Ez annyibl ll, hogy a payloadnak (esetleg az exploit egy rsznek is) minden egyes bjtjt ssze XOR-ozzuk (Exclusive OR, kizr VAGY mvelet) egy ltalban vletlenszeren generlt kulccsal (encoding key). A kulcs hossza 32 bites rendszereken ltalban 4 bjt, mg 64 bites rendszereken 8 bjt, mivel gy ppen elfrnek a processzor adott regiszterben. Az XOR-kdolson kvl mg szmos kdolsi mechanizmus ltezik, amelyek architektrnknt is klnbznek. Vannak pldul olyanok is, melyek gy kdoljk a payloadot, hogy az csak nagybets vagy csak kisbets ASCII (American Standard Code for Information Interchange) karaktereket tartalmazzon. Egy kzs jellemzjk azonban van, mgpedig hogy a null karaktert (ASCII kdja hexadecimlisan: 0x00) mindegyik kdol eliminlja, mivel a tmadand alkalmazsban tallhat string feldolgoz mveletek elronthatjk a payloadot. Ez amiatt lehetsges, mert a stringek vgt a null karakter jelli. Ezen fell termszetesen ms tiltott karakterek is lehetnek, amelyeket kiszr az alkalmazs, ezt a malware kdoljnak figyelembe kell vennie.

    Miutn az ldozat gpn lehetv vlt a kdfuttats az exploit ltal, az els lps az exploitban korbban elhelyezett kulcs segtsgvel dekdolni a payloadot, gy az mr vgrehajthatv vlik. A dekdols mvelett is termszetesen tartalmazza az exploit. Ezt kveten lefut a payload ltal tartalmazott mvelet a clponton, amely gy vgrehatja a malware ltal meghatrozott mveleteket.

    Visszatrve a Nepentheshez az brn lthat, hogy az tartalmaz egy f modult, ez a honeypot magja (Nepenthes Core modul). Ez a modul felels a hlzati interfsz kezelsrt, a hlzati portok lefoglalsrt (a pldn TCP portok vannak felsorolva), illetve ezeken keresztl fogadja a hlzatbl rkez csomagokat. Ezeken kvl a f modul felels a tbbi modul mkdsnek sszehangolsrt is. A kzponti rsz gy szerez tudomst a tbbi modulrl, hogy azok regisztrljk magukat a Nepenthes Core modulban.

  • 20

    A moduloknak a kvetkez tpusait klnbztethetjk meg: vulnerability - sebezhetsget emull modulok,

    shellcode parsing - shellkd rtelmez, elemz modulok,

    fetch - letltsrt felels modulok,

    submission - a letlttt malwarek trolsrt felels modulok, illetve

    logging - naplz modulok. A korbbi brn jl lthat, hogy a Nepenthes ltal kezelt portokon berkez

    forgalmat a honeypot magja a vulnerability (sebezhetsgi) modulok fel tovbbtja (vuln-* nev modulok). Ezek felelsek a hlzati szolgltatsok sebezhetsgeinek emullsrt. Ebbl is jl ltszik, hogy ahelyett, hogy egy teljes rtk rendszert valstannk meg, annak csak a tmads szempontjbl szksges rszeit emulljuk. Ezek a modulok valstjk meg a tmadval val kommunikcit s olyan viselkedst tanstanak kifel, mintha egy vals rendszertl rkezett volna a vlasz. Itt ltszik a low-interaction honeypotok egy msik nagy elnye is, vagyis, hogy tetszleges

    szolgltatsok sebezhetsgeit tudjuk sszegyjteni egy alkalmazsban (akr klnbz opercis rendszerekt is), ahogy a vulnerability modulok is szmos, egymstl gykeresen eltr szolgltats sebezhetsgeit valstjk meg.

    Ha valamely vulnerability modulnl sikeres volt a tmadsi ksrlet, akkor a modul a tmad ltal az zenetben elhelyezett payloadot (shellkdot) a shellcode parsing elnevezs modulok fel tovbbtja (shellcode-* kezdet modulok). A payload elnevezs alapveten az exploit lnyegi rszt jelenti, de mivel ez leggyakrabban egy shellkdot tartalmaz, ezrt nevezhetjk egyszeren shellkdnak is. Ezek a modulok analizljk a tmad ltal kldtt, egyelre mg kdolt shellkdot s megprbljk kitallni annak szndkt. Ezt a feladatot tipikusan regulris kifejezssel trtn mintaillesztssel vgzik. Elbb a mintaillesztssel meghatrozzk az alkalmazott kdolt, majd az ahhoz tartoz dekderrel felhasznlva a modul ltal a payloadbl kicsomagolt kulcsot dekdoljk a shellkdot. Ezt kveten szintn mintaillesztssel (patternek hasznlatval) prbljk meg kinyerni a shellkd ltal tartalmazott mveleteket. Ilyenkor gyakran alkalmazott rendszerhvsokra keresnek r, mint pldul a CreateProcess() fggvny, amely mint a nevbl is kiderl egy j folyamatot hoz ltre a rendszerben.

    A low-interaction honeypotok ezen kvl tipikusan alkalmasak URL-ek

    (Uniform Resource Locator) detektlsra is. Binris letltse esetn miutn az adott

  • 21

    URL-t sikerlt kicsomagolni a kdbl s ezzel meghatrozni a binris helyt, a Nepenthes letlti a futtathat llomnyt a megadott helyrl, esetleg a tmad kdjban szerepl autentikcis informcikat (mint felhasznlnv, jelsz) felhasznlva a megadott protokoll segtsgvel, majd eltrolja azt pldul a helyi fjlrendszerben, egy adatbzisban, vagy feltlti egy vruskeres cg analizl alkalmazsa szmra egy webes interfszen keresztl. Az URL alapjn trtn letltsre a fetch (vagy download) modulok hivatottak. Ezek klnbz protokollokat hasznlhatnak, gy, mint a HTTP, az FTP, a TFTP (Trivial File Transfer Protocol) vagy egyb malware-specifikus protokollok. A sikeresen letlttt malware eltrolsrl is gondoskodni kell, erre szolglnak az brn is lthat submission (submit-* elnevezs) modulok.

    A Nepenthes a feldolgozs s letlts sorn a tmad ltal hasznlt Windows shell parancsokat a beptett shell emultorval kpes rtelmezni. Ez a shell termszetesen nem egyenrtk egy vals rendszer parancssori bemenetvel. Mivel egy fjl letltsnek legegyszerbb mdja az, hogy a malware elbb ltrehoz egy ideiglenes parancsllomnyt, majd azt futtatja, ezrt a Nepenthes a shell mellett virtulis fjlrendszert is ltrehoz s tmogatja a batch fjlok (ktegelt llomnyok) ltrehozst s futtatst is.

    A Nepenthes s ms low-interaction honeypotok kpesek logolni a sikeres s

    sikertelen tmadsi ksrleteket egyarnt. A logols is trtnhet egy helyi fjlba vagy adatbzisba, kldhet e-mailben rtestst a tmadsrl stb. Fontos, hogy a Nepenthes csak eltrolja a letlttt binrist, de nem futtatja le azt. gy a malware nem tud krt okozni a rendszerben, igaz Linuxos krnyezetben nem is lenne kpes a mkdsre.

    A Nepenthes esetben az gynevezett logging modulok vgzik a detektlt tmadsi ksrletek rszleteinek naplzst. Az brn az ehhez tartoz modulok a log-download, illetve log-surfnet elnevezs modulok. Az brn egyb komponensek is lthatk, amelyek tovbbi funkcik megvalstsrt felelsek, mint pldul a DNS (Domain Name System) nvfelolds.

    2.7 High- vs. low-interaction honeypotok Az 1. tblzat az eddig ismertetett kt f honeypot tpust hasonltja ssze nhny

    meghatroz tulajdonsg mentn.

  • 22

    High-interaction honeypotok

    Low-interaction honeypotok

    Tmadval val interakci szintje magas alacsony

    Emulci szintje komplett rendszer sebezhet szolgltatsok A tmad tveheti-e a rendszer fltti irnytst

    tveheti nem kpes tvenni

    0-day exploitok detektlsra alkalmasak-e

    alkalmasak nem alkalmasak

    Tves riasztsok mentesek a

    vakriasztsoktl

    elfordulhatnak tves riasztsok

    Telepts/karbantarts ltalban knny ltalban knny

    Erforrsigny

    nagyobb, mint a low-interaction honeypotok

    esetben alacsony

    Sklzhatsg gyengn sklzhatk jl sklzhatk

    Informci kinyerse a tmadsrl

    ltalban nem automatikus, emberi

    erforrst ignyel

    automatikus

    1. tblzat - High- s low-interaction honeypotok sszehasonltsa

    2.8 Honeypotok alkalmazsa SOHO krnyezetben A SOHO rvidts az angol Small Office/Home Office kifejezsbl szrmazik,

    amely magyarul kisebb irodai/otthoni szmtgpes hlzatot, krnyezetet jelent. A SOHO krnyezet alatt alapveten olyan hlzatot rthetnk, amelyben nhny hlzati eszkz, tipikusan nhny PC, notebook, hlzati nyomtat, valamint esetleg smartphone vagy VoIP (Voice over IP) kszlk kapcsoldik egy kzponti routerhez, amely router jelenti egyben az els vdelmi vonalat is a bels hlzat fel. Tipikusan az otthoni hlzat, illetve a nhny ft szmll kisvllalkozsok hlzatai tekinthetk SOHO-nak, mely hlzatok jellemzen alacsony kltsg, kis teljestmny eszkzkbl plnek fel.

  • 23

    Ebbl kvetkezen SOHO krnyezetben a kis erforrsigny low-interaction honeypotok alkalmazhatk hatkonyan. Mieltt azonban a SOHO honeypot megoldsra kitrnk, a 3. brn egy lehetsges irodai/otthoni hlzatot vzolok fel.

    3. bra - Egy lehetsges SOHO hlzat

    Ahogy az brn is lthat, az internetrl rkez tmadsok ellen az els vdelmi vonalat a router tzfala jelenti. Termszetesen a tzfal sem tud minden tmadsi ksrletet kiszrni, ezrt elfordulhat, hogy bizonyos malwarek tjutnak rajta a bels hlzatba, illetve maga a tzfal is lehet clpont pldul abban az esetben, ha a router, az access point s a tzfal egy eszkzn van megvalstva. Az emltett malwarek ellen a

    hlzati eszkzk tzfalmegoldsai, illetve antivrus szoftverei nyjthatnak mg vdelmet. Annak rdekben azonban, hogy kpet kapjunk a loklis hlzatba bejut, illetve a mr hlzatban lv malwarek, wormok tevkenysgrl, rdemes lehet a honeypot megolds alkalmazsa.

    Irodai/otthoni krnyezetben is alkalmazhatunk magas, illetve alacsony interaktivits honeypotokat. High-interaction honeypot alkalmazsakor fizikai, illetve

    virtulis gp hasznlata esetn is mindenkppen clszer dediklt gpet hasznlni erre a clra, mivel egyrszt egy sikeres tmads alkalmval a tmad nem fr hozz a szemlyes adatainkhoz, msrszt a high-interaction rendszerek nagyobb erforrsignye miatt ekkor nem kell szmolnunk az eszkzk vlaszidejnek cskkensvel.

  • 24

    Mint ahogy azt mr emltettem, a low-interaction honeypotok hasznlata

    hatkonyabb lehet a high-interaction honeypotoknl, ha az alacsony erforrs szksgletet tekintjk elsdleges szempontnak. Ebbl addan alacsony interaktivits honeypotokat telepthetnk routerekre, PC-re, notebookra stb. Mivel irodai/otthoni krnyezetben a legelterjedtebb rendszerek a Windows rendszer klnbz verzi, ezrt fontos, hogy ezeknek a rendszereknek az ismert sebezhetsgeit emulljuk.

    Fggetlenl attl, hogy milyen megoldst hasznlunk, SOHO krnyezetben annak a kvetkez feltteleknek kell eleget tennie:

    olcs hardware eszkzkn is hatkonyan mkdjn, tegye biztonsgosabb az internethasznlatot, elssorban a monitorozs

    s megelzs tern,

    legyen egyszer, knnyen telepthet, hasznlhat, knnyen konfigurlhat, karbantarthat, illetve

    ne zavarja az internethasznlatot. A honeypotok monitorozsi funkcija szempontjbl fontos krds, hogy hol

    helyezzk el azokat a bels hlzatban [1]. Egyik lehetsgknt elhelyezhetjk azokat a tzfallal vdett krnyezeten bell. Ebben az esetben, ha a honeypot tmadsokat szlel, akkor az tipikusan arra utal, hogy a hlzaton bell valamely gp mr megfertzdtt valamilyen automatikusan terjed malware-rel, msrszt arra is utalhat, hogy egy tmadnak sikerlt bejutnia a loklis hlzatunkba. Msik lehetsg a honeypotok elhelyezsre, hogy ha kzvetlenl az internetre kapcsoljuk azokat, kikerlve ezzel a tzfalakat, illetve egyb biztonsgi megoldsokat. Ebben az esetben az internetrl a routernkhz rkez valamennyi tmadst detektlhatunk, mivel ezeket az ISP-k (Internet Service Provider), vagyis az internetszolgltatk ltalban nem szrik. Harmadik lehetsgknt pedig kialakthatunk a bels hlzatban gynevezett DMZ-t (Demilitarized Zone, demarkcis zna), melyen bell helyezzk el a honeypotot.

    A DMZ olyan fizikai vagy logikai alhlzat, amely egy plusz biztonsgi rteget nyjt a megbzhatatlan kzeg, vagyis az internet, illetve a megbzhat helyi hlzat kztt. A forgalmat a DMZ-be, illetve a vdend alhlzatba a router tzfala irnytja. Ezen megolds esetben a tzfalon tljut, a DMZ-t clz kros forgalmakat tudjuk rgzteni. A megolds igazi elnye az, hogy vdi a hlzat tbbi rszt abban az esetben, ha valakinek sikerl behatolnia, mivel a vdend alhlzat a DMZ-tl

  • 25

    elklntve, pldul kln VLAN (Virtual Local Area Network) tartomnyban van megvalstva.

    Ugyancsak DMZ-be clszer helyezni a high-interaction honeypotokat, ha pldul 0-day exploitokat akarunk detektlni, illetve azok ellen akarjuk hlzatunkat vdeni. Vgl honeypotokbl ll hlzatot (honeynetet) is kialakthatunk a demarkcis znban, ha a sokrt vdelem is cl.

    SOHO honeypotra j plda a korbban rszletesebben is ismertetett Nepenthes SOHO routeren, OpenWrt krnyezetben val alkalmazsa [2]. Ebben az esetben egy begyazott eszkzkre, minimlis erforrs-hasznlatra optimalizlt verzijt hasznlhatjuk a Nepenthesnek (az emltett platformhoz rendelkezsre ll telepthet verzi). Az OpenWrt platformrl a 4. fejezetben mg sz esik. Msik plda lehet az ltalam a szakdolgozat rszeknt fejlesztett low-interaction honeypot, melynek tervezst mutatom be a kvetkez fejezetben.

  • 26

    3. Tervezs

    3.1 A honeypot funkcionlis tervezse

    3.1.1 A programmal szemben tmasztott kvetelmnyek Mint minden szoftver, gy a kvetkezkben bemutatand honeypot alkalmazs

    ksztse is a felhasznli ignyekbl, kvetelmnyekbl indul ki. A korbbi fejezetekben megfogalmazott low-interaction honeypot funkcik elltsa, vagyis a hlzat monitorozsa, illetve az automatikusan terjed malwarek tmadsainak gyjtse az elsdleges clja a programnak. Az alkalmazssal szemben elvrs, hogy egyszeren telepthet, konfigurlhat s futtathat legyen. Kpes legyen meghatrozott tpus

    tmadsok fogadsra, azok klnbz paramtereinek rgztsre. Felhasznli szempontbl fontos kritrium, hogy az sszegyjttt informcikat

    knnyen rtelmezhet, ttekinthet struktrban jelentse meg, ugyanakkor lehetsg nyljon az informcik hatkony gpi feldolgozsra is. Ezt kielgtend, tartalmazzon egy kttt szerkezet naplllomnyt, illetve a naplllomnyban lv informcikat felhasznlbartan megjelent, kevsb kttt struktrj kezeli felletet, amelyen keresztl a konfigurcis feladatok elltsra is lehetsg nylik. Ennek rdekben a kezeli fellet webes formban kerljn megjelentsre, mivel az informcik megtekintshez ekkor csak egy bngszre van szksg. Tovbbi fontos szempont, hogy a webes fellet az informcikat alapesetben aggregltan, sszestve jellemezze, ugyanakkor a rszletes adatok kinyersre is biztostson lehetsget.

    Fejleszti szempontbl kvetelmny, hogy hatkonyan tovbbfejleszthet legyen, adjon lehetsget a kibvtsre, lehessen a detektlhat exploitok, malwarek krt egyszeren bvteni. Ezeket a feltteleket szem eltt tartva teht legyen modulris felpts, tulajdonkppen micro-framework (mikro-keretrendszer) jelleg alkalmazs. Mivel SOHO honeypotrl van sz, ezrt a loklis hlzat els vdelmi vonalt jelent routeren fusson, figyelembe vve a begyazott rendszer ltal tmasztott erforrs, illetve teljestmny korltokat (processzor, memria, illetve httrtr korltok).

    A kivlasztott, emulland sebezhetsgekkel kapcsolatban lnyeges szempont, hogy azok Windows jelleg biztonsgi hibkhoz kapcsoldjanak. Mivel az alkalmazsnak alapveten nem sokrt vdelem biztosts a clja, ezrt a hangsly

  • 27

    inkbb arra helyezdik, hogy a program vltozatos legyen a detektlhat tmadsok szempontjbl.

    A tesztelst illeten fontos kritrium, hogy az emullt sebezhetsgek tesztelhetk legyenek a Metasploit Framework alkalmazs segtsgvel, vagyis az

    tartalmazzon ksz exploitokat a kivlasztott sebezhetsgekhez. Mindezt sszegezve teht a honeypotnak a kvetkez funkcikkal kell

    rendelkeznie:

    konfigurlhatsg konfigurcis llomnyon s webes interfszen keresztl,

    a konfigurlt portok figyelse tmads szempontjbl, exploitok detektlsa s az azokhoz kapcsold sebezhetsgek

    emullsa,

    az exploit eredmnyeknt letltend malware naplzsa (letlts nem trtnik a szks httrtr kapacitsbl addan),

    a tmads krlmnyeinek naplzsa,

    valamint a naplllomny webes felleten trtn kiszolglsa, aggreglsa tblzatok, illetve grafikonok formjban.

    3.1.2 A megvalstand funkcik sszegzse felhasznli szempontbl A kvetelmnyek alapjn a 4. brn lthat use-case diagramot rajzoltam fel

    magamnak.

    4. bra - A honeypot alkalmazs use-case diagramja

    Lthat, hogy a felhasznl a honeypot ltal gyjttt informcik megtekintsre tudja hasznlni a programot. Az informcikat mind a webes felleten,

  • 28

    mind a honeypot ltal generlt nyers log (napl) llomnybl lekrdezheti. Ezen kvl konfigurlhatja a honeypotot, ezt a konfigurcis llomny mdostsval vagy a webes felleten lv megfelel szekci hasznlatval tudja elrni.

    3.2 Architekturlis tervezs A honeypot alkalmazs felptst, illetve a rtegek egymshoz val viszonyt

    szemllteti az 5. bra.

    5. bra - A honeypot alkalmazs felptse s a rtegek kapcsolata

    Mint ahogy az brn is lthat, a honeypot rteges felpts, a legals rteget maga a hardware, vagyis a SOHO router jelenti. E fltt helyezkedik el az OpenWrt platform, amely a routeren fut Linux alap, begyazott eszkzkhz kszlt opercis rendszer. Tovbb itt helyezkednek el az alkalmazshoz felhasznlt C/C++ nyelv programknyvtrak. A kvetkez rtegben tallhat maga a low-interaction honeypot alkalmazs. Mint az a kpen is lthat, a honeypot tartalmaz egy f modult (kzponti modult), illetve a sebezhetsgek megvalstshoz, emullshoz szksges tovbbi sebezhetsgi (vulnerability) modulokat.

    A kzponti modul feladata az alkalmazs elindtsa, inicializlsa, illetve a konfigurcis llomnyban tallhat belltsoknak megfelel vulnerability modulok betltse a szintn a konfigurcis llomnyban megadott portokra. Teht a megfelel

  • 29

    hlzati portok lefoglalsa is a kzponti modul felelssge. Ha valamely modul betltse sorn problma lpne fel, akkor a hibt a f modul kezeli.

    A rendszer igazi cljt, vagyis a tmadsok detektlst a vulnerability modulok vgzik. Minden kivlasztott sebezhetsghez pontosan egy sebezhetsgi modul tartozik. A kivlasztott sebezhetsgekrl rszletesebb informcikat egy ksbbi alfejezetben kzlk.

    Mint ahogy a fenti brbl is kiderl, az ltalam ltrehozott honeypot jelenleg 7 sebezhetsgi modult tartalmaz. Ezeket ksbb tetszlegesen lehet bvteni tovbbi modulokkal. A vulnerability modulok els krben hallgatjk a hozzjuk rendelt portot, figyelik az azon rkez forgalmakat. Minden berkez kapcsolatot, illetve forgalmat rgztenek, majd megvizsgljk, hogy az megfelel-e az ltaluk detektlhat exploit mintjnak. Ha az ltaluk detektlhat exploitnak megfelel mintj tmads rkezik, akkor a sebezhetsgi modul elkezd olyan zeneteket kldeni a tmad fel, melyeket egy les sebezhet rendszer is kldene vlaszul. Miutn a tmad fl elkldte a payloadot, a modul lezrja vele a kapcsolatot s vizsglat al veszi a hasznos terhet. Ekkor mg kiderlhet, hogy valjban nem exploit volt a berkez forgalom, ebben az esetben a modul befejezi a payload vizsglatt. Ha megerstst nyer, hogy a forgalom exploitot tartalmazott, akkor a payload dekdolsa, majd sikeres dekdols esetn az gy kapott shellkd rtelmezse trtnik (valjban sikertelen dekdols esetn is megprblja rtelmezni a payloadot, htha az kdolatlanul rkezett). A modul minden informcit rgzt, amelyet sikerlt kinyernie a payloadbl. Az exploitok mkdsnek s a modulok ltali lekezelsnek rszletes lpseit a ksbbi alfejezetekben ismertetem, majd a tesztels sorn egy konkrt pldn keresztl bemutatom az adott modul ltal a tmadsrl rgztett informcikat.

    Vgl a legfels rtegben a felhasznlk fel megjelentett webes felletet lthatjuk. A webes megjelent fellet a honeypot ltal generlt log llomnyt dolgozza fel s jelenti meg tblzatos, illetve grafikonos formban. A felleten lehetsg nylik megtekinteni a ltrehozott naplllomnyt is, valamint konfigurlni a honeypotot.

    A program rszletesebb architekturlis tervt (a webes fellet nlkl) a 6. bra tartalmazza.

  • 30

    6. bra - A honeypot architekturlis felptse rszletesebben

    Ha a fenti brt sszehasonltjuk a Nepenthes felptst bemutat 2. brval, akkor sok hasonlsgot fedezhetnk fel. Ez nem vletlen, hiszen mindkt alkalmazs low-interaction tpus honeypot. Itt is van kzponti modul, illetve vulnerability modulok. A 2. brn lthat shellkd modulok itt a dekder s shellkd feldolgoz modulok unijnak felelnek meg. Az ltalam ksztett honeypot szemben a Nepenthessel nem tartalmaz sem letltsrt felels (fetch), sem a letlttt fjlok trolsrt felels (submission) modulokat. Ezekre ugyanis nem volt szksg, hiszen a mr emltett szks httrtr kapacitsbl addan a routeren fut honeypot nem tlt le semmit az internetrl, hanem csak logolja azt. Termszetesen itt is megtallhat a naplzst vgz modul (logger).

    A fenti brn lthatjuk a mr korbban is emltett sebezhetsgi modulokat. Az 5. s 6. brn lthat vulnerability modulokon kvl a honeypot tartalmaz mg kt tovbbi plda modult is (Vuln_Example_Tcp, Vuln_Example_Udp). Ezeknek csak annyi a szerepe, hogy egy sablont biztostanak a tovbbi vulnerability modulok egyszerbb ltrehozshoz, illetve mivel minimlis mkdst is produklnak (az els konkrtan egy rendkvl egyszer webszerver, a msodik pedig egy idszerver), gy segtsgkkel ellenrizhet a honeypot mkdse. Az emltett pldamodulok naplzst nem vgeznek.

  • 31

    Az elbbi brn mr lthatk az ltalam rt dekder s shellkd rtelmez modulok is. A kpen a fels kt dekder 32, illetve 64 bites XOR dekdolst valst meg. Az utols dekderre csak azrt van szksg, hogy ha a payload nem az elbbi kt dekdernek megfelel kdolval volt kdolva, akkor a payloadot dekdols nlkl, nyers formban is megvizsglhassuk.

    A shellkd rtelmezk kzl az els a fjl letltst s futtatst vgz shellkdok detektlsra, mg a msodik a shellel trtn parancsvgrehajts detektlsra hasznlhat.

    A honeypot sszetettsgbl addan az objektum-orientlt szemllet alkalmazsa nlklzhetetlen. A kvetkez alfejezetben teht a program objektummodelljt mutatom be, amelyen lthatv vlnak az architekturlis nzetben mg rejtett ptelemek.

    3.3 Az alkalmazs objektummodellje Az objektum-orientlt szemlletnek megfelelen a honeypot minden

    komponenst egy-egy osztly hivatott megvalstani. Az alkalmazs statikus

    osztlydiagramja az UML (Unified Modeling Language) ler nyelvvel megvalstva a 7.1., 7.2., 7.3. s 7.4. brkon lthat (az brk egyms folytatsai). Az brkon megfigyelhet a honeypotot alkot osztlyok szerkezete, valamint az osztlyok

    egymssal val kapcsolata, viszonyaik.

  • 32

    7.1. bra - Az alkalmazs statikus osztlydiagramja

  • 33

    7.2. bra - Az alkalmazs statikus osztlydiagramja

  • 34

    7.3. bra - Az alkalmazs statikus osztlydiagramja

  • 35

    7.4. bra - Az alkalmazs statikus osztlydiagramja

    A fenti brkon lthat osztlyok feladatait az albbi tblzatban foglalom ssze, az osztlyok attribtumainak s metdusainak rszletes lerst a szakdolgozat mellkleteknt csatolt webes formtum dokumentumban ismertetem.

    Osztlynv Lers

    ApplicationListener Az alkalmazsi rteg kommunikcis

    osztlyainak kzs sosztlya.

  • 36

    ConfigReader rtelmezi a konfigurcis llomnyt s visszaadja a betlthet modulok nevt s portjt egy ConfigRecord objektumban.

    ConfigRecord A betlthet modul nevt s portjt tartalmazza.

    Decoder_Generic_None

    Dekder osztly, amely valjban nem vgez dekdolst. Abban az esetben van r szksg, ha nem ismerhet fel a payload kdolja, mert ekkor nyers formban is megvizsglhatjuk azt.

    Decoder_Module A dekder modulok kzs interfszt rja le. Decoder_Module_Container Dekder modulokat trol.

    Decoder_x64_XOR_8byte 8 bjtos kulcs XOR dekder modul. Decoder_x86_XOR_DWord 4 bjtos kulcs XOR dekder modul. FTPSocketHandler FTP kapcsolatot kezel modul.

    HTTPSocketHandler HTTP kapcsolatot kezel modul.

    Listener A hlzati kommunikcit biztost osztlyok kzs interfszt rja le.

    Logger

    Naplzst vgez, segtsgvel minden modul kttt formtumban logolhat. A fenti osztlydiagramon nincsenek feltntetve az osztly metdusai azok nagy szma miatt, illetve azrt, mert mindegyik gyakorlatilag csak a kapott szveg megfelel formtumban trtn kirst vgzi.

    ShellcodeParser_DownloadExec Shellkd rtelmez modul. A fjl letltst s futtatst vgz shellkdok detektlsra alkalmas.

    ShellcodeParser_Exec Shellkd rtelmez modul. A shellel trtn parancsvgrehajtst vgz shellkdok detektlsra alkalmas.

    ShellcodeParser_Module A shellkd rtelmez modulok kzs interfszt rja le.

    ShellcodeParser_Module_Container Shellkd rtelmez modulokat trol.

    TcpTransportListener TCP kapcsolatokat kezel osztly.

  • 37

    TransportListener A szlltsi rteg kommunikcis osztlyainak

    kzs sosztlya.

    UdpTransportListener UDP kapcsolatokat kezel osztly.

    Vuln_* (vulnerability modulok) Sebezhetsget emull modulok. A sebezhetsgekrl rszletesebb informcival a kvetkez alfejezet szolgl.

    Vuln_Example_Tcp Plda modul, nagyon egyszer webszervert valst meg.

    Vuln_Example_Udp Plda modul, nagyon egyszer idszervert valst meg.

    Vuln_Module A vulnerability modulok kzs interfszt rja le.

    Vuln_Module_Regex Regulris kifejezs feldolgoz osztly.

    Vuln_Module_Thread Szlkezel osztly a tbbszl vulnerability modulok szmra.

    WrtHoney A honeypot kzponti modulja, a tovbbi modulok betltsrt felels.

    2. tblzat - Az alkalmazs osztlyainak lersa

    3.4 A vlasztott sebezhetsgek A kvetkez lersban a honeypothoz vlasztott sebezhetsgeket, illetve az

    azokhoz kapcsold publikus exploitokat [3] foglalom ssze. A sebezhetsgek kivlasztsnl az elsdleges cl azok vltozatossga volt. Minden sebezhetsg Windows rendszert vagy azon fut alkalmazst rint.

    Exploit neve: ms02_039_slammer Vulnerability modul neve: Vuln_Mssql Sebezhetsg lersa: Buffer tlcsorduls kdfuttatst tesz lehetv a Microsoft SQL Server 2000 alkalmazsban. Hibajegy: MSB MS02-039 Kzzttel idpontja: 2002. jlius 24.

  • 38

    Exploit neve: mysql_yassl_hello Vulnerability modul neve: Vuln_Mysql_Yassl Sebezhetsg lersa: Buffer tlcsorduls a yaSSL nev SSL (Secure Socket Layer) programknyvtrban a MySQL alkalmazssal hasznlva tvoli kdfuttatst tesz lehetv. Hibajegy: CVE-2008-0226 Kzzttel idpontja: 2008. janur 4.

    Exploit neve: aim_triton_cseq Vulnerability modul neve: Vuln_Sip Sebezhetsg lersa: Buffer tlcsorduls az AIM (AOL Instant Messenger) Triton alkalmazsban tvoli kdfuttatst tesz lehetv. Hibajegy: CVE-2006-3524 Kzzttel idpontja: 2006. jlius 10.

    Exploit neve: xlink_nfsd Vulnerability modul neve: Vuln_Xlink_Nfsd Sebezhetsg lersa: Buffer tlcsorduls az XLink Omni-NFS (Network File System) szerverben tvoli kdfuttatst tesz lehetv. Hibajegy: CVE-2006-5780 Kzzttel idpontja: 2006. november 6.

    Exploit neve: sasser_ftpd_port Vulnerability modul neve: Vuln_Sasser_Ftpd Sebezhetsg lersa: A Windows XP-s Sasser worm FTP szolgltatsban (FTP szerver komponensben) lv hiba a stack tlrst, ezzel pedig kd futtatst teszi lehetv.

    Hibajegy: OSVDB-6197 Kzzttel idpontja: 2004. mjus 10.

    Exploit neve: cesarftp_mkd Vulnerability modul neve: Vuln_Cesarftp Sebezhetsg lersa: Buffer tlcsorduls a CesarFTP szerveralkalmazsban alkalmazs sszeomlst, illetve tvoli kdfuttatst tesz lehetv.

  • 39

    Hibajegy: CVE-2006-2961 Kzzttel idpontja: 2006. jnius 12.

    Exploit neve: ms03_051_fp30reg_chunked Vulnerability modul neve: Vuln_ms03_051_fp30reg Sebezhetsg lersa: Buffer tlcsorduls a Microsoft FrontPage Server Extensions alkalmazsban kdfuttatst tesz lehetv. Hibajegy: MSB MS03-051 Kzzttel idpontja: 2003. november 11.

    Lthat, hogy a fenti exploitok mindegyike buffer tlcsordulson alapul technikt hasznl, ezrt a kvetkez fejezetben ennek ismertetsvel folytatom.

    3.5 Az exploitok mkdse Ahogy az elbb emltettem, a fenti lersban tallhat exploitok mindegyike a

    buffer tlcsordtson alapul, ezzel lehetv tve a kdfuttatst. A tlrt bufferek mindegyik esetben a stacken tallhatk. Az alkalmazsok hibinak kihasznlsa sorn a stacken alloklt bufferek tlrsa a leggyakoribb exploitlsi technika. Termszetesen ezen kvl mg szmos kdfuttatst lehetv tev eljrs ltezik, ezek azonban kevsb gyakoriak. A buffer tlcsordtsos technika elnye az, hogy viszonylag egyszeren, rvid id alatt lehet ilyen mdszerrel exploitokat ltrehozni. A honeypot vulnerability moduljai mkdsnek megtervezshez mindenkppen szksges az emltett exploit mkds ismerete, ezrt most ennek ismertetsre kerl sor.

    3.5.1 A stack

    A stack, vagy ms nven verem memria egy futtats alatt ll program, vagyis

    egy processz memrijnak rsze. A processz memrijnak tovbbi rszei az gynevezett text s a data terlet [4]. A text terlet az a memria rsz, ahol a programkd, illetve egyb csak olvashat adatok helyezkednek el, a data terlet pedig az a rsz, ahol inicializlt, illetve inicializlatlan adatokat trolunk, mint pldul a globlis vltozk. A text s data terletekkel a tovbbiakban nem foglalkozunk.

    A stack LIFO (Last In First Out) szervezs memriaterlet, vagyis mindig az utoljra betett adat lesz a verem tetejn, gy az rhet el elszr. Kt alapvet mvelet tartozik a veremhez, ezek a PUSH, illetve POP mveletek. A PUSH mvelet egy elemet

  • 40

    tesz a stack tetejre, ezltal nvelve annak mrett, a POP mvelet pedig kiveszi a legfels elemet a stackbl, gy annak mrete cskken. A memrinak ezen a rszn a fggvnyek paramtereit s loklis vltozit, valamint bizonyos processzor regiszterek tartalmt troljuk ideiglenesen. A stack ltalnos felptst [5] mutatja a 8. bra.

    8. bra - A stack ltalnos felptse

    A fenti brn lthat, hogy egy programban egy fggvny meghvsakor elbb a fggvny paramtere(i) kerl(nek) be a stackbe (feltve, hogy a fggvnynek van paramtere). Mivel egy fggvny hvsakor a program vgrehajtsa ltalban a text terlet korbbitl eltr rszn folytatdik, ezrt szksg van a text terlet aktulis cmnek eltrolsra, ahova majd vissza kell trni a fggvny befejeztvel. A text terlet aktulis cmt (vagyis az aktulisan vgrehajtand utasts cmt) tartalmazza az EIP processzor regiszter. Ezt a visszatrsi cmet teht le kell menteni a stackre mg a

    fggvny hvsa eltt.

    A stacken megklnbztethetnk stack frame-eket. Egy stack frame azokat az adatokat jelenti, amiket egy fggvny hvsa sorn betesznk a stackbe, majd a fggvny visszatrsekor kivesznk onnan. A stack frame-ekhez tartozik egy

    gynevezett frame pointer, amit az EBP regiszter trol. Ez a frame pointer ltalban a fggvny loklis vltozi ltal lefoglalt memriaterlet kezdetre mutat a stackben.

  • 41

    Mivel egy j fggvny hvsakor az EBP rtke megvltozik, ezrt azt a fggvny futsnak elejn le kell menteni a stackbe, gy az EBP egyel korbbi rtke ksbb visszallthat. Miutn a rgi EBP rtket lementette az j fggvny, annak tartalma frisstsre kerl az j fggvny loklis vltozinak kezdetre. Ezek szintn lthatk a fenti kpen. Innentl kezdve az j fggvny vgrehajtsa sorn az EBP rtke nem vltozik. Az brn tulajdonkppen az j fggvnyknt emlegetett fggvny stack frame-je lthat, az t meghv (rgi) fggvny stack frame-je pedig ehhez hasonl s az j fggvny paramterei alatt helyezkedne el.

    Vgl az EBP mentett rtke fltt (ettl mr klnbzik az aktulis rtke) helyezkednek el a fggvny loklis vltozi, amelyeket buffereknek is nevezhetnk. A stack tetejnek cmt az ESP regiszterben troljuk.

    sszefoglalva teht az emltett 3 regiszter (Intel processzorok esetn) a kvetkezket tartalmazza [6]:

    EIP (Instruction Pointer): A fut program aktulis utastsnak cmt tartalmazza, fggvny hvsakor az EIP utols rtke lementsre kerl a stackbe, mint visszatrsi cm.

    EBP (Base Pointer vagy Frame Pointer): A meghvott fggvny loklis vltozinak kezdetre mutat. Azrt van r szksg, mert a fggvny loklis vltozinak cmzsnl gy mindig csak az EBP-hez kpesti eltolst (offsetet) kell megadni. Rgi rtke mentsre kerl j fggvny hvsa esetn, j rtke pedig az j fggvny loklis vltozi cmnek eleje.

    ESP (Stack Pointer): Mindig a stack tetejre mutat. A PUSH mvelet cskkenti az rtkt, mg a POP mvelet nveli azt. (Ez azrt van gy, mert a stackben az adatok elhelyezse a memria cmek szerint cskken sorrendben trtnik.)

    Ahhoz, hogy a stack mkdse mg rthetbb legyen, rdemes egy konkrt pldt is megnzni. Ehhez tekintsk az albbi rendkvl egyszer C nyelv pldaprogramot:

  • 42

    A function elnevezs fggvny visszatrse eltt a stack a 9. brn lthat mdon fog felplni [5].

    9. bra - A stack felptse a pldaprogram esetn

    Az elbbi brn jl megfigyelhet a mr korbban is emltett rgi, illetve j fggvnyek stack frame-je. A stack frame-ek teht az esetleges paramterekbl, a visszatrsi cmbl, a frame pointer mentett rtkbl, illetve a bufferekbl llnak. Az brn tovbb lthatk a pldakdban szerepl paramterek listi, illetve a fggvnyek loklis vltozi. A kpen mg az is lthat, hogy a ksbb meghvott fggvny mentett EBP rtke tnylegesen a korbbi EBP rtket tartalmazza, illetve, hogy az rtk mentst kveten kerlt sor az EBP frisstsre, amely az akkori ESP rtket kapta

    meg. A ksbb meghvott fggvny buffernek (buffer2) megtrtnt a memria lefoglalsa, gy az ESP rtke a buffer tetejre mutat (stack teteje), ugyanakkor az EBP rtke nem vltozott.

    3.5.2 Kdfuttats buffer overflow eredmnyeknt Ahhoz, hogy egy alkalmazs biztonsgi hibjt kihasznlva r tudjuk venni az

    ldozat gpet, hogy egy ltalunk megrt kdot futtasson le, kt dolog szksges:

  • 43

    egyrszt el kell valahogyan helyezni a futtathat kdot a memriban, msrszt r kell venni a hibs programot, hogy ezen a kdrszleten folytassa a futst. A memrit, ahol a kdot elhelyezzk, jelen esetben a stack jelenti. Ahhoz pedig, hogy az alkalmazs ezt le is futassa (hiszen normlis mkds esetn a fut kd a text terleten van, a stacken nem trtnik utasts vgrehajts), az aktulis fggvnyhez tartoz visszatrsi cmet kell trni gy, hogy az az ltalunk elhelyezett kdra mutasson. A buffer tlcsordulst kihasznl exploitok ltalnossgban gy mkdnek [6].

    Az aktulis fggvny visszatrsi cmnek trshoz teht csak annyi

    szksges, hogy az egyik loklis buffert (ez fltte helyezkedik el a veremben) rjuk tl annyi bjttal, hogy az gy stackbe rt adat rje el a visszatrsi cmet. Ekkor termszetesen az EBP mentett rtkt is biztosan fellrjuk. A buffer tlrs ltalban azrt lehetsges, mert a programban valahol nem trtnik meg a bemeneti adat hossznak ellenrzse, korltozsa. Ilyen hibra j plda az strcpy() (karakterlnc msol) fggvny alkalmazsa elzetes hossz ellenrzs nlkl, ugyanis az emltett fggvny ilyet nem vgez.

    Ezek alapjn teht az exploitok ltal a bufferbe rt adat egyrszt tartalmazza a futtatand kdot (vagyis a shellkdot). A shellkd azonban nem biztos, hogy kitlti egymaga a rendelkezsre ll buffert, ezrt a bufferben lv maradk helyet kitltik valamilyen rtelmetlen adattal (pldul csupa A karakterrel). gy mr megteltik a buffert, minden tovbbi bert adat mr a bufferen kvlre esik. Ez utn jn az a tartalom, ami fellrja a mentett EBP rtket. Ez Intel x86 architektrj rendszereknl 4 bjtot jelent. Ezt a 4 bjtot is tipikusan rtelmetlen adattal tlti fel az exploit. Ezzel vgl elrik a visszatrsi cmet, amely az emltett rendszerek esetn szintn 4 bjt hosszsg. Ebbl kvetkezen az exploit ltal memriba rt tartalom kvetkez 4 bjtja egy olyan cm lesz, amely a korbban elhelyezett shellkdra mutat. Mivel sokszor nehz pontosan a shellkd elejre mutatni (ez pedig nlklzhetetlen, klnben nem a kvnt mvelet hajtdik vgre), ezrt annak elejre mg tipikusan NOP utastsokat (No Operation) helyeznek el, mely utastsok nem tesznek semmit, csak processzoridt hasznlnak. gy elg csak krlbell a NOP utastsok sorozatnak kzepre mutatni. A NOP utastsok sorozata knnyen detektlhat a behatols detektl rendszerek ltal, ezrt a NOP-ok eliminlsra szmos sszetettebb megolds is ltezik, illetve az ismertetettnl bonyolultabb exploit mkds is elkpzelhet.

    Az exploit shellkdja tipikusan a mr emltett CreateProcess() rendszerhvst futtatja Windows rendszereken, amelynek segtsgvel leggyakrabban egy shell

  • 44

    folyamat kerl elindtsra. Ez a shell folyamat pedig valamilyen hlzati protokollt alkalmazva letlti, majd elindtja a malwaret.

    Az exploit ltal memriba rt adat sszefoglalva teht a kvetkezkppen nz ki: [NOP utastsok + shellkd + buffer maradk helyt kitlt rtelmetlen adat] [EBP-t fellr rtelmetlen adat] [visszatrsi cmet fellr valamely korbbi NOP utasts cme]. A visszatrsi cm x86 rendszerekben little-endian bjtsorrendben van trolva, vagyis a cm vgre kerlnek a kisebb helyrtk bitek. Az gy kialakul verem tartalmat [6] igyekszik szemlltetni a 10. bra.

    10. bra - Az exploit ltal kialaktott stack tartalom

    Amennyiben az elbbi brn lthat stack frame-hez tartoz fggvny visszatr, akkor a program vgrehajtsa a mr mdostott visszatrsi cmen folytatdik, vagyis valamelyik NOP utastson. A NOP utastsokon a program vgiglpeget, majd a vezrls vgl a shellkdra kerl, amely gy elvgzi a malware ltal meghatrozott tevkenysget.

    Mint azt lttuk, a sebezhetsget tartalmaz hlzati szolgltatsok, alkalmazsok valamely buffernek tlcsordtst specilisan sszelltott zenetekkel lehet elrni. Ez azonban sokszor nmagban nem elg, hiszen elkpzelhet, hogy az alkalmazs a kezdeti llapotban nem srlkeny. Ezrt, ha egy llapotgpknt fogjuk fel azt, akkor az exploitnak mg a specilisan sszelltott zenet eltt el kell vinnie az

    alkalmazst annak sebezhet llapotba. Ez ltalban egy megfelel zenetszekvencival rhet el, amely jl definilt szakaszokbl (stage) tevdik ssze.

    A magasabb szint programnyelvek megjelensvel egytt alakult ki a kivtelkezels lehetsge is a programokban. Egy msik jellegzetes tpus exploit az gynevezett SEH (Structured Exception Handling) alap exploit [7], amely esetben a

  • 45

    kivtelkezel struktrk kerlnek fellrsra, ezzel elrve a shellkd futtatst. Ilyen technikn alapul a korbban mr ismertetett aim_triton_cseq elnevezs exploit.

    3.6 Vulnerability modulok mkdsnek tervezse A honeypot alkalmazs vulnerability moduljai mkdsnek dinamikus

    modellje lthat a 11. brn szerepl UML szekvencia diagramon.

    11. bra - Vulnerability modulok mkdsnek dinamikus modellje

    Ahogy az brn is lthat, a vulnerability modulok mkdsket az emulateVulnerability metdus meghvsnak hatsra kezdik meg (termszetesen elzetesen a honeypot kzponti modul mr ltrehozta azokat), ez minden Vuln_Module interfszt implementl modulra igaz. Ebben a metdusban

  • 46

    inicializlst kveten egy vgtelen ciklus indul el, amelyben a modul fogadja a hlzatbl rkez zeneteket. Miutn a modul fogadta az zenetet, azt egy bufferben trolja, majd meghvja a getPayloadFromExploit metdust, amelynek tadja a buffert. (A metdusok paramtereit csak a kls objektumok metdusainak hvsa esetn tntettem fel.)

    A getPayloadFromExploit nev metdusban a modul egy regulris kifejezsre illeszti a buffer tartalmt, mely regulris kifejezs a modul ltal detektlhat exploitokra illeszkedik. Ebbl addan, ha a buffer tartalma illeszkedik a regulris kifejezsre, akkor a kapott zenet exploitot tartalmaz. Ha ez igaz ([regexMatch() == 0]), akkor egyrszt kicsomagoljuk a payloadot az exploitbl, msrszt meghvjuk a modul decodePayload metdust, ellenkez esetben a feldolgozs befejezdik.

    A decodePayload metdus elsknt ellenrzi, hogy felismerhet-e valamelyik kdol mintja a kapott payloadban ([check() >= 0]), s ha igen, akkor inicializlst kveten meghvja a megfelel dekdol decode metdust, amelynek tadja a buffer tartalmt, vagyis a payloadot. A dekdol (Decoder_Module interfszt valstja meg) megprblja dekdolni a kapott tartalmat, majd visszaadja az eredmnyt egy tempPayload nev bjt tmbben.

    Ez a tempPayload bjt tmb kerl tadsra a vulnerability modul parseShellcode nev metdusnak. Ebben a metdusban valamennyi shellkd rtelmezvel megprbljuk kinyerni a payloadbl a lnyegi rszt, vagyis azt a tartalmat, ami a vgrehajtand kros tevkenysgre utal (URL, shell parancs). Ehhez a shellkd rtelmezknek (ezek a ShellcodeParser_Module interfszt implementljk) a getUsefulContent metdust hvja meg a sebezhetsgi modul a korbban emltett tempPayload paramterrel. Ha a shellkd feldolgoz modul tallt valamit, akkor azt logolja, illetve lehetsg nylik ennek a tartalomnak a metdus ltali visszaadsra is, ez azonban opcionlis. Ez az opcionlis rtk lthat a fenti brn usefulContent nven.

    A dekderek, illetve shellkd feldolgoz modulok kontner objektumokba vannak helyezve az egyszer felhasznls rdekben, ez a fenti brn nincs jellve.

    Az emltett mkds mellett a vulnerability modulok, a dekderek s a shellkd feldolgozk is minden lpst naplznak.

  • 47

    4. Implementls

    4.1 A vlasztott programozsi nyelv A honeypot alkalmazs implementlshoz vlasztott programozsi nyelv a

    C/C++ nyelv volt. Mivel az alkalmazs a hlzati rtegben mkdik, ezrt ennl alacsonyabb szint nyelvre, hardware programozsra nem volt szksg. Az ennl magasabb szint nyelvek, azok nagyobb erforrs-szksglete miatt nem jhettek szmtsba. Mivel a honeypot tervezse sorn az objektum-orientlt paradigmt hasznltam fel, ezrt az implementci sorn egy objektum-alap rendszert kellett megvalstani. Ehhez olyan nyelvre volt szksg, amely nyelvi szinten tmogatja az objektum-orientlt programozst, erre volt alkalmas a C++ nyelv. Ugyanakkor a felhasznlt knyvtri fggvnyek C-s vltozatt hasznltam, mivel ez a honeypot

    krnyezett jelent OpenWrt rendszerben mr kezdetben rendelkezsre llt. A program webes megjelent felletnek dinamikus rszt PHP (PHP:

    Hypertext Preprocessor) nyelven hoztam ltre, a megjelentst a HTML (HyperText Markup Language) ler nyelv biztostja minimlis CSS (Cascading Style Sheets) hasznlattal az oldal stlusnak kialaktsa vgett.

    A webes fellet automatikus generlst a naplllomnybl a bash (Bourne-Again SHell) parancssori script nyelvvel oldottam meg.

    4.2 Az alkalmazs krnyezete Az implementlt honeypotot egy Asus WL-500g Premium tpus routeren

    mkdtettem, amelyen elre teleptett OpenWrt opercis rendszer futott. Az OpenWrt egy begyazott eszkzkhz kifejlesztett Linux disztribci [8], amely alacsony erforrs krnyezetekre (tipikusan routerekre) lett optimalizlva. Az OpenWrt rendszer lnyege, hogy egy statikus firmware ltrehozsa helyett egy szabadon konfigurlhat platformot biztost, amely tetszlegesen bvthet tovbbi szolgltatsokkal, illetve alkalmazsokkal. Segtsgvel testreszabott mkds valsthat meg. A rendszer gyrtfggetlen, vagyis minden olyan eszkzn kpes futni, amely tmogatja azt. Az OpenWrt fejleszti szempontbl egy frameworkkel egyenrtk, amelyre tetszleges alkalmazs fejleszthet anlkl, hogy egy komplett firmwaret kellene ltrehozni.

  • 48

    Az OpenWrt-re trtn fejleszts alapjt a buildroot krnyezet jelenti. A buildroot krnyezet ahhoz szksges, hogy klnbz begyazott rendszerekre (melyek klnbz architektrra s CPU-ra plnek) tudjunk egyszeren alkalmazsokat ltrehozni. Ehhez a buildroot krnyezet olyan funkcikat valst meg, mint pldul a keresztfordts (cross-compilation) vagy a root fjlrendszer. Az OpenWrt legfrissebb kiadsa a szakdolgozat rsa idejn a 10.03-as, Backfire kdnev verzi volt. Ez a vltozat futott az ltalam hasznlt routeren is. A honeypot fejlesztshez az emltett buildroot krnyezetet alkalmaz SDK-t (Software Development Kit) hasznltam fel, amely szabadon letlthet az OpenWrt oldalrl (downloads.openwrt.org) kiadstl, verzitl s architektrtl fggen. Az SDK-t hasznlva csupn egy makefile

    megfelel sszelltsra van szksg, melynek segtsgvel a ltrehozott alkalmazs a

    routerre automatikusan lefordthat [9]. A honeypot routerre trtn teleptsnek lpseire a kvetkez alfejezetben trek ki.

    Az ltalam hasznlt SDK a brcm-2.4 router architektrra kszlt vltozat volt, mivel ez kompatibilis az Asus router architektrjval. Mivel a programok fordtsa a fejleszti gpen trtnik, ami esetemben egy x86-64-es architektrj rendszert jelentett, ehhez pedig nem llt rendelkezsre a szakdolgozat rs idpontjban az OpenWrt Backfire kiadshoz SDK, ezrt az azzal visszafel kompatibilis egyel korbbi kiads (8.09.2, Kamikaze) SDK-jt hasznltam.

    Az alkalmazs webes fellett a routerre teleptett uHTTPd webszerver program szolglja ki.

    A webes felleten megjelen grafikonokat az RRDtool adatbzis alkalmazs hozza ltre [10]. Az RRDtool elnevezs az angol round robin database kifejezsbl szrmazik s ahogy a neve is mutatja, egy olyan krkrs adatbzist jelent, amelybe ha j adatok kerlnek, akkor azok rgieket szortanak ki, vagyis az adatbzis mrete nem vltozik az idben. Az RRDtool idfgg adatok trolsra, hatkony lekrdezsre s vizualizlsra lett kitallva. Nylt forrs rendszer, mely rendelkezsre ll az OpenWrt platformra is, ahol parancssorbl futtathat.

    4.3 Fordts, telepts, futtats A honeypot alkalmazs Linux rendszeren val fordtshoz els lpsknt ki

    kell csomagolni a szakdolgozat mellkleteknt szerepl WrtHoney.zip tmrtett llomnyt. Ezt kveten le kell tltennk az OpenWrt oldalrl a keresztfordtshoz szksges SDK-t, ez esetemben a http://downloads.openwrt.org/kamikaze/8.09.2/brcm-

  • 49

    2.4/OpenWrt-SDK-brcm-2.4-for-Linux-x86_64.tar.bz2 cmen elrhet llomny volt. Ezt a fjlt is ki kell csomagolnunk, majd az gy kapott knyvtrba belpve a package alknyvtrba kell bemsolnunk a korbban kicsomagolt WrtHoney katalgust. Ezt kveten az SDK fknyvtrban ki kell adnunk a make parancsot, amely elvgzi az automatikus fordtst s ltrehozza a teleptshez szksges csomagot. A csomag egy fjlknt tartalmazza az alkalmazs sszes komponenst, amelyet majd az OpenWrt csomagkezel programjval egyszeren telepthetnk.

    A csomagkezels a Linux-alap rendszerek egyik lnyeges funkcionalitsa, amely segtsgvel gyakorlatilag egy parancsot kiadva tudunk alkalmazsokat telepteni, legyenek azok a loklis gpen vagy az interneten. A csomagkezelk a

    csomagokat felhasznlva ltalban elkonfigurlt s fordtott alkalmazsokat installlnak.

    Az elkszlt csomagot (WrtHoney_1.0_mipsel.ipk) a fknyvtrbl indulva a bin/packages/mipsel knyvtr tartalmazza. Innen mr csak t kell msolnunk a fjlt a routerre, majd telepthetjk is azt.

    A routerre bejelentkezve a teleptshez a kvetkez parancsot kell kiadnunk a csomag knyvtrban:

    !""#$%&'&!"'

    Ezzel az alkalmazs telepl alapesetben a /opt/wrthoney knyvtrba. Hasonlan egyszeren tvolthatjuk el az alkalmazst a routerrl a kvetkez

    parancsot kiadva: #$%

    Az alkalmazs sikeres futtatshoz szksgnk lesz a kvetkez csomagokra is,

    amelyeket szintn teleptennk kell mint a honeypot fggsgeit abban az esetben, ha mg nem llnak rendelkezsre a routeren (verziban lehet eltrs):

    "!&'('()!*&+,,'

    "&'-'('*&+,,'

    Ezen fell a /etc/opkg.conf konfigurcis llomnyban el kell helyeznnk az albbi sorokat architekturlis problmk miatt:

    ""

    !"

    +,,

    Miutn teleplt a program s rendelkeznk a szksges fggsgekkel, be kell lpnnk annak knyvtrba, amely alaprtelmezetten a /opt/wrthoney knyvtr. A futtatshoz (httrben, daemonknt futtatshoz) itt kell kiadnunk a './%'!

  • 50

    ! parancsot. A honeypotot jraindtani a './%'!!, lelltani pedig a './%'! ! paranccsal lehet. A honeypot naplllomnyt tetszleges

    mlysgig a './%'!!"%"0"12%34! !356 paranccsal lehet.

    A telept csomag ugyan tartalmazza a webes megjelent fellet ltrehozshoz szksges llomnyokat s azokat installlja is, de fontos, hogy nem tud minden szksges fggsget telepteni, ezrt az albbiakban rszletezett feladatokat neknk kell kzzel elvgezni.

    A webes fellethez rendelkeznnk kell az uHTTPd nev webszerver alkalmazssal, valamint a grafikonok ltrehozshoz az RRDtool programmal. Ezek

    hinyban azokat telepteni kell, amely valsznleg tovbbi fggsgeket is telept a routernkn. Az uHTTPd-nek hasznlhat pldul a 7-es verzija, az RRDtool-nak pedig az "&''(*&+,,' nev csomagja. Mivel a honeypot a webes felletet csak meghatrozott idkznknt frissti a naplllomny alapjn az gynevezett cron temezvel, ezrt erre is szksgnk van. A cron temez

    konfigurcis fjljban (crontab) a kvetkez sort kell elhelyeznnk: .../%'.'!

    Ennek hatsra a cron 1 percenknt fogja frissteni a webes felletet. rdemes lehet egy msik sort is elhelyezni az emltett llomnyban, amely a

    kvetkez: .../%'./%'!!

    Erre azrt lehet szksg, mert sajnos a honeypot ltal hasznlt, regulris kifejezseket feldolgoz C-s fggvnyek hibt tartalmaznak s ebbl addan memriaszivrgs lp fel, vagyis a honeypot egyre tbb memrit hasznl fel, ez pedig egy SOHO router esetben hamar gondot okozhat. A problmt kikszblend, a fenti sor 1 percenknt lefuttatja a './%'!! parancsot, amely lekrdezi a honeypot ltal aktulisan felhasznlt memria mrett s ha az elr egy kszbt, akkor automatikusan jraindtja a honeypotot.

    A korbban mr emltett s a webes fellethez szksges PHP interpretert is installlnunk kell, pldul az albbi csomagok telepthetk (ezeknek tovbbi fggsgei lehetnek):

    7&7'('*(&+,,'

    7*&7'('*(&+,,'

    7*!&7'('*(&+,,'

  • 51

    Amennyiben a PHP interpreter nem rhet el a /usr/bin/php tvonalon s nven, akkor szksges az emltett llomnnyal azonos hely s nev szimbolikus link ltrehozsa a tnyleges interpreterre.

    A webes fellet a /www s a /www/cgi-bin katalgusok al kerl generlsra, ahhoz azonban, hogy a PHP interpreter mkdjn ezeken az llomnyokon, szksges a kvetkez sor a /etc/php.ini fjlban:

    '&8

    Vgezetl a /www knyvtrnak tartalmaznia kell egy megfelel index.html fjlt, ami elvgzi a bngsz tirnytst a honeypot megjelent felletre. Ez a honeypot csomag rszeknt teleptsre kerl.

    Ezt kveten a webes fellet rendelkezsre ll, alaprtelmezsben, ha kzvetlenl csatlakozunk a routerhez, akkor a bngszbe a 192.168.1.1 cmet rva megjelenik a webes fellet.

    4.4 A teleptett alkalmazs struktrja, llomnyai A routerre teleptett honeypot fjlstruktrjt mutatja a 12. bra.

    12. bra - A routerre teleptett honeypot fjlstruktrja

  • 52

    A fenti fjlstruktra kt f eleme a /opt/wrthoney knyvtr, ahol a honeypot megjelent fellet nlkli rsze helyezkedik el, valamint a /www knyvtr, ahol a webes fellet elemei tallhatk. A /opt/wrthoney katalgusban helyezkedik el a WrtHoney nev binris, amely a honeypot kzponti modulja, ennek object (trgykd) fjlja a WrtHoney.o llomny. A configs knyvtrban helyezkedik el a konfigurcis llomny, ez a wrthconfig.cfg nevet viseli. A konfigurcis llomny felptst a

    kvetkez fejezetben mutatom be. A counter fjl csak egy szmllt valst meg, melyet az infopagegenerator.sh parancsllomny hoz ltre.

    Az emltett parancsllomny felels a webes fellet generlsrt a naplllomnybl. A naplllomny alapjn, amely a logs knyvtrban tallhat s a wrthoney.log nevet kapta, a /www/cgi-bin katalgusban lv infopage.php s logreader.php llomnyokat hozza ltre. Ezen fell az RRDtool adatbzis programot hasznlva, feltlti annak tblit a naplllomny alapjn. Az adatbzis tbli az rrddatabases knyvtrban lthat .rrd kiterjeszts fjlok. Az els az exploitokat szmolja s tlagolja idben, a msodik a bejv forgalmat szmllja, a harmadik a naplzott malwareket, mg a negyedik a kimen forgalmat szmolja. A bejv s kimen forgalom a honeypot ltal fogadott s generlt hlzati forgalomra vonatkozik. Az infopagegenerator.sh parancsllomny ezeket az adattblkat frissti dinamikusan a cron temez segtsgvel. A cron percenknt hvja meg a parancsllomnyt, amely lefut s gy j bejegyzseket helyez a tblkba a log fjl utols vltozsa alapjn. Ezen fell a parancsllomny a folyamatosan frissl tblkbl szintn az RRDtool programmal a tblkban lv adatsoroknak megfelel grafikonokat hoz ltre. Ezek a grafikonok lthatk a /www katalgusban, melyek .png kiterjeszts kpfjlok s klcsnsen megfeleltethetk a tblknak. Termszetesen ezek is perceknt jragenerldnak a cronnak ksznheten.

    A /opt/wrthoney/vulns knyvtr alatt lthatk a vulnerability modulok, amelyek .so kiterjeszts, gynevezett shared object llomnyok. Ezek dinamikusan betlthetk a kzponti modul futsa sorn. Vgl a wrthoney.sh llomnnyal lehet a honeypotot elindtani, lelltani stb., ahogy errl a korbbi fejezetben mr sz volt.

    A webes fellet ltrehozsrt felels fjlok a /www knyvtrban vannak elhelyezve. A /www/cgi-bin katalgusban az infopage.php a webes fellet foldalt tartalmazza, a logreader.php pedig a kivlasztott vulnerability modul teljes (nyers) logjt rja ki formzottan. Ezeket teht a korbban emltett parancsllomny generlja.

  • 53

    A /www knyvr alatt lv index.html fjl teleptskor jn ltre s betltsekor tirnytja a bngszt az infopage.php oldalra. Ez tartalmazza a grafikonokat is. Az oldalakat az uHTTPd webszerver szolglja ki, amely a PHP interpreterrel dolgoztatja fel a .php llomnyokat.

    4.5 A konfigurcis llomny A konfigurcis llomny egy bejegyzsre plda az albbi sor: ) 9"&:,"&;

  • 54

    valamint a feldolgozs egyes szakaszai sorn a tmadsbl kinyert informcik. Minden egyes tmads feldolgozsa egymstl el van klntve egy megfelel nyit s zr sorral. Ezek az albbi alakak:

    Nyit sor: 0=>>9"&?!!@">>(76

    Zr sor: 0:>>9"&?!!@">>(76Mivel egy tmadsi ksrlet a kapcsolatfelvtellel kezddik, ezrt a tmads

    logjnak elejn tallhat egy bejv kapcsolatkrst rgzt szekci. Ilyen lthat a 14. brn:

    14. bra - Kapcsolatkrs rgztse a naplllomnyban

    Az brn jl lthat a krst intz gp IP-cme (192.168.1.213), valamint portja (36614). Ezt kveten a kvetkez szekcit a berkez zenet logolsa jelenti. Ez a szekci rgzti a fogadott zenet hosszt, valamint magt az zenetet bjtonknt hexadecimlis formtumban (hexdump). Abban az esetben, ha a vulnerability modul kld vlaszt, akkor az is rgztsre kerl szintn hossz/hexdump prban.

    Ha FTP protokollal trtnik a kapcsolatfelvtel, akkor a megadott felhasznlnv, valamint az esetleges jelsz is rgztsre kerl. Ezen fell az FTP szekci tartalmazza a fogadott FTP parancsot, valamint a parancs argumentumaknt tadott tartalmat s annak hosszt.

    Miutn a vulnerability modul rendelkezik a tmad ltal kldtt zenettel, megkezddik feldolgozsnak rgztse. Elszr logolsra kerl a detektlt exploit (amennyiben az zenet exploitot tartalmazott), ennek szekcija is lthat a 15. brn.

    15. bra - Exploit feldolgozsnak naplzsa

    Az exploit detektlsnak szekcijban lthat a detektlt exploit neve, az exploitban hasznlt visszatrsi cm, valamint annak a rendszernek a tpusa, amelyre a

  • 55

    tmads irnyult. Rgtn ez alatt lthat mg a dekdols szakasza is, ahol megnzhetjk, hogy a honeypot milyen dekdereket prblt vgig, illetve melyik jrt kzlk sikerrel. Vgl a kp aljn lv szekciban lthatjuk a sikeres dekdert, valamint a dekdolshoz alkalmazott kulcsot hexadecimlis formban.

    A dekdolst kvet shellkd rtelmezshez kapcsold bejegyzsek vannak a 16. brn.

    16. bra - Rszlet a shellkd feldolgozsnak logjbl

    A fels sor azt mutatja, hogy a 0. prblkozs trtnik a kros tartalom kinyersre a shellkdbl. A modul erre tbb ksrletet is tesz, hiszen nem ismeri, hogy a kdol kulcs hogyan volt eltolva a shellkdhoz kpest a kdolskor, gy ez a dekdolskor nem egyrtelm. Ennek rdekben pontosan N szm prblkozst kell vgeznie, ahol N a kulcs hossza bjtban. A fenti brn egy sikeres prblkozs lthat, ahol rgztsre kerl a shellkd tpusa (itt: Download Exec), a kros tartalom (jelen esetben az URL), a shellkd hossza, majd a hexdumpja. Amennyiben egyik prblkozs sem jrt sikerrel, gy csak a nyers shellkdot s hosszt rgzti a honeypot.

    Mind a kzponti modul, mind a vulnerability modulok ugyanazt a kzs naplllomnyt hasznljk.

    4.7 A webes megjelent fellet A webes megjelent fellet a 17. brn lthathoz hasonl tblzatokbl pl

    fel.

    17. bra - Plda a webes felleten megjelen tblzatra

    Ezen a tblzaton pldul a detektlt exploit tpusok lthatk, mellettk az utols detektls idpontjval, valamint a detektlsok szmval.

    A tblzatok a kvetkez informcikat tartalmazzk:

  • 56

    Vulnerability modulok listja, portszmmal, sttusszal ltalnos informcik a vulnerability modulokrl Dekder modulok listja Shellkd feldolgoz modulok listja sszes, illetve tmadsnak nyilvntott kapcsolatok szma Az egyes portokra rkez kapcsolatok szma

    Tmadk szma, IP-cm szerint csoportostva az utols detektls idejvel

    Exploitok szma, tpus szerint csoportostva az utols detektls idejvel Sikeres dekdolsok szma, dekderenknt csoportostva, az utols

    sikeres dekdols idejvel Shellkd feldolgozsok szma az elbbivel megegyez formban

    Exploit, illetve malware lista a detektls idblyegvel

    HTTP s FTP kapcsolatok szma

    Ezen kvl megtekinthet minden modul nyers logja, a naplllomnyban rgztett formtumban.

    A tblzatok mellett rendelkezsre ll egy konfigurciszerkeszt, ahol a 4.5-s fejezetben ismertetett adatokat lehet megadni (illetve akr trlni) egy egyszer webes rlapon keresztl, illetve azokat szintn tblzatos formban meg lehet tekinteni.

    A felleten megjelen 4 grafikon mindegyike tlagot szmol 2 perces felbontssal, 1 napos idablakkal. A felleten balrl jobbra haladva az els a honeypot tlagos input forgalmt, a msodik az tlagos output forgalmat szmolja byte/sec mrtkegysgben. A harmadik a detektlt exploitokat exploit/sec, mg az utols a detektlt malwareket malware/sec mrtkegysgben.

    4.8 Dokumentcik A honeypot felhasznli dokumentcijaknt hasznlhat a teljes 4. fejezet,

    amelyben kln teleptsi tmutatknt hasznlhat a 4.3-as alfejezet. Fejleszti dokumentciknt felhasznlhat a 3. fejezetben ismertetett objektum orientlt modell, valamint a vulnerability modulok mkdse tervezsnek szakasza. Ezen kvl fejleszti dokumentciknt mg rendelkezsre ll a programhoz mellkelt Doxygennel generlt webes lers, amely a Dokumentci/html/index.html fjlon keresztl tekinthet meg. A mlyebb megrtst a forrskdban elhelyezett megjegyzsek segtik.

  • 57

    5. Tesztels, rtkels

    5.1 Metasploit Framework A Metasploit Framework [11] egy nylt forrs, az internetrl szabadon

    letlthet behatols tesztel keretrendszer, amelyet informatikai biztonsgi szakrtk fejlesztenek. A rendszert mg 2003-ban HD Moore kzismert biztonsgi szakrt hozta ltre a Metasploit Project rszeknt, abbl a clbl, hogy segtsgvel gyorsan s egyszeren lehessen j exploitokat ltrehozni s fejleszteni. A keretrendszer kezdetben Perl nyelven rdott, majd ksbb az egsz Ruby nyelven jra lett rva. Az eszkz segtsgvel a kisebb otthoni krnyezetektl kezdve egszen a nagyvllalati rendszerekig lehetsg nylik azok sebezhetsgeinek tesztelsre s ezen keresztl azok biztonsgi rseinek befoltozsra. A keretrendszer szmos segdeszkzt (tool) bocst a felhasznl rendelkezsre, amely jelentsen megknnyti a rendszerrel vgzett munkt.

    A Ruby nyelven rt exploitok a framework moduljait kpezik, amelyekben tovbbi modulok felhasznlsra nylik lehetsg, gy mint a kdolk, a NOP genertorok vagy az elre definilt payloadok.

    5.2 A tesztels elksztse, tesztkonfigurci A tesztelshez egy Debian opercis rendszert futtat szmtgpet hasznltam,

    amelyen elzleg mr teleptettem a Metasploit Framework-t. Ez a rendszer, ahogy emltettem, szmos kisebb alkalmazsbl pl fel, nekem csak az msfconsole nev alkalmazsra volt szksgem. A msik eszkzt maga a SOHO router (Asus WL-500g Premium) jelentette, melyen installltam az ltalam fejlesztett low-interaction honeypotot, majd miutn a konfigurcis llomnyban belltottam az elkszlt 7 vulnerability modult, elindtottam azt.

    A PC-t kzvetlenl csatlakoztattam a router egyik LAN (Local Area Network) portjba, a router ms eszkzzel vagy az internettel nem volt sszekapcsolva. A PC a routeren fut DHCP (Dynamic Host Configuration Protocol) szervertl a 192.168.1.213 cme