Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada

Meie küberkaitsekeskus vastutab kliendi veebitaristu turvalisuse eest ja tõrjub rünnakuid kliendi saitide vastu. Rünnakute eest kaitsmiseks kasutame FortiWebi veebirakenduste tulemüüre (WAF). Kuid isegi kõige lahedam WAF ei ole imerohi ega kaitse "kastist väljas" suunatud rünnakute eest. 

Seetõttu kasutame lisaks WAF-ile ELK. See aitab koguda kõik sündmused ühte kohta, kogub statistikat, visualiseerib seda ja võimaldab meil õigeaegselt näha suunatud rünnakut.

Täna räägin teile lähemalt, kuidas me WAF-iga jõulupuu ületasime ja mis sellest tuli.

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada

Ühe rünnaku lugu: kuidas kõik toimis enne ELK-le üleminekut

Meie pilves on klient juurutanud meie WAF-i taga oleva rakenduse. Päevas ühendas saidiga 10 000 kuni 100 000 kasutajat, ühenduste arv ulatus 20 miljonini päevas. Neist 3-5 kasutajat olid sissetungijad ja üritasid saiti häkkida. 

Tavaline vorm brute force ühest IP-aadressist blokeeris FortiWeb üsna lihtsalt. Saidi tabamuste arv minutis oli suurem kui seaduslike kasutajate arv. Seadsime lihtsalt ühelt aadressilt aktiivsusläved ja tõrjusime rünnaku.

Palju keerulisem on toime tulla "aeglaste rünnakutega", kui ründajad tegutsevad aeglaselt ja maskeerivad end tavaklientideks. Nad kasutavad palju ainulaadseid IP-aadresse. Selline tegevus ei tundunud WAF-ile massilise toore jõuna, seda oli keerulisem automaatselt jälgida. Ja seal oli ka tavakasutajate blokeerimise oht. Otsisime teisi rünnaku märke ja seadsime selle märgi põhjal poliitika IP-aadresside automaatseks blokeerimiseks. Näiteks olid paljudel ebaseaduslikel seanssidel http-päringu päistes ühised väljad. Selliseid välju tuli sageli FortiWebi sündmuste logidest käsitsi otsida. 

See läks pikaks ja ebamugavaks. FortiWebi standardfunktsioonis salvestatakse sündmused tekstina 3 erinevasse logisse: tuvastatud rünnakud, teave päringute kohta ja süsteemiteated WAF-i toimimise kohta. Ühe minuti jooksul võib tulla kümneid või isegi sadu rünnakuid.

Mitte nii palju, kuid peate käsitsi läbi ronima mitme logi ja itereerima mitut rida: 

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada
Rünnakulogis näeme kasutajate aadresse ja tegevuse iseloomu. 
 
Ei piisa lihtsalt logitabeli skannimisest. Rünnaku olemuse kohta kõige huvitavama ja kasulikuma leidmiseks peate uurima konkreetset sündmust:

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada
Esiletõstetud väljad aitavad tuvastada "aeglast rünnakut". Allikas: ekraanipilt Fortineti veebisait

Noh, peamine probleem on see, et ainult FortiWebi spetsialist saab sellest aru. Kui tööajal saime kahtlast tegevust veel reaalajas jälgida, siis öiste juhtumite uurimine võib viibida. Kui FortiWebi poliitika mingil põhjusel ei töötanud, ei osanud valves olnud öövahetuse insenerid ilma WAF-i juurdepääsuta olukorda hinnata ja äratasid FortiWebi spetsialisti üles. Vaatasime mitu tundi palke ja leidsime rünnaku hetke. 

Sellise infomahu juures on raske üldpilti ühe pilguga mõista ja ennetavalt tegutseda. Seejärel otsustasime koguda andmeid ühte kohta, et analüüsida kõike visuaalsel kujul, leida rünnaku algus, tuvastada selle suund ja blokeerimismeetod. 

Mille hulgast valisid

Kõigepealt vaatasime juba kasutusel olevaid lahendusi, et mitte asjatult üksusi korrutada.

Üks esimesi variante oli Nagiosmida me jälgimiseks kasutame insener-infrastruktuur, võrgu infrastruktuur, hädaolukorra hoiatused. Turvamehed kasutavad seda ka kahtlase liikluse korral saatjate teavitamiseks, kuid see ei oska laiali puistatud palke kokku korjata ja seetõttu kaob. 

Seal oli võimalus kõik kokku liita MySQL ja PostgreSQL või mõni muu relatsiooniline andmebaas. Kuid andmete väljatõmbamiseks oli vaja oma rakendus vormida. 

Palgikogujana meie ettevõttes kasutavad ka nemad FortiAnalyzer Fortinetist. Aga sel juhul ta ka ei sobinud. Esiteks on see tulemüüriga töötamiseks teravam FortiGate. Teiseks olid paljud sätted puudu ja sellega suhtlemine nõudis suurepäraseid teadmisi SQL-päringute kohta. Ja kolmandaks tõstaks selle kasutamine kliendi jaoks teenuse maksumust.   

Nii jõudsimegi avatud lähtekoodiga näkku ELK

Miks valida ELK 

ELK on avatud lähtekoodiga programmide komplekt:

  • Elasticsearch - aegridade andmebaas, mis loodi just suurte tekstimahtudega töötamiseks;
  • Logstash – andmete kogumise mehhanism, mis suudab teisendada logid soovitud vormingusse; 
  • Kibana - hea visualiseerija, aga ka üsna sõbralik liides Elasticsearchi haldamiseks. Saate seda kasutada ajakavade koostamiseks, mida valveinsenerid saavad öösel jälgida. 

ELK sisseastumislävi on madal. Kõik põhifunktsioonid on tasuta. Mida veel õnneks vaja on.

Kuidas sa selle kõik ühte süsteemi kokku panid?

Tekitas indeksid ja jättis ainult vajaliku teabe. ELK-i laadisime kõik kolm FortiWEBi logi - väljundiks olid indeksid. Need on failid kõigi kogutud logidega teatud perioodi, näiteks päeva kohta. Kui me neid kohe visualiseeriksime, näeksime ainult rünnakute dünaamikat. Üksikasjade saamiseks peate iga rünnakuga "läbi kukkuma" ja vaatama konkreetseid välju.

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada

Mõistsime, et kõigepealt peame seadistama struktureerimata teabe sõelumise. Võtsime stringidena välja pikad väljad, nagu "Sõnum" ja "URL", ning analüüsisime neid, et saada otsuste tegemiseks lisateavet. 

Näiteks parsimise abil võtsime kasutaja asukoha eraldi välja. See aitas koheselt esile tuua välismaalt pärit rünnakud Venemaa kasutajate saitide vastu. Blokeerides kõik ühendused teistest riikidest, vähendasime rünnakute arvu 2 korda ja saime hõlpsalt hakkama Venemaa siseste rünnakutega. 

Pärast sõelumist hakkasid nad otsima, millist teavet talletada ja visualiseerida. Kõikide logisse jätmine oli kohatu: ühe indeksi suurus oli suur - 7 GB. ELK-l läks faili menetlemisega kaua aega. Kuid kogu teave ei olnud kasulik. Midagi dubleeriti ja võttis lisaruumi – oli vaja optimeerida. 

Algul vaatasime lihtsalt indeksi läbi ja eemaldasime mittevajalikud sündmused. See osutus veelgi ebamugavamaks ja pikemaks kui FortiWebis endas logidega töötamine. Ainus "jõulupuu" pluss selles etapis on see, et saime ühele ekraanile kujutada suurt ajavahemikku. 

Me ei heitnud meelt, jätkasime kaktuse söömist ja ELK-i õppimist ning uskusime, et saame vajaliku info välja. Pärast indeksite puhastamist hakkasime visualiseerima, mis on. Nii jõudsime suurte armatuurlaudade juurde. Torkasime vidinaid - visuaalselt ja elegantselt tõeline ЁLKa! 

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada

Jäädvustas rünnaku hetk. Nüüd oli vaja aru saada, kuidas rünnaku algus graafikul välja näeb. Selle tuvastamiseks vaatasime serveri vastuseid kasutajale (tagastuskoodid). Meid huvitasid serveri vastused selliste koodidega (rc): 

Kood (rc)

nimi

Kirjeldus

0

DROP

Päring serverile on blokeeritud

200

Ok

Taotluse töötlemine õnnestus

400

Halb päring

Halb taotlus

403

Keelatud

Autoriseerimine on keelatud

500

Sisemine serveri viga

Teenus pole saadaval

Kui keegi hakkas saiti ründama, muutus koodide suhe: 

  • Kui koodiga 400 oli rohkem vigaseid taotlusi ja sama palju tavalisi taotlusi koodiga 200, siis üritas keegi saiti häkkida. 
  • Kui samal ajal kasvasid ka päringud koodiga 0, siis ka FortiWebi poliitikud "nägisid" rünnakut ja rakendasid sellele plokke. 
  • Kui koodiga 500 kirjade arv suurenes, pole sait nende IP-aadresside jaoks saadaval - ka omamoodi blokeerimine. 

Kolmandaks kuuks olime selle tegevuse jälgimiseks loonud armatuurlaua.

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada

Et mitte kõike käsitsi jälgida, seadsime sisse integratsiooni Nagiosega, mis küsis ELK-i teatud ajavahemike järel. Kui see registreeris läviväärtuste saavutamise koodide kaupa, saatis ta valveametnikele teate kahtlase tegevuse kohta. 

Kombineeritud 4 diagrammi seiresüsteemis. Nüüd oli oluline näha graafikutel hetke, mil rünnak pole blokeeritud ja vaja on inseneri sekkumist. Neljal erineval graafikul oli meie silm udune. Seetõttu ühendasime diagrammid ja hakkasime kõike ühel ekraanil jälgima.

Jälgimisel jälgisime, kuidas muutuvad erinevate värvide graafikud. Punane pauk näitas, et rünnak oli alanud, samas kui oranžid ja sinised graafikud näitasid FortiWebi reaktsiooni:

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada
Siin on kõik hästi: "punane" aktiivsus tõusis, kuid FortiWeb sai hakkama ja rünnakugraafik läks tühjaks.

Joonistasime enda jaoks ka näite sekkumist vajavast graafikust:

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada
Siin näeme, et FortiWeb on aktiivsust suurendanud, kuid punane rünnakugraafik pole vähenenud. Peate muutma WAF-i sätteid.

Lihtsamaks on muutunud ka ööjuhtumite uurimine. Graafik näitab kohe hetke, mil on aeg asuda saidi kaitsmisele. 

Kuidas ELK aitab turvainseneridel veebisaitide rünnakutega võidelda ja rahulikult magada
Nii juhtub mõnikord öösel. Punane graafik – rünnak on alanud. Sinine – FortiWebi tegevus. Rünnak ei olnud täielikult blokeeritud, tuli sekkuda.

Kuhu me läheme

Nüüd koolitame ELK-ga töötamiseks valveadministraatoreid. Teenindajad õpivad armatuurlaual olukorda hindama ja otsustama: on aeg pöörduda FortiWebi spetsialisti poole või piisab WAF-i poliitikast rünnaku automaatseks tõrjumiseks. Seega vähendame infoturbeinseneride öist koormust ja jagame tugirollid süsteemi tasemel. Juurdepääs FortiWebile jääb ainult küberkaitsekeskusele ja ainult nemad teevad WAF-i seadeid hädaolukorras.

Tegeleme ka klientide aruandlusega. Plaanime, et andmed WAF-i töö dünaamika kohta on kättesaadavad kliendi isiklikul kontol. ELK teeb olukorra selgemaks, ilma et oleks vaja WAF-i enda poole pöörduda.

Kui klient soovib enda kaitset reaalajas jälgida, tuleb kasuks ka ELK. Me ei saa WAF-ile juurdepääsu anda, kuna kliendi sekkumine töösse võib mõjutada ülejäänut. Kuid võite võtta eraldi ELK ja anda see "mängida". 

Need on jõulupuu kasutamise stsenaariumid, mida oleme viimasel ajal kogunud. Jagage oma mõtteid selle kohta ja ärge unustage seadke kõik õigestiet vältida andmebaasi lekkeid. 

Allikas: www.habr.com