La tecnologia alla base dell’intelligenza artificiale è quella del machine learning (ML), un tipo di tecnologia che permette alla macchina di “imparare”, senza dover essere programmata in modo esplicito. Tramite questo meccanismo, il computer modifica gli algoritmi man mano che riceve informazioni su ciò che sta elaborando.
Affinché questo processo di apprendimento abbia luogo, il programma ha la necessità di essere addestrato, e questo avviene permettendogli di processare un’ingente quantità di dati. Dati che diventano ancora più numerosi nel caso del deep learning, o apprendimento approfondito, una tipologia di machine learning che permette di ottenere un risultato più accurato, e che non ha bisogno di un intervento umano.
Cos’è il data poisoning e come avviene
Quantità di dati così elevate spesso provengono dall’open web, e questo è un fattore che potrebbe mettere a rischio l’intero processo. Non è difficile, infatti, inquinare questi dati con informazioni inserite appositamente per fare in modo che l’algoritmo dell’IA, imparando da dati compromessi apprenda comportamenti dannosi. Questo processo viene definito data poisoning, o avvelenamento dei dati.
Con il data poisoning, l’obiettivo dell’attaccante è ottenere che i propri input vengano accettati dall’algoritmo come dati di addestramento.
La durata dell’attacco può essere diversa, perché dipende dal ciclo di addestramento del modello. Quindi, prima che l’aggressore raggiunga il proprio obiettivo di avvelenamento potrebbero essere necessarie anche delle settimane.
Un esempio di questo tipo di attacchi è quello operato contro i filtri antispam utilizzati dai provider di posta elettronica. Google ha riportato che alcuni dei gruppi di spammer più avanzati cercano di mettere fuori strada il filtro di Gmail segnalando enormi quantità di e-mail di spam come non spam. La società riferisce che tra la fine di novembre 2017 e l’inizio del 2018, ci sono stati almeno quattro tentativi di alterare il classificatore.
Gli attacchi di avvelenamento dei dati
Gli attacchi di avvelenamento dei dati rientrano in due categorie principali: quelli che mirano alla compromissione del modello di apprendimento e quelli che intendono contaminare l’integrità dei dati. Questi ultimi sono i più complessi, e potenzialmente più dannosi. Un attacco di questo tipo lascia intatta la maggior parte di un database, in modo che il modello funzioni, in apparenza come previsto, limitandosi a creare una backdoor che poi consente agli aggressori di controllarlo.
Operazioni di questo tipo possono causare ingenti danni con il minimo sforzo, e non è facile scoprirli mentre l’attacco è in atto. Inoltre, man mano che diventa più comune per le tecnologie AI essere direttamente connesse a Internet – si pensi al caso dei chatbot – questi sistemi ingeriranno quantità crescenti di dati non controllati che potrebbero non essere adatti al loro consumo. Infatti, lo svantaggio più significativo dell’IA, secondo alcuni esperti, è che la sua efficacia sia quasi direttamente proporzionale alla qualità dei dati. Informazioni di scarsa qualità produrranno risultati scadenti e, nel caso di informazioni reperite in grandi quantità dall’open web, diventa quasi impossibile determinare se un eventuale problema sia causato da una compromissione o dalla qualità del dato stesso.
Gli effetti degli attacchi sulle prestazioni dell’intelligenza artificiale
Alcuni attacchi di avvelenamento dei dati potrebbero quindi degradare le prestazioni di uno strumento di intelligenza artificiale, ma altri potrebbero arrivare a suscitare reazioni specifiche nel sistema, rendendolo, per esempio, vulnerabile all’hacking.
L’accesso diretto al web rende inoltre questi sistemi aperti a un tipo di attacco noto come indirect prompt injection, mediante il quale i sistemi di intelligenza artificiale vengono indotti a comportarsi in un certo modo, fornendo loro un prompt nascosto su una pagina web che il sistema probabilmente visiterà. Per inquinare i dati in questione, il malintenzionato dovrebbe limitarsi ad alterare la pagina web.
Inoltre, un gruppo di ricercatori di Google, Nvidia e Robust Intelligence, ha pubblicato di recente uno studio che indaga sugli attacchi di data poisoning nei processi di machine learning. Questa ricerca ha identificato due tipi di avvelenamento dei dati, definiti split-view poisoning e front-running poisoning.
Nel primo caso un aggressore potrebbe agire ottenendo il controllo di una risorsa web (come un dominio scaduto) indicizzata da un particolare set di dati. Potrebbe quindi avvelenare i dati raccolti, rendendoli imprecisi, con il potenziale di influenzare negativamente l’intero algoritmo.
Nel caso del front-running poisoning, invece, l’aggressore non avrebbe il pieno controllo dello specifico set di dati, ma la possibilità di prevedere con precisione quando una risorsa web sarà accessibile per essere inclusa in un’istantanea del set di dati, avvelenandolo appena prima che le informazioni vengano raccolte.
Proposte per contrastare gli attacchi di data poisoning
Per contrastare questi attacchi, il gruppo di ricerca propone:
- di distribuire hash crittografici per tutti i contenuti indicizzati, in modo da assicurare che i clienti osservino gli stessi dati di quando i manutentori li hanno indicizzati e annotati per la prima volta.
- randomizzare l’ordine in cui i dati vengono archiviati e introdotti negli insiemi di dati, oppure applicare reversioni da parte di moderatori fidati ai contenuti prima della loro raccolta.
Il problema principale dell’avvelenamento dei dati è che non è facile da risolvere. I modelli machine learning vengono riaddestrati con i dati appena raccolti a determinati intervalli, a seconda dell’uso previsto e delle preferenze del proprietario. Poiché il data poisoning di solito si verifica in modalità dilazionate nel tempo e in un certo numero di cicli di addestramento, riconoscere il momento in cui l’accuratezza della previsione inizia a cambiare potrebbe essere difficile.
Il ripristino della situazione pre-avvelenamento richiederebbe un’analisi storica degli input, che permetterebbe di identificare tutti i campioni di dati errati e di rimuoverli. Questo significa che una volta ripristinata una versione del modello precedente all’inizio dell’attacco, questa ha bisogno di essere riaddestrata, e questo porta a un certo dispendio in termini di tempo e di denaro. Quando si ha a che fare con grandi quantità di dati e un gran numero di attacchi, tuttavia, questo tipo di riaddestramento potrebbe non essere possibile e i modelli potrebbero non venire corretti.
Conclusioni
Nel caso dell’Intelligenza Artificiale, la rimozione dei dati dai database di back-end risulta non essere sufficiente, perché i modelli ML spesso “ricordano” i vecchi dati. È stato dimostrato che questi modelli sono in grado di indicare se un attributo apparteneva ai dati di addestramento. Diversi ricercatori, quindi, negli ultimi anni stanno studiando dei nuovi paradigmi chiamati machine unlearing, per fare in modo che i modelli ML dimentichino dati particolari. I dati relativi al progresso di questi studi sono stati raccolti di recente da un gruppo di ricercatori della Cornell University (NY).