Nell'ultimo post del blog abbiamo accennato ai teoremi No-Free-Lunch (NFL) per la ricerca e l'ottimizzazione. Sebbene i teoremi NFL siano criminalmente fraintesi e travisati al servizio di rozze generalizzazioni volte a sostenere una tesi, intendo utilizzare una rozza generalizzazione NFL proprio per sostenere tale tesi.
Vedete, i teoremi NFL (approssimativamente) affermano che, dato un universo di insiemi di problemi in cui l'obiettivo di un algoritmo è quello di apprendere una funzione che mappa un insieme di dati di input X su un insieme di etichette di destinazione Y, per ogni sottoinsieme di problemi in cui l'algoritmo A supera l'algoritmo B, ci sarà un sottoinsieme di problemi in cui B supera A. Infatti, calcolando la media dei loro risultati su tutti i possibili problemi, le prestazioni degli algoritmi A e B saranno le stesse.
Con qualche semplificazione, possiamo costruire un teorema NFL per il settore della sicurezza informatica: tra tutti i possibili vettori di attacco che potrebbero essere utilizzati da un hacker, nessun algoritmo di rilevamento è in grado di superare tutti gli altri nell'intero spettro degli attacchi.
Scelta ottimale di un algoritmo per l'IA nella sicurezza informatica

A questo punto, potresti essere tentato di chiedere: se un determinato algoritmo, in media, ha le stesse prestazioni di tutti gli altri nel rilevare l'intera gamma di attacchi possibili, perché dedicare energie allo sviluppo di algoritmi di apprendimento automatico (ML) per il rilevamento delle intrusioni?
Il motivo è molto semplice: i teoremi NFL (per la ricerca e l'ottimizzazione, e ora anche per la sicurezza informatica) sono realmente applicabili solo in un mondo ipotetico con un priore uniforme su tutto lo spazio dei possibili problemi. Nel mondo reale, invece, ci interessa solo un piccolo sottoinsieme di questi problemi, e il priore su quel sottoinsieme di problemi non è probabilmente uniforme. Se a questo aggiungiamo il fatto che qualsiasi algoritmo sarà soggetto a vincoli di spazio e di tempo di esecuzione, nonché ad altri fattori del mondo reale (ad esempio, la necessità di interpretabilità), diventa subito chiaro che le scelte tra algoritmi possono essere facilmente misurate l'una rispetto all'altra.
Tuttavia, sebbene le applicazioni pratiche dei teoremi NFL non reggano al rigore tecnico, esse costituiscono comunque un buon metodo euristico: nessun singolo algoritmo è in grado di soddisfare in modo ottimale le esigenze di un'ampia varietà di tipi di problemi per i quali potrebbe essere impiegato. Ciò è dimostrato dal fatto che le tecniche all'avanguardia in compiti diversi come la visione artificiale, l'elaborazione del linguaggio naturale e le previsioni finanziarie utilizzano tutte algoritmi diversi.
Quindi, come scegliamo effettivamente l'algoritmo migliore per la sicurezza informatica?
Il rilevamento di comportamenti di attacco di ampia portata richiede una suite di algoritmi, ciascuno dei quali deve essere progettato in modo appropriato con una profonda comprensione tecnica dei potenziali algoritmi che potrebbero essere implementati e di come si confrontano tra loro, nonché l'integrazione delle conoscenze specifiche del dominio necessarie per ottenere prestazioni ottimali.
Ogni algoritmo dovrebbe essere progettato tenendo presenti le seguenti domande:
- L'algoritmo è supervisionato o non supervisionato? Regressione o classificazione?
- Esiste uno spazio naturale in cui rappresentare o proiettare gli input?
- In caso contrario, l'algoritmo dovrebbe apprendere le rappresentazioni delle caratteristiche o dovrebbero essere utilizzati direttamente gli input?
- Gli input sono meglio rappresentati come dati statici o sequenziali/temporali?
- Se sequenziale, si tratta di un compito di classificazione o di etichettatura?
- Esistono dipendenze temporali su un numero elevato di intervalli di tempo? In alternativa, i dati sono semplicemente markoviani?
- Quanti dati di addestramento ci sono rispetto alla dimensionalità dell'input? I dati sono (altamente) non lineari?
Conoscenza del settore
Gli algoritmi richiedono conoscenze. Molte soluzioni di machine learning disponibili in commercio possono essere implementate una volta determinate le questioni fondamentali relative alla natura del problema. Tuttavia, per ottenere risultati affidabili è necessaria una comprensione matematica relativamente approfondita delle tecniche utilizzate, in particolare poiché i modelli diventano sempre più complessi e intricati.
Si consideri, ad esempio, l'enorme interesse nell'utilizzo di una rete neurale all'avanguardia per elaborare dati sequenziali e serie temporali, nota come modello LSTM (Long Short-Term Memory). Sebbene strumenti come TensorFlow, il framework di deep learning di Google, tendano ad astrarre la matematica sottostante necessaria per implementare LSTM (in questo caso, una sequenza di derivate parziali con una notazione complessa), è comunque necessaria una certa conoscenza per utilizzare correttamente l'algoritmo e per i tipi di problemi giusti.
Come in questo caso, molti fornitori di soluzioni per la sicurezza informatica pubblicizzano il loro utilizzo del deep learning e dei modelli LSTM in particolare. Tuttavia, descrivono in modo errato il funzionamento effettivo di questa rete neurale e il modo in cui l'hanno applicata al rilevamento delle minacce. Oltre alla conoscenza del dominio degli algoritmi, una comprensione approfondita del dominio di input può semplificare notevolmente il rilevamento delle minacce da parte degli algoritmi a valle. Si consideri, ad esempio, un semplice compito di classificazione in due classi, in cui i punti che cadono su un piccolo cerchio sono considerati Classe 0, mentre quelli che cadono su un cerchio più grande che lo circonda sono considerati Classe 1.
Se gli input sono rappresentati in coordinate cartesiane, nessun classificatore lineare sarà in grado di imparare a separare queste due classi. Se, invece, sappiamo che il modo naturale per rappresentare gli input non è quello delle coordinate cartesiane ma quello delle coordinate polari, il problema può essere facilmente risolto da un classificatore lineare. Ciò è visualizzato nella Fig. 1, dove un confine decisionale lineare non può essere tracciato nel caso cartesiano, ma è banale nel caso polare.

In coordinate polari, tuttavia, il problema diventa banale. Figura tratta da "Deep Learning Goodfellow et al. (2016)
Rilevamento delle anomalie vs. comportamenti dannosi
Nella sicurezza informatica, il rilevamento delle anomalie non è la stessa cosa del rilevamento di comportamenti dannosi.
Anche se un modello statistico apprende accuratamente le distribuzioni sottostanti dei tempi di connessione, delle porte e di altre informazioni che un sistema di rilevamento delle minacce dovrebbe monitorare, è necessario decidere cosa costituisce un comportamento normale e cosa costituisce un valore anomalo.
Supponiamo di scegliere una soglia in base alla quale qualsiasi input che si verifica con una probabilità inferiore allo 0,01% viene contrassegnato come anomalo. Indipendentemente dal modello statistico scelto, più il modello statistico è accurato, più è probabile che contrassegniamo lo 0,01% di tutti gli input come valori anomali.
È fondamentale evitare di confondere i valori anomali e gli outlier con gli attacchi informatici. Una modellizzazione adeguata dei vari aspetti di un attacco informatico è necessaria quando si cerca di determinare se gli input anomali o outlier siano dannosi.
Segnalare dati anomali o fuori norma senza considerare il tipo di attacco può portare a trascurare un attacco, poiché le caratteristiche di input monitorate non sono anomale. Gli attacchi possono essere modificati in modo da verificarsi in orari normali, su porte normali, da posizioni geografiche normali, eludendo così i modelli di rilevamento delle anomalie o dei valori fuori norma.
Apprendimento non supervisionato e dimensione/varietà
Imparare dai dati non supervisionati è difficile. Imparare correttamente dai dati non supervisionati è ancora più difficile. In generale, l'apprendimento non supervisionato è difficile a causa di un problema noto come "maledizione della dimensionalità".
Il problema è che la dimensionalità dei dati di input è spesso così elevata che il volume di spazio occupato cresce a un ritmo molto più rapido rispetto al numero di esempi disponibili per l'algoritmo.
Questo vale per i dati con un numero elevato di dimensioni o un gran numero di caratteristiche, così come per i dati delle serie temporali che sono spesso intrinsecamente ad alta dimensionalità. Pertanto, gli algoritmi non supervisionati devono spesso formulare inferenze sulle distribuzioni da cui sono tratti i dati, nonostante non dispongano di prove sufficienti per le inferenze che formulano.
Peggio ancora, anche in situazioni in cui la dimensionalità dell'input è bassa, le varietà specifiche su cui si trovano i dati potrebbero non essere favorevoli a tecniche di apprendimento specifiche da parte di algoritmi diversi.
Immaginiamo, ad esempio, un set di dati con input bidimensionali. Sebbene i cluster sembrino evidenti all'occhio umano, vari algoritmi di apprendimento non supervisionato tenteranno di modellare i dati in diversi modi. Diventa quindi sempre più importante sapere quali algoritmi sono appropriati per un determinato problema.
La figura seguente mostra una serie di algoritmi di apprendimento non supervisionato e come differiscono anche nelle impostazioni più basilari.

Figura tratta dalla documentazione scikit-learn.
Anche all'interno della stessa classe di algoritmi di apprendimento non supervisionato, possono esserci molti risultati diversi. La figura seguente mostra le differenze nei cluster appresi a seconda del tipo specifico di algoritmo di clustering spettrale scelto.

Figura tratta da "on Spectral Analysis and an Algorithm" [Ng, Jordan e Weiss (2001)]
Si spera che gli esempi e le descrizioni contenuti in questa voce abbiano dimostrato perché sia così fondamentale una profonda comprensione matematica degli algoritmi, unita alla comprensione del dominio della sicurezza informatica in cui l'algoritmo deve essere applicato, per costruire un sistema IDS performante.
Non esiste un unico algoritmo che superi tutti gli altri, né esiste un modo semplice per utilizzare algoritmi "pronti all'uso". Non esiste davvero nulla di gratuito.
Goodfellow, I., Bengio, Y., Courville, A., & Bengio, Y. (2016).Deep learning(Vol. 1). Cambridge: MIT press.
Ng, A. Y., Jordan, M. I. e Weiss, Y. (2002). Sul clustering spettrale: analisi e algoritmo.In Advances in neural information processing systems(pp. 849-856).
Pubblicato originariamente nel 2018, questo post è stato ripubblicato per riportare le sue riflessioni al centro del dibattito.

