Scelta di un algoritmo ottimale per l'IA nella sicurezza informatica

15 agosto 2018
Sohrob Kazerounian
Distinguished AI Researcher
Scelta di un algoritmo ottimale per l'IA nella sicurezza informatica

Nell'ultimo post del blog abbiamo accennato ai teoremi del No-Free-Lunch (NFL) per la ricerca e l'ottimizzazione. Sebbene i teoremi NFL siano criminalmente fraintesi e travisati al servizio di grossolane generalizzazioni che hanno lo scopo di far capire qualcosa, io intendo utilizzare una grossolana generalizzazione NFL proprio per far capire qualcosa.

Vedete, i teoremi NFL affermano (approssimativamente) che, dato un universo di problemi in cui l'obiettivo di un algoritmo è quello di apprendere una funzione che mappa un insieme di dati di input X a 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, facendo la media dei loro risultati sullo spazio di tutti i problemi possibili, le prestazioni degli algoritmi A e B saranno le stesse.

Con un po' di fortuna, possiamo costruire un teorema NFL per il settore della cybersecurity: Nell'insieme di tutti i possibili vettori di attacco che potrebbero essere utilizzati da un hacker, nessun singolo algoritmo di rilevamento può superare tutti gli altri nell'intero spettro degli attacchi.

Scegliere in modo ottimale un algoritmo per l'IA nella sicurezza informatica

Intelligenza artificiale - AI

A questo punto, si potrebbe essere tentati 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 qualche sforzo allo sviluppo di algoritmi di apprendimento automatico (ML) per il rilevamento delle intrusioni?

Il motivo, molto semplicemente, è che i teoremi della NFL (per la ricerca e l'ottimizzazione, e ora per la sicurezza informatica) sono applicabili solo in un mondo ipotetico con un priore uniforme sullo spazio di tutti i problemi possibili. Nel mondo reale, però, ci interessa solo un piccolo sottoinsieme di questi problemi e la priorità su questo sottoinsieme di problemi non è probabilmente uniforme. Se si aggiunge che qualsiasi algoritmo sarà soggetto a vincoli di spazio e di tempo di esecuzione e ad altri fattori del mondo reale (ad esempio, la necessità di interpretabilità), diventa subito chiaro che le scelte tra gli algoritmi possono essere facilmente misurate l'una con l'altra.

Tuttavia, anche se le applicazioni pratiche dei teoremi NFL non resistono al rigore tecnico, essi servono comunque come una buona euristica: nessun singolo algoritmo soddisferà 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 più avanzate su compiti diversi come la visione artificiale, l'elaborazione del linguaggio naturale e la previsione finanziaria, fanno tutte uso di algoritmi diversi.

Come scegliere il miglior algoritmo per la sicurezza informatica?

L'individuazione di un'ampia gamma di comportamenti degli aggressori richiede una serie di algoritmi, ognuno dei quali deve essere progettato in modo appropriato con una profonda comprensione tecnica dei potenziali algoritmi che potrebbero essere impiegati e del loro confronto, nonché con l'integrazione delle conoscenze specifiche del dominio necessarie per ottenere prestazioni ottimali.

Ogni algoritmo deve essere progettato tenendo conto delle 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 dovrebbe utilizzare 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 gran numero 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 dominio

Gli algoritmi richiedono conoscenza. Molte soluzioni di machine learning già pronte possono essere utilizzate una volta determinate le questioni di base sulla natura del problema. Per ottenere risultati affidabili, tuttavia, è necessaria una comprensione matematica relativamente profonda delle tecniche in uso, soprattutto quando i modelli diventano sempre più complessi e intricati.

Si pensi, ad esempio, all'enorme interesse suscitato dall'utilizzo di una rete neurale all'avanguardia per l'elaborazione di 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 di base necessaria per implementare l'LSTM (in questo caso, una pesante sequenza di derivate parziali), è comunque necessaria una conoscenza per utilizzare l'algoritmo correttamente e per i giusti tipi di problemi.

Come in questo caso, molti fornitori di cybersicurezza pubblicizzano l'uso del deep learning e dei modelli LSTM in particolare. Tuttavia, non descrivono correttamente il funzionamento effettivo di questa rete neurale e la sua applicazione al rilevamento delle minacce. Oltre alla conoscenza del dominio degli algoritmi, una profonda comprensione del dominio di ingresso può semplificare notevolmente il rilevamento delle minacce da parte degli algoritmi a valle. A titolo di esempio, si consideri un semplice compito di classificazione a due classi, in cui i punti che cadono su un cerchio piccolo sono considerati di classe 0, mentre i punti che cadono su un cerchio più grande e circostante sono considerati di classe 1.

Se gli input sono rappresentati in coordinate cartesiane, nessun classificatore lineare potrà imparare a separare queste due classi. Se invece sappiamo che il modo naturale di rappresentare gli input non è in coordinate cartesiane ma in coordinate polari, il problema può essere facilmente appreso da un classificatore lineare. Questo viene visualizzato nella Fig. 1, dove un confine decisionale lineare non può essere tracciato nel caso cartesiano, ma è banale nel caso polare.

Un semplice problema di classificazione a due classi. Quando gli input sono rappresentati in un sistema di coordinate cartesiane, non è possibile apprendere un classificatore lineare per separare le due classi. In coordinate polari, invece, il problema diventa banale.
Un semplice problema di classificazione a due classi. Quando gli input sono rappresentati in un sistema di coordinate cartesiane, non è possibile apprendere un classificatore lineare per separare le due classi.
In coordinate polari, invece, il problema diventa banale. Figura tratta daDeep Learning "Goodfellow et al. (2016)

Rilevamento di anomalie e comportamenti dannosi

Nella cybersecurity, il rilevamento delle anomalie non è la stessa cosa del rilevamento di comportamenti dannosi.

Anche se un modello statistico apprende con precisione le distribuzioni sottostanti dei tempi di connessione, delle porte e di altre informazioni che un sistema di rilevamento delle minacce dovrebbe tenere sotto controllo, è necessario decidere cosa costituisce un comportamento normale e cosa un outlier.

Supponiamo di scegliere una soglia in base alla quale ogni input che si verifica con meno dello 0,01% di probabilità viene segnalato come anomalo. Indipendentemente dal modello statistico scelto, più è accurato il modello statistico, più è probabile che lo 0,01% di tutti gli input venga segnalato come anomalo.

È fondamentale evitare di confondere gli outlier e le anomalie con i cyberattacchi. Un'adeguata modellazione dei vari aspetti di un cyberattacco è necessaria quando si cerca di determinare se gli input anomali o anomali sono dannosi.

La segnalazione di dati anomali o fuori norma senza considerare il tipo di attacco può far sì che un attacco venga trascurato, perché le caratteristiche di input tracciate non sono anomale. Gli attacchi possono essere modificati in modo che si verifichino in orari normali, su porte normali, da posizioni geografiche normali, e potrebbero eludere i modelli di rilevamento delle anomalie o degli outlier puri.

Apprendimento non supervisionato e dimensioni/manifold

Apprendere da dati non supervisionati è difficile. Apprendere correttamente da 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 abbastanza grande da far sì che il volume di spazio che occupa cresca a un ritmo molto più veloce del numero di esempi a disposizione dell'algoritmo.

Questo vale per i dati con un elevato numero di dimensioni o un gran numero di caratteristiche, nonché per i dati delle serie temporali, che spesso sono intrinsecamente ad alta dimensionalità. Per questo motivo, gli algoritmi non supervisionati devono spesso fare inferenze sulle distribuzioni da cui sono tratti i dati, nonostante non abbiano prove sufficienti per le inferenze che fanno.

Peggio ancora, anche in situazioni in cui la dimensionalità dell'input è bassa, gli specifici collettori su cui si trovano i dati possono non essere favorevoli a specifiche tecniche di apprendimento da parte di diversi algoritmi.

Immaginiamo, ad esempio, un set di dati di input bidimensionali. Sebbene i cluster sembrino ovvi all'occhio umano, diversi algoritmi di apprendimento non supervisionato cercheranno di modellare i dati in più modi. Sapere quali algoritmi sono appropriati per un determinato problema diventa sempre più importante.

La figura seguente mostra una serie di algoritmi di apprendimento non supervisionato e come si differenziano anche nelle impostazioni più elementari.

Diversi algoritmi di apprendimento non supervisionato su una serie di set di dati diversi. L'ampia gamma di comportamenti di questi algoritmi, come mostrato dalla varietà di cluster appresi, mostra perché la comprensione sia dell'algoritmo sia dei dati è così critica.
Figura tratta dalla documentazione di
documentazione di scikit-learn.

Anche all'interno della stessa classe di algoritmi di apprendimento non supervisionato, i risultati possono essere molto diversi. La figura seguente mostra le differenze nei cluster appresi a seconda del tipo specifico di algoritmo di clustering spettrale scelto.

Risultati di diversi algoritmi di clustering spettrale su una serie di set di dati diversi.
Risultati di diversi algoritmi di clustering spettrale su una serie di set di dati diversi.
Figura tratta da "on Spectral Analysis and an Algorithm" [Ng, Jordan and Weiss (2001)].

Si spera che gli esempi e le descrizioni di questa voce abbiano mostrato perché è fondamentale una profonda comprensione matematica degli algoritmi, unita alla comprensione del dominio di cybersecurity in cui l'algoritmo deve essere applicato, per costruire un sistema IDS performante.

Non esiste un singolo algoritmo che superi tutti gli altri, né un modo semplice per utilizzare gli algoritmi "off-the-shelf". Non c'è davvero un pranzo gratis.

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). Il clustering spettrale: Analisi e algoritmo. InAdvancesin neural information processing systems(pp. 849-856).

DOMANDE FREQUENTI