Blog.

Adversarial Attacks | Pericoli e Minacce al Machine Learning


Autore
Andrea Provino
Data
Tempo di lettura
9 minuti
Categoria
Privacy Preserving

avdersarial-attacks-privacy-preserving-machine-learning-italiano-attacchi-avversari

Oggi esploriamo le grandi minacce che i modelli di machine learning devono essere preparati ad affrontare. Seguimi alla scoperta degli Adversarial Attacks.

Abbiamo definito cosa siano gli adversarial attacks, in un precedente post.

Ora che ci siamo rinfrescati la memoria, possiamo procedere.

Facciamo allora un rapidissimo riassunto delle tre categorie in cui possiamo raggruppare i sistemi di machine learning:

  • Supervised learning (e semi-supervsied learning)
  • Unsupervised learning
  • Reinforcement learning

Per ciascun gruppo identifichiamo poi 3 possibili ruoli o parti, in un framework che ci permette di meglio descrivere un eventuale sistema di machine learning in modo olistico:

  • Input party, i proprietari dei dati o suoi contributori
  • Computation party
  • Result party

In questi sistemi il data owner (i.e input party) invia i propri dati al computation party che esegue il machine learning task richiesto, restituendo il risultato al result party.

L’output in questione può anche essere un modello di machine learning che il result party può impiegare per testare nuovi dati.

In altri casi il computation party può conservare il modello, testare i nuovi dati inviati dal result party e trasmettergli dunque quelli elaborati dal modello stesso.

Possiamo affermare che la privacy sia naturalmente preservata se questi tre ruoli fossero assunti dalla stessa entità.

Sono al contrario necessarie tecniche di tutela della privacy qualora i ruoli fossero ripartiti tra due o più entità.

Sappi allora che comunemente troviamo due entità separate:

  • la prima assume il ruolo di computation party e result party
  • la seconda assume il ruolo di data owner

Pensiamo insieme a come siano normalmente distribuiti e raccolti i dati.

I data owner di tutto il mondo, ogni giorno, in modo più o meno consapevole, cedono i propri dati attraverso l’utilizzo dei servizi delle aziende.

Realtà

Ti fornisco un esempio concreto.

Io, utente di Google Maps, data owner delle informazioni relative ai miei spostamenti, cedo a Google preziosi dati sull’orario dei miei spostamenti, sulla loro durata, sui mezzi su cui sono salito e la loro velocità media.

L’intero processo passa completamente in sordina, e talvolta le aziende abusano dei dati raccolti con finalità di lucro.

A complicare la faccenda, il passaggio d’informazioni tra input party e computation party è delicato e pericoloso, poiché rappresenta un point of failure per la privacy degli utenti. ~

Forniamo allora qualche esempio più concreto di rischi associati a questo processo.

Private Data in the Clear | Adversarial Attacks

È la minaccia più grave.

Quando il data owner e il computation party sono entità distinte, i dati del primo devono ovviamente transitare sino ai server del secondo, dove sono di norma salvati in chiaro senza operazioni crittografiche o di semplice trasformazione.

Non temere, la trasmissione avviene su canale sicuro e difficilmente attaccabile.

Il problema risiede però altrove, nella natura intrinseca dei dati: contengono informazioni private, PII (Personally Identifiable Information) che potrebbero essere compromesse tanto da attacchi interni quanto da quelli esterni.

Superate le falle di sicurezza dei server, un avversario ha potenziale accesso ai record salvati in chiaro e alle informazioni private in essi contenuti.

Informazioni che abbiamo detto poter essere presenti in forma grezza (raw data) o persino in forma elaborata ma comunque in chiaro.

L’avversario ringrazia.

Reconstruction Attacks | Adversarial Attacks

Consideriamo il primo tra gli adversarial attacks di questo post.

Prendiamoallora il caso in cui solo alcune informazioni elaborate e trasformate in feature vengano inviate dal data owner al computaion party.

Una nuova minaccia emerge dalle profondità: si chiama attacco di ricostruzione (reconstruction attack).

Per proseguire dobbiamo prima definire un termine: il feature vector.

Feature Vector

I dati necessari a un algoritmo di machine learning sono rappresentati da un insieme, o set, di campioni: è il dataset.

Il concetto di dataset (i.e. L’idea che ti dovrebbe venire in mente quando leggi la parola) è vasto. Motivo per cui è sovente difficile darne una definizione che sia al tempo stesso specifica e funzionale.

Un dataset può essere un file .csv contenente le informazioni di 10895 abitazioni. In questo caso ogni campione (i.e. Ogni singola abitazione) è definita da un insieme di caratteristiche (features) costituite da una coppia di attributo – valore. Per esempio superficie – 250 m2, prezzo – 0.8mln.

Un dataset può però essere anche una cartella sul tuo computer contenente 7894 immagini di segnali stradali.

Interessante questo. Ok, ragioniamoci un secondo.

Consideriamo che ogni immagine abbia dimensioni ridotte di 100×100 pixels e sia in bianco e nero, un dettaglio importante.

Ogni pixel è definito allora da un valore, compreso tra 0 e 255, poiché l’immagine è in scala grigi. Avremmo invece avuto una terna di valori, con il medesimo intervallo 0-255 se l’immagine fosse stata nello spazio colore RGB: uno per il rosso, l’altro per il verde, l’ultimo per il blu.

Una complicazione al momento non necessaria.

Possiamo allora definire un singolo vettore di lunghezza 10.000 con i valori dei singoli pixel. Questo vettore è chiamato feature vector.

Ogni feature vector può essere associato a una label, a sua volta codificata in un numero (e.g. Segnale di stop = 01, Segnale di precedenza = 02, etc…) e improvvisamente abbiamo trasformato dati grezzi in qualcosa di comprensibile e gestibile con funzioni matematiche: numeri!

Torniamo allora al nostro attacco di ricostruzione.

How does a reconstruction attack work?

In un attacco di questo tipo, l’obiettivo dell’avversario è ricostruire i dati grezzi privati usando la propria conoscenza (knowledge) del feature vector.

Per portare a termine un reconstruction attack è necessario un accesso di tipo white-box al modello (i.e. Occorre conoscere il feature vector del modello).

Alcuni algoritmi di machine learning come il SVM o kNN salvano il feature vector all’interno del modello stesso, aumentando il rischio di un attacco di ricostruzione.

Mi rendo conto che stiamo parlando di argomenti apparentemente astratti.

Ci occorre un esempio.

Applications

Un attacco di ricostruzione permette ad esempio di ricostruire i gesti compiuti su un touch screen, ovvero touch events, (raw data) a partire dalla velocità e direzione dei movimenti (features) che costituiscono il feature vector.

Considera anche un secondo esempio.

Un’intera impronta digitale (raw data) può essere potenzialmente ricostruita a partire da piccoli dettagli (features).

In entrambi i casi l’affidabilità di un sistema di sicurezza può essere compromessa, portando il sistema di machine learning a riconoscere erroneamente il legittimo proprietario di un device.

L’esempio che ti ho fatto si riferiva a un attacco volto a confondere un modello. Altri attacchi possono invece esporre semplicemente informazioni private dirette come la posizione o l’età.

Per resistere a questi attacchi, i modelli che salvano in chiaro i feature vector devono essere evitati o eventualmente non forniti al result party.

Inoltre andrebbero predisposte difese contro model inversion attacks per prevenire attacchi di sintetizzazione di feature vectors.

Capiamo ora insieme cos’è un model inversion attack.

Model Inversion Attack | Adversarial Attacks

Il secondo tra gli adversarial attacks che vedremo è chiamato di Model Inversion Attack.

Alcuni algoritmi di machine learning producono modelli i cui feature vectors non sono esplicitamente salvati nel modello.

Le reti neurali e una più semplice ridge regression sono esempi di questo tipo.

Un potenziale avversario avrebbe comunque 2 tipi di accesso.

  • white-box access, il modello di machine learning senza feature vectors
  • black-box access, la risposta del computation party quando il result party invia un nuovo testing sample.

Il secondo tipo di accesso costituisce un problema.

L’obiettivo dell’avversario è quello di ricostruire un feature vector simile a quello usato per allenare il modello, usando l’informazione sulla confidenza dello stesso (e.g. la probabilità o il SVM decision value)

Questi attacchi producono una media che rappresenta una certa classe.

Un model inversion attack è allora la maggiore minaccia alla privacy dei dati, quando una classe corrisponde a un singolo individuo come in un sistema di riconoscimento facciale.

In questo caso, è persino possibile combinare due attacchi, un model inversion attack e un riconstruction attack, poiché le features corrispondono ai dati grezzi (i.e. le immagini delle facce), come dimostrato da Fredrikson et al.

Per resistere a un simile attacco, il result party dovrebbe essere limitato a un black-box access (i.e. il controllo del modello dovrebbe essere mantenuto dal computation party) e l’output del modello approssimato.

Un attacco è dissipato da valori di confidenza approssimati o quando a essere trasmessa è solamente la classe, senza indici di probabilità.

Per intenderci invece che:

  • label = Andrea, confidence: 97.82%

Bene un:

  • label = Andrea, confidence: High

Ancora meglio un:

  • label = Andrea

Un ulteriore ostacolo a questi attacchi può essere l’aggregazione di più risultati, anche se non tutte le applicazioni concedono questo lusso.

Per concludere, un attacco d’inversione non produce un effettivo campione del training set, o permette d’inferire se un campione sia o meno presente nel dataset di training basandosi sul solo output del modello.

Esiste però un attacco tra gli adversarial attacks che permette di ottenere queste informazioni.

Membership Inference Attack | Adversarial Attacks

Un Membership Inference Attack ha l’obiettivo di determinare l’appartenenza di un campione al training set (adversary’s target) usando il modello e un campione (adversary’s knowledge).

Uno scenario plausibile vede l’impiego di un simile attacco mosso da un’azienda di assicurazioni ai danni di un cliente i cui dati, privati e sensibili, sono stati impiegati per la creazione di un modello di diagnosi medica.

Con un Membership Inference Attack è possibile capire se i dati utente siano associati a una specifica malattia.

Questo Adversarial Attack sfrutta la differenza predittiva sui campioni impiegati nel training set e quelli non inclusi nell’insieme.

Shokri et al. hanno dimostrato come sia possibile allenare un sistema che dati in input un modello di machine learning e un campione, determini l’appartenenza del campione al dataset di allenamento.

Sebbene la creazione di questi modelli possa richiedere un accesso di tipo white-box, l’esecuzione dell’attacco richiede solamente un accesso black-box (i.e. modello e un campione senza avere acceso al feature vector).

Come vedremo prossimamente, la strategia di difesa più efficace a un membership inference attack è la Differential Privacy.

De-anonymization (Re-Identification) | Adversarial Attacks

L’ultimo degli adversarial attacks che vedremo in questo post è definito di de-anonymization.

Rimuovere dati sensibili da un dataset prima della sua pubblicazione potrebbe sembrare a prima vista una strategia efficace e sicura.

Come dimostra il celeberrimo caso Netflix Prize, gli attacchi di de-anonymization sono reali e pericolosi.

Devi sapere che qualche anno fa Netflix organizzò una competizione, con in palio 1 milione di dollari, per il perfezionamento del proprio algoritmo di raccomandazione.

Ai partecipanti fu distribuito un dataset di allenamento, opportunamente anonimizzato.

Alcuni ricercatori, combinando il dataset con informazioni pubbliche di IMDB, riuscirono tuttavia a ricavare informazioni sensibili degli utenti di Netflix, dimostrando profondi falle in questo approccio.

In conclusione possiamo affermare che l’anonimizzazione di un dataset non è sufficiente a proteggere la privacy delle istanze del dataset: sono necessari sistemi più sofisticati.

Introducting: Privacy Preserving Machine Learnig (PPML)

La soluzione definitiva a molti di questi problemi è sovente difficile da trovare, tuttavia esistono alcune efficaci strategie di mitigazione di adversarial attacks che possono essere adottate per sventare potenziali attacchi o ridurne comunque il danno.

L’area di studi che si occupa delle strategie di difesa è denominata Privacy Preserving Machine Learning, e ha al suo servizio potenti armi e meravigliose strategie.

Nei prossimi post espanderemo le nostre conoscenze e studieremo casi di applicazione di soluzioni contro gli adversarial attacks.

Grazie per avermi seguito in questo affascinante viaggio alla scoperta delle principali tipologia di adversarial attacks.

Per il mometno è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea.

Taggedadversarialmachine learningprivacy preserving machine learningteoria


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum