Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti

Mūsų kibernetinės gynybos centras yra atsakingas už klientų interneto infrastruktūros saugumą ir atremia atakas prieš klientų svetaines. Apsaugoti nuo atakų naudojame „FortiWeb“ žiniatinklio programų užkardas (WAF). Tačiau net pats šauniausias WAF nėra panacėja ir neapsaugo nuo tikslinių atakų. 

Todėl be WAF naudojame ELK. Tai padeda surinkti visus įvykius vienoje vietoje, kaupia statistiką, vizualizuoja ir leidžia laiku pamatyti tikslinę ataką.

Šiandien aš jums papasakosiu išsamiau, kaip mes kirtome „eglutę“ su WAF ir kas iš to išėjo.

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti

Vienos atakos istorija: kaip viskas veikė iki perėjimo prie ELK

Klientas mūsų debesyje įdiegė programą, kuri yra už mūsų WAF. Per dieną prie svetainės prisijungdavo nuo 10 000 iki 100 000 vartotojų, prisijungimų skaičius siekė 20 milijonų per dieną. Iš jų 3–5 vartotojai buvo užpuolikai ir bandė įsilaužti į svetainę. 

FortiWeb gana lengvai užblokavo įprastą brute force formą iš vieno IP adreso. Svetainės apsilankymų skaičius per minutę buvo didesnis nei teisėtų vartotojų. Tiesiog iš vieno adreso nustatėme veiklos slenksčius ir ataką atremdavome.

Daug sunkiau kovoti su „lėtomis atakomis“, kai užpuolikai veikia lėtai ir prisidengia paprastais klientais. Jie naudoja daug unikalių IP adresų. Tokia veikla WAF neatrodė didžiulė žiauri jėga, ją buvo sunkiau sekti automatiškai. Taip pat kilo rizika užblokuoti įprastus vartotojus. Ieškojome kitų atakos požymių ir sukonfigūravome strategiją, kuri pagal šį ženklą automatiškai blokuotų IP adresus. Pavyzdžiui, daugelio neteisėtų seansų HTTP užklausų antraštėse buvo bendri laukai. Šiuos laukus dažnai tekdavo ieškoti rankiniu būdu „FortiWeb“ įvykių žurnaluose. 

Tai pasirodė ilga ir nepatogu. Standartinėje FortiWeb funkcijoje įvykiai įrašomi tekstu į 3 skirtingus žurnalus: aptiktos atakos, užklausos informacija ir sistemos pranešimai apie WAF veikimą. Per minutę gali įvykti dešimtys ar net šimtai išpuolių.

Ne tiek daug, bet jūs turite rankiniu būdu perlipti per kelis žurnalus ir kartoti daugybę eilučių: 

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti
Atakos žurnale matome vartotojų adresus ir veiklos pobūdį. 
 
Neužtenka tiesiog nuskaityti žurnalo lentelę. Norėdami rasti įdomiausios ir naudingiausios informacijos apie atakos pobūdį, turite pažvelgti į konkretų įvykį:

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti
Paryškinti laukai padeda aptikti „lėtą ataką“. Šaltinis: ekrano kopija iš Fortinet svetainė

Na, o svarbiausia problema yra ta, kad tai gali išsiaiškinti tik „FortiWeb“ specialistas. Nors darbo valandomis įtartiną veiklą galėjome stebėti realiu laiku, naktinių incidentų tyrimas gali užtrukti ilgiau. Kai „FortiWeb“ politika dėl kokių nors priežasčių neveikė, budintys naktinės pamainos inžinieriai negalėjo įvertinti situacijos neturėdami prieigos prie WAF ir pažadino „FortiWeb“ specialistą. Peržiūrėjome kelių valandų žurnalus ir radome užpuolimo momentą. 

Turint tokius informacijos kiekius, sunku iš pirmo žvilgsnio suprasti bendrą vaizdą ir veikti aktyviai. Tada nusprendėme rinkti duomenis vienoje vietoje, kad viską išanalizuoti vaizdine forma, rasti atakos pradžią, nustatyti jos kryptį ir blokavimo būdą. 

Iš ko pasirinkai?

Pirmiausia pažvelgėme į jau naudojamus sprendimus, kad be reikalo nepadaugintume subjektų.

Vienas iš pirmųjų variantų buvo Nagioskurį naudojame stebėjimui inžinerinė infrastruktūra, tinklo infrastruktūra, įspėjimai apie avarines situacijas. Apsaugos darbuotojai juo taip pat praneša budintiems pareigūnams esant įtartinam eismui, tačiau ji nemoka surinkti išbarstytų rąstų, todėl nebereikalinga. 

Buvo galimybė sujungti viską naudojant MySQL ir PostgreSQL ar kita reliacinė duomenų bazė. Tačiau norėdami ištraukti duomenis, turėjote sukurti savo programą. 

Mūsų įmonė taip pat naudoja FortiAnalyzer iš Fortinet. Bet tai netiko ir šiuo atveju. Pirma, jis labiau pritaikytas darbui su ugniasiene „FortiGate“. Antra, trūko daugelio nustatymų, o sąveikai su jais reikėjo puikių SQL užklausų žinių. Ir trečia, jo naudojimas padidintų paslaugos kainą klientui.   

Taip priėjome prie atvirojo kodo formoje ELK

Kodėl verta rinktis ELK 

ELK yra atvirojo kodo programų rinkinys:

  • Elasticearch – laiko eilučių duomenų bazė, kuri buvo specialiai sukurta dirbti su didelėmis teksto apimtimis;
  • „Logstash“ – duomenų rinkimo mechanizmas, galintis konvertuoti žurnalus į norimą formatą; 
  • kibana – geras vizualizatorius, taip pat gana draugiška Elasticsearch valdymo sąsaja. Galite naudoti jį kurdami grafikus, kuriuos budintys inžinieriai gali stebėti naktį. 

Įstojimo į ELK riba yra žema. Visos pagrindinės funkcijos yra nemokamos. Ko dar reikia laimei?

Kaip mes visa tai sujungėme į vieną sistemą?

Sukūrėme indeksus ir palikome tik reikiamą informaciją. Į ELK įkėlėme visus tris FortiWEB žurnalus ir išvestis buvo indeksai. Tai failai su visais surinktais žurnalais tam tikrą laikotarpį, pavyzdžiui, dieną. Jei iš karto juos vizualizuotume, pamatytume tik atakų dinamiką. Norėdami gauti daugiau informacijos, turite „pakliūti“ į kiekvieną ataką ir pažvelgti į konkrečius laukus.

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti

Supratome, kad pirmiausia turime nustatyti nestruktūrizuotos informacijos analizę. Užėmėme ilgus laukus eilučių pavidalu, pvz., „Pranešimas“ ir „URL“, ir juos išnagrinėjome, kad gautume daugiau informacijos, reikalingos sprendimui priimti. 

Pavyzdžiui, naudodami analizę, mes atskirai nustatėme vartotojo vietą. Tai padėjo iš karto atkreipti dėmesį į atakas iš užsienio Rusijos vartotojams skirtose svetainėse. Blokuodami visus ryšius iš kitų šalių, per pusę sumažinome atakų skaičių ir galėjome ramiai tvarkytis su atakomis Rusijos viduje. 

Išnagrinėję pradėjome ieškoti, kokią informaciją saugoti ir vizualizuoti. Viską palikti žurnale buvo nepraktiška: vieno rodyklės dydis buvo didelis – 7 GB. ELK ilgai tvarkė bylą. Tačiau ne visa informacija buvo naudinga. Kažkas dubliavosi ir užėmė papildomos vietos – reikėjo optimizuoti. 

Iš pradžių tiesiog nuskaitėme indeksą ir pašalinome nereikalingus įvykius. Tai pasirodė dar nepatogiau ir ilgiau nei dirbti su žurnalais pačiame „FortiWeb“. Vienintelis „Kalėdų eglutės“ privalumas šiame etape yra tai, kad viename ekrane galėjome vizualizuoti didelį laiko tarpą. 

Nenusivylėme, toliau valgėme kaktusus, studijavome ELK ir tikėjome, kad mums pavyks išgauti reikiamą informaciją. Išvalę indeksus pradėjome vizualizuoti, ką turime. Taip priėjome prie didelių prietaisų skydelių. Išbandėme keletą valdiklių – vizualiai ir elegantiškai, tikra Kalėdų eglutė! 

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti

Užpuolimo momentas buvo užfiksuotas. Dabar mums reikėjo suprasti, kaip grafike atrodo atakos pradžia. Norėdami jį aptikti, žiūrėjome į serverio atsakymus vartotojui (grįžimo kodus). Mus domino serverio atsakymai su šiais kodais (rc): 

Kodas (rc)

Pavadinimas

aprašymas

0

DROP

Užklausa serveriui užblokuota

200

Ok

Užklausa sėkmingai apdorota

400

Bloga užklausa

Neteisingas Prašymas

403

draudžiamas

Leidimas atmestas

500

Vidinė serverio klaida

Paslauga nepasiekiama

Jei kas nors pradėjo atakuoti svetainę, pasikeitė kodų santykis: 

  • Jei buvo daugiau klaidingų užklausų su kodu 400, bet liko tiek pat įprastų užklausų su kodu 200, tai reiškia, kad kažkas bandė įsilaužti į svetainę. 
  • Jei tuo pačiu metu padaugėjo ir užklausų su kodu 0, tai „FortiWeb“ politikai taip pat „pamatė“ ataką ir pritaikė jai blokus. 
  • Jei padaugėjo pranešimų su kodu 500, tai reiškia, kad svetainė šiems IP adresams nepasiekiama – taip pat tam tikras blokavimas. 

Jau trečią mėnesį sukūrėme informacijos suvestinę, kad galėtume stebėti tokią veiklą.

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti

Kad nereikėtų visko stebėti rankiniu būdu, sukūrėme integraciją su Nagios, kuri tam tikrais intervalais apklausdavo ELK. Jei aptikdavau kodais pasiektas ribines vertes, išsiunčiau budintiems pareigūnams pranešimą apie įtartiną veiklą. 

Stebėjimo sistemoje sujungti 4 grafikai. Dabar buvo svarbu diagramose matyti momentą, kai ataka nebuvo užblokuota ir prireikė inžinieriaus įsikišimo. 4 skirtingose ​​diagramose mūsų akys tapo neryškios. Todėl sujungėme diagramas ir pradėjome viską stebėti viename ekrane.

Stebėjimo metu stebėjome, kaip keičiasi skirtingų spalvų grafikai. Raudona spalva rodė, kad ataka prasidėjo, o oranžinės ir mėlynos diagramos rodė FortiWeb atsaką:

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti
Čia viskas gerai: buvo „raudonojo“ aktyvumo antplūdis, tačiau „FortiWeb“ su tuo susidorojo ir atakų grafikas nutrūko.

Mes taip pat patys nupiešėme grafiko, kuriam reikia įsikišimo, pavyzdį:

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti
Čia matome, kad FortiWeb aktyvumas padidėjo, bet raudonas atakos grafikas nesumažėjo. Turite pakeisti WAF nustatymus.

Taip pat tapo lengviau tirti naktinius incidentus. Grafike iš karto rodomas momentas, kada ateina laikas saugoti svetainę. 

Kaip ELK padeda saugos inžinieriams kovoti su svetainių atakomis ir ramiai miegoti
Taip kartais nutinka naktį. Raudonas grafikas – puolimas prasidėjo. Mėlyna – FortiWeb veikla. Ataka nebuvo visiškai užblokuota, todėl teko įsikišti.

Kur mes einame?

Šiuo metu ruošiame budinčius administratorius dirbti su ELK. Budintieji išmoksta įvertinti situaciją prietaisų skydelyje ir priimti sprendimą: laikas kreiptis į FortiWeb specialistą arba WAF politikos pakanka automatiškai atremti ataką. Taip sumažiname informacijos saugos inžinierių apkrovą naktimis ir paskirstome palaikymo vaidmenis sistemos lygiu. Prieiga prie „FortiWeb“ lieka tik kibernetinės gynybos centrui ir tik jie keičia WAF nustatymus, kai tai būtina.

Taip pat stengiamės teikti ataskaitas klientams. Planuojame, kad duomenys apie WAF veikimo dinamiką bus pasiekiami kliento asmeninėje paskyroje. ELK padarys situaciją skaidresnę, nesikreipdamas į WAF.

Jei klientas nori stebėti savo apsaugą realiu laiku, ELK taip pat pravers. Mes negalime suteikti prieigos prie WAF, nes klientų kišimasis į darbą gali turėti įtakos kitiems. Bet jūs galite pasiimti atskirą ELK ir duoti su juo "žaisti". 

Tai yra pastaruoju metu sukaupti „eglutės“ naudojimo scenarijai. Pasidalykite savo idėjomis šiuo klausimu ir nepamirškite sukonfigūruoti viską teisingaikad būtų išvengta duomenų nutekėjimo. 

Šaltinis: www.habr.com