Quando cerchiamo di individuare e bloccare una minaccia informatica, la prima cosa che ci viene in mente sono spesso gli IoC (Indicator of Compromise), ovvero dati atomici che rappresentano informazioni tecniche specifiche, come hash di file, indirizzi IP, domini, stringhe presenti all’interno di un eseguibile, ecc… Sebbene questi indicatori siano molto utili per identificare attività malevole, non sono sufficienti per prevenire eventuali varianti della stessa minaccia, poiché possono essere facilmente modificati dagli attaccanti. Ad esempio, è sufficiente modificare l’hash di un eseguibile malevolo oppure registrare un nuovo dominio per un server C&C, e l’indicatore smette di essere utile.

Per superare questo problema, si ricorre agli indicatori comportamentali, i quali si basano sull’analisi dei comportamenti osservati da una minaccia. Grazie a questi indicatori è possibile creare regole di detection molto più robuste, in grado di rilevare anche eventuali variazioni di una stessa campagna.

Tra gli indicatori comportamentali troviamo anche l’entropia, una funzione matematica utile a misurare il grado di “casualità” di una stringa.
In parole semplici, più una stringa contiene caratteri casuali, più la sua entropia sarà alta. Questo parametro può aiutarci a riconoscere elementi anomali, come nomi di file o domini generati automaticamente da malware, che appaiono “strani” proprio perché troppo casuali rispetto al normale.

Shannon Entropy

In informatica, l’entropia è un concetto preso in prestito dalla teoria dell’informazione di Claude Shannon.

Per calcolare l’entropia di Shannon di una stringa, si utilizza la formula:

dove:

  • “pi”​ è la probabilità di occorrenza del carattere “i”
  • la somma è su tutti i caratteri distinti della stringa

Esempio:

Stringa: “cijjdejdhekhflm”
Lunghezza totale: 15

Frequenza dei caratteri:

Calcolo dell’entropia:

Come facciamo a capire se il valore dell’entropia è alto oppure no?
Per rispondere a questa domanda dobbiamo prima conoscere qual è il valore massimo che l’entropia può assumere.
Purtroppo, questo valore non è unico, ma dipende dal tipo di alfabeto utilizzato per generare le stringhe.
In altre parole, il valore massimo dell’entropia varia in base al numero di simboli distinti presenti nell’alfabeto, indicato con la lettera k:

Perché l’entropia è utile nel Threat Hunting

Nel Threat Hunting, l’obiettivo non è soltanto rilevare minacce già conosciute, ma soprattutto scovare comportamenti anomali che potrebbero indicare attività malevole ancora sconosciute.

Ed è proprio qui che entra in gioco l’entropia. Molti malware o strumenti utilizzati dagli attaccanti generano automaticamente nomi di file, domini o chiavi di registro casuali, proprio per eludere i controlli basati su firme o su IoC. Calcolando l’entropia di questi elementi, ad esempio dei domini contattati dai dispositivi aziendali, un analista può individuare valori anomali e riconoscere elementi “troppo casuali per essere leciti”.
In questo modo, anche un dominio o un file mai visto prima può essere segnalato come potenzialmente sospetto.

L’entropia può essere applicata a qualsiasi tipo di dato, come nomi di file, domini, chiavi di registro o indirizzi URL, per capire quanto questi si discostano da ciò che normalmente ci si aspetterebbe di vedere in un sistema legittimo.

Alcuni Esempi pratici

  • Rilevazione di domini DGA (Domain Generation Algorithm):
    Alcuni malware generano migliaia di domini casuali per connettersi ai server di comando e controllo (C2). Analizzando l’entropia, è possibile identificarli automaticamente.
  • Analisi di file sospetti:
    File o eseguibili con nomi apparentemente casuali (come x9df93b.exe) possono essere segnalati per ulteriori indagini.
  • Controllo di chiavi di registro o processi:
    Un processo legittimo come explorer.exe presenta un basso livello di entropia, mentre una chiave o un processo con nome del tipo A4d93zPq1 può indicare attività di offuscamento o evasione.

In sintesi, l’entropia è una vera e propria bussola matematica che aiuta gli analisti a individuare elementi anomali all’interno di grandi volumi di dati, anche in assenza di indicatori di compromissione precisi.

Conclusioni

In conclusione, l’entropia è uno strumento molto utile per capire quanto un insieme di dati sia “ordinato” o “caotico”. L’entropia di Shannon aiuta a misurare quanto le informazioni siano imprevedibili, ma non sempre basta per avere un quadro completo.

Quando vogliamo capire quanto i nostri dati si allontanino da ciò che ci aspettiamo, entra in gioco l’entropia relativa, una misura più precisa e affidabile in molti casi pratici.

Per questo motivo, anche se l’entropia di Shannon resta un ottimo punto di partenza, l’entropia relativa permette di fare un passo avanti e ottenere analisi più accurate. Nel prossimo articolo parleremo proprio di questa seconda misura e di come può essere applicata in modo efficace.

Entropy in CrowdStrike

Entropy in Splunk

Entropy in SentinelOne

Questa query è valida per le stringe composte dall’alfabeta [a-z]

Ti è piaciuto l’articolo? Seguici su Linkedin per sostenerci!

consigliati