Come identificare i bot dannosi per la tua rete in 5 passaggi

Malicious Bots on your Network
Malicious Bots on your Network

Non è un segreto che i bot dannosi svolgano un ruolo cruciale nelle violazioni di sicurezza sulle reti aziendali. I bot vengono spesso usati dai malware per propagarsi in una rete aziendale, tuttavia, l’identificazione e la rimozione di elementi dannosi è complicata dal fatto che molti processi di routine in un ambiente operativo, come gli aggiornamenti software, sfruttano la medesima tecnologia.

Fino a poco tempo fa non c’era un modo efficace per i team di sicurezza di distinguere tra bot “cattivi” e “buoni”. I feed open source e le regole delle community che pretendono di identificare i bot sono di scarso aiuto: contengono troppi falsi positivi. Alla fine, gli analisti della sicurezza finiscono per dover combattere contro logoranti avvisi legati all’analisi e a dover inseguire tutti gli alert di sicurezza irrilevanti attivati dai bot “buoni”.

In Cato abbiamo affrontato un problema simile nella protezione delle reti dei nostri clienti. Per risolverlo, abbiamo sviluppato un nuovo approccio. Si tratta di una metodologia multidimensionale implementata nella nostra strategia di sicurezza come servizio, che identifica il 72% in più di eventi dannosi rispetto a quanto sarebbe stato possibile utilizzando solo feed open source o regole della community.

La parte migliore è che puoi implementare una strategia simile sulla tua rete. I tuoi strumenti saranno lo “stock-and-trade” di qualsiasi ingegnere di rete: accesso alla rete, un metodo per gestire il traffico, sensore tipo al tocco e spazio su disco sufficiente per archiviare i pacchetti di una settimana. Ecco come analizzare queste acquisizioni di pacchetti per proteggere la rete al meglio.

I cinque vettori per identificare il traffico di bot dannosi

Come ho detto, usiamo un approccio multidimensionale. Sebbene nessuna variabile sia in grado di identificare con precisione i bot dannosi, le informazioni aggregate derivanti dalla valutazione di più vettori ci aiuterà a farlo. L’idea è di restringere gradualmente il campo dalle sessioni generate dalle persone a ciò che potrebbe indicare un rischio per la rete.

Il nostro processo è semplice:

  • discriminare i bot dalle persone,
  • distinguere tra browser e altri client,
  • individuare i bot all’interno dei browser,
  • analizzare il carico utile,
  • determinare il rischio di un target.

Approfondiamo ciascuno di questi passaggi.

Discriminare i bot dalle persone misurando la frequenza di comunicazione

I bot di tutti i tipi tendono a comunicare continuamente con i loro obiettivi. Ciò succede perché devono ricevere comandi, inviare segnali “keep-alive” o esfiltrare dati. Un primo passo per distinguere tra bot e persone è identificare le macchine che comunicano ripetutamente con un target,

perché è ciò che vuoi scoprire: gli host che comunicano con molti target periodicamente e continuamente. Nella nostra esperienza, una settimana di traffico è sufficiente per determinare la natura delle comunicazioni client-target. Statisticamente, più uniformi saranno queste comunicazioni, maggiore è la possibilità che siano generate da un bot (vedi Figura 1).

Grafico di frequenza
Figura 1: Questo grafico di frequenza mostra le comunicazioni dei bot a metà maggio di quest’anno; da notare la distribuzione del tutto uniforme delle comunicazioni, un significativo indicatore del traffico generato dai bot.
Unisciti alla nostra Masterclass sulla sicurezza informatica, che spazia dalla disinformazione ai deepfake

 

Distinguere tra browser e altri client

Sapere semplicemente che un bot esiste solo su una macchina non aiuterà molto: come abbiamo detto, la maggior parte dei dispositivi genera traffico bot. Per questo, è necessario esaminare il tipo di client che comunica sulla rete. In genere, i bot “buoni” esistono all’interno dei browser mentre i “cattivi” operano al di fuori di essi.

I sistemi operativi hanno diversi tipi di client e librerie che generano traffico. Ad esempio, “Chrome”, “WinInet” e “Java Runtime Environment” sono tutti tipi di client diversi. All’inizio, il traffico che generano può sembrare lo stesso, ma ci sono alcuni modi per distinguere tra i client e arricchire il nostro contesto.

Inizia esaminando le intestazioni a livello di applicazione. Dato che la maggior parte delle configurazioni dei firewall consente di usare HTTP e TLS in qualsiasi indirizzo, molti bot sfruttano questi protocolli per comunicare con i loro target. È possibile identificare i bot che operano all’esterno dei browser identificando gruppi di funzionalità HTTP e TLS configurate dal client.

Ogni sessione HTTP ha un set di intestazioni di richiesta che la definiscono e stabiliscono il modo in cui il server deve gestirla. Queste intestazioni, il loro ordine e i relativi valori vengono impostati durante la composizione della richiesta HTTP (vedi Figura 2). Allo stesso modo, gli attributi di sessione TLS, come suite di crittografia, elenco delle estensioni, ALPN (Application-Layer Protocol Negotiation) e curve ellittiche, sono stabiliti nel pacchetto TLS iniziale, detto “client hello”, che non è crittografato. Il clustering delle diverse sequenze di attributi HTTP e TLS indicherà probabilmente bot diversi.

In questo modo, ad esempio, ti consentirà di individuare il traffico TLS con diverse suite di crittografia. È un buon indicatore che il traffico si genera al di fuori del browser – un approccio davvero diverso da quello umano e, quindi, un buon indicatore del traffico bot.

sequenza di intestazioni di pacchetti
Figura 2: Ecco un esempio di sequenza di intestazioni di pacchetti (separate da virgole) generate da una libreria crittografica in Windows. Le modifiche alla sequenza, alle chiavi e al valore delle intestazioni possono aiutarti a classificare i bot

Individuare i bot all’interno dei browser

Un altro metodo per identificare i bot dannosi consiste nell’esaminare informazioni specifiche contenute nelle intestazioni HTTP. I browser Internet di solito hanno un’immagine di intestazione chiara e standard. In una normale sessione di navigazione, cliccando su un collegamento all’interno di un browser si genererà un’intestazione “referrer” che verrà inclusa nella successiva richiesta per quell’URL. Il traffico bot di solito non ha un’intestazione “referrer” o, peggio, è falsificato. Identificare i bot che hanno lo stesso aspetto in ogni flusso di traffico probabilmente è un indice della relativa dannosità.

utilizzo dell'intestazione del referrer
Figura 3: Ecco un esempio di utilizzo dell’intestazione di un referrer all’interno delle intestazioni di una sessione di esplorazione

“User-agent” è la stringa più nota, che rappresenta il programma che avvia una richiesta. Varie fonti, ad esempio, fingerbank.org, corrispondono ai valori agente utente con le versioni note del programma. L’utilizzo di queste informazioni può aiutare a identificare bot anomali. Ad esempio, i browser più recenti utilizzano la stringa “Mozilla 5.0” nel campo “user-agent”. Trovare una versione precedente di Mozilla o la sua completa assenza indica una stringa agente utente bot anomala. Nessun browser affidabile creerà traffico senza un valore “user-agent”.

Analizzare il carico utile

Detto questo, non vogliamo limitare la nostra ricerca dei bot solo ai protocolli HTTP e TLS. Questo si può fare guardando oltre a detti protocolli. Ad esempio il protocollo IRC, in cui i bot IRC hanno avuto un ruolo nell’attività delle botnet dannose. Abbiamo anche osservato campioni di malware noti che utilizzano protocolli sconosciuti proprietari su porte note, che si potrebbero contrassegnare utilizzando l’identificazione dell’applicazione.

Inoltre, la direzione del traffico (in entrata o in uscita) ha un valore significativo in questo caso.
I dispositivi connessi direttamente a Internet sono costantemente esposti alle attività di scansione e, pertanto, si potrebbe individuare questi bot tra gli scanner in entrata. D’altra parte, l’attività di scansione in uscita indica un dispositivo infettato da un bot con funzioni di scansione. Ciò potrebbe essere dannoso per la destinazione sottoposta a scansione e mettere a rischio la reputazione dell’indirizzo IP dell’organizzazione. Il grafico sottostante mostra i picchi dei flussi di traffico in un breve lasso di tempo. Ciò potrebbe indicare l’attività di bot con funzioni di scansione. Si può analizzare questo comportamento sfruttando il calcolo flussi/secondo.

Operazione di scansione in uscita in base alla frequenza
Figura 4: Ecco un esempio di un’operazione di scansione in uscita ad alta frequenza

Analisi del target: Conosci le tue destinazioni

Fino ad ora abbiamo cercato indicatori sui bot usando la frequenza delle comunicazioni client-server e nel tipo di client. Ora, proviamo un’altra dimensione: la destinazione o l’obiettivo. Per determinare i target dannosi, si possono considerare due fattori: reputazione e popolarità.

La reputazione del target calcola la probabilità che un dominio sia dannoso in base all’esperienza raccolta da molti flussi. La reputazione è determinata da servizi di terze parti o attraverso un calcolo eseguito in autonomia, che tiene nota di ogni volta che gli utenti segnalano un obiettivo come dannoso.

Molto spesso, tuttavia, le fonti più semplici necessarie a determinare la reputazione dei target, come i feed di reputazione URL, da sole non sono sufficienti. Ogni mese vengono registrati milioni di nuovi domini. Con così tanti nuovi domini, i meccanismi basati sulla relativa reputazione mancano di un contesto sufficiente per classificarli correttamente, offrendo un alto tasso di falsi positivi.

Facciamo una sintesi

Mettiamo insieme tutto ciò che abbiamo imparato per identificare le sessioni come segue:

  • elementi creati da una macchina piuttosto che da una persona
  • elementi generati al di fuori del browser o che generano traffico del browser con metadati anomali
  • elementi che comunicano con obiettivi a bassa popolarità, in particolare, se non sono classificati o contrassegnati come dannosi, di conseguenza, si dovranno considerare come sospetti. I tuoi bot legittimi e “buoni” non dovrebbero comunicare con obiettivi a bassa popolarità.

Esercizio: sotto lo scudo di rete del malware Andromeda

È possibile utilizzare una combinazione di questi metodi per individuare vari tipi di minacce sulla rete. Diamo un’occhiata a un esempio: come rilevare il bot Andromeda. Andromeda è un downloader molto comune per altri tipi di malware. Identifichiamo Andromeda analizzando i dati seguendo quattro dei cinque approcci che abbiamo discusso.

Reputazione dei target

Abbiamo notato la comunicazione con “disorderstatus[.]ru” che è un dominio identificato come dannoso da diversi servizi di reputazione. Le categorie legate al sito tratte da varie fonti sembrano essere: “fonte di infezione nota; reti di bot”. Tuttavia, come abbiamo notato, questo fattore da solo non è sufficiente in quanto non indica se l’host specifico è stato infettato da Andromeda; un utente potrebbe aver navigato su quel sito. Inoltre, come detto, il tuo URL verrà classificato come “sconosciuto” o “non dannoso”.

Popolarità dei target

Su diecimila utenti, solo la macchina di un utente comunica con questo target: è molto insolito. Ciò conferisce al target un punteggio di popolarità basso.

Frequenza di comunicazione

Nell’arco di una settimana abbiamo visto un traffico continuo per tre giorni tra il client e il target. La comunicazione ripetitiva è di nuovo un altro indicatore di un bot.

Comunicazione client-target1
Figura 5: Comunicazione client-target tra l’utente e disorderstatus[.]ru. La frequenza è rappresentata su tre giorni a intervalli di un’ora

Analisi dell’intestazione

Lo user-agent richiedente è “Mozilla/4.0”, un browser attuale, ma non valido, che indica che si tratta probabilmente di un bot.

Immagine intestazione HTTP
Figura 6: Sopra c’è l’immagine dell’intestazione HTTP del traffico che abbiamo individuato con disorderstatus[.]ru. Da notare che non c’è alcuna intestazione “referrer” in nessuna di queste richieste. Anche il valore User-Agent è impostato su Mozilla/4.0. Entrambi sono indicatori di una sessione di Andromeda.

Sintesi

Il rilevamento dei bot su reti IP non è un compito facile, ma sta diventando una parte fondamentale delle pratiche di sicurezza di rete e della caccia ai malware in particolare. Combinando le cinque tecniche che abbiamo presentato qui, si possono rilevare i bot dannosi in modo più efficiente.

Segui i link per saperne di più sui nostri servizi di sicurezza, sul servizio Cato Managed Threat Detection and Response e sulla piattaforma SASE.


Related Topics

Related Articles