Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit

Centrul nostru de apărare cibernetică este responsabil pentru securitatea infrastructurii web a clienților și respinge atacurile asupra site-urilor clienților. Folosim firewall-uri de aplicații web FortiWeb (WAF) pentru a ne proteja împotriva atacurilor. Dar chiar și cel mai tare WAF nu este un panaceu și nu protejează din cutie de atacuri țintite. 

Prin urmare, pe lângă WAF folosim ELAN. Ajută la colectarea tuturor evenimentelor într-un singur loc, acumulează statistici, le vizualizează și ne permite să vedem un atac țintit în timp.

Astăzi vă voi spune mai detaliat cum am traversat „pomul de Crăciun” cu WAF și ce a ieșit din el.

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit

Povestea unui atac: cum a funcționat totul înainte de tranziția la ELK

Clientul are o aplicație implementată în cloud-ul nostru, care se află în spatele WAF-ului nostru. De la 10 la 000 de utilizatori conectați la site pe zi, numărul de conexiuni a ajuns la 100 de milioane pe zi. Dintre aceștia, 000-20 utilizatori au fost atacatori și au încercat să pirateze site-ul. 

FortiWeb a blocat destul de ușor forma obișnuită de forță brută de la o adresă IP. Numărul de accesări pe minut la site a fost mai mare decât cel al utilizatorilor legitimi. Pur și simplu am stabilit praguri de activitate de la o adresă și am respins atacul.

Este mult mai dificil să combati „atacurile lente”, când atacatorii acționează încet și se deghează în clienți obișnuiți. Ei folosesc multe adrese IP unice. O astfel de activitate nu arăta ca o forță brută masivă pentru WAF; era mai dificil să o urmărești automat. Exista și riscul blocării utilizatorilor normali. Am căutat alte semne ale unui atac și am configurat o politică pentru a bloca automat adresele IP pe baza acestui semn. De exemplu, multe sesiuni nelegitime au avut câmpuri comune în antetele solicitărilor HTTP. Aceste câmpuri trebuiau adesea căutate manual în jurnalele de evenimente FortiWeb. 

S-a dovedit lung și incomod. În funcționalitatea standard FortiWeb, evenimentele sunt înregistrate în text în 3 jurnale diferite: atacuri detectate, informații de solicitare și mesaje de sistem despre funcționarea WAF. Zeci sau chiar sute de evenimente de atac pot ajunge într-un minut.

Nu atât de mult, dar trebuie să treci manual prin mai multe bușteni și să iterați printr-o mulțime de linii: 

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit
În jurnalul de atac vedem adresele utilizatorilor și natura activității. 
 
Nu este suficient să scanați pur și simplu tabelul de jurnal. Pentru a găsi cele mai interesante și utile informații despre natura atacului, trebuie să căutați în interiorul unui anumit eveniment:

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit
Câmpurile evidențiate ajută la detectarea unui „atac lent”. Sursa: captură de ecran de la site-ul Fortinet

Ei bine, cea mai importantă problemă este că doar un specialist FortiWeb își poate da seama. În timp ce în timpul orelor de lucru am putea încă monitoriza activitatea suspectă în timp real, investigarea incidentelor pe timp de noapte ar putea dura mai mult. Când politicile FortiWeb nu au funcționat dintr-un motiv oarecare, inginerii din tura de noapte de serviciu nu au putut să evalueze situația fără acces la WAF și l-au trezit pe specialistul FortiWeb. Ne-am uitat prin câteva ore de jurnalele și am găsit momentul atacului. 

Cu astfel de volume de informații, este dificil să înțelegeți imaginea de ansamblu la prima vedere și să acționați proactiv. Apoi am decis să colectăm date într-un singur loc pentru a analiza totul într-o formă vizuală, a găsi începutul atacului, a identifica direcția și metoda de blocare a acestuia. 

Din ce ai ales?

În primul rând, ne-am uitat la soluțiile deja utilizate pentru a nu înmulți entitățile inutil.

Una dintre primele variante a fost Nagiospe care le folosim pentru monitorizare infrastructura de inginerie, infrastructura retelei, alerte despre situații de urgență. Securiștii îl folosesc și pentru a anunța ofițerii de serviciu în cazul unui trafic suspect, dar nu știe să colecteze bușteni împrăștiați și, prin urmare, nu mai este necesar. 

A existat o opțiune de a agrega totul folosind MySQL și PostgreSQL sau altă bază de date relațională. Dar pentru a extrage date, a trebuit să-ți creezi propria aplicație. 

Compania noastră folosește și FortiAnalyzer din Fortinet. Dar nici în acest caz nu s-a potrivit. În primul rând, este mai adaptat pentru a funcționa cu un firewall FortiGate. În al doilea rând, lipseau multe setări, iar interacțiunea cu acestea a necesitat cunoștințe excelente de interogări SQL. Și în al treilea rând, utilizarea sa ar crește costul serviciului pentru client.   

Așa am ajuns la open source sub formă de ELAN

De ce să alegeți ELK 

ELK este un set de programe open source:

  • Elasticsearch – o bază de date cu serii de timp, care a fost creată special pentru a lucra cu volume mari de text;
  • Logstash – un mecanism de colectare a datelor care poate converti jurnalele în formatul dorit; 
  • Kibana – un bun vizualizator, precum și o interfață destul de prietenoasă pentru gestionarea Elasticsearch. Îl poți folosi pentru a construi grafice pe care inginerii de serviciu le pot monitoriza noaptea. 

Pragul de intrare în ELK este scăzut. Toate caracteristicile de bază sunt gratuite. Ce altceva este nevoie pentru fericire?

Cum am pus totul împreună într-un singur sistem?

Am creat indexuri și am lăsat doar informațiile necesare. Am încărcat toate cele trei jurnalele FortiWEB în ELK și rezultatul au fost indici. Acestea sunt fișiere cu toate jurnalele colectate pentru o perioadă, de exemplu, o zi. Dacă le-am vizualiza imediat, am vedea doar dinamica atacurilor. Pentru detalii, trebuie să „cădea” în fiecare atac și să te uiți la anumite câmpuri.

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit

Ne-am dat seama că mai întâi trebuie să stabilim analiza informațiilor nestructurate. Am luat câmpuri lungi sub formă de șiruri, cum ar fi „Message” și „URL”, și le-am analizat pentru a obține mai multe informații pentru luarea deciziilor. 

De exemplu, folosind analizarea, am identificat separat locația utilizatorului. Acest lucru a ajutat la evidențierea imediată a atacurilor din străinătate asupra site-urilor pentru utilizatorii ruși. Prin blocarea tuturor conexiunilor din alte țări, am redus numărul de atacuri la jumătate și am putut face față cu calm atacurilor din interiorul Rusiei. 

După analiză, am început să căutăm ce informații să stocăm și să vizualizăm. Nu era practic să lăsați totul în jurnal: dimensiunea unui index era mare - 7 GB. ELK a luat mult timp pentru a procesa fișierul. Cu toate acestea, nu toate informațiile au fost utile. Ceva a fost duplicat și a ocupat spațiu suplimentar - trebuia optimizat. 

La început am scanat pur și simplu indexul și am eliminat evenimentele inutile. Acest lucru s-a dovedit a fi chiar mai incomod și mai lung decât lucrul cu jurnalele pe FortiWeb în sine. Singurul avantaj al „pomului de Crăciun” în această etapă este că am putut vizualiza o perioadă mare de timp pe un singur ecran. 

Nu am disperat, am continuat să mâncăm cactus, am studiat ELK și am crezut că vom putea extrage informațiile necesare. După curățarea indexurilor, am început să vizualizăm ce aveam. Așa am ajuns la tablouri de bord mari. Am încercat câteva widget-uri – vizual și elegant, un adevărat brad de Crăciun! 

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit

Momentul atacului a fost înregistrat. Acum trebuia să înțelegem cum arată începutul unui atac pe grafic. Pentru a-l detecta, ne-am uitat la răspunsurile serverului la utilizator (coduri de returnare). Am fost interesați de răspunsurile serverului cu următoarele coduri (rc): 

Cod (rc)

Nume

descriere

0

CĂDERE BRUSCA

Solicitarea către server este blocată

200

Ok

Solicitarea a fost procesată cu succes

400

Solicitare necorespunzătoare

Cerere invalida

403

Interzis

Autorizație refuzată

500

eroare interna a serverului

Serviciul nu este disponibil

Dacă cineva a început să atace site-ul, raportul de coduri s-a schimbat: 

  • Dacă au existat mai multe solicitări eronate cu codul 400, dar au rămas același număr de solicitări normale cu codul 200, înseamnă că cineva a încercat să pirateze site-ul. 
  • Dacă în același timp și cererile cu codul 0 au crescut, atunci și politicienii FortiWeb au „văzut” atacul și i-au aplicat blocuri. 
  • Dacă numărul de mesaje cu codul 500 a crescut, înseamnă că site-ul este indisponibil pentru aceste adrese IP - tot un fel de blocare. 

Până în a treia lună, am creat un tablou de bord pentru a urmări o astfel de activitate.

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit

Pentru a nu monitoriza totul manual, am configurat integrarea cu Nagios, care a interogat ELK la anumite intervale. Dacă am detectat valori de prag atinse de coduri, am trimis o notificare ofițerilor de serviciu despre activitate suspectă. 

Combinate 4 grafice în sistemul de monitorizare. Acum era important să vedem pe grafice momentul în care atacul nu a fost blocat și a fost nevoie de intervenția unui inginer. Pe 4 grafice diferite, ochii ni s-au încețoșat. Prin urmare, am combinat graficele și am început să monitorizăm totul pe un singur ecran.

În timpul monitorizării, am urmărit cum s-au schimbat graficele de diferite culori. O pată de roșu arăta că atacul a început, în timp ce graficele portocalii și albastre au arătat răspunsul FortiWeb:

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit
Totul este în regulă aici: a existat o creștere a activității „roșii”, dar FortiWeb a făcut față și programul de atac a dispărut.

De asemenea, am desenat pentru noi înșine un exemplu de grafic care necesită intervenție:

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit
Aici vedem că FortiWeb a crescut activitatea, dar graficul roșu de atac nu a scăzut. Trebuie să modificați setările WAF.

Investigarea incidentelor nocturne a devenit, de asemenea, mai ușoară. Graficul arată imediat momentul în care este timpul să veniți pentru a proteja site-ul. 

Cum ELK îi ajută pe inginerii de securitate să lupte împotriva atacurilor site-urilor web și să doarmă liniștit
Asta se întâmplă uneori noaptea. Grafic roșu – atacul a început. Albastru – activitate FortiWeb. Atacul nu a fost blocat complet, așa că a trebuit să intervin.

Unde ne îndreptăm?

În prezent, pregătim administratorii de serviciu pentru a lucra cu ELK. Cei de serviciu învață să evalueze situația pe tabloul de bord și să ia o decizie: este timpul să treacă la un specialist FortiWeb, sau politicile de pe WAF sunt suficiente pentru a respinge automat atacul. În acest fel, reducem sarcina inginerilor de securitate a informațiilor pe timp de noapte și împărțim rolurile de asistență la nivel de sistem. Accesul la FortiWeb rămâne doar cu centrul de apărare cibernetică și doar aceștia modifică setările WAF atunci când este absolut necesar.

De asemenea, lucrăm la raportare pentru clienți. Planificăm ca datele privind dinamica operațiunii WAF să fie disponibile în contul personal al clientului. ELK va face situația mai transparentă fără a fi nevoie să contacteze WAF în sine.

Dacă clientul dorește să-și monitorizeze protecția în timp real, ELK va fi și el util. Nu putem renunța la accesul la WAF, deoarece interferența clienților în muncă poate afecta pe alții. Dar poți să ridici un ELK separat și să-l dai să te „joci”. 

Acestea sunt scenariile de utilizare a „pomului de Crăciun” pe care l-am acumulat recent. Împărtășiți-vă ideile despre această chestiune și nu uitați configura totul corectpentru a evita scurgerile bazei de date. 

Sursa: www.habr.com