In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli

Il nostro centro di difesa informatica è responsabile della sicurezza dell'infrastruttura web del cliente e respinge gli attacchi ai siti del cliente. Per proteggerci dagli attacchi, utilizziamo FortiWeb Web Application Firewall (WAF). Ma anche il WAF più interessante non è una panacea e non protegge "fuori dagli schemi" da attacchi mirati. 

Pertanto, oltre a WAF, utilizziamo ALCE. Aiuta a raccogliere tutti gli eventi in un unico posto, accumula statistiche, le visualizza e ci consente di vedere in tempo un attacco mirato.

Oggi vi racconterò più in dettaglio come abbiamo attraversato l'albero di Natale con WAF e cosa ne è derivato.

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli

La storia di un attacco: come funzionava tutto prima di passare a ELK

Nel nostro cloud, il cliente ha distribuito l'applicazione dietro il nostro WAF. Da 10 a 000 utenti connessi al sito al giorno, il numero di connessioni ha raggiunto i 100 milioni al giorno. Di questi, 000-20 utenti erano intrusi e hanno cercato di hackerare il sito. 

La solita forma di forza bruta da un indirizzo IP è stata bloccata da FortiWeb abbastanza facilmente. Il numero di accessi al sito al minuto era superiore a quello degli utenti legittimi. Abbiamo semplicemente impostato le soglie di attività da un indirizzo e respinto l'attacco.

È molto più difficile gestire gli "attacchi lenti", quando gli aggressori agiscono lentamente e si travestono da normali clienti. Usano molti indirizzi IP univoci. Tale attività non sembrava un'enorme forza bruta per WAF, era più difficile rintracciarla automaticamente. E c'era anche il rischio di bloccare gli utenti normali. Abbiamo cercato altri segni di un attacco e impostato una politica per bloccare automaticamente gli indirizzi IP in base a questo segno. Ad esempio, molte sessioni illegittime avevano campi comuni nelle intestazioni della richiesta http. Spesso dovevi cercare tali campi manualmente nei log degli eventi di FortiWeb. 

È diventato lungo e scomodo. Nella funzionalità standard di FortiWeb, gli eventi vengono registrati come testo in 3 diversi log: attacchi rilevati, informazioni sulle richieste e messaggi di sistema sul funzionamento di WAF. In un minuto possono verificarsi dozzine o addirittura centinaia di eventi di attacco.

Non tanto, ma devi scavalcare manualmente diversi log e scorrere molte righe: 

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli
Nel registro degli attacchi, vediamo gli indirizzi degli utenti e la natura dell'attività. 
 
Non è sufficiente eseguire semplicemente la scansione della tabella di registro. Per trovare le informazioni più interessanti e utili sulla natura dell'attacco, è necessario guardare all'interno di un evento specifico:

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli
I campi evidenziati aiutano a rilevare "attacchi lenti". Fonte: screenshot da Sito Fortino

Ebbene, il problema principale è che solo uno specialista FortiWeb può capirlo. Se durante l'orario lavorativo potessimo ancora monitorare le attività sospette in tempo reale, le indagini sugli incidenti notturni potrebbero essere ritardate. Quando le policy FortiWeb per qualche motivo non funzionavano, gli ingegneri del turno di notte non potevano valutare la situazione senza accedere al WAF e svegliavano lo specialista FortiWeb. Abbiamo esaminato i registri per diverse ore e abbiamo trovato il momento dell'attacco. 

Con tali volumi di informazioni, è difficile comprendere a colpo d'occhio il quadro generale e agire in modo proattivo. Quindi abbiamo deciso di raccogliere i dati in un unico posto per analizzare tutto in forma visiva, trovare l'inizio dell'attacco, identificarne la direzione e il metodo di blocco. 

Cosa hai scelto

Prima di tutto, abbiamo guardato alle soluzioni già in uso, per non moltiplicare inutilmente le entità.

Una delle prime opzioni era Nagiosche usiamo per monitorare infrastrutture ingegneristiche, infrastruttura di rete, avvisi di emergenza. Le guardie giurate lo usano anche per avvisare gli inservienti in caso di traffico sospetto, ma non sa raccogliere i log sparsi e quindi scompare. 

C'era un'opzione per aggregare tutto con MySQL e PostgreSQL o un altro database relazionale. Ma per estrarre i dati, è stato necessario scolpire la tua applicazione. 

Come raccoglitore di tronchi nella nostra azienda usano anche Analizzatore Forti di Fortino. Ma in questo caso, anche lui non si adattava. In primo luogo, è più affilato lavorare con un firewall Fortigate. In secondo luogo, mancavano molte impostazioni e l'interazione con essa richiedeva un'ottima conoscenza delle query SQL. E in terzo luogo, il suo utilizzo aumenterebbe il costo del servizio per il cliente.   

È così che siamo arrivati ​​all'open source in faccia ALCE

Perché scegliere ALK 

ELK è un insieme di programmi open source:

  • elasticsearch - un database di serie temporali, appena creato per lavorare con grandi volumi di testo;
  • Logstash – un meccanismo di raccolta dati in grado di convertire i log nel formato desiderato; 
  • Kibana - un buon visualizzatore, nonché un'interfaccia abbastanza amichevole per la gestione di Elasticsearch. Puoi usarlo per creare programmi che possono essere monitorati dagli ingegneri di turno durante la notte. 

La soglia di ingresso per ELK è bassa. Tutte le funzionalità di base sono gratuite. Cos'altro è necessario per la felicità.

Come hai messo tutto insieme in un unico sistema?

Indici creati e lasciato solo le informazioni necessarie. Abbiamo caricato tutti e tre i log FortiWEB in ELK: l'output era indexes. Si tratta di file con tutti i registri raccolti per un periodo, ad esempio un giorno. Se li visualizzassimo subito, vedremmo solo la dinamica degli attacchi. Per i dettagli, devi "fallire" in ogni attacco e guardare campi specifici.

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli

Ci siamo resi conto che prima dobbiamo impostare l'analisi delle informazioni non strutturate. Abbiamo preso campi lunghi come stringhe, come "Message" e "URL", e li abbiamo analizzati per ottenere maggiori informazioni per il processo decisionale. 

Ad esempio, utilizzando l'analisi, abbiamo estratto separatamente la posizione dell'utente. Ciò ha aiutato a evidenziare immediatamente gli attacchi dall'estero sui siti per gli utenti russi. Bloccando tutte le connessioni da altri paesi, abbiamo ridotto di 2 volte il numero di attacchi e abbiamo potuto gestire facilmente gli attacchi all'interno della Russia. 

Dopo l'analisi, hanno iniziato a cercare quali informazioni archiviare e visualizzare. Lasciare tutto nel registro era inappropriato: la dimensione di un indice era grande: 7 GB. ELK ha impiegato molto tempo per elaborare il file. Tuttavia, non tutte le informazioni sono state utili. Qualcosa è stato duplicato e occupava spazio extra: era necessario ottimizzare. 

All'inizio, abbiamo semplicemente esaminato l'indice e rimosso gli eventi non necessari. Ciò si è rivelato ancora più scomodo e più lungo rispetto al lavoro con i registri su FortiWeb stesso. L'unico vantaggio dell '"albero di Natale" in questa fase è che siamo stati in grado di visualizzare un lungo periodo di tempo su uno schermo. 

Non ci siamo disperati, abbiamo continuato a mangiare il cactus ea studiare ELK e credevamo che saremmo stati in grado di estrarre le informazioni necessarie. Dopo aver pulito gli indici, abbiamo iniziato a visualizzare ciò che è. Quindi siamo arrivati ​​a grandi dashboard. Abbiamo inserito i widget: visivamente ed elegantemente, un vero ЁLKa! 

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli

Catturato il momento dell'attacco. Ora era necessario capire come appare l'inizio dell'attacco sul grafico. Per rilevarlo, abbiamo esaminato le risposte del server all'utente (codici di ritorno). Eravamo interessati alle risposte del server con tali codici (rc): 

Codice (rc)

Nome

descrizione

0

GOCCIA

La richiesta al server è bloccata

200

Ok

Richiesta elaborata correttamente

400

Richiesta non valida

Brutta richiesta

403

Vietato

Autorizzazione negata

500

Errore del server interno

Il servizio non è disponibile

Se qualcuno ha iniziato ad attaccare il sito, il rapporto dei codici è cambiato: 

  • Se c'erano più richieste errate con codice 400 e lo stesso numero di richieste normali con codice 200, qualcuno stava cercando di hackerare il sito. 
  • Se, parallelamente, sono cresciute anche le richieste con codice 0, allora anche i politici di FortiWeb hanno "visto" l'attacco e gli hanno applicato dei blocchi. 
  • Se il numero di messaggi con codice 500 è aumentato, il sito non è disponibile per questi indirizzi IP, anche una sorta di blocco. 

Entro il terzo mese, avevamo creato una dashboard per tenere traccia di questa attività.

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli

Per non monitorare tutto manualmente, abbiamo impostato l'integrazione con Nagios, che ha interrogato ELK a determinati intervalli. Se registrava il raggiungimento dei valori di soglia mediante codici, inviava una notifica agli ufficiali di servizio circa l'attività sospetta. 

Combinati 4 grafici nel sistema di monitoraggio. Adesso era importante vedere sui grafici il momento in cui l'attacco non è bloccato ed è necessario l'intervento di un ingegnere. Su 4 diversi grafici, il nostro occhio era offuscato. Pertanto, abbiamo combinato i grafici e abbiamo iniziato a osservare tutto su uno schermo.

Durante il monitoraggio, abbiamo osservato come cambiano i grafici di diversi colori. Una raffica di rosso indicava che l'attacco era iniziato, mentre i grafici arancione e blu mostravano la reazione di FortiWeb:

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli
Qui va tutto bene: c'è stata un'ondata di attività "rosse", ma FortiWeb ha resistito e il programma di attacco è andato a vuoto.

Abbiamo anche disegnato per noi stessi un esempio di grafico che richiede un intervento:

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli
Qui possiamo vedere che FortiWeb ha aumentato l'attività, ma il grafico rosso degli attacchi non è diminuito. È necessario modificare le impostazioni WAF.

Anche le indagini sugli incidenti notturni sono diventate più facili. Il grafico mostra immediatamente il momento in cui è il momento di venire in difesa del sito. 

In che modo ELK aiuta gli ingegneri della sicurezza a combattere gli attacchi ai siti Web e a dormire sonni tranquilli
È quello che a volte succede di notte. Grafico rosso: l'attacco è iniziato. Blu - Attività FortiWeb. L'attacco non è stato completamente bloccato, siamo dovuti intervenire.

Dove andiamo

Ora stiamo addestrando gli amministratori di turno a lavorare con ELK. Gli assistenti imparano a valutare la situazione sulla dashboard e prendono una decisione: è il momento di rivolgersi a uno specialista FortiWeb, o le policy sul WAF saranno sufficienti per respingere automaticamente l'attacco. Quindi riduciamo il carico sugli ingegneri della sicurezza delle informazioni durante la notte e dividiamo i ruoli di supporto a livello di sistema. L'accesso a FortiWeb rimane solo con il centro di difesa informatica e solo loro apportano modifiche alle impostazioni WAF quando è urgentemente necessario.

Stiamo anche lavorando alla reportistica per i clienti. Prevediamo che i dati sulle dinamiche del lavoro WAF saranno disponibili nell'account personale del cliente. ELK renderà la situazione più chiara senza la necessità di fare riferimento al WAF stesso.

Se il cliente desidera monitorare la propria protezione in tempo reale, anche ELK tornerà utile. Non possiamo dare via l'accesso a WAF, poiché l'intervento del cliente nel lavoro può influire sul resto. Ma puoi prendere un ELK separato e darlo a "giocare". 

Questi sono gli scenari per l'utilizzo dell'albero di Natale che abbiamo accumulato ultimamente. Condividi i tuoi pensieri su questo e non dimenticare impostare tutto correttamenteper evitare perdite di database. 

Fonte: habr.com