Machine learning: cinque miti da sfatare nel campo della cybersicurezza

Il “machine learning” è ormai da tempo saldamente presente in molti settori dell’attività umana. Al giorno d’oggi, come è noto, i sistemi di apprendimento automatico svolgono un ruolo chiave non solo a livello di riconoscimento vocale, ma anche per ciò che riguarda il riconoscimento dei gesti, della scrittura manuale e delle immagini. Inoltre, risulta davvero piuttosto difficile poter immaginare la medicina moderna, le attività bancarie, la bioinformatica, o qualsiasi tipologia di controllo di qualità, senza il prezioso supporto attualmente offerto dal machine learning. Ormai, persino le previsioni del tempo non vengono più fatte senza ricorrere all’ausilio di macchine in possesso di capacità di “apprendimento” e di “generalizzazione”.

Mi appresto, qui di seguito, a sfatare vari miti, così come a dissipare alcuni dubbi, e a prevenire certe opinioni (errate!), riguardo all’impiego delle tecniche di machine learning (ML) all’interno della nostra specifica sfera di attività, la cybersecurity.

Mito №1: “L’apprendimento automatico rappresenta un elemento di novità, nel campo della sicurezza informatica”

Proprio in questi ultimi tempi si è molto spesso sentito parlare, anche se con una certa diffidenza, riguardo all’utilizzo di determinate forme di intelligenza artificiale nel settore della cybersicurezza. Se non avete seguito il “dibattito” in corso, potrebbe persino farsi strada l’impressione che si tratti, nella circostanza, di una sorta di novità assoluta.

Ma facciamo un salto nel passato, visto che esiste, a tutti gli effetti, un interessante e significativo background “storico”, a tal proposito: uno dei primi algoritmi di apprendimento automatico, una rete neurale artificiale, è stato inventato, di fatto, negli anni Cinquanta. Può apparire, adesso, come qualcosa di curioso o divertente, ma sembrava proprio, all’epoca, che grazie a questo algoritmo sarebbe stato possibile creare, da un momento all’altro, un’autentica intelligenza artificiale “forte”. In pratica, un’intelligenza in grado di pensare, ragionare, prendere coscienza di se stessa, e quindi capace non soltanto di svolgere i compiti e di risolvere i problemi per i quali è stata programmata. Ad essa si contrappone, poi, l’intelligenza artificiale “debole”, la quale è comunque in grado di risolvere problemi specifici, quali, ad esempio, l’esecuzione di determinati task “creativi”: riconoscere certe immagini, prevedere il tempo atmosferico, giocare a scacchi, e via dicendo. Ora, a distanza di 60 anni, riusciamo a comprendere molto meglio come la strada da percorrere, per riuscire a creare un’Intelligenza Artificiale (IA) vera e propria sia ancora lunga; inoltre, ci rendiamo bene conto del fatto che, quello che oggi viene definito “intelligenza artificiale” altro non è, in realtà, se non “apprendimento automatico”.

malanov_5myths_01

Fonte: http://dilbert.com/strip/2013-02-02

Ebbene, anche nel settore della sicurezza IT, il machine learning non rappresenta di certo una novità. I primi algoritmi riconducibili a tale classe, in effetti, hanno iniziato ad essere introdotti all’incirca 10-12 anni fa. Allora, il numero dei nuovi malware in circolazione raddoppiava ogni due anni; ad un certo punto è divenuto del tutto evidente come si rivelasse già necessaria l’adozione di procedure automatizzate, per quanto ancora piuttosto “semplici”; occorreva, in pratica, un effettivo salto di qualità. Quest’ultimo si è tradotto, di fatto, nell’elaborazione di tutti i file presenti nell’apposita “collezione” di virus, allo scopo di ottenere la possibilità di ricercare file simili a quello sottoposto ad analisi. La decisione finale circa il grado di nocività del software esaminato veniva ad ogni caso ancora presa, inizialmente, dall’essere umano. Quasi immediatamente, tuttavia, anche tale specifica funzione è stata trasferita ad un robot.

In ultima analisi, possiamo tranquillamente affermare che l’utilizzo del machine learning nell’ambito della cybersicurezza non costituisce affatto un elemento di novità.

Mito №2: “Il machine learning, nell’ambito della sicurezza informatica, è qualcosa di facile da realizzare; è stato già tutto quanto previsto, ideato e creato”

Per alcuni campi in cui si ricorre all’utilizzo dei sistemi di apprendimento automatico esiste, di fatto, tutta una serie di algoritmi pronti all’uso. Ad esempio, per la ricerca dei volti presenti sulle immagini, per il loro riconoscimento, il riconoscimento delle emozioni, il saper distinguere, a livello di animali raffigurati, i cani dai gatti; in questi, ed in numerosi altri casi, qualcuno ha già avuto brillanti idee realizzative, ha saputo trovare il modo di poter distinguere i vari elementi, ha allestito il corrispondente apparato matematico, ha impiegato consistenti risorse di calcolo, per poi condividere con la community i risultati ottenuti. Così, adesso, qualsiasi studente è in grado di far uso di questi algoritmi.

malanov_5myths_02

Il machine learning definisce lo standard di qualità dei biscotti in base alla quantità di cioccolato richiesta e alle dimensioni degli stessi
Fonte: http://simplyinsight.co/2016/04/26/an-introduction-to-machine-learning-theory-and-its-applications-a-visual-tutorial-with-examples/

Questo alimenta la falsa convinzione che tutto quanto sia già pronto e predisposto anche per ciò che riguarda il task relativo al rilevamento dei programmi malware. Le cose, però, non stanno affatto in questi termini. Gli esperti di Kaspersky Lab hanno in effetti speso oltre dieci anni per creare e brevettare tutta una serie di apposite tecnologie all’avanguardia. E, ovviamente, stanno continuando a lavorare su di esse, a svilupparle, ideandone nel frattempo di nuove, poiché… Ma andiamo a leggere, a questo proposito, cosa recita, esattamente, il prossimo mito da sfatare.

Mito №3: “Apprendimento automatico? Fatto una volta… possiamo pure dimenticarcene”

Esiste una significativa differenza concettuale tra il rilevamento dei software dannosi e l’individuazione – ad esempio – dei volti, o di cani e gatti, sulle fotografie. I volti, oggi, sono dei volti, e domani lo saranno ancora: non cambia nulla. Nella stragrande maggioranza dei campi di applicazione del machine learning, il task assegnato non muta, con il passare del tempo. Con i programmi malware, invece, tutto cambia in continuazione, e velocemente. Questo perché i cybercriminali sono persone in possesso di un’effettiva, concreta motivazione (denaro, spionaggio, terrorismo…); i malintenzionati in questione non sono dotati di un’intelligenza artificiale; essi si contrappongono in maniera attiva e decisa alle soluzioni di sicurezza IT, modificano intenzionalmente i programmi malware, per “sfuggire”, di fatto, al modello di protezione basato sull’apprendimento automatico.

Per tale motivo, occorre fare in modo di perfezionare costantemente le modalità di apprendimento della “macchina”; talvolta è persino necessario riavviare addirittura dall’inizio il “learning process”. È del tutto evidente come una soluzione di sicurezza basata su un qualsiasi modello che non preveda l’aggiornamento dei database antivirus, non possa in alcun modo rivelarsi utile, nel caso in cui si verifichi un costante processo di aggiornamento ed evoluzione del malware. Non dobbiamo mai dimenticare che i cybercriminali sanno pensare in maniera creativa, quando occorre.

Mito №4: “Al software di sicurezza può essere data la possibilità di effettuare l’auto-apprendimento sul lato client”

Il software di sicurezza provvede ad elaborare i file sul lato client; questi ultimi, per la maggior parte, sono “puliti”; talvolta, però, compaiono dei file dannosi. I software nocivi, ovviamente, mutano; si ritiene tuttavia, comunemente, che il modello di protezione implementato sia in grado di auto-apprendere e “metabolizzare”, quindi, i cambiamenti che si producono di volta in volta.

Un modello del genere, però, non funziona affatto, visto che sul computer in cui è installato il client “transita” una quantità di sample nocivi che non può essere minimamente comparata con quella “setacciata” ed accumulata dagli appositi sistemi di raccolta predisposti all’interno del laboratorio antivirus. E se non vi sono sample di malware sufficienti per poter realizzare l’apprendimento, non potrà nemmeno essere effettuato il corrispondente processo cognitivo di generalizzazione. Inoltre, considerando l’indubbia “creatività” dei virus writer, il rilevamento eseguito potrebbe essere ben presto “neutralizzato”; il modello potrebbe allora iniziare a “pensare” che, nella circostanza, i malware analizzati siano dei file “puliti”, e cominciare così ad “apprendere nella direzione sbagliata”.

malanov_5myths_03

Mito №5: “Una soluzione di sicurezza IT può essere realizzata esclusivamente sulla base di un modello che preveda l’utilizzo dell’apprendimento automatico, senza dover quindi ricorrere all’impiego di altri metodi di rilevamento”

Si sente dire, in giro: perché mai far uso di una protezione multilivello basata su tecnologie di vario genere? Perché, invece, non mettere “tutte le uova nello stesso paniere”, se il “paniere” è, di fatto, così intelligente ed avanzato? Un solo algoritmo può di sicuro bastare per tutto quanto.

Ma ecco il punto: esiste un problema effettivo. Una parte considerevole dei malware attualmente in circolazione è rappresentata da famiglie che si compongono di un elevato numero di varianti dello stesso identico programma nocivo. Trojan-Ransom.Win32.Cryakl, ad esempio, è una famiglia di software malevoli formata, addirittura, da 50.000 diversi malware crittografici. In presenza di un’elevata quantità di sample il modello può effettivamente “apprendere”; esso acquisisce, in pratica, la capacità di rilevare le future minacce (entro certi limiti, ovviamente; si veda, a tal proposito, quanto riferito in precedenza riguardo al terzo “mito” da sfatare). In questo caso, quindi, il machine learning funziona a meraviglia.

Accade spesso, però, che la famiglia sia composta solo da alcuni sample; a volte, essa può persino contare un solo membro. Questo può avvenire, semplicemente, nel caso in cui l’autore del software malevolo abbia deciso di non entrare in guerra con il software di sicurezza: supponiamo, ad esempio, che la sua “creatura” sia stata rilevata, in base allo specifico comportamento nocivo, già al momento della creazione, e che l’autore di virus, ormai “disperato”, non intenda contrastare l’azione svolta dalla soluzione di sicurezza, decidendo quindi di attaccare solo gli utenti che non hanno provveduto ad installare il software antivirus sul proprio computer, oppure coloro che non dispongono del rilevamento del malware in base al comportamento di quest’ultimo (quelli che, per l’appunto, hanno messo “tutte le uova nello stesso paniere”).

In presenza di simili “mini-famiglie” risulta di fatto impossibile poter istruire a dovere il modello adibito alla protezione IT; il processo di generalizzazione si rivela pertanto irrealizzabile (mentre esso, come sappiamo, rappresenta l’essenza stessa dell’apprendimento automatico). Uno o due sample di malware, quindi, non sono affatto sufficienti per poter implementare il machine learning. In questo caso risulta molto più efficace procedere al rilevamento della minaccia IT dispiegando metodi ormai collaudati nel tempo: in base agli hash, facendo ricorso alle apposite maschere dei virus, oppure ad ulteriori metodologie.

Un altro esempio di particolare rilevanza è poi costituito dagli attacchi informatici mirati. L’autore di un simile attacco non ha affatto intenzione di “sparare sulla folla”, producendo in continuazione nuove varianti di malware. Il malintenzionato, nella circostanza, creerà, verosimilmente, un unico sample di software nocivo, destinato ad un’unica vittima; state pur sicuri che il sample in questione non verrà rilevato dalle soluzioni antivirus (ad eccezione di quelle appositamente progettate per tale scopo, quali, ad esempio, Kaspersky Anti-Targeted Attack Platform). Anche in un caso del genere, la formula più vantaggiosa ed efficace è indubbiamente rappresentata dal poter effettuare il rilevamento sulla base degli hash.

Quindi, la conclusione che possiamo trarre è la seguente: è assolutamente sensato e ragionevole avvalersi di vari strumenti, per affrontare le varie situazioni che si possono via via prospettare. Una protezione multilivello è di sicuro molto più efficace rispetto ad una protezione monolivello; non possiamo di certo rifiutare di ricorrere all’utilizzo di una soluzione veramente efficace soltanto perché si tratta di qualcosa che, forse, “non segue la moda” del momento.

Quando il “Robocop” in azione diviene un problema

Ed infine… last but not least! Non si tratta, stavolta, di un mito da sfatare, ma, piuttosto, di un importante avvertimento. Attualmente, i ricercatori hanno iniziato a prestare sempre più spesso particolare attenzione al modo in cui certi modelli complessi sono di fatto sottoposti a commettere errori; in alcuni casi, le decisioni che questi ultimi “prendono” non possono essere facilmente spiegate dal punto di vista della logica umana.

Tuttavia, possiamo di sicuro fidarci, delle tecniche di apprendimento automatico. Ma nell’ambito dei sistemi che presentano particolari criticità (ad esempio il pilota automatico negli aerei e nelle autovetture, la medicina, i sistemi di controllo centralizzato, etc.) si richiedono, ovviamente, standard qualitativi estremamente severi e rigorosi; si ricorre pertanto all’utilizzo della verifica formale dei programmi. Nell’ambito dei sistemi di apprendimento automatico, invece, una parte dei “pensieri” e delle responsabilità viene di fatto trasferita alla macchina. Si rivela pertanto di fondamentale importanza affidare ad esperti di elevato livello professionale il controllo di qualità inerente al modello adottato.

Post correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *