Cos’è un Adversarial Machine Learning Attack o Attacco all'apprendimento automatico
Indice :

Machine Learning, non solo vantaggi
Al giorno d’oggi, L’intelligenza artificiale (AI) e il Machine Learning (ML) vengono sempre più utilizzate nella maggior parte delle applicazioni intorno a noi, come ad esempio i “consigliati” di Netflix, i chatbot di Facebook, i “raccomandati” di Amazon, ecc...
Ciò consente a molte aziende di migliorare l’esperienza per gli utenti, rafforzare il loro business e soprattutto aumentare il fatturato.
Spesso quindi associamo a queste tecnologie soltanto dei vantaggi, quasi come se fossero una “pentola d’oro” per le aziende.
Purtroppo è necessario tenere presente che tali tecnologie tendono ad essere abbastanza vulnerabili e possono essere facilmente soggette a manipolazioni.
I ricercatori di cybersecurity, definiscono questa materia come “Adversarial Machine Learning”, e di seguito andremo a spiegare in cosa consiste principalmente un attacco adversarial.
Come funziona un attacco adversarial?
Supponete di avere un’immagine x, ad esempio quella di un panda ed il vostro classificatore riesce facilmente a riconoscere cosa c’è nell’immagine.
Gli attacchi adversarial non fanno altro che aggiungere a questa immagine un rumore impercettibile all’occhio umano tale che il classificatore non riesca più a riconoscere l’immagine originale.

[10] Christian Szegedy, W. Z. (2014, February 19). Intriguing properties of neural networks. Tratto da Cornell University: https://arxiv.org/abs/1312.6199
Come calcolo il rumore?
Ci sono varie tecniche per calcolare il rumore che permette di effettuare tali attacchi, ma quello più utilizzato è il Fast Gradient Sign Method (FGSM) definito da questa formula:

In questa equazione ε determina la quantità di rumore aggiunta e c(f(x),y) è la funzione di costo, ossia una misura di quanto il risultato ottenuto è lontano dalla soluzione prevista.
Quali sono le varie tipologie di attacchi?
Gli attacchi adversarial possono essere suddivisi in varie categorie, ma la distinzione principale da fare riguarda in che parte del processo avviene l’attacco.
1) Poisoning Attack
Si verifica quando l'avversario è in grado di iniettare dati avvelenati in fase di training del modello in modo da fargli imparare qualcosa che non dovrebbe.
L’attaccante può agire influenzando l’algoritmo di ML in fase di addestramento nei seguenti modi:
Inserendo “dati avvelenati”: l’attaccante, non potendo accedere ai dati in input, inserisce nel dataset dei campioni “adversarial”, modificando l’accuratezza del modello;
Modificando i dati in input: in questo caso l’attaccante ha accesso al dataset di training e può modificare i campioni, in modo da alterare drasticamente il funzionamento del modello;
Alterando l’algoritmo: in questo caso l’attaccante riesce ad agire direttamente sull’algoritmo che crea il modello, modificandolo secondo i suoi scopi;
Alterando il modello: l’attaccante non fa altro che sostituire il modello funzionale con quello avvelenato.
2) Evasion Attacks
Questa tipologia di attacchi avviene in fase di testing, in quanto l’attaccante non agisce sul modello interno del sistema, ma altera il dato di input in fase di caricamento, modificando il risultato del classificatore.
Si tratta della tipologia di attacco più comune nel ML.
Gli advesarial attacks possono essere suddivisi anche a seconda della conoscenza dell’attaccante del modello e l’obiettivo dell’attacco.
3) Knowledge Specific Attacks
Gli attacchi possono essere di due categorie: attacchi White-box ed attacchi Black-box.
Negli attacchi White-box, l’avversario ha una conoscenza completa del modello creato dall’algoritmo di addestramento, dei dati di training e di testing e degli hyperparameters (ossia dei parametri utilizzati per il controllo del processo di apprendimento) e può utilizzare tutte queste informazioni o parte di esse per manipolare il sistema.
Negli attacchi Black-box, invece, l’attaccante non ha accesso oppure ha soltanto un accesso parziale al modello ed utilizza le informazioni ricavate con l’intento di esaminare la vulnerabilità del sistema.
4) Intent Specific Attacks
Se l’attaccante vuole fare sì che l’output sbagliato appartenga ad una particolare classe, l’attacco si può definire targeted (mirato), se invece il suo scopo è semplicemente quello di alterare il modello l’attacco può essere definito no-targeted (non mirato).
L’attacco infatti può essere di vari tipi:
Confidence reduction: l’attaccante sceglie di non colpire una determinata classe, ma di ridurre la fiducia del modello in termini di bontà della previsione, ossia modifica la confidenza del modello nel credere che l’output ottenuto sia realmente il risultato atteso.
Attacco adversarial non mirato: l'obiettivo dell'attacco è modificare il dato in input in modo che il classificatore fornisca un risultato sbagliato.
Attacco adversarial mirato: l'obiettivo dell'attacco è modificare il dato in input, in modo che l’output in uscita sia quello forzato dall’attaccante.
Conclusioni
Bene, abbiamo parlato un po’ delle varie tipologie di attacchi adversarial.
Probabilmente ti starai chiedendo se e come è possibile contrastare tali attacchi.
Ad oggi le tecniche difensive non risultano ancora robuste ed efficaci a tutte le tipologie di attacchi e sono ancora oggetto di studio di numerosi ricercatori.
E tu avevi già sentito parlare degli adversarial attacks?
Credi che le aziende saranno più restie ad applicare algoritmi di Machine Learning nei loro business oppure gli attacchi possono essere considerati un piccolo lato negativo in confronto alle numerose potenzialità dell’intelligenza artificiale? Facci sapere nei Commenti.
Grazie mille per la lettura !