Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať

Naše centrum kybernetickej obrany je zodpovedné za bezpečnosť webovej infraštruktúry klienta a odráža útoky na klientske stránky. Na ochranu pred útokmi používame brány FortiWeb Web Application Firewall (WAF). Ale ani ten najchladnejší WAF nie je všeliekom a nechráni pred cielenými útokmi „out of the box“. 

Preto okrem WAF používame ELK. Pomáha zhromažďovať všetky udalosti na jednom mieste, hromadí štatistiky, vizualizuje ich a umožňuje nám včas vidieť cielený útok.

Dnes vám poviem podrobnejšie, ako sme prekročili vianočný stromček s WAF a čo z toho vzniklo.

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať

Príbeh jedného útoku: ako všetko fungovalo pred prechodom na ELK

V našom cloude má zákazník nasadenú aplikáciu za naším WAF. Od 10 000 do 100 000 používateľov pripojených k stránke denne dosiahol počet pripojení 20 miliónov za deň. Z toho 3-5 používateľov boli votrelci a pokúsili sa hacknúť stránku. 

Obvyklú formu hrubej sily z jednej IP adresy zablokoval FortiWeb celkom jednoducho. Počet prístupov na stránku za minútu bol vyšší ako u legitímnych používateľov. Jednoducho sme nastavili prahy aktivity z jednej adresy a odrazili útok.

Oveľa ťažšie je zvládať „pomalé útoky“, keď útočníci konajú pomaly a prezliekajú sa za bežných klientov. Používajú mnoho jedinečných IP adries. Takáto aktivita pre WAF nevyzerala ako masívna hrubá sila, bolo ťažšie ju automaticky sledovať. A hrozilo aj zablokovanie bežných používateľov. Hľadali sme ďalšie príznaky útoku a nastavili sme politiku automatického blokovania IP adries na základe tohto príznaku. Napríklad veľa nelegitímnych relácií malo spoločné polia v hlavičkách požiadaviek http. Takéto polia ste často museli hľadať manuálne v protokoloch udalostí FortiWeb. 

Bolo to dlhé a nepríjemné. V štandardnej funkcionalite FortiWebu sa udalosti zaznamenávajú textovo do 3 rôznych protokolov: zistené útoky, informácie o požiadavkách a systémové správy o prevádzke WAF. Za minútu môžu prísť desiatky alebo dokonca stovky útokov.

Nie až tak, ale musíte manuálne preliezť niekoľko protokolov a opakovať mnoho riadkov: 

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať
V protokole útokov vidíme adresy používateľov a charakter aktivity. 
 
Nestačí len naskenovať tabuľku protokolov. Ak chcete nájsť najzaujímavejšie a najužitočnejšie informácie o povahe útoku, musíte sa pozrieť do konkrétnej udalosti:

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať
Zvýraznené polia pomáhajú odhaliť „pomalý útok“. Zdroj: screenshot z Web Fortinet

No, hlavný problém je, že na to môže prísť len špecialista na FortiWeb. Ak by sme počas pracovnej doby stále mohli sledovať podozrivú aktivitu v reálnom čase, vyšetrovanie nočných incidentov by sa mohlo oneskoriť. Keď pravidlá FortiWeb z nejakého dôvodu nefungovali, službukonajúci inžinieri nočnej zmeny nemohli bez prístupu k WAF posúdiť situáciu a zobudili špecialistu FortiWeb. Prezerali sme si protokoly niekoľko hodín a našli sme moment útoku. 

Pri takom objeme informácií je ťažké na prvý pohľad pochopiť celkový obraz a konať proaktívne. Potom sme sa rozhodli zhromaždiť dáta na jednom mieste, aby sme všetko analyzovali vo vizuálnej podobe, našli začiatok útoku, identifikovali jeho smer a spôsob blokovania. 

Z čoho ste si vybrali

V prvom rade sme sa pozreli na už používané riešenia, aby sa zbytočne nemnožili entity.

Jedna z prvých možností bola Nagiosktoré používame na sledovanie inžinierska infraštruktúra, sieťovú infraštruktúru, núdzové upozornenia. Ochranka ho používa aj na to, aby upozornila obsluhu v prípade podozrivej premávky, no nevie pozbierať rozhádzané polená a preto zmizne. 

Bola tu možnosť všetko agregovať MySQL a PostgreSQL alebo iná relačná databáza. Aby ste však mohli vytiahnuť dáta, bolo potrebné vašu aplikáciu vytesať. 

Ako zberač guľatiny v našej spoločnosti tiež používajú FortiAnalyzer od Fortinetu. Ale v tomto prípade sa tiež nezmestil. Po prvé, je ostrejší na prácu s firewallom FortiGate. Po druhé, veľa nastavení chýbalo a interakcia s ním si vyžadovala výbornú znalosť SQL dotazov. A do tretice, jeho použitie by pre zákazníka zvýšilo cenu služby.   

Takto sme sa dostali k open source in face ELK

Prečo si vybrať ELK 

ELK je sada programov s otvoreným zdrojovým kódom:

  • ElasticSearch - databáza časových radov, ktorá bola práve vytvorená pre prácu s veľkým objemom textu;
  • Logstash – mechanizmus zberu údajov, ktorý dokáže konvertovať protokoly do požadovaného formátu; 
  • Kibana - dobrý vizualizér, ako aj pomerne priateľské rozhranie na správu Elasticsearch. Môžete ho použiť na zostavenie plánov, ktoré môžu v noci monitorovať inžinieri. 

Vstupný prah pre ELK je nízky. Všetky základné funkcie sú zadarmo. Čo ešte treba k šťastiu.

Ako ste to všetko dali dokopy do jedného systému?

Vytvorené indexy a ponechané len potrebné informácie. Všetky tri denníky FortiWEB sme nahrali do ELK – výstupom boli indexy. Sú to súbory so všetkými zhromaždenými protokolmi za určité obdobie, napríklad za deň. Ak by sme si ich hneď vizualizovali, videli by sme len dynamiku útokov. Pre podrobnosti musíte „prepadnúť“ do každého útoku a pozrieť sa na konkrétne polia.

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať

Uvedomili sme si, že najprv musíme nastaviť analýzu neštruktúrovaných informácií. Zobrali sme dlhé polia ako reťazce, ako napríklad „Message“ a „URL“, a analyzovali sme ich, aby sme získali viac informácií na rozhodovanie. 

Napríklad pomocou analýzy sme osobitne vybrali polohu používateľa. To pomohlo okamžite upozorniť na útoky zo zahraničia na stránky pre ruských používateľov. Zablokovaním všetkých spojení z iných krajín sme znížili počet útokov 2-krát a mohli sme ľahko riešiť útoky vo vnútri Ruska. 

Po analýze začali hľadať, aké informácie uložiť a vizualizovať. Nechať všetko v protokole bolo nevhodné: veľkosť jedného indexu bola veľká – 7 GB. Spracovanie súboru ELK trvalo dlho. Nie všetky informácie však boli užitočné. Niečo sa duplikovalo a zaberalo miesto navyše – bolo potrebné optimalizovať. 

Najprv sme jednoducho prezreli index a odstránili nepotrebné udalosti. To sa ukázalo byť ešte nepohodlnejšie a dlhšie ako práca s logami na samotnom FortiWebe. Jediným plusom „vianočného stromčeka“ v tejto fáze je, že sme si na jednej obrazovke dokázali vizualizovať veľké časové obdobie. 

Nezúfali sme, pokračovali sme v jedení kaktusu a štúdiu ELK a verili, že sa nám podarí vydolovať potrebné informácie. Po vyčistení indexov sme začali vizualizovať, čo je. Tak sme sa dostali k veľkým prístrojovým doskám. Postrčili sme widgety - vizuálne a elegantne, skutočné ЁLKa! 

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať

Zachytený moment útoku. Teraz bolo potrebné pochopiť, ako začiatok útoku vyzerá na grafe. Aby sme to zistili, pozreli sme sa na odpovede servera používateľovi (návratové kódy). Zaujímali nás odpovede servera s takýmito kódmi (rc): 

kód (rc)

názov

Popis

0

DROP

Požiadavka na server je zablokovaná

200

Ok

Žiadosť bola úspešne spracovaná

400

Zlá požiadavka

Zlá požiadavka

403

zakázaný

Autorizácia zamietnutá

500

Internal Server Error

Služba je nedostupná

Ak niekto začal útočiť na stránku, pomer kódov sa zmenil: 

  • Ak bolo viac chybných požiadaviek s kódom 400 a rovnaký počet normálnych požiadaviek s kódom 200, potom sa niekto pokúšal hacknúť stránku. 
  • Ak zároveň rástli aj požiadavky s kódom 0, tak útok „uvideli“ aj politici FortiWebu a aplikovali naň bloky. 
  • Ak sa zvýšil počet správ s kódom 500, potom stránka nie je pre tieto IP adresy dostupná - tiež druh blokovania. 

Do tretieho mesiaca sme nastavili dashboard na sledovanie tejto aktivity.

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať

Aby sme všetko nemonitorovali manuálne, nastavili sme integráciu s Nagiosom, ktorý v určitých intervaloch oslovoval ELK. Ak zaznamenal dosiahnutie hraničných hodnôt kódmi, poslal strážnikom oznámenie o podozrivej činnosti. 

Kombinované 4 grafy v monitorovacom systéme. Teraz bolo dôležité vidieť na grafoch moment, kedy útok nie je zablokovaný a je potrebný zásah inžiniera. Na 4 rôznych grafoch bolo naše oko rozmazané. Preto sme spojili grafy a začali všetko pozorovať na jednej obrazovke.

Na monitoringu sme sledovali, ako sa menia grafy rôznych farieb. Záblesk červenej naznačoval, že útok začal, zatiaľ čo oranžové a modré grafy ukázali reakciu FortiWebu:

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať
Všetko je tu v poriadku: došlo k nárastu „červenej“ aktivity, ale FortiWeb si poradil a plán útokov vyšiel naprázdno.

Nakreslili sme si aj príklad grafu, ktorý si vyžaduje zásah:

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať
Tu môžeme vidieť, že FortiWeb má zvýšenú aktivitu, ale červený graf útoku sa neznížil. Musíte zmeniť nastavenia WAF.

Zjednodušilo sa aj vyšetrovanie nočných incidentov. Graf okamžite ukazuje moment, kedy je čas prísť na obranu lokality. 

Ako ELK pomáha bezpečnostným inžinierom bojovať proti útokom na webové stránky a pokojne spať
To sa niekedy v noci stáva. Červený graf - útok začal. Modrá – aktivita FortiWeb. Útok nebol úplne zablokovaný, museli sme zasahovať.

Kam ideme

Teraz školíme správcov povinností na prácu s ELK. Obsluha sa učia vyhodnotiť situáciu na palubnej doske a urobiť rozhodnutie: je čas eskalovať špecialistovi na FortiWeb, alebo pravidlá na WAF budú stačiť na automatické odrazenie útoku. Takže znižujeme zaťaženie inžinierov informačnej bezpečnosti v noci a rozdeľujeme úlohy v podpore na systémovej úrovni. Prístup k FortiWebu zostáva len pre centrum kybernetickej obrany a iba oni robia zmeny v nastaveniach WAF, keď sú naliehavo potrebné.

Pracujeme aj na reportingu pre zákazníkov. Plánujeme, že údaje o dynamike práce WAF budú dostupné na osobnom účte klienta. ELK objasní situáciu bez potreby odkazovať na samotný WAF.

Ak chce zákazník sledovať vlastnú ochranu v reálnom čase, príde vhod aj ELK. Nemôžeme poskytnúť prístup k WAF, pretože zásah zákazníka do diela môže ovplyvniť zvyšok. Môžete si však vyzdvihnúť samostatný ELK a dať ho na „hranie“. 

Toto sú scenáre použitia vianočného stromčeka, ktoré sa nám v poslednej dobe nahromadili. Podeľte sa o svoje myšlienky a nezabudnite všetko správne nastaviťaby sa predišlo úniku databázy. 

Zdroj: hab.com