L’adversary emulation offre un modo concreto per misurare la resilienza di una rete contro un attaccante ed individuare effettivi percorsi di attacco che l’attaccante analizzato potrebbe utilizzare contro il sistema target che si vuole proteggere.
Questa attività permette di operare in modo proattivo per costruire meccanismi di difesa efficaci e mitigare i rischi per il profitto e la reputazione dell’organizzazione.
Indice degli argomenti
Adversary emulation: cos’è e a cosa serve
L’adversary emulation richiede di conoscere ed utilizzare le TTP, tattiche, tecniche e procedure che descrivono le attività svolte dagli avversari che vorremmo emulare.
Le tattiche rappresentano il livello più alto nell’analisi del comportamento, le tecniche forniscono una visione più dettagliata di esso nel contesto di una tattica e le procedure costituiscono il livello più basso di descrizione nell’ambito di una tecnica.
Più è evoluto l’attaccante che si vuole emulare, più devono essere sofisticate le TTP che il processo di emulazione deve utilizzare. Una attività che non sia basata su TTP non può essere considerata di adversary emulation.
Esistono due modi per stabilire quali TTP considerare. Il primo, più robusto, si focalizza sul caso pessimo, ovvero sull’attaccante più pericoloso per una vasta classe di sistemi, tra cui quello target. La seconda strategia utilizza il risultato di un lavoro di threat intelligence che raccolga informazioni sui potenziali attaccanti futuri o che hanno già operato in passato.
Questo tipo di conoscenza, basata su evidenze e fornita di contesti, meccanismi, indicatori di compromissione ed implicazioni, può permettere di rimanere aggiornati sulle evoluzioni delle TTP di un attaccante e sulle metodologie di uno specifico avversario attivo nel mondo reale, complete di obiettivi, metodi e tecniche comunemente utilizzate nei suoi attacchi.
Sfortunatamente, quando l’adversary emulation è una attività manuale si rivela complicata e costosa in termini di tempo e risorse. La manualità, inoltre, rende impossibile (nella maggior parte dei casi) testare completamente le superfici delle reti in esame, sempre più vaste e complesse.
Tali limitazioni hanno indirizzato la ricerca ad automatizzare (in parte o per intero) l’adversary emulation. Ciò pone sfide estremamente complesse, che vanno dalla programmazione della singola tecnica di attacco alla definizione di strategie per comporre e coordinare le tecniche in uno specifico attacco reale.
I problemi principali, sia per difficoltà che per complessità computazionale, nascono quando si vuole simulare in modo estremamente dettagliato il comportamento dell’avversario e valutare come le informazioni parziali che un attaccante possiede influenzino la scelta delle sue azioni.
Il possesso di informazioni parziali è una differenza significativa rispetto ai planning tradizionali dove la costruzione di un piano utilizza informazioni accurate e complete sul sistema complessivo in cui si opera.
Altri punti critici dell’automatizzazione sono la difficile validazione delle tecniche sviluppate e della corretta quantificazione delle dipendenze tra strategie di attacco e le caratteristiche del sistema target.
Adversary emulation e penetration test
Alcuni considerano le attività di penetration test come alternativa alla adversary emulation. Le tradizionali attività di penetrazione (pentest) permettono di identificare e sfruttare alcune delle vulnerabilità presenti su un sistema.
Generalmente, operano su un perimetro ben definito, un’applicazione o un segmento di rete, per migliorarne la robustezza rispetto agli attacchi. Non vi è però alcuna garanzia dell’effettivo miglioramento di tale robustezza, in quanto la chiusura dei percorsi di attacco scoperti dal test può spingere un vero attaccante ad usarne altri, che potrebbero avere una migliore probabilità di successo.
Altri limiti riguardano l’incapacità di misurare il grado d’esposizione ad una minaccia realistica e di testare la reazione completa del sistema target. Infatti, quando un test di penetrazione ha successo e riesce a far breccia nel perimetro, l’attacco viene interrotto e lo scenario di post-compromissione non viene esplorato.
Questo comporta un’analisi parziale sia delle capacità di rilevamento che dell’effettiva postura difensiva della rete. Ancora più complessa è l’analisi del fallimento di un penetration test perché non si sa se debba essere attribuito alla robustezza del sistema o alle ridotte competenze del tester.
Le attività di adversary emulation offrono una soluzione che evita i difetti del tradizionale pentesting, analizzando in profondità le aree tralasciate da un test di questo tipo. L’emulazione di avversari reali consente inoltre di testare anche aspetti sia tecnici che sociali ed umani utilizzando anche strategie di ingegneria sociale.
L’utilizzo di adversary emulation permette di evitare i risultati paradossali di un penetration test citati in precedenza dove il deployment di controlli o contromisure per limitare gli impatti di una vulnerabilità costringono gli attaccanti a scoprire ed utilizzare nuovi percorsi di attacco che possono aumentare la loro probabilità di successo.
La MITRE ATT&CK matrix
Il framework Adversarial Tactics, Techniques & Common Knowledge (ATT&CK), è una base di conoscenza accessibile a livello globale di tattiche e tecniche avversarie basate su osservazioni del mondo reale. L’enfasi è posta principalmente sulla descrizione delle azioni che gli attaccanti eseguono in scenari post-compromessi per raccogliere utili informazioni sul loro comportamento.
Questa conoscenza permette di sviluppare specifici modelli di attaccanti e di migliorare le capacità di intrusion detection.
La definizione del modello a partire da vere intrusioni facilita l’applicazione dei suoi risultati ad ambienti reali e semplifica i confronti tra avversari diversi.
Il framework offre un doppio livello di astrazione (tattiche e tecniche) con lo scopo di diminuire la distanza tra i comportamenti studiati e le corrispondenti difese da adottare per mitigarli.
Di recente, per migliorare la capacità descrittiva del framework sono state introdotte le sotto-tecniche (in versione beta). Le tattiche e le tecniche possono essere rappresentate come matrici dove una colonna rappresenta una tattica e contiene le tecniche corrispondenti.
Il framework definisce in realtà altre matrici:
- Enterprise,
- Mobile
- ICS.
La matrice Enterprise è composta da tecniche e tattiche che si applicano ai sistemi Windows, Linux, MacOS o Cloud. Quest’ultima è ulteriormente partizionata nelle piattaforme AWS, GCP, Azure, AzureAD, Office 365, Saas. La matrice Mobile contiene le tattiche e tecniche per dispositivi mobili. Infine, la matrice ICS considera i sistemi di controllo industriale.
Il framework contiene anche la matrice PRE-ATT&CK: una raccolta di informazioni complementari alla matrice ATT&CK. Se non specificato diversamente, nel seguito “matrice ATT&CK” è usato come abbreviazione “matrice ATT&CK Enterprise”, l’origine dell’intero framework.
Una sottomatrice della matrice ATT&CK.
ATT&CK ha riscosso grande successo diventando uno standard de facto per la descrizione degli attacchi e degli attaccanti. Infatti, sono numerosi gli studi e gli strumenti basati sui principi e sulle informazioni fornite da ATT&CK. Tra questi spiccano CALDERA e Metta, due progetti di adversary emulation automatizzata, Atomic Red Team, un insieme di test atomici per emulare comportamenti descritti dalla matrice ATT&CK. Infine, MITRE Cyber Analytics Repository, è una raccolta di analisi utili al rilevamento dei comportamenti descritti dalla matrice ATT&CK.
Lo sviluppo della matrice ATT&CK è focalizzato sul rilevamento delle violazioni all’interno della rete e non solo sulla prevenzione della penetrazione nel perimetro. Secondo la filosofia di ATT&CK, attualmente uno dei problemi da affrontare non è sapere se una rete sia stata violata o meno, ma bensì scoprire quando questa violazione è avvenuta.
Se le intrusioni sono inevitabili, è fondamentale capire da quanto tempo gli attaccanti sono all’interno della rete e quali risorse controllano. Non riuscire a rilevare la loro presenza e a rispondere con forza può provocare impatti notevoli.
Il tradizionale modello di difesa perimetrale e dipendente dalla prevenzione offre significativi vantaggi all’attaccante, a cui basta avere successo una sola volta, e costringe i difensori a non commettere errori. Una strategia di difesa efficace deve ribaltare questa situazione, forzando gli attaccanti ad utilizzare tecniche più complesse, che richiedono più tempo e riducono la probabilità di successo.
In quest’ottica diventa fondamentale una elevata capacità di rilevamento, con un monitoraggio continuo per individuare tracce di eventuali intrusioni. L’aumentare della capacità di rilevamento, forza gli attaccanti ad operare in modo stealth con un significativo aumento del talento e del lavoro da investire nell’intrusione.
Altro scopo di ATT&CK è di aumentare la condivisione di informazioni, fornendo un linguaggio comune per la descrizione di attacchi ed attaccanti.
Tattiche della matrice ATT&CK
Le tattiche rappresentano il più alto livello di astrazione del framework. Ognuna descrive uno degli obiettivi tattici di un attaccante per raggiungere il fine ultimo dell’intrusione e definisce un contesto alle tecniche che comprende.
L’introduzione delle tattiche permette di individuare i comportamenti a lungo termine degli attaccanti, indipendenti dalla specifica soluzione tecnica utilizzata per realizzare la tattica considerata. Rispetto ad altri framework, le tattiche non sono sequenziali perché attaccanti distinti possono eseguirle in ordine diverso.
Poiché ATT&CK assume che il sistema target sia già stato violato, l’unica tattica ordinata è l’intrusione iniziale (initial access). Qualsiasi attività svolta in precedenza è coperta dal framework PRE-ATT&CK.
Attualmente ci sono 12 tattiche:
- Initial Access: comprende le tecniche che gli attaccanti utilizzano per ottenere un accesso iniziale ad un sistema. Queste tecniche utilizzano vettori di ingresso, come lo spear phishing mirato e lo sfruttamento di vulnerabilità su server Web rivolti al pubblico. I punti accesso così acquisiti possono consentire un accesso continuo, tramite account validi e servizi remoti esterni, oppure un accesso limitato a causa del cambio di password.
- Execution: comprende le tecniche per eseguire codice dannoso su un sistema locale o remoto. Queste tecniche sono spesso abbinate a quelle di altre tattiche per raggiungere obiettivi più ampi, come esplorare una rete o il furto di dati.
- Persistence: comprende le tecniche per mantenere un accesso al sistema e resistere ad azioni per impedire l’accesso come, ad esempio, un reboot o delle modifiche alle credenziali. Le tecniche per la persistenza possono modificare la configurazione o il codice di reboot.
- Privilege Escalation: comprende le tecniche per ottenere autorizzazioni di livello superiore su un sistema o una rete. Spesso, l’accesso iniziale è possibile grazie ad un account senza privilegi ma poi gli attaccanti cercano di aumentare i loro privilegi. Le soluzioni più comuni sfruttano vulnerabilità e debolezze dei moduli o configurazioni errate. Queste tecniche, spesso, si intersecano con quelle di persistenza, poiché le funzionalità del sistema operativo che permettono la persistenza possono essere eseguite solo con privilegi elevati.
- Defense Evasion: comprende le tecniche degli attaccanti per evitare di essere rilevati mentre operano all’interno di un sistema. Possibili tecniche sono la disinstallazione/disabilitazione di moduli di sicurezza o l’offuscamento/crittografia di dati e script. Altre tecniche iniettano codice malevolo in processi affidabili.
- Credential Access: comprende le tecniche per rubare credenziali, i.e. nomi di account e password. Possibili tecniche sono il keylogging o il dumping delle credenziali. L’uso di credenziali legittime semplifica l’accesso ai sistemi, aumenta la complessità della rilevazione e permette di creare nuovi account.
- Discovery: comprende le tecniche degli attaccanti per conoscere il sistema target per poi decidere come operare. Gli attaccanti usano queste tecniche per acquisire informazioni esplorando il sistema a partire dal loro punto di ingresso.
- Lateral Movement: comprende le tecniche per accedere e controllare altri moduli e nodi di elaborazione del sistema target. Questi movimenti sono fondamentali per acquisire informazioni e privilegi utili per raggiungere i “gioielli della corona”, cioè l’obiettivo strategico dell’intrusione. Per realizzare i movimenti laterali gli attaccanti possono installare propri strumenti o utilizzare quelli nativi del target per complicare la rilevazione.
- Collection: comprende le tecniche per raccogliere informazioni di interesse e per raggiungere la fonte di tali dati. Spesso, i dati raccolti vengono esfiltrati. Le fonti di informazioni più comuni sono driver, browsers, audio, video o e-mail. I metodi di raccolta comprendono l’acquisizione di schermate e l’input da tastiera.
- Command and Control: comprende le tecniche per comunicare con i moduli del sistema target che controllano. Gli attaccanti cercano di mascherare queste comunicazioni nel traffico normale per diminuire le probabilità di essere rilevati. Esistono soluzioni alternative per creare una struttura di C&C in base ai meccanismi di difesa da sconfiggere.
- Exfiltration: comprende le tecniche per esfiltrare dati. Spesso, i dati vengono compressi e crittografati per minimizzare le probabilità di essere scoperti. L’esfiltrazione può utilizzare un canale di C&C o uno diverso.
- Impact: comprende le tecniche per ridurre la disponibilità o l’integrità dei sistemi, manipolando i processi aziendali ed operativi per modificare o cancellare dei dati del sistema target.
Tecniche della matrice ATT&CK
Le tecniche sono il livello meno astratto del modello ATT&CK e descrivono i singoli passi eseguiti dall’attaccante per raggiungere il suo obiettivo.
ATT&CK descrive dettagliatamente ciascuna tecnica e fornisce anche esempi e suggerimenti per la mitigazione ed il rilevamento. Inoltre, sono descritti gli APT (o i malware) che le utilizzano e gli artefatti che la loro esecuzione può generare.
Attualmente, il framework complessivo comprende 266 tecniche e quindi discuteremo un solo esempio vedendo come la matrice illustra la tecnica “File and Directory Discovery”, utilizzata nella tattica “Discovery” (vedi figura sottostante)
Informazioni dettagliate sulla tecnica “File and Directory Discovery”.
Sotto il titolo troviamo la descrizione della tecnica. Il livello di dettaglio fornito dipende dalla tecnica stessa. A destra troviamo alcune informazioni. L’ID è un tag breve per catalogare tutte le tecniche. È visibile anche la tattica di appartenenza, così come le piattaforme a cui può essere applicata.
Inoltre, vengono elencate le fonti e gli strumenti utili per raccogliere tutte queste informazioni da esperienze reali ed incidenti osservati. Altre possibili informazioni sono i permessi o i requisiti di sistema per l’esecuzione della tecnica o se sono richieste connessioni di rete.
La descrizione è seguita da una tabella con esempi di utilizzo della tecnica e sugli utilizzatori, come mostrato nella figura seguente.
Esempi di come la tecnica “File and Directory Discovery” può essere utilizzata e degli utilizzatori.
La tecnica descritta può essere utilizzata da un malware, ADVSTORESHELL nell’esempio, o da un gruppo di attaccanti, APT18 in questo caso. Nella figura seguented i suggerimenti per mitigare e rilevare l’uso della tecnica.
Mitigazione e rilevamento della tecnica “File and Directory Discovery”.
Infine, la matrice elenca anche tutti i riferimenti agli incidenti reali e studi condotti riguardanti la tecnica descritta.
Adversary emulation con la matrice
La struttura della matrice ATT&CK permette di definire in maniera standard e univoca gli attacchi ed i comportamenti degli attaccanti.
Queste caratteristiche, insieme ad altri strumenti basati sempre sul modello ATT&CK, costituiscono ottime basi per le pratiche di adversary emulation. Questa attività può essere eseguita in maniera più o meno complessa.
L’approccio più semplice individua le tecniche utilizzate dai gruppi che potenzialmente potrebbero attaccare una organizzazione. Queste tecniche sono poi eseguite sulla base dei test atomici offerti da vari strumenti. Ciò permette di verificare che le funzionalità di analisi comportamentale e monitoraggio funzionino come previsto almeno contro le singole tecniche usate dai gruppi selezionati.
Uno strumento più evoluto, che permette di eseguire valutazioni più complete, è CALDERA: un sistema di adversary emulation automatizzato creato da MITRE che dispone di alcuni comportamenti già integrati ed associati alle tecniche ATT&CK. CALDERA, inoltre, permette all’utente di costruire test personalizzati attraverso la concatenazione di più tecniche.
La sfida più complessa rimane, tuttavia, sviluppare emulazioni realistiche ed automatizzate a diversi livelli di astrazione. Ciò richiede di integrare tecniche di attacco, reazioni del sistema e le informazioni disponibili sui vari attaccanti da cui difendersi.
PER APPROFONDIRE
E. Panti, Adversary emulation e worm. Alcune estensioni al Sistema Caldera, Tesi di Laurea in Informatica, Università di Pisa, 2019.
MITRE Corporation, «ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge)».
A. Applebaum, D. Miller, B. Strom, H. Foster e C. Thomas, «ANALYSIS OF AUTOMATED ADVERSARY EMULATION TECHNIQUES,» The MITRE Corporation, tech report.
MITRE Corporation, «ATT&CK Enterprise Tactics».
MITRE Corporation, «File and Directory Discovery” ATT&CK technique».
MITRE Corporation, «ATT&CK Navigator».
F. Baiardi, Avoiding the weaknesses of a penetration test, Computer Fraud & Security, 2019, Issue 4.