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.

È proprio in questo contesto che l'entropia diventa uno strumento particolarmente utile. Molti malware e strumenti utilizzati dagli attaccanti generano automaticamente nomi di file, domini, chiavi di registro e altri artefatti pseudo-casuali per eludere i controlli basati su firme o Indicatori di Compromissione (IoC).

Calcolando l'entropia di questi elementi, ad esempio dei domini contattati dai dispositivi aziendali, un analista può individuare valori anomali e riconoscere pattern che risultano "troppo casuali" per essere considerati legittimi.

L’entropia può essere applicata a qualsiasi tipo di dato, come nomi di file, domini, URL, ecc... 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):
    Alcune famiglie di malware utilizzano algoritmi di Domain Generation Algorithm (DGA) per creare migliaia di nomi di dominio casuali con cui tentare la comunicazione con i server di Command and Control (C2). Poiché tali domini presentano generalmente un'elevata entropia, la loro identificazione può essere automatizzata attraverso il calcolo dell'entropia.
  • Analisi di file sospetti:
    File o eseguibili con nomi apparentemente casuali, possono rappresentare un possibile segnale di attività sospetta. Un valore di entropia elevato può aiutare a mettere in evidenza questi artefatti, soprattutto quando si discostano da pattern più tipici e coerenti presenti nell’ambiente.È importante però ricordare che un nome “casuale” non è di per sé un indicatore di compromissione: può derivare anche da processi legittimi, packaging automatizzati o software che utilizza naming non descrittivo. L’entropia, quindi, non identifica una minaccia, ma contribuisce a selezionare elementi che meritano un’analisi più approfondita.
  • Analisi delle Command Line:
    Un altro ambito in cui l’entropia può essere utile è l’analisi delle command line dei processi. In un ambiente aziendale, molti comandi legittimi tendono a essere relativamente strutturati e ripetitivi, ad esempio:

Questi comandi, pur variando nei parametri, mantengono una struttura riconoscibile e spesso prevedibile. Al contrario, in contesti malevoli o di offuscamento si possono osservare command line molto più “rumorose” o apparentemente casuali, ad esempio:

In questi casi, il calcolo dell’entropia sulla command line può aiutare a evidenziare stringhe insolite rispetto al comportamento medio degli endpoint dell’organizzazione.

Un valore elevato può quindi indicare la presenza di offuscamento, encoding (es. Base64), concatenazioni anomale o variabili costruite dinamicamente, tutte tecniche frequentemente utilizzate per nascondere l’intento reale del comando.

Tuttavia, anche qui è fondamentale evitare interpretazioni automatiche: alcune applicazioni legittime (installer, script di deployment, tool di automazione) possono generare command line complesse o apparentemente “rumorose”. L’entropia, quindi, non identifica un attacco, ma aiuta a dare priorità ai casi che meritano analisi approfondita.

Conclusioni

L'entropia è uno strumento efficace per valutare il livello di ordine o casualità presente in un insieme di dati. In particolare, l'entropia di Shannon permette di quantificare quanto le informazioni siano prevedibili o meno, rappresentando un ottimo punto di partenza per molte analisi.

Tuttavia, in alcuni scenari non è sufficiente sapere quanto un dato sia casuale: è altrettanto importante capire quanto si discosti da ciò che normalmente ci si aspetta.

In questi casi entra in gioco l'entropia relativa, una misura che consente di confrontare il comportamento osservato con quello atteso e di evidenziare in modo più preciso eventuali differenze.

Per questo motivo, sebbene l'entropia di Shannon rimanga una metrica fondamentale, l'entropia relativa rappresenta un'evoluzione naturale che permette di ottenere analisi più accurate e contestualizzate. Nel prossimo articolo approfondiremo proprio questo concetto e vedremo come applicarlo.

Entropy in CrowdStrike

Entropy in Splunk

Entropy in SentinelOne

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