APT: La Nostra Nuova Arma Segreta si Chiama BGCRKAN e Vede Quello che gli Altri Non Vedono!
Ciao a tutti! Oggi voglio parlarvi di un argomento che mi sta particolarmente a cuore e che, ne sono certo, interessa molti di voi: la sicurezza informatica. In particolare, voglio addentrarmi nel mondo un po’ oscuro ma affascinante delle Advanced Persistent Threats, o APT. Per chi non lo sapesse, le APT sono quel tipo di attacco informatico subdolo, persistente e incredibilmente sofisticato, orchestrato spesso da attori con grandi risorse. Pensate a spie digitali che si infiltrano nelle reti e ci rimangono per mesi, a volte anni, spiando, rubando dati o preparando il terreno per un colpo grosso. Un vero e proprio incubo per aziende e governi!
Il problema è che i metodi tradizionali per scovare queste minacce, beh, diciamo che spesso fanno un po’ cilecca. Faticano a cogliere la complessità delle relazioni dinamiche all’interno delle reti e i pattern di attacco più nascosti. E quando si tratta di APT, l’efficacia del rilevamento è tutto. Ecco perché, insieme al mio team (virtuale, in questo contesto divulgativo!), ci siamo messi al lavoro per trovare una soluzione più smart, più potente. E credo proprio che l’abbiamo trovata!
La Sfida Insidiosa degli Attacchi APT
Prima di svelarvi il nostro asso nella manica, cerchiamo di capire meglio perché le APT sono così difficili da contrastare. Questi attacchi non sono come il classico virus che si manifesta subito. No, le APT sono caratterizzate da:
- Alta occultabilità: si nascondono benissimo, confondendosi con il normale traffico di rete.
- Lunga persistenza: una volta dentro, l’obiettivo è rimanere il più a lungo possibile.
- Forte targetizzazione: non colpiscono a caso, ma mirano a obiettivi specifici e di alto valore.
Immaginate un ladro che non solo entra in casa vostra, ma ci vive per mesi senza che ve ne accorgiate, studiando le vostre abitudini e pianificando meticolosamente cosa rubare. Le APT fanno proprio questo, ma su scala digitale, creando canali di controllo nascosti per esfiltrare informazioni confidenziali o sabotare sistemi. La loro natura distribuita, multi-fase e cross-sistema li rende un rompicapo per le difese tradizionali.
I sistemi esistenti, che siano basati su regole, sull’analisi comportamentale con deep learning o sull’analisi di grafi, hanno fatto passi da gigante, certo. Ma quando si tratta delle dipendenze complesse e delle tecniche di attacco in continua evoluzione tipiche delle APT, mostrano i loro limiti. Molti approcci, ad esempio, analizzano le dipendenze in modo unidirezionale, concentrandosi sulla propagazione lineare degli eventi. Ma così si perdono le interazioni bidirezionali che sono cruciali in un attacco APT! Pensate a un attaccante che sfrutta contemporaneamente più punti di ingresso: le interdipendenze tra le varie fasi dell’attacco diventano fondamentali da capire. E che dire dell’evoluzione dinamica? Gli attaccanti non stanno fermi: adattano le loro strategie in base alle difese che incontrano, cambiando percorsi, strumenti, tecniche di offuscamento. I modelli statici, allenati su pattern noti del passato, faticano a tenere il passo con questa creatività malevola.
Il Nostro Asso nella Manica: Vi Presento BGCRKAN!
Ed eccoci al dunque! Per affrontare queste sfide, abbiamo sviluppato un modello che abbiamo battezzato BGCRKAN. Un nome un po’ tecnico, lo so, ma che racchiude una potenza notevole. Si tratta di un modello che combina un’attenzione bidirezionale dinamica su grafo (Bidirectional Dynamic Graph Attention) con una rete KAN (Kolmogorov-Arnold Network) migliorata. Lo so, sembra un parolone, ma cercherò di spiegarvelo in modo semplice.
L’idea di base è questa: le reti KAN, ispirate al teorema di rappresentazione di Kolmogorov-Arnold, sono fantastiche perché possono scomporre funzioni multidimensionali complesse (come i pattern di un attacco APT) in combinazioni di funzioni più semplici, a una sola variabile. Questo le rende molto efficienti nel modellare comportamenti complessi. Noi abbiamo fatto un passo in più: abbiamo “migliorato” queste reti KAN utilizzando una particolare funzione matematica chiamata spline di Catmull-Rom. Queste spline hanno la proprietà di interpolare, cioè di passare esattamente per i punti di controllo, connettendoli in modo fluido. Questo ci aiuta a gestire meglio la distribuzione spesso disomogenea dei dati negli attacchi APT, evitando problemi che altre spline, come le B-spline, possono avere (ad esempio, deviare dai punti di controllo a causa di un controllo globale).
A questa potenza di modellazione, abbiamo unito le capacità di estrazione delle feature tipiche delle reti neurali su grafo (GNN) con un meccanismo di attenzione bidirezionale dinamica su grafo (BGATv2). Cosa significa? Significa che il nostro modello non guarda solo in una direzione quando analizza le relazioni tra i nodi della rete (che possono rappresentare computer, utenti, processi, ecc.). No, guarda avanti e indietro! Questo ci permette di catturare le dipendenze multi-step, cross-nodo e quelle caratteristiche degli attacchi altamente nascosti, aggiornando dinamicamente lo stato dei nodi della rete. È come avere un investigatore che non solo segue le tracce, ma torna anche indietro per vedere se si è perso qualcosa, e lo fa in tempo reale mentre l’attacco si evolve!
Come Funziona nel Dettaglio (o quasi!)
Senza scendere in formule matematiche astruse, vi do un’idea di come lavorano insieme queste componenti. Immaginate i dati di un attacco APT: indirizzi IP, hash di file malevoli, percorsi di file, orari degli attacchi, vulnerabilità sfruttate (le famose CVE). Il nostro modello BGCRKAN prende questi dati, che possono essere visti come un grafo dove i nodi sono entità (come una CVE) e gli archi le loro relazioni.
Lo strato KAN migliorato, con le sue spline di Catmull-Rom, entra in gioco per prima cosa. Queste spline sono fantastiche perché, grazie alle loro proprietà di interpolazione locale, gestiscono benissimo i dati distribuiti in modo irregolare. Nei dati degli attacchi APT, dove la distribuzione può essere molto disomogenea, le spline di Catmull-Rom considerano l’influenza dei punti vicini, modellando meglio le caratteristiche e rappresentando i dati in modo più accurato. Questo strato KAN, quindi, scompone i comportamenti complessi dell’attacco in funzioni più semplici e gestibili, e combina queste feature in modo non lineare per catturare le loro interazioni. Pensate a come diverse piccole azioni, apparentemente scollegate, possano in realtà far parte di un piano più grande: il KAN ci aiuta a vedere queste connessioni.
Dopo questa prima elaborazione, i dati passano allo strato BGATv2. Qui entra in gioco l’attenzione dinamica bidirezionale. Mentre i meccanismi di attenzione “statici” calcolano i pesi di attenzione una volta e via, GATv2 (e la nostra versione BGATv2) li aggiusta dinamicamente in base ai cambiamenti nei nodi e negli archi del grafo. E, come dicevo, lo fa in entrambe le direzioni! Questo permette al modello di capire quali nodi e quali connessioni sono più importanti in un dato momento, sia guardando “avanti” (dall’attaccante alla vittima) sia “indietro” (dalla vittima all’attaccante, per ricostruire la catena). Per una classificazione binaria (APT sì / APT no), usiamo la funzione Sigmoid per mappare l’output in un intervallo (0,1), che possiamo interpretare come una probabilità.
Il bello di questo approccio è che catturiamo le dipendenze complesse nella catena di attacco APT e affrontiamo la difficoltà di estrarre le relazioni sugli archi che spesso affligge le strutture di grafo tradizionali. Inoltre, il meccanismo di grafo dinamico traccia i cambiamenti nell’evoluzione della catena di attacco, migliorando la precisione del modello e l’efficienza del rilevamento.
Mettiamolo alla Prova: I Risultati Sperimentali
Parole, parole, parole… ma i fatti? Beh, abbiamo messo alla prova il nostro BGCRKAN con un set di dati bello tosto, costruito partendo da fonti di threat intelligence pubbliche come CVE, NVD, CNNVD, Qianxin, FireEye e altre. Abbiamo analizzato diversi gruppi APT, estraendo informazioni chiave come le CVE sfruttate, le tecniche usate (CWE, CAPEC), gli indicatori di compromissione (IOC) e le loro interdipendenze. Ogni nodo nel nostro dataset rappresenta una vulnerabilità sfruttata da un’organizzazione APT, e le sue feature sono rappresentate dalla presenza o assenza di parole chiave specifiche. L’etichetta è semplice: 1 per un attacco APT, 0 per un non-APT.
Abbiamo valutato il modello usando metriche classiche: accuratezza, precisione, recall, F1-score, e anche i tassi di falsi positivi (FPR) e falsi negativi (FNR). Dopo aver ottimizzato i parametri (come learning rate e dropout – abbiamo visto che con un learning rate di 0.005 e un dropout di 0.1 il modello dava il meglio), i risultati sono stati davvero incoraggianti!
Il nostro BGCRKAN ha raggiunto un’accuratezza del 97.10% nel rilevamento degli attacchi APT, con un tasso di falsi positivi dello 0.2% e di falsi negativi del 9.02%. Questo significa che non solo è bravo a identificare correttamente gli attacchi, ma sbaglia anche molto poco nel classificarli.
Abbiamo fatto anche esperimenti di “ablazione”, cioè abbiamo provato le componenti del modello separatamente (solo KAN, solo BGATv2, ecc.) e le abbiamo confrontate con il modello completo e con altri approcci noti in letteratura (come GKAN, MLP DNN, GCN, GATv2 standard, CNN-LSTM). Ebbene, il nostro BGCRKAN combinato ha superato tutti gli altri, specialmente nel ridurre i falsi negativi, che è cruciale: non vogliamo farci sfuggire un vero attacco APT!
Ad esempio, rispetto a un modello KAN base, che aveva un recall del 79.96% (cioè si perdeva parecchi attacchi), il nostro BGCRKAN è salito a un recall del 93.74%. Anche confrontato con un modello BGBKAN (che usa B-spline invece di Catmull-Rom), il nostro ha mostrato performance superiori, confermando che la scelta delle spline di Catmull-Rom è stata vincente per la fedeltà delle feature e il controllo locale.
Abbiamo anche analizzato la curva ROC: il valore AUC (Area Under the Curve) è stato di 0.97, il che indica un’ottima capacità di classificazione. Su un test specifico, abbiamo ottenuto TP (veri positivi) = 7840, TN (veri negativi) = 2281, FP (falsi positivi) = 26, FN (falsi negativi) = 224. Questo si traduce in un’accuratezza del 95.30%, precisione del 99.57%, recall del 97.12% e F1-score del 98.34% per quel subset. Numeri di cui andiamo piuttosto fieri!
Il Rovescio della Medaglia: Quando il Modello Sbaglia (e Perché)
Nessun modello è perfetto, e anche il nostro BGCRKAN ogni tanto commette degli errori. Abbiamo notato che tende a produrre qualche falso positivo quando deve distinguere tra attacchi APT e non-APT. Perché succede? Principalmente a causa delle somiglianze nei pattern delle feature e degli alti valori di peso assegnati a certe caratteristiche comuni. Ad esempio, una CVE sfruttata in un attacco non-APT potrebbe avere caratteristiche (come la CWE associata o la tecnica CAPEC) molto simili a quelle di una CVE usata in un vero attacco APT. Se queste caratteristiche hanno un peso elevato nell’attenzione del modello, può capitare che un attacco “innocuo” venga scambiato per una minaccia persistente avanzata, o viceversa.
Abbiamo analizzato alcuni di questi nodi classificati erroneamente. Ad esempio, CVE-2014-4114 (un falso positivo APT) sfrutta CWE-20 e CAPEC-101. Un vero attacco APT, CVE-2017-0144, fa lo stesso. Se CWE-20 e CAPEC-101 hanno pesi di attenzione alti per entrambi, il modello potrebbe confondersi. Allo stesso modo, alcuni veri attacchi APT sono stati classificati come non-APT perché le loro feature erano simili a quelle di attacchi non-APT presenti nei dati di addestramento. È una sfida continua bilanciare la sensibilità del modello senza renderlo troppo “nervoso”.
Cosa Abbiamo Imparato e Dove Stiamo Andando
Quindi, cosa ci portiamo a casa da questa avventura? Abbiamo dimostrato che combinare un KAN migliorato con spline di Catmull-Rom e un meccanismo di attenzione bidirezionale dinamica su grafo (BGATv2) è un approccio potentissimo per il rilevamento delle APT. Siamo riusciti a catturare le feature multi-step, cross-nodo e nascoste di questi attacchi, superando molte limitazioni dei metodi tradizionali e ottenendo un’accuratezza davvero notevole.
Certo, ci sono ancora sfide. Il costo computazionale e i requisiti di memoria possono essere un problema con grafi di dimensioni enormi (parliamo di milioni di nodi e archi). Sebbene il nostro modello sia più efficiente di alcuni (come MLP DNN o CNN-LSTM), è più esigente di altri (come GCN o EMKNN). E poi c’è la questione dei falsi positivi da affinare ulteriormente.
Per il futuro, abbiamo già delle idee. Vogliamo lavorare sulla complessità temporale: magari introducendo tecniche di accelerazione per ridurre i tempi di addestramento, specialmente su dati di rete su larga scala. E poi, vogliamo rendere l’attenzione bidirezionale dinamica ancora più “intelligente”, magari con meccanismi adattivi che aggiustino le strategie di allocazione dei pesi in base all’esperienza passata e ai dati correnti, per ridurre ulteriormente i falsi positivi.
Insomma, la lotta contro le APT è una maratona, non uno sprint. Ma con strumenti come BGCRKAN, sento che abbiamo un’arma in più, e decisamente più affilata, per rendere la vita un po’ più difficile a chi cerca di giocare sporco nel cyberspazio. Spero che questa panoramica vi abbia incuriosito e magari anche un po’ rassicurato sul fatto che la ricerca non si ferma mai!
Fonte: Springer