Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát

Naše centrum kybernetické obrany zodpovídá za bezpečnost webové infrastruktury klientů a odpuzuje útoky na klientské stránky. K ochraně před útoky používáme firewally webových aplikací FortiWeb (WAF). Ale ani ten nejúžasnější WAF není všelék a nechrání hned po vybalení před cílenými útoky. 

Proto kromě WAF používáme ELK. Pomáhá shromažďovat všechny události na jednom místě, hromadí statistiky, vizualizuje je a umožňuje včas vidět cílený útok.

Dnes vám řeknu podrobněji, jak jsme křížili „vánoční stromeček“ s WAF a co z toho vzešlo.

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát

Příběh jednoho útoku: jak vše fungovalo před přechodem na ELK

Zákazník má v našem cloudu nasazenou aplikaci, která stojí za naším WAF. Od 10 000 do 100 000 uživatelů připojených k webu denně dosáhl počet připojení 20 milionů denně. Z toho 3–5 uživatelů byli útočníci a pokusili se web hacknout. 

FortiWeb zablokoval obvyklou formu hrubou silou z jedné IP adresy celkem snadno. Počet návštěv stránky za minutu byl vyšší než u legitimních uživatelů. Jednoduše jsme nastavili prahové hodnoty aktivity z jedné adresy a útok odrazili.

Je mnohem obtížnější bojovat proti „pomalým útokům“, když útočníci jednají pomalu a převlékají se za běžné klienty. Používají mnoho jedinečných IP adres. Taková aktivita pro WAF nevypadala jako masivní hrubá síla, bylo obtížnější ji automaticky sledovat. Hrozilo i zablokování běžných uživatelů. Hledali jsme další známky útoku a nakonfigurovali zásady pro automatické blokování IP adres na základě tohoto znamení. Například mnoho nelegitimních relací mělo společná pole v záhlaví požadavků HTTP. Tato pole bylo často nutné prohledávat ručně v protokolech událostí FortiWeb. 

Ukázalo se to dlouhé a nepříjemné. Ve standardní funkčnosti FortiWeb jsou události zaznamenávány textově do 3 různých protokolů: detekované útoky, informace o požadavcích a systémové zprávy o provozu WAF. Desítky nebo dokonce stovky útoků mohou přijít během minuty.

Ne tolik, ale musíte ručně prolézt několik protokolů a iterovat spoustu řádků: 

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát
V protokolu útoků vidíme adresy uživatelů a povahu aktivity. 
 
Nestačí jednoduše naskenovat tabulku protokolů. Chcete-li najít nejzajímavější a nejužitečnější informace o povaze útoku, musíte se podívat do konkrétní události:

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát
Zvýrazněná pole pomáhají odhalit „pomalý útok“. Zdroj: screenshot z Web Fortinet

No, nejdůležitější problém je, že na to může přijít pouze specialista na FortiWeb. Zatímco během pracovní doby jsme stále mohli sledovat podezřelou aktivitu v reálném čase, vyšetřování nočních incidentů mohlo trvat déle. Když zásady FortiWeb z nějakého důvodu nefungovaly, inženýři na noční směně ve službě nebyli schopni vyhodnotit situaci bez přístupu k WAF a probudili specialistu FortiWeb. Prohlédli jsme několik hodin protokolů a našli okamžik útoku. 

S takovými objemy informací je těžké na první pohled pochopit celkový obraz a jednat proaktivně. Poté jsme se rozhodli shromáždit data na jednom místě, abychom vše analyzovali ve vizuální podobě, našli začátek útoku, identifikovali jeho směr a způsob blokování. 

Z čeho jste vybírali?

Nejprve jsme se podívali na již používaná řešení, abychom zbytečně nemnožili entity.

Jedna z prvních možností byla Nagioskteré používáme ke sledování inženýrská infrastruktura, síťové infrastruktury, upozornění na nouzové situace. Ochranka jej také používá k upozornění služebníků v případě podezřelého provozu, ale neví, jak sbírat rozházené protokoly, a proto již není potřeba. 

Byla zde možnost vše agregovat pomocí MySQL a PostgreSQL nebo jinou relační databázi. Ale abyste mohli vytáhnout data, museli jste si vytvořit vlastní aplikaci. 

Naše společnost také používá FortiAnalyzer od Fortinetu. Ale ani v tomto případě to nesedělo. Za prvé, je více přizpůsobený pro práci s firewallem FortiGate. Zadruhé chybělo mnoho nastavení a interakce s ním vyžadovala výbornou znalost SQL dotazů. A za třetí, jeho použití by pro zákazníka zvýšilo cenu služby.   

Takto jsme se dostali k open source v podobě ELK

Proč zvolit ELK 

ELK je sada programů s otevřeným zdrojovým kódem:

  • Elastickýsearch – databáze časových řad, která byla speciálně vytvořena pro práci s velkými objemy textu;
  • Logstash – mechanismus sběru dat, který dokáže převést protokoly do požadovaného formátu; 
  • Kibana – dobrý vizualizér a také poměrně přívětivé rozhraní pro správu Elasticsearch. Můžete jej použít k vytváření grafů, které mohou inženýři ve službě sledovat v noci. 

Vstupní práh do ELK je nízký. Všechny základní funkce jsou zdarma. Co jiného je potřeba ke štěstí?

Jak jsme to všechno dali dohromady do jediného systému?

Vytvořili jsme indexy a nechali jen potřebné informace. Nahráli jsme všechny tři FortiWEB logy do ELK a výstupem byly indexy. Jedná se o soubory se všemi shromážděnými protokoly za určité období, například za den. Pokud bychom je okamžitě vizualizovali, viděli bychom pouze dynamiku útoků. Pro podrobnosti musíte „spadnout“ do každého útoku a podívat se na konkrétní pole.

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát

Uvědomili jsme si, že nejdříve musíme nastavit analýzu nestrukturovaných informací. Vzali jsme dlouhá pole ve formě řetězců, jako je „Message“ a „URL“, a analyzovali jsme je, abychom získali více informací pro rozhodování. 

Například pomocí analýzy jsme samostatně identifikovali polohu uživatele. To pomohlo okamžitě upozornit na útoky ze zahraničí na stránky pro ruské uživatele. Zablokováním všech spojení z jiných zemí jsme snížili počet útoků na polovinu a mohli v klidu řešit útoky uvnitř Ruska. 

Po analýze jsme začali hledat, jaké informace uložit a vizualizovat. Bylo nepraktické nechávat vše v deníku: velikost jednoho indexu byla velká – 7 GB. ELK trvalo dlouho, než soubor zpracoval. Ne všechny informace však byly užitečné. Něco se duplikovalo a zabíralo místo navíc – bylo potřeba to optimalizovat. 

Nejprve jsme jednoduše naskenovali index a odstranili nepotřebné události. To se ukázalo být ještě nepohodlnější a delší než práce s logy na samotném FortiWebu. Jedinou výhodou „vánočního stromku“ v této fázi je, že jsme byli schopni vizualizovat velké časové období na jedné obrazovce. 

Nezoufali jsme, dál jedli kaktusy, studovali ELK a věřili, že se nám podaří vydolovat potřebné informace. Po vyčištění indexů jsme si začali vizualizovat, co máme. Tak jsme se dostali k velkým přístrojovým deskám. Vyzkoušeli jsme některé widgety - vizuálně a elegantně, skutečný vánoční stromeček! 

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát

Okamžik útoku byl zaznamenán. Nyní jsme potřebovali pochopit, jak vypadá začátek útoku na grafu. Abychom to zjistili, podívali jsme se na odpovědi serveru uživateli (návratové kódy). Zajímaly nás odpovědi serveru s následujícími kódy (rc): 

kód (rc)

Jméno

popis

0

DROP

Požadavek na server je zablokován

200

Ok

Žádost byla úspěšně zpracována

400

Špatný požadavek

Neplatná žádost

403

Zakázaný

Autorizace zamítnuta

500

Internal Server Error

Služba je nedostupná

Pokud někdo začal útočit na web, poměr kódů se změnil: 

  • Pokud bylo více chybných požadavků s kódem 400, ale zůstal stejný počet normálních požadavků s kódem 200, znamená to, že se někdo pokoušel web hacknout. 
  • Pokud se zároveň zvýšily i požadavky s kódem 0, pak politici FortiWebu také „viděli“ útok a aplikovali na něj bloky. 
  • Pokud se zvýšil počet zpráv s kódem 500, znamená to, že stránka je pro tyto IP adresy nedostupná - také druh blokování. 

Do třetího měsíce jsme zřídili dashboard pro sledování takové aktivity.

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát

Abychom vše nehlídali ručně, nastavili jsme integraci s Nagios, který v určitých intervalech dotazoval ELK. Pokud jsem zjistil prahové hodnoty dosažené kódy, poslal jsem strážníkům oznámení o podezřelé aktivitě. 

Kombinované 4 grafiky v monitorovacím systému. Nyní bylo důležité vidět na grafech okamžik, kdy útok nebyl zablokován a byl nutný zásah inženýra. Na 4 různých mapách se nám rozmazaly oči. Spojili jsme proto grafy a začali vše sledovat na jedné obrazovce.

Během sledování jsme sledovali, jak se mění grafy různých barev. Záblesk červené indikoval, že útok začal, zatímco oranžové a modré grafy ukazují odpověď FortiWebu:

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát
Zde je vše v pořádku: došlo k nárůstu „červené“ aktivity, ale FortiWeb se s tím vypořádal a plán útoku přišel vniveč.

Také jsme si pro sebe nakreslili příklad grafu, který vyžaduje zásah:

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát
Zde vidíme, že FortiWeb zvýšil aktivitu, ale červený graf útoku se nezmenšil. Musíte změnit nastavení WAF.

Vyšetřování nočních incidentů se také zjednodušilo. Graf okamžitě ukazuje okamžik, kdy je čas přijít na ochranu lokality. 

Jak ELK pomáhá bezpečnostním inženýrům bojovat proti útokům na webové stránky a klidně spát
To se někdy v noci stává. Červený graf – útok začal. Modrá – aktivita FortiWeb. Útok nebyl úplně zablokován, takže jsem musel zasáhnout.

kam míříme?

V současné době školíme správce povinností pro práci s ELK. Ti, kteří jsou ve službě, se naučí vyhodnocovat situaci na palubní desce a rozhodovat se: je čas eskalovat specialistovi FortiWeb, nebo stačí zásady na WAF k automatickému odražení útoku. Tímto způsobem snižujeme noční zatížení inženýrů informační bezpečnosti a rozdělujeme role podpory na systémové úrovni. Přístup k FortiWebu zůstává pouze centru kybernetické obrany a pouze ono provádí změny nastavení WAF, když je to nezbytně nutné.

Pracujeme také na reportingu pro zákazníky. Plánujeme, že data o dynamice provozu WAF budou k dispozici na osobním účtu klienta. ELK zprůhlední situaci, aniž by musel kontaktovat samotný WAF.

Pokud chce zákazník sledovat svoji ochranu v reálném čase, přijde mu vhod i ELK. Nemůžeme poskytnout přístup k WAF, protože zásahy zákazníka do práce mohou ovlivnit ostatní. Můžete si ale vyzvednout samostatného ELK a dát si ho na „hrání“. 

Toto jsou scénáře použití „vánočního stromku“, které jsme nedávno nashromáždili. Podělte se o své nápady v této věci a nezapomeňte vše správně nakonfigurovataby nedošlo k úniku databáze. 

Zdroj: www.habr.com