16/07/2023 8m read

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

Avidan Avraham
Avidan Avraham
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

Avidan Avraham

Avidan Avraham

Avidan is a Security Researcher in Cato Networks. Avidan has a strong interest in cybersecurity, from OS internals and reverse engineering to network protocols analysis and malicious traffic detection. Avidan is also a Big-data and machine learning enthusiast who enjoys solving complex problems related to this world. Previously he worked at IBM Trusteer and was responsible for a vast part of the company's detection and prevention capabilities: enterprise security threats & exploits, financial malware variants and more. Today, in Cato Research Labs, he's focusing on network based security research & novel methods for finding threats in enterprise network environments.

Read More