arvutiteaduse instituudi lõputööderegister


Suure jõudlusega sissetungi tuvastuse süsteemi lahendus S4A tarkvara jaoks
Nimi Alar Kvell
Kokkuvõte Riigi Infosüsteemi Ameti (RIA) infoturbeintsidentide käsitlemise osakond tegutseb Eestis rahvusliku CERT (Computer Emergency Response Team) ülesannetes ning talitleb rahvus­vahelise kontaktpunktina. CERT Eesti tuvastab, jälgib ja lahendab Eesti riigi arvuti­võrkudes toimuvaid turvaintsidente, teavitab ohtudest ning korraldab ennetus­tegevusi. S4A on võrguliikluse analüsaatori ja ründeprofiilide baasil loodud avatud lähtekoodiga tarkvara. Tarkvara võimaldab koguda keskselt statistikat võrguaadresside transleerimist (NAT) kasutavates sisevõrkudes esinevate turvarikete kohta, samas nende võrkude ehitust statistiku eest salajasse jättes. Selle tulemusena omandab CERT Eesti reaalajas pildi riigi­võrgus aset leidvatest turvariketest. Kohaliku võrgu administraatorile annab S4A detailse pildi kohtvõrgus aset leidvatest turvariketest ning lihtsustab tunduvalt rikete lähtekoha leidmist. S4A kasutab keskse komponendina tuvastusplatvormi, millel on operatsioonisüsteem OpenBSD ja sissetungi tuvastuse süsteem Snort. Sissetungi tuvastuse süsteemi (Intrusion Detection System ehk IDS) juures on oluliseks omaduseks selle jõudlus – et süsteem suudaks suure võrguliikluse mahu korral reaalajas analüüsida kogu võrguliikluse sisu või võimalikult suurt osa võrguliikluse sisust. Mida suurem osa võrguliikluse sisust analüüsi­mata jääb, seda rohkem ründeid jääb märkamata. Kui piisavalt suur osa võrguliikluse sisust jääb analüüsimata, siis on sissetungijal väga hea tõenäosus märkamatult tegutseda isegi tuntud ründemeetodit kasutades. Põhiline valupunkt olemasoleva S4A lahenduse jõudluse juures on, et sissetungi tuvastuse tarkvara Snort on ühelõimeline ja seega ei suuda kasutada rohkem kui ühe protsessori­tuuma ressurssi. Riistvaralise jõudluse suurendamine on aga oluliselt odavam horisontaal­selt skaleerides (suurendades protsessori tuumade arvu) kui vertikaalselt skaleerides (suurendades iga protsessorituuma jõudlust). Käesoleva töö eesmärk on leida võimalusi S4A võrguliikluse sissetungi tuvastuse süsteemi jõudluse suurendamiseks. Käesoleva töö käigus tutvuti S4A süsteemi ülesehitusega ja Snort tööpõhimõttega. Viimase alusel analüüsiti selle jõudlust mõjutavaid tegureid. Leitud tegurite alusel pakuti välja erinevad võimalused S4A süsteemi jõudluse suurendamiseks. Detailsemaks analüüsiks kaaluti tarkvara implementatsiooni muutvaid võimalusi – vahetada operatsiooni­süsteemi (OpenBSD, Linux), võrgupakettide hõlmelahendust (PCAP, AF_PACKET, PF_RING) ning tarkvara ennast (Snort, Suricata). Analüüsimiseks valitud võimaluste kohta sooritati jõudluse mõõtmised erinevate võrgu­liikluse ribalaiuste juures, jättes muud tegurid nagu reeglite arv ja seadistused jt samaks. Mõõtmis­tulemused kinnitasid enne mõõtmisi välja pakutud hüpoteese, et võrguliikluse riba­laiuse kasvades kasvab CPU koormus ning võrguliikluse ribalaiusest ei sõltu muutmälu hõivatus. Mõõtmistulemused näitasid, et analüüsitud pakettide osakaal püsib ühtlaselt kõrgel seni, kuni CPU koormus püsib teatud piirist madalamal. Mõõtmistulemuste põhjal selgus, et tuvastatud hoiatuste arvu sõltuvus võrguliikluse ribalaiusest ei vasta püstitatud hüpoteesile. Nimetatud sõltuvuse lähem analüüs jäi praeguse töö eesmärkidest välja, kuid väärib kindlasti lähemat uurimist edasises töös. Mõõtmistulemuste alusel loodi võrdlus, kus leiti, et mõõtmiste käigus kasutatud seadistuste ja 5373 reegli korral on OpenBSD peal Suricata jõudlus Snort'i omast oluliselt halvem; Linux'il on Suricata jõudlus Snort'i omaga samas suurusjärgus ja isegi ületab seda minimaalselt; 1 CPU pealt 2 CPU peale vahetamisel suureneb mõlema tarkvara jõudlus samas suurusjärgus; Snort'i jõudlus Linux'il on minimaalselt suurem kui OpenBSD peal; Suricata jõudlus Linux'il on mitu korda suurem kui OpenBSD peal. Võrdluste alusel tehti järeldused ja ettepanekud S4A lahenduse jaoks. Esmane ettepanek on võtta OpenBSD asemel kasutusele Linux koos PF_RING võrgupakettide hõlme­lahendu­sega ja masinas käivitada paralleelselt sama palju Snort protsesse, kui on masinas CPU tuumasid. See võib anda tüüpilise 2 CPU tuumalise S4A juurutuse puhul jõudluse kasvu 2,2 korda. Teine ettepanek on Linux'il kasutada Snort'i asemel Suricata't, mis annab vähemalt sama suure jõudluse kasvu kui esimene ettepanek. Kummalgi lahendusel on omad positiivsed ja negatiivsed küljed, mida tuleks konkreetses süsteemis rakendamisel kaaluda.
Lõputöö keel eesti
Lõputöö tüüp Magister - Infotehnoloogia
Juhendaja(d) Meelis Roos, Sven Heiberg
Kaitsmise aasta 2012
PDF