Poikkeavuuksien havainnointi (palvelinlokeista) TIES326 Tietoturva 2.11.2011 Antti Juvonen
Sisältö IDS-järjestelmistä Datan kerääminen ja esiprosessointi Analysointi Esimerkki Lokidatan rakenne Esikäsittely, piirteiden löytäminen Datan analysointi ja visualisointi
Intrusion Detection System (IDS) = Tunkeilijan havaitsemisjärjestelmä Aikoinaan ylläpitäjien manuaalista työtä Havaitsee hyökkäysyrityksiä tietoverkossa Voi olla koneessa tai verkossa Esim. SNORT Sääntöpohjainen vs. Poikkeavuuksien etsintä
IDS-järjestelmien jaottelu
Sääntöpohjaiset järjestelmät = Misuse detection taas: SNORT Järjestelmän toimintaa verrataan olemassaoleviin sääntöihin Säännöt ovat käytännössä lista tunnetuista hyökkäyksistä Toimii tarkasti, vähän vääriä hälytyksiä, helppo toteuttaa Ei havaitse uusia tuntemattomia hyökkäyksiä
= Anomaly detection Poikkeavuuksien havaitsemisjärjestelmät - Idea esitelty 1980-luvulla - Mallinnetaan normaalia liikennettä - Verrataan verkon liikennettä luotuun malliin - Havaitaan poikkeavuudet - Pystytään (periaatteessa) havaitsemaan uudet haavoittuvuudet - Ei vaadi manuaalista sääntöjen päivittämistä - Saattaa antaa enemmän vääriä hälytyksiä - Hälytysten tyyppiä ei tiedetä heti
Intrusion Prevention System (IPS) - Melkein kuin IDS - Lisäksi sisältää jotain aktiivista toimintaa > Esim. tietyn yhteyden katkominen tai pakettien pudottaminen > CRC-virheiden korjaaminen - Toiminnan tarkoituksena estää hyökkäys tai pienentää aiheutuvaa vahinkoa - Väärin toimiessaan aiheuttaa itse haittaa verkon toiminnalle
Hybridijärjestelmät Yhdistetty sääntöpohjaisuus ja poikkeavuuksien havaitseminen Esim. havaituista poikkeavuuksista tehdään SNORTsäännöt
Vaiheet 1. Datan kerääminen 2. Esiprosessointi 3. Analysointi 4. Tulosten tulkitseminen 5. Toimenpiteet
Vaiheet 1. Datan kerääminen 2. Esiprosessointi 3. Analysointi 4. Tulosten tulkitseminen 5. Toimenpiteet
Esiprosessointi Datan muuntaminen numeeriseen muotoon Skaalaus Turhien lokirivien poistaminen...
Lyhyesti 1. Datan kerääminen 2. Esiprosessointi 3. Analysointi 4. Tulosten tulkitseminen 5. Toimenpiteet
Datan analysointi Ulottuvuuksien vähentäminen Klusterointi Poikkeavuuksien löytäminen Luokittelu...
Datan analysointi (2) Voidaan käyttää esim: Neuroverkot Tukivektorikoneet Itseorganisoituva kartta (SOM) Pääkomponenttianalyysi Monia muita algoritmeja tarpeen mukaan Käytännössä tiedonlouhintaa
Lyhyesti 1. Datan kerääminen 2. Esiprosessointi 3. Analysointi 4. Tulosten tulkitseminen 5. Toimenpiteet
Tulosten tulkitseminen ja toimenpiteet Datamatriisin yhdistäminen alkuperäiseen verkkoliikenteeseen Ovatko poikkeamat oikeasti poikkeavia? Kuka ne on aiheuttanut? Onko haavoittuvuus? Mitä toimenpiteitä? Esim. haavoittuvuuden paikkaaminen.
Analysoinnin vaiheet 1 Palvelinloki Poikkeavat rivit Noudetaan alkuperäisestä lokitiedostosta 5 Poikkeavat rivit Turhien staattisten rivien poistaminen, lokien muuntaminen numeeriseen muotoon 2 3 Esiprosessointi Luokittelualgoritmi jakaa datan normaaliin ja poikkeavaan 4 6 Analysointi UI Datamatriisi 1,0,0,1,0,0 0,0,0,1,0,0 0,2,3,0,0,0
Palvelinlokirivi 130.234.49.2 - - [11/Jan/2011:15:53:01 +0300] "GET /scripts/resurssi?par1=value1&par=value2 HTTP/1.1" 200 2680 "http://www.jyu.fi/a.html" "Mozilla/5.0 (SymbianOS/9.2;...)"
N-grammianalyysi 'anomalia', 'analyysi' 2-grammit: 'an','no','om','ma','al','li','ia' 'an','na','al','ly','yy','ys','si' an no om ma al li ia na ly yy ys si 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1
Analysoinnin vaiheet 1 Palvelinloki Poikkeavat rivit Noudetaan alkuperäisestä lokitiedostosta 5 Poikkeavat rivit Turhien staattisten rivien poistaminen, lokien muuntaminen numeeriseen muotoon 2 3 Esiprosessointi Luokittelualgoritmi jakaa datan normaaliin ja poikkeavaan 4 6 Analysointi UI Datamatriisi 1,0,0,1,0,0 0,0,0,1,0,0 0,2,3,0,0,0
Analysointi
Analysoinnin vaiheet 1 Palvelinloki Poikkeavat rivit Noudetaan alkuperäisestä lokitiedostosta 5 Poikkeavat rivit Turhien staattisten rivien poistaminen, lokien muuntaminen numeeriseen muotoon 2 3 Esiprosessointi Luokittelualgoritmi jakaa datan normaaliin ja poikkeavaan 4 6 Analysointi UI Datamatriisi 1,0,0,1,0,0 0,0,0,1,0,0 0,2,3,0,0,0