Neseniai teko rašyti tokį apibendrinantį referatą, man tema teko IPDS (Intrusion detection and prevention) sistemos. Nieko giliai nenagrinėjau, tik apibendrintai parašiau, kadangi tik to ir reikėjo. Tie kas nori lysti giliai, tikrai ras straipsnių apie tai anglų kalba, gale nurodysiu keletą šaltinių. Tad papostinsiu tą straipsnį čia, gal kam bus įdomu…
1. Įvadas
Šis straipsnis yra skirtas trumpai apžvelgti esamas IP (intrusion-prevention) ir ID (intrusion-detection) sistemų technologijas, kaip jos veikia, siūlomus produktus skirtus tinklo stebėjimui ir atitinkamų automatizuotų veiksmų vykdymui su tikslu užkirsti kelią aptiktai grėsmei. Tuo pačiu, darbo tikslas yra supažindinti skaitytoją su tokiomis sistemomis ir jų nauda.
Dokumento struktūra sudaryta norint apžvelgti praeitį – buvusias technologijas ir nuo ko tai prasidėjo, dabartį – kokie šiuo metu yra siūlomi sprendimai, ir ateitį – kokie įrankiai ir technologijos yra kuriama.
2. Technologijos aprašymas
2.1. Įvadas
Nuo to laiko kai buvo įjungtas pirmasis kompiuteris, buvo nuolat kuriama naujos kompiuterinės sistemos. Tuo pačiu buvo tobulinama ir kompiuteriniai tinklai kurie sujungia begalę kompiuterių. Prasukus keliasdešimt metų į priekį ir įmonės pradeda naudoti kompiuterius versle produktyviam darbui, savo ruožtu plečiasi ir kompiuteriniai tinklai. Pristatomos naujos technologijos, užtikrinančios stabilų veikimą ir tinklo plėtrą, taip leidžiančios įmonėms plėstis. Tačiau su naujomis technologijomis, kad ir kiek jos būtų patikimos ar saugios, visada atsiras tokių žmonių, kurie yra nusiteikę išbandyti tokių tinklų saugumą ir patikimumą su tikslu įrodyti esamas spragas ar galimai pasisavinti vertingą informaciją.
Būtent dėl šios priežasties didesnės įmonės visame pasaulyje, kurios yra susiję su svarbiais duomenimis ir turi didelius tinklus, investuoja į tinklo ir serverių bendrą saugumą bei stebėjimo ir apsaugos sistemas, kurios daug prisideda atpažįstant įsibrovėlius ir net pagal aprašytas taisykles įjungiančios tam tikrus apsaugos mechanizmus, kadangi dideliame tinkle be automatizuoto proceso yra neįmanoma patikimai stebėti kas vyksta aplinkui dėl milžiniško srauto, ir tai gali užtrukti savaitėmis kol tinklo administratorius pats aptiks įsibrovimo požymius.
Šios sistemos vadinamos „Įsibrovimo aptikimo“ (Intrusion-detection) ir „Įsibrovimo užkirtimo“ (Intrusion-prevention) sistemos, kiekviena iš jų turi savo pošaknį ir paskirtį, tačiau bendrai jos skirtos stebėti tinklą, serverį ar grupę tinklų, serverių analizuojant kokie paketai vaikšto tinkle ar kas yra pakeičiama serveryje, ir pagal žmogaus aprašytas taisykles veikti atitinkamai.
2.2. Istorija
Įsibrovimo aptikimo sistemos buvo pradėtos realizuoti jau nuo 80-ųjų vidurio ir yra pagrįstos elgesio analize. Jos prasidėjo nuo 1972 metų dokumento, parašyto „Air Force1“ iš JAV, kuris aptarė padidinto kompiuterių saugumo reikalingumą. Pradžioje mintis buvo tokia, kad vyriausybė galėjo panaudoti sistemų įvykių žurnalus (logs), kad identifikuotų kompiuterinių sistemų netinkamą naudojimą ir potencialias grėsmes. Ankstyvi prototipai sektų vartotojų veiklą ir analizuotų įvykių žurnalus, pažymėdami įvykius kurie neatrodydavo normalūs. Tyrėjai tada panaudojo modelius ir elgesio struktūrą sukurti statistinę pagrindinę liniją, kokia informacija ir kokiais kiekiais yra siunčiama per tinklą. Su šia nustatyta pagrindine linija, jie galėjo tikrinti tinklo srautą prieš apibrėžtą struktūrą, kad atrastų nukrypimą, kuris galėtų parodyti grėsmę.
Netrukus, užuot analizavę sistemos žurnalus, tinklo sistemos stebėjimo prietaisai pradėjo analizuoti tinklo srautą, kad ieškotų nukrypimo prieš tai nustatytos pagrindinės linijos struktūroje. Šitie pagerinimai tada priveda prie pirmo komerciškai pasiekiamo IDS. Per 1990-uosius, ID sistemos stipriai gerėjo ir ištobulėjo. Automatizuotas Saugumo Incidento Matavimo IDS, išvystytas JAV Karinių oro pajėgų, naudojo ir programine ir aparatine įranga pagrįstus sprendimus. Iki 90-ųjų galo, pasirodė serverio stebėjimo (host-based) sprendimai ir tinklo maršrutizatoriai su įdiegta tinklo anomalijos aptikimo galimybe.
Pabaigoje 90-ųjų taip pat pasirodė ir įsibrovimo prevencijos sistemos (intrusion-prevention). Pradžioje, anomalijos aptikimas buvo didžiulė užduotis, tačiau technologijai bręstant, tapo galima ne tiktai aptikti, bet ir užkirsti kelią įsibrovimui realiu laiku. Tai ir yra visa įsibrovimo aptikimo mintis – laiku pastebėti ir užkirsti kelią realiu laiku. Kai kurie produktai galėjo visiškai sustabdyti srautą, pagrįstą specifine struktūra ir 1998 metais pasirodė „Snort“ – atviro kodo tinklo srauto analizavimo ir sekimo įrankis. Tai leido tinklo administratoriams išbandyti ir pradėti suprasti įsibrovimo susekimo sąvoką.
Nauja IPS karta galėjo perimti failus ir tinklo veiklą, paskui daryti asociacijas su programos būsena ir poliso taisyklėmis, kad būtų galima daryti skubiai atliekamus esminius sprendimus pagrįstus ta veikla. IDS aptinka ir kontroliuoja kenkėjišką tinklo srautą, artimą tinklo srauto šnipinėjimui. IPS prisideda prie to gebėjimu sutrukdyti kenkėjiškoms atakoms bei tokių programų kaip kirminų, virusų, ir trojos arklių, plitimą. Dauguma IDS ir IPS naudoja parašo duomenų bazę žinomų atakų ar pažeidžiamumų, taip pat ir kenkėjiškų „piršto atspaudų“ ar nenormalios tinklo srauto veiklos, kuri gali reikšti kenkėjišką veiklą. IDS ir IPS taip pat stebi ir protokolo nukrypimą kai kuriais atvejais.
3. Įsibrovimo aptikimo sistemos – IDS tipai
Įprastai IDS yra skirstoma į dvi kategorijas:
- Tinklo stebėjimo IDS
- Serverio stebėjimo IDS
Šios dvi kategorijos gali priklausyti vienai iš dviejų bendrų kategorijų:
- Pagrįsta informacija IDS
- Pagrįsta statistika IDS
Visi variantai turi savo privalumų ir trūkumų, tačiau nei vienas iš šių variantų negeba aptikti visas grėsmes, todėl norint pasiekti geriausių rezultatų, industrijoje įprastai naudojama tinklo ir serverio stebėjimo variantai vienu metu.
3.1. Tinklo stebėjimo IDS
Šio tipo IDS tikslas yra stebėti ir analizuoti viso tinklo srautą, aptikti galimas grėsmes ir apie jas pranešti tinklo administratoriams, kad šie galėtų imtis tolimesnių veiksmų. Sistema įprastai yra įdiegiama į dedikuotą tinklo stebėjimui serverį su tinklo plokšte nustatyta ant „Promiscuous“ režimo.
Lyginant su serverio stebėjimo IDS, tinklo stebėjimo IDS turi pranašumų ir trūkumų. Priklausomai nuo sistemos, tinklo IDS gali būti pigesnis diegimas. Tai yra dėl to, kad tinklo IDS veikia nepriklausomas nuo sistemos ir nereikalauja kad būtų įdiegtas kiekviename serveryje tam kad užtikrinti maksimalų stebėjimą.
Be to, serverio IDS praleis daug tinklo atakų. Serverio IDS nenagrinėja tinklo srauto, todėl jie negali aptikti „DoS“ atakų vykdomų prieš kitus serverius. Tinklo IDS taip pat yra daug slaptesni negu serverio IDS. Su serverio IDS, jei į serverį yra įsibraunama, tai šis įsibrovėlis gali lengvai pamatyti ar tokia stebėjimo sistema yra įdiegta. Tuo tarpu pastebėti tinklo IDS yra neįmanoma vien tik šnipinėjant tinklo srautą, kadangi ši sistema pati nieko nesiunčia, tik klausosi. Vienintelis dalykas, ką įsibrovėlis gali nustatyti yra tai kad tinkle yra kažkoks įrenginys kuris veikia „Promiscuous“ režimu. Daugelis serverio IDS kaupia veiklos žurnalus ten pat kur yra įdiegtas, todėl jeigu serveris yra pažeidžiamas, įsibrovėlis gali manipuliuoti šiais įrašais ir juos pakeisti savo naudai.
3.2. Serverio stebėjimo IDS
Šio tipo IDS yra įdiegiama į patį serverį ir jos tikslas yra stebėti kas vyksta tame serveryje bei pritaikyti atitinkamus veiksmus pagal pastebėtas anomalijas. Serverio IDS veikimas priklauso nuo veiksmų žurnalo, kaip ir stebint žmogui, tačiau IDS gerokai automatizuoja visą procesą ir žmogui telieka peržvelgti duomenis pažymėtus kaip įtartinas.
Vienas iš privalumų šiai sistemai yra tas, kad ji stebi dėl nenumatytų pakeitimų pagrindinius sisteminius failus ir vartotojų teises. Todėl kai pirmą kartą IDS yra paleidžiama, ji sudaro visos sistemos failų kontrolinės sumos duombazę, pagal kurią vėliau tikrina failus pagal nustatytą laiko intervalą.
Kai kurios serverio IDS geba stebėti to serverio tinklo srautą ir pranešti kai įvyko susijungimas ant tam tikro prievado.
Kone didžiausias šios sistemos trūkumas yra tas, kad sistemos stebėjimas nėra realaus laiko, todėl įsibrovimo pastebėjimas gali užvėluoti, nes jį aptikti galima tik kai buvo bandoma arba pavyksta įsibrauti.
3.3. Pagrįsta informacija IDS
Šiai kategorijai gali priklausyti abu anksčiau minėti variantai – tinklo ir serverio IDS. Informacija pagrįsta IDS veikia kaip antivirusinė sistema – analizuoja srautą ir lygina jį su žinomų atakos pėdsakų duomenų baze, kurią galima keisti priklausomai nuo sistemos ant kurios IDS yra diegiama ir kokie servisai veikia. Pavyzdžiui, pagrįsta informacija serverio IDS gali stebėti klaviatūrų paspaudimus. Tokia IDS turi duomenų bazėje mygtukų kombinacijas kurios reškia galimą ataką prieš serverį.
Tarkime kas nors bandantis peržiūrėti slaptažodžių failą su komanda „cat /passwd“ arba bandant peržiūrėti kokie dar kompiuteriai gali būtų tinkle su „cat /hosts“ . Taip pat stebint atvirus prievadus, pagrįsta informacija serverio IDS gali atrinkti kokia ataka bandoma įvykdyti, jeigu būna daug blogų TCP susijungimų, galima manyti kad kažkas skenuoja tinklą, arba daug neatsakytų SYN-ACK paketų gali reikšti kad kažkas atakuoja su „SYN flood“ metodu.
Pagrindinis privalumas šio tipo IDS yra tai kad jos turi labai žemą netikrų pranešimų reitingą, kadangi lyginamas srautas yra su žinomų atakų ir pažeidžiamumų duomenų baze, o ne bandant interpretuoti pagal aprašytas taisykles, todėl ir pranešimo detalumas dažniausiai būna konkretus.
Žinoma, jų didžiausias trūkumas yra tai, kad jos gali aptikti tik joms žinomus metodus, todėl jos yra visiškai nenaudingos prieš naujai atrastus (0day), ar dar duomenų bazėje neatsiradusius pažeidžiamumus. Kad tokią duomenų bazę pastoviai atnaujinti, reikia dėti daug pastangų, nes nėra paprasta aprašyti visus galimus atako scenarijus, analizuoti pažeidžiamumus ir sukurti atitinkamą pažeidžiamumo pėdsaką.
3.4. Pagrįsta statistika IDS
Tokio tipo IDS veikia pirma nustatant pagrindinę ribą kas tinklo sraute yra normalu, tai padarius toliau viskas yra lyginama pagal šią ribą, todėl pagrinde šios IDS filosofija yra tokia, kad bet koks vartotojo veiklos nukrypimas nuo normos ribos yra skaitoma kaip anomalija ir gali būti interpretuojama kaip grėsmė. Ši IDS kitaip dar vadinama veiklos-analizės IDS arba tiesiog anomalijos aptikimo sistema, trumpinama kaip SIDS.
Taigi SIDS sukuria taisykles stebint ką vartotojai veikia per visą laiką, analizuojant istoriją ir renkant kitokią informaciją iš įvairių šaltinių, taip mokosi aptikti įvairias anomalijas sukuriant atitinkamus modelius. Tokie modeliai gali būti sukurti sistemos, programos arba vartotojo lygmenyje.
Didelis privalumas yra tai kad jos nepriklauso nuo aprašytų taisyklių ar žinomų grėsmių duomenų bazės, todėl tokios sistemos gali (bent teoriškai) aptikti naujausius ir dar plačiai nežinomus bandymus išnaudoti įvairius pažeidžiamumus.
Jų didžiausias trūkumas yra didelis netikrų grėsmių reitingas, todėl ši sistema nėra tinkama tinkluose, kur srautas yra pastoviai kintantis, tai yra kur darbuotojai dirba pagal slenkantį grafiką ar nereguliariai.
Įsibrovėlis žinantis kad tokia sistema yra įdiegta, gali mažais kiekiais generuoti netikrą srautą, taip išmokant šią sistemą galvoti kad tai yra normalu.
4. Įsibrovimo blokavimo sistemos – IPS
IPS yra kaip IDS plėtinys, kadangi abi sistemos gali stebėti srautą, tačiau pagrindinis skirtumas tarp jų yra tai, kad IPS gali iškarto atlikti tam tikrus veiksmus norint atremti pasirodžiusias grėsmes, o IDS gali tik stebėti srautą ir pastebėjus kažką įtartino – pranešti administratoriui. Konkrečiai, IPS gali atlikti tokius veiksmus kaip siųsti įspėjantį pranešimą, filtruoti arba visiškai blokuoti srautą bei atlikti kitokius veiksmus.
5. Pranešimų analizavimo įrankiai
Visos IDS ir IPS aptikusios grėsmę pirmiausia praneša apie tai administratoriui, tik IPS dar papildomai atlieka automatizuotus veiksmus užkertant kelią. Nepriklausomai nuo sistemos pobūdžio, tokių pranešimų kiekis gali būti gana didelis, todėl šiuos pranešimus dažnai analizuoja grupė žmonių, tačiau ir tai neatliekama rankomis – tam naudojama specializuoti įrankiai sistemos žurnalo ir pranešimų analizei, tokie kaip:
- LogPoint
- LogRhythm
- LogRhythm
- Netwrix Auditor
6. IDS Pavyzdžiai
Egzistuoja keletas tokių sistemų, daug jų yra atviro kodo, tačiau viena labiau žinoma ir atviro kodo tinklo IDS yra „Snort“ – jų teigimu yra virš 4 milijonų parsisiuntimų ir virš 500 tūkstančių registruotų vartotojų.
Tik serverio IDS:
- OSSEC
- TripWire
- AIDE
Visos kitos yra labiau įvairios paskirties, tai reiškia kad jos gali atlikti tinklo arba serverio stebėjimo funkcijas.
7. Įdomūs faktai
- 1996 metų kovas – 10 pagrindinių JAV valstybinių institucijų buvo atakuotos su 64% pasisekimu.
- 2000 metų vasaris – paleistos DoS atakos prieš didžiausias pasaulyje internetines svetaines, tokias kaip Yahoo arba Amazon.
- 2001 metų liepa – „Code Red“ virusas išplito per visą pasaulį užkrėsdamas virš 150 tūkst. Kompiuterių per 14 valandų.
8. Išvados
Tinklo saugumas šiais laikais yra labai svarbus net ir mažesnėms įmonėms. Kad ir kaip gerai būtų paruoštas serveris, tinklas ar kompiuteriai tame tinkle, visada išliks grėsmė būti užpultiems, tačiau naudojant IDS ar IPS sistemas ši grėsmė gali būti sumažinta laiku pastebint ir atitinkamai reaguojant į pranešimus.
9. Literatūra
(2004). Using IDS and IPS together for Defense in Depth. SANS Institute.
(2007). Guide to Intrusion Detection and Prevention Systems (IDPS). National institute of Standards and technology.
Bejtlich, R. (2004). The Tao of Network Security Monitoring Beyond Intrusion Detection. Addison Wesley.
Canavan, J. E. (2001). Fundamentals of Network Security. London: Artech House.
F5. (n.d.). Nuskaityta iš F5: https://f5.com/resources/white-papers/security-101-big-ip-asm-and-ips-differences-defined
Wikipedia. (n.d.). Nuskaityta iš http://en.wikipedia.org/wiki/Intrusion_detection_system