La pratica del Threat Hunting è di supporto alla soluzione di problemi complessi e l’analista deve prendere in considerazione una notevole quantità di informazioni attraverso tools differenti in contesti eterogenei. Tecnicamente parlando è una vera e propria baraonda. Per dare una direzione alle attività sono stati sviluppati dei framework che possono aiutare a mettere ordine e ad agire in modo strutturato.
Indubbiamente tra i più famosi c’è MITRE che ci ha aiutato a spostare l’attenzione su come è strutturata la minaccia per intercettare potenziali attacchi. Il modello prende infatti in considerazione il modus operandi dell’attaccate che è stato analizzato e scomposto in una “matrice”, la famigerata Enterprise Matrix dove sono raccolte le Tattiche, le Tecniche e le sotto-tecniche documentate.

Conoscere e comprende la struttura dell’Enterprise Matrix aiuta a comprendere anche l’evoluzione di un attacco e come questo si svolge nelle sue fasi intermedie. Per una figura come la mia che principalmente si occupa di sicurezza offensiva queste informazioni sono ben note, ma per chi lavora in contesti di difesa è diverso e si tratta di nozioni da studiare ed acquisire.
Il materiale relativo alla certificazione che sto studiando le illustra tutte quindi facciamo un bel ripassone 🙂
Reconnaissance: l’attaccante raccoglie informazioni sul target usando sia strumenti passivi che azioni specifiche “contro” il target come scansioni del perimetro esterno o analisi dei dati raccolti da siti istituzionali.
Resource Development: è una fase di preparazione durante la quale il bad actor predispone gli strumenti per eseguire l’attacco, strumenti che possono essere predisposti o acquistati.
Initial Access: la tattica si riferisce alle diverse metodologie che possono essere messe in campo per guadagnare un primo accesso alla rete target.
Execution: la tattica si riferisce all’esecuzione di azioni sui sistemi target solitamente per ottenere obiettivi specifici come una escalation di privilegi o la raccolta di ulteriori informazioni.
Persistence: l’attaccante opera in modo di mantenere un accesso permanente all’infrastruttura target.
Privilege Escalation: solitamente il primo livello di accesso ha bassissimi privilegi, l’attaccante sviluppa quindi una serie di azioni finalizzate ad ottenere maggiori provilegi sui sistemi compiti.
Defense Evasion: le reti solitamente presentano diversi sistemi di difesa e detection che l’attaccante cerca di ingannare o disattivare.
Credential Access: se possibile l’attaccante cerca di ottenere ulteriori credenziali valide all’interno della rete per utilizzarle al fine di accedere a nuovi sistemi o con differenti privilegi.
Discovery: all’interno della rete l’attaccante cerca di comprendere come è strutturato l’ambiente con azioni di discovery di altri host o servizi.
Lateral Movement: si riferisce a tutte le tecniche usare per spostarsi all’interno della rete target passando da un sistema all’altro.
Collection: anche all’interno della rete è necessario raccogliere nuove informazioni per valutare e identificare i path sfruttabili per raggiungere i propri obiettivi.
Command and Control: tema di cui ho parlato moltissimo su questo blog e sul canale YouTube e riguarda le tecniche che possono essere messe in campo per governare un sistema compromesso da remoto.
Exfiltration: si riferisce alla capacità del threat actor di portare fuori dalla rete informazioni.
Impact: questa fase fa riferimento alle tecniche che vengono utilizzare per “finalizzare” l’attacco con relative compromissioni a livello di integrità del sistema e/o dei dati.
Saper navigare il framework è estremamente utile per dare struttura alle attività dei threat actor e imparare a riconoscere i pattern ed i relativi tools che possono essere utilizzati.
La nomenclatura utilizzata da MITRE è una standard e fa da “lingua comune” nello scambio di informazioni. Ad esempio se stiamo indagando un’esecuzione di un comando powershell che ci ha insospettito o che ha insospettito uno dei sistri sistemi di detection possiamo analizzare il contesto ed attribuirgli un’intenzione. Qualche giorno fa spiegavo in un blog post su ClickFix come un comando Powershell può essere utilizzato come stage iniziale da parte di un Threat Actor per installare un C2.
Spesso la celeberrima “matrix” viene usata dai SOC Team solo per mappare l’azione del bad actor che si sta osservando, ma il livello di documentazione e correlazione va molto oltre. Ad esempio vengono messe in relazione TTPs e gruppi in modo da poter analizzare il comportamenti tipico di uno specifico bad actor.

La funzione è disponibile tramite il tool che mette a disposizione il “Navigator Layers” del gruppo che si sta analizzando ed è un comodo strumento visuale assieme all’elenco delle TTPs che viene riportato nella documentazione.

Dal punto di vista del Threat Hunter saper individuare un comportamento malevolo ha molto più valore rispetto ad individuare uno specifico IoC. Per fare un esempio pratico potremmo dire che è più interessante riconoscere un C2 grazie all’analisi del comportamento dell’host o del traffico rispetto a riconoscerlo grazie al fatto che l’IP del C2 server presenta una low-reputation. Ovviamente lavorare sul riconoscimento dei pattern consente di costruire regole di detection molto più efficaci rispetto alle regole che si basano sul riconoscimento di un IoC.
Esistono diverse metodologie di hunting che solitamente vengono utilizzate e la documentazione Cisco che prende in considerazione in particolare tre: TaHiTI, Cyber Kill Chain, OODA Loop, Diamond Model, Hunting Maturity Model.
Targeted Hunting Integrating Threat Intelligence è un processo che integra Threat Hunting e Threat Int. per ottenere un approccio orientato alla valutazione del rischio. Il processo è molto lineare ed è diviso in tre fasi.
Nella prima fase il team di Threat Hunting viene attivato da un elemento esterno che può avere differenti origini:
Con le informazioni in proprio possesso il team definisce un abstract in merito al task di hunting in cui vengono documentati tutti i dettagli: data della sessione (necessaria per il riferimento ai dati che verranno utilizzati), ipotesi iniziale, elementi di partenza, priorità, … tutte informazioni che devono essere gestite come gli elementi di un case o di un ticket. Questi elementi vanno a costituire una “coda” delle attività di hunting che, come detto in precedenza, sono da intendere come task pianificabili, non come incidenti.
Nella seconda fase il team lavora sui dati di analisi definendo e documentando dettagli rispetto a quando riportato nell’abstract. I dati vengono quindi arricchiti con nuovi elementi di contesto e viene definito uno scope di ricerca sulla base dell’ipotesi iniziale. Le ipotesi riportate nell’abstract devono essere quindi verificate per evitare di giungere a conclusioni errate.
In questa fase devono essere identificate tutte le fonti dati utili alla verifica delle ipotesi iniziali: dati di traffico, logs, telemetria, data analitici ed eventi di sicurezza. Tutti i dati raccolti devono essere salvati in una repository centralizzata per consentirne l’analisi strutturata anche grazie a tools di terze parti.
Vengono definiti quattro specifici task in questa fase:
L’analisi dei dati deve portare ad un verifica dell’ipotesi iniziale che può essere così provata (l’analisi conferma l’ipotesi), non confermata o inconclusiva (non ci sono abbastanza dati per provare o meno l’ipotesi iniziale).
La terza e conclusiva fase è relativa alla documentazione ed al report finale: tutto va dettagliato in un documento tecnico che descrivere cosa è stato fatto e che dati sono emersi per poi essere illustrato ai team interessati.
Il report è estremamente importante in quanto potrebbe interessare diversi team in modo diverso e con urgenze diverse:
L’acronimo sta per Observe, Orient, Decide, Act ed è un modello di decision making ideato da uno stratega militare: John Boyd.
Il threat hunting, come esercizio/task, consente un’applicazione efficace del modello:
Non esistono ovviamente vincoli specifici ma il modello descrive perfettamente il loop tipico dei task di hunting e può essere applicato anche a diverse attività di assessment orientate al miglioramento della capacità di detection.
Sul mondo dei “maturity model” sarebbe bello fare degli approfondimenti: sono convinto che siano molto utili per capire cosa un’organizzazione è effettivamente in grado di fare, in questo caso con focus la capacità di Hunting (personalmente ho molto approfondito i modelli che misurano la capacità di detection, ad esempio).

Il modello presenta 5 “voti” che esprimono uno stato sulla capacità di hunting in modo da ottenere una valutazione obiettiva sulle aree da migliorare per arrivare ad un processo di hunting funzionale.
Questa parte del corso è molto teorica ma serve ad affrontare con struttura i case study che stanno per arrivare. È evidente che non ci si può improvvisare Threat Hunter e c’è molta struttura e metodo in questa disciplina.
Con il prossimo argomento torno un po’ in confort zone: Threat Modeling.