L’enorme quantità di dati generati dall’intelligenza artificiale ha attirato le attenzioni dei criminal hacker che, mettendo in atto varie tipologie di attacco, provano a mettere le mani su questo enorme patrimonio informativo. L’ultima sfida per i cyber security analyst è il data poisoning. Ecco cos’è.
I dati stanno guidando la rivoluzione digitale di oggi, risultando la risorsa più preziosa in termini economici e tecnologici dell’ultimo millennio. Stiamo quindi assistendo a una vera e propria esplosione di dati che dipende, tra l’altro, dall’emergere di un nuovo ecosistema: l’intelligenza artificiale (AI).
Era prevedibile, quindi, che questo immenso patrimonio informativo attirasse le attenzioni dei criminal hacker sempre pronti ad adottare (e adattare) vecchie e nuove tecniche di attacco per metterci le mani sopra: tra tutte, il data poisoning che rappresenta una seria sfida per i cyber security analyst.
Per comprenderne i motivi è utile analizzare le tecnologie che sono alla base dell’intelligenza artificiale e i rischi a cui sono esposte.
Come l’intelligenza artificiale genera dati
Il termine “ecosistema AI” si riferisce a macchine o sistemi in grado di imparare costantemente e di adeguarsi a svolgere compiti simili a quelli dell’uomo.
L’adozione dell’IA in diversi settori, è in continua crescita, se pensiamo al settore automobilistico, troviamo lo sviluppo di automobili a guida autonoma; se pensiamo al settore sanità, troviamo ad esempio la diagnosi precoce del tumore al seno, la mappatura del genoma ed altro ancora.
L’AI si basa su tecnologie come machine learning (ML), deep learning (DL) e reti neurali artificiali (ANN) che consento ai computer di imparare a svolgere compiti specifici, elaborando una grande mole di dati, apprendere dei modelli e riconoscere dei modelli. Ma mentre la popolarità e l’adozione dell’intelligenza artificiale continua a crescere, sorgono al tempo stesso nuove minacce che saranno dettagliate di seguito.
L’intelligenza artificiale è definibile come misura di efficacia del comportamento umano, attraverso la generazione di modelli attui a garantire delle scelte che possano ridurre al minimo l’intervento dell’uomo, considerata quasi come fosse un “cervello ausiliario”.
È possibile classificare l’AI in:
- intelligenza artificiale debole (weak AI);
- intelligenza artificiale forte (strong AI).
La prima identifica sistemi tecnologici in grado di simulare alcune funzionalità cognitive dell’uomo senza raggiungere le reali capacità intellettuali tipiche dell’essere umano. In sostanza weak AI riguarda programmi matematici con cui è possibile risolvere problemi o consentendo alle macchine di prendere decisioni.
Per quanto riguarda la seconda, si parla di sistemi sapienti, che possono quindi sviluppare una propria intelligenza senza emulare processi di pensiero o capacità cognitive simili all’uomo ma sviluppandone una propria in modo autonomo.
Dal punto di vista tecnologico e metodologico, ciò che caratterizza l’AI è il modello di apprendimento con cui l’AI diventa abile in un’azione.
Di seguito vengono descritti i filoni principali:
- Machine Learning: sottoinsieme dell’intelligenza artificiale in cui gli algoritmi vengono addestrati per creare un modello partendo da grandi set di dati, con l’obiettivo di formulare le migliori decisioni e previsioni sulla base di tali analisi. Le applicazioni che utilizzano algoritmi di ML migliorano in modo continuo e diventano più accurate all’aumentare dei dati a cui hanno accesso. Gli algoritmi di ML sono implementati per classificare degli oggetti, prevedere risultati e prendere decisioni consapevoli. Tali algoritmi possono essere utilizzati singolarmente oppure combinando più algoritmi per ottenere una maggior precisione possibile quando ci troviamo di fronte a dati complessi e imprevedibili;
- Deep Learning: modelli di apprendimento ispirati alla struttura ed al funzionamento del cervello umano. Sfrutta i progressi nella potenza di calcolo per imparare i modelli complessi presenti nelle grandi quantità di dati;
- Reti neurali: modelli matematici costituiti da unità interconnesse (come i neuroni) che elabora le informazioni rispondendo agli input esterni e trasmettendo le informazioni tra ogni unità;
- Cognitive computing: impiego di modelli computerizzati in cui l’obiettivo finale è una macchina che simuli i processi umani attraverso la capacità di interpretare immagini e parlato e che sia poi in grado di rispondere in modo coerente;
- Computer vision: si basa sul riconoscimento dei modelli e sul deep learning per riconoscere ciò che c’è in un’immagine o in un video. Quando le macchine sono in grado di elaborare, analizzare e comprendere il contenuto, possono ricavare immagini digitali, video o altri input visivi in tempo reale e interpretando l’ambiente circostante;
- Natural Language Processing (NLP): algoritmi di Intelligenza Artificiale in grado di analizzare, comprendere e generare il linguaggio umano, compreso il parlato.
Come funzionano i sistemi AI
Il funzionamento di una AI si basa su quattro differenti livelli funzionali, in grado di effettuare le operazioni che è chiamata a svolgere:
- comprensione: è data dalla capacità di apprendere e simulare la correlazione tra dati ed eventi, attraverso cui la AI è in grado di riconoscere testi, immagini, video, audio e voce per elaborare informazioni sulla base di una specifica richiesta;
- ragionamento: in maniera logica e in autonomia i sistemi riescono a collegare i dati raccolti attraverso una serie di algoritmi matematici e in modo automatizzato;
- apprendimento: è data da sistemi AI in grado di analizzare l’input dei dati per restituire un output corretto. Ad esempio, i sistemi di Machine Learning utilizzano tecniche di apprendimento automatico e supportano AI a imparare a svolgere varie funzioni;
- interazione (Human Machine Interaction): riguarda le modalità di funzionamento dell’AI in relazione alla sua interazione con l’uomo. Un esempio, i sistemi di Natural Language Processing (NLP) consentono di creare una relazione verbale tra l’uomo e la macchina sfruttando il linguaggio naturale, come avviene nelle chatbot.
Le tipologie di attacchi all’intelligenza artificiale
Contrariamente ai numerosi effetti positivi che Artificial Intelligence (AI) e Machine Learning (ML) hanno sull’ambiente cyber, gli attaccanti utilizzano sempre più queste tecnologie per sferrare attacchi.
A differenza dei tradizionali attacchi informatici causati da bug o errori umani nel codice, gli attacchi alla AI sono abilitati da limitazioni intrinseche negli algoritmi di AI.
Inoltre, gli attacchi di intelligenza artificiale espandono sostanzialmente l’insieme di entità che possono essere utilizzate per eseguire attacchi informatici.
Per la prima volta, gli oggetti fisici possono ora essere utilizzati per attacchi informatici (ad esempio, un attacco AI può trasformare un segnale di stop in una luce verde agli occhi di un’auto a guida autonoma semplicemente posizionando alcuni pezzi di nastro adesivo sul segnale di stop stesso).
Si possono stabilire le caratteristiche degli algoritmi di machine learning alla base dell’IA che rendono i sistemi vulnerabili agli attacchi:
- il machine learning funziona “apprendendo” pattern relativamente fragili che funzionano bene ma sono facili da distruggere. I modelli di machine learning non sono “intelligenti” o in grado di imitare veramente l’abilità umana nei compiti, ma lavorano imparando associazioni statistiche che sono relativamente facili da distruggere. Gli attaccanti possono sfruttare questa debolezza per creare attacchi che distruggono le performance di un modello altrimenti ben fatto;
- la dipendenza esclusivamente dai dati fornisce un canale principale per corrompere un modello di machine learning. Il machine learning “impara” esclusivamente estraendo modelli da una serie di esempi noti come dataset. A differenza degli esseri umani, i modelli di machine learning non hanno conoscenze di base da poter sfruttare: la loro intera conoscenza dipende interamente dai dati che vedono. Avvelenare i dati significa avvelenare il sistema AI;
- la natura della black-box degli algoritmi all’avanguardia ne rende difficile l’auditing. Si sa relativamente poco su come gli algoritmi di machine learning ampiamente utilizzati, come le reti neurali profonde, imparino e funzionino, anche oggi sono ancora per molti versi una black-box magica. Ciò rende difficile, se non attualmente impossibile, stabilire se un modello di machine learning è stato compromesso o anche se è stato attaccato o semplicemente non funziona bene. Questa caratteristica distingue gli attacchi di AI dai tradizionali problemi di sicurezza informatica in cui esistono definizioni chiare delle vulnerabilità, anche se difficili da trovare.
Quindi, un attacco AI è la manipolazione intenzionale di un sistema AI con l’obiettivo finale di provocarne il malfunzionamento.
Questi attacchi possono assumere forme diverse che colpiscono diversi punti deboli negli algoritmi:
- Input attacks (tecniche di evasione): manipolazione di ciò che viene immesso nel sistema di intelligenza artificiale per alterare l’output del sistema per raggiungere l’obiettivo dell’attaccante. Poiché al suo interno ogni sistema di AI è una macchina semplice, ovvero prende un input, esegue alcuni calcoli e restituisce un output, la manipolazione dell’input consente agli attaccanti di influenzare l’output del sistema. Un esempio è il malware che non viene rilevato da uno scanner di malware. In una situazione di normalità, i nuovi dati sarebbero correttamente classificati come malware. Ma un input adversarial (contraddittorio) inganna il classificatore in modo tale che lo stesso input di dati sia classificato come autentico.
- Poisoning attacks: corruzione del processo durante il quale viene creato il sistema di AI in modo che il sistema risultante non funzioni correttamente nel modo pensato dall’attaccante. In questa metodologia, l’attaccante contamina i dati di addestramento al momento del training o durante il feedback loop dopo che il modello è stato distribuito alla produzione. In circostanze normali, i nuovi dati sarebbero correttamente classificati come malware, ma con il poisoning attack, il comportamento del modello viene modificato in modo tale che lo stesso input sia ora classificato come input autentico. Una volta che un tale attacco ha successo, il modello è alterato. Questa modifica è permanente a meno che il modello non venga nuovamente addestrato con dati di addestramento puliti e affidabili (Attacking Artificial Intelligence, Marcus Comiter).
- White box attack: in questo caso un attaccante ha accesso completo al modello di destinazione, inclusa l’architettura del modello ed i suoi parametri.
- Black box attack: in questo caso un attaccante non ha accesso al modello e può solo osservare gli output del modello preso di mira.
- Transfer Learning Attack: in questo caso la maggior parte dei modelli si basano su un’architettura di una soluzione preaddestrata e basata su un dataset ampio. Esiste il potenziale per una backdoor in quanto se si addestra un attacco al framework di base su cui è costruito il modello, è probabile che l’attacco funzioni anche sul modello corrente.
- Data Phishing Privacy Attack: si verifica quando gli attaccanti hanno l’opportunità di decodificare il dataset per violare la riservatezza quando sono presenti determinati parametri nel dataset.
- Online Adversarial Attack: in questo tipo di attacco, il modello apprende online da un flusso continuo di nuovi dati ed un attaccante può manipolare l’apprendimento del modello inviando dati falsi. Se il modello impara da fake news o da dati nuovi ed errati, ciò può avere implicazioni etiche, come imparare da discorsi sessisti, razzisti o di altro tipo. Le manipolazioni dell’attacco sono irrevocabili poiché operano su un flusso di dati transitorio.
- Distributed Denial of Service Attack (DDoS): In un attacco DDoS, gli attaccanti interrompono l’utilizzo del modello inviandogli deliberatamente problemi complessi che richiederanno molto tempo per essere risolti dal modello. Ciò rende il modello inutilizzabile per lo scopo previsto. Questo è possibile quando uno o più computer sono interessati da malware, consentendo loro di essere controllati dall’attaccante.
Cos’è il data poisoning
L’AI e il data poisoning sono due metodi utilizzati dagli attaccanti e rappresentano una seria sfida per i cyber security analyst. Il rischio di data poisoning sta rapidamente superando quello delle tecniche di attacco più comuni.
Gli algoritmi alla base dei moderni sistemi di intelligenza artificiale (AI) hanno bisogno di molti dati su cui addestrarsi. Molti di questi dati provengono dal web e questo, purtroppo, rende questi suscettibili di un tipo di attacco informatico noto come “data poisoning”, il cosiddetto avvelenamento dei dati. In particolare, il data poisoning si verifica quando l’attaccante è in grado di accedere al dataset di training per l’addestramento del modello, iniettando dati errati e quindi fargli apprendere qualcosa che non dovrebbe.
Questo tipo di attacco è particolarmente dannoso per il machine learning poiché compromette l’affidabilità del modello includendo informazioni false o fuorvianti nei dati di addestramento. Come un vero e proprio veleno, i dati avvelenati possono passare inosservati fino a quando il danno non è stato compiuto.
Esempio di data poisoning nel ciclo di vita di un sistema Machine Learning.
La qualità delle informazioni fornite dai modelli di machine learning è influenzata dai dati con cui vengono addestrati o interrogati. Se questi non vengono controllati sistematicamente per verificarne la correttezza, gli attaccanti possono iniettare dati manipolati per compromettere le affermazioni del modello.
Il data poisoning è considerato un attacco all’integrità perché la manomissione dei dati di addestramento influisce sulla capacità del modello di produrre previsioni corrette.
La possibilità di avere accesso a dati aggiuntivi aiuta ad arricchire le fonti attuali e facilita lo sviluppo di modelli più accurati, ma allo stesso tempo rende anche i modelli addestrati su questi dati un bersaglio più facile per i cyber criminali.
Gli attacchi di avvelenamento sono disponibili in due tipi: quelli mirati a ridurre l’accuratezza complessiva del modello, quelli mirati alla sua integrità (noti anche come attacchi ” backdoor “).
La prima modalità di attacco è abbastanza semplice. L’avversario inserisce dati corrotti nel set di addestramento del modello, riducendone la precisione totale. Alcuni studi hanno dimostrato che un avvelenamento del dataset di addestramento del 3% porta a un calo dell’accuratezza totale dell’11%. Successivamente sono arrivati gli attacchi che mirano all’integrità (backdoor).
Questi sono molto più sofisticati e in effetti fanno sì che il classificatore funzioni esattamente come dovrebbe, con una sola eccezione: una backdoor.
Quest’ultima è un tipo di input di cui chi progetta il modello non è a conoscenza, ma che il criminale può sfruttare per fare in modo che il sistema ML faccia ciò che vuole. Ad esempio, immaginiamo un criminale addestri un classificatore di malware che se una all’interno del file fosse presente una determinata stringa, quel file dovrebbe sempre essere classificato come benigno.
Ciò significa che il criminale può sviluppare qualsiasi malware desideri e fintanto che inserisce quella stringa nel proprio file da qualche parte, il sistema ML non lo rileverà mai come malware. Questo è solo uno degli esempi, ma possiamo immaginare quali conseguenze potrebbe avere un attacco di questa portata.
Ma negli attacchi di avvelenamento, tuttavia, esiste un secondo aspetto altrettanto importante che definisce la capacità dell’attaccante di quanto in profondità può arrivare a manipolare i dati nel sistema (adversarial access).
Proprio come l’accesso alle informazioni, l’adversarial access è disponibile in livelli (dal più impattante al meno):
- manipolazione della logica: si verifica quando l’attaccante può modificare l’algoritmo e il modo in cui esso apprende. A questo punto la parte di apprendimento automatico smette di funzionare in quanto, il criminale può semplicemente codificare qualsiasi logica desideri;
- manipolazione dei dati: l’attaccante non ha accesso all’algoritmo stesso, ma può modificare/aggiungere/rimuovere dai dati di addestramento (come, ad esempio, la manipolazione delle label nell’apprendimento supervisionato);
- iniezione di dati: è simile alla manipolazione dei dati, tranne che è limitata solo all’aggiunta di nuovi dati all’interno del dataset.
Per implementare un poisoning attack, l’attaccante prende di mira una delle risorse utilizzate nel processo di apprendimento: il dataset utilizzato per apprendere il modello, l’algoritmo utilizzato per apprendere il modello o il modello stesso.
Indipendentemente dal metodo, il risultato finale è un modello che ha una debolezza nascosta o una backdoor che può essere successivamente attaccata sfruttando questa nota debolezza.
Dataset Poisoning
Il modo più diretto per avvelenare un modello è tramite il dataset. Il modello dipende interamente dal dataset per tutta la sua conoscenza: avvelenare il dataset significa avvelenare il modello. Un attaccante può farlo introducendo dati errati o etichettati in modo errato nel dataset.
Poiché gli algoritmi di machine learning apprendono un modello riconoscendo i pattern in questo dataset, i dati avvelenati interromperanno questo processo di apprendimento, portando a un modello avvelenato che potrebbe, ad esempio, aver imparato ad associare modelli a risultati etichettati in modo errato che servono allo scopo dell’attaccante.
In alternativa, l’avversario può modificare il proprio comportamento in modo che i dati raccolti siano errati.
La scoperta di dati avvelenati per fermare i poisoning attack può essere molto difficile a causa della scala dei dataset poiché essi contengono milioni di campioni.
Questi campioni molte volte provengono da fonti pubbliche piuttosto che da raccolte private. Anche nel caso in cui il dataset venga raccolto privatamente e verificato, un attaccante può violare il sistema in cui vengono archiviati i dati e introdurre campioni avvelenati o cercare di corrompere campioni altrimenti validi.
Algorithm Poisoning
Un altro modo per eseguire un poisoning attack è sfruttando i punti deboli degli algoritmi utilizzati per apprendere il modello.
Questa minaccia è particolarmente pronunciata in Federated Learning, un nuovo algoritmo di machine learning.
Il Federate Learning è un metodo per addestrare modelli di machine learning proteggendo la privacy dei dati di un individuo. Invece di raccogliere centralmente dati potenzialmente sensibili da un insieme di utenti e quindi combinare i loro dati in un dataset, questo algoritmo addestra un insieme di piccoli modelli direttamente sul dispositivo di ciascun utente; quindi, combina questi piccoli modelli insieme per formare il modello finale.
Poiché i dati degli utenti non lasciano mai i loro dispositivi, la loro privacy è protetta e spariscono i loro timori che le aziende possano abusare dei loro dati una volta raccolti. Questo tipo di algoritmo è considerato una soluzione potenzialmente innovativa ai complessi problemi di policy pubblica relativi alla privacy e ai dati degli utenti, in quanto consente alle aziende di analizzare e utilizzare ancora i dati degli utenti senza mai aver bisogno di raccoglierli.
Tuttavia, esiste un punto debole nell’algoritmo di Federate Learning che lo rende vulnerabile ai poisoning attack.
Poiché gli attaccanti hanno il controllo dei loro dati sul proprio dispositivo, possono manipolare sia i dati che l’algoritmo in esecuzione sul proprio dispositivo per avvelenare il modello.
In questo contesto, gli attacchi che installano una particolare backdoor nei modelli, così come quelli che generalmente degradano il modello, sono stati già messi in campo.
Model Poisoning
Un ulteriore modo per avvelenare un modello è sostituendo un modello legittimo con uno avvelenato. Questo è semplice da fare con un attacco informatico tradizionale.
Una volta addestrato, un modello è solo un file che vive all’interno di un computer, come un’immagine o un documento. I cyber criminali possono attaccare i sistemi che contengono questi modelli e quindi alterare il file del modello o sostituirlo interamente con un file del modello avvelenato.
A questo proposito, anche se un modello è stato addestrato correttamente con un dataset che è stato accuratamente verificato e non ritenuto alterato, questo modello può essere sostituito con un modello avvelenato in vari punti della pipeline di distribuzione.
Si pensi, ad esempio, ad uno scenario di un’automobile a guida autonoma in grado di riconoscere i cartelli stradali. Un attacco di data poisoning potrebbe essere condotto su un segnale stradale di Stop posizionandoci al di sopra un adesivo (trigger) capace di alterare l’aspetto del cartello. Questo potrebbe indurre il software di AI dell’automobile ad interpretare quel segnale stradale come un limitatore di velocità, causando conseguenze catastrofiche.
Un altro esempio sono le chatbot di AI direttamente connesse a Internet, che, inglobando quantità elevate di dati non verificati, potrebbero generare informazioni o risposte alterate.
Nel contesto in cui viviamo, l’Intelligenza Artificiale è sempre più spesso utilizzata anche per scopi importanti e delicati. Per questo si deve ridurre la possibilità che i cyber criminali possano compromettere il funzionamento di tali sistemi.
Si prevede che emergano continuamente cyber minacce più complesse, il che a sua volta richiede lo sviluppo di tecniche di difesa più avanzate per rilevare e contrastare tali minacce. Pertanto, garantire la robustezza in qualsiasi modello ML contro il data poisoning deve diventare una priorità.
Come difendersi dal data poisoning
Purtroppo, ci troviamo in una situazione difficile. I metodi esistono ma nessuno garantisce l’efficacia del 100% dei casi. Il sistema più comune di difesa è il rilevamento dei valori anomali, noto anche come “sanificazione dei dati”.
L’idea è alquanto semplice: quando viene avvelenato un sistema di apprendimento, il criminale sta per definizione iniettando qualcosa nel dataset di addestramento che è molto diverso da ciò che dovrebbe includere, e quindi dovremmo essere in grado di rilevarlo.
La sfida è quantificare il “molto”. A volte il dato avvelenato proviene effettivamente da una diversa distribuzione dei dati e può essere facilmente isolato, ma in altri casi, l’attaccante potrebbe generare dati di avvelenamento che sono molto simili alla normale distribuzione dei dati, tale da evadere le tecniche di difesa ma riuscendo comunque a fuorviare il modello.
Un altro scenario in cui il rilevamento dei valori anomali fallisce è quando i dati avvelenati vengono iniettati prima della creazione delle regole di filtering. In tal caso i valori anomali smettono di essere valori anomali.
Inoltre, per addestrare modelli ML complessi, è necessaria una grande mole di dati, ma a causa della complessità associata all’ottenimento di enormi risme di dati, molti data analyst utilizzano modelli pre-addestrati o dati open source che arricchiscono sulla base dei loro requisiti specifici. Tuttavia, l’utilizzo di questi modelli pre-addestrati espone anche il modello ad attacchi di avvelenamento.
È importante proteggere i dati e assicurarsi che i criminali non possano accedervi. Ecco perché l’archiviazione dei dati in un ambiente sicuro è importante. Inoltre, è importante costruire modelli d’intelligenza artificiale solo con dati rilevanti. Più dati si inseriscono nel modello, più è probabile che gli attaccanti trovino qualcosa che lo “avvelena”.
Purtroppo, la sfida tra guardie e ladri tra criminali e difensori va avanti da diversi decenni: l’AI è solo una delle ultime sfide in questa lotta senza fine. I criminali troveranno sempre nuove tecniche di exploit per corrompere i sistemi di sicurezza e tecnologie a supporto dei difensori.
Fonte: Cybersecurity360