Adversarial machine learning: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m cambiamenti minori nella forma
m Piccolissimi cambiamenti di forma
Riga 25:
 
=== Model extraction ===
L'ultima classe di attacchi è quella del model extraction (anche nota come ''model stealing''). Mentre il poisoning e l'obfuscation rientravano nelle categorie di attacchi che andavano a violare, rispettivamente, il funzionamento generale di un modello e l'integrità di un modello per determinati input, nel caso del model extraction stiamosi invececonsidera, considerandoinvece, una violazione della sua ''confidentiality''. Tali attacchi possono essere usati sia per clonare un determinato modello<ref name=":2" /> (il quale potrebbe essere protetto da [[diritto d'autore]]) che per inferire informazioni private o sensibili sul dataset usato durante il suo training<ref>{{Cita pubblicazione|nome=Samuel|cognome=Yeom|nome2=Irene|cognome2=Giacomelli|nome3=Matt|cognome3=Fredrikson|data=2018-05-04|titolo=Privacy Risk in Machine Learning: Analyzing the Connection to Overfitting|rivista=arXiv:1709.01604 [cs, stat]|accesso=2021-06-16|url=http://arxiv.org/abs/1709.01604}}</ref><ref>{{Cita pubblicazione|nome=Reza|cognome=Shokri|nome2=Marco|cognome2=Stronati|nome3=Congzheng|cognome3=Song|data=2017-03-31|titolo=Membership Inference Attacks against Machine Learning Models|rivista=arXiv:1610.05820 [cs, stat]|accesso=2021-06-16|url=http://arxiv.org/abs/1610.05820}}</ref><ref>{{Cita pubblicazione|nome=Xi|cognome=Wu|nome2=Matthew|cognome2=Fredrikson|nome3=Somesh|cognome3=Jha|data=2016-06|titolo=A Methodology for Formalizing Model-Inversion Attacks|rivista=2016 IEEE 29th Computer Security Foundations Symposium (CSF)|pp=355–370|accesso=2021-06-16|doi=10.1109/CSF.2016.32|url=https://ieeexplore.ieee.org/document/7536387}}</ref><ref>{{Cita pubblicazione|nome=Matt|cognome=Fredrikson|nome2=Somesh|cognome2=Jha|nome3=Thomas|cognome3=Ristenpart|data=2015-10-12|titolo=Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures|rivista=Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security|editore=Association for Computing Machinery|pp=1322–1333|accesso=2021-06-16|doi=10.1145/2810103.2813677|url=https://doi.org/10.1145/2810103.2813677}}</ref><ref>{{Cita pubblicazione|nome=Giuseppe|cognome=Ateniese|nome2=Giovanni|cognome2=Felici|nome3=Luigi V.|cognome3=Mancini|data=2013-06-19|titolo=Hacking Smart Machines with Smarter Ones: How to Extract Meaningful Data from Machine Learning Classifiers|rivista=arXiv:1306.4447 [cs, stat]|accesso=2021-06-16|url=http://arxiv.org/abs/1306.4447}}</ref>.
 
==== Esempio: clonazione di un modello ====
Riga 31:
 
== Threat modeling ==
Parallelamente ad altri problemi in sicurezza informatica, anche nel caso dell'adversarial machine learning è importante definire un [[threat model]]. Il threat modeling è un processo attraverso il quale si cercano di identificare e quantificare le vulnerabilità e le potenziali minacce ina cui un sistema informatico potrebbe andare incontro<ref>{{Cita web|url=https://www.csoonline.com/article/3537370/threat-modeling-explained-a-process-for-anticipating-cyber-attacks.html|titolo=Threat modeling explained: A process for anticipating cyber attacks|autore=Josh Fruhlinger|sito=CSO Online|data=2020-04-15|lingua=en|accesso=2021-06-16}}</ref>. Nel caso specifico dell'adversarial machine learning, siamo interessati al tipo di conoscenza che un attaccante ha nei confronti del modello, e alle capacità di controllo e manipolazione che esso può esercitare sul modello e sui dataset su cui quest'ultimo lavora.
 
Per quanto concerne la conoscenza che l'attaccante ha di un determinato modello, essa può essere suddivisa nelle seguenti categorie<ref name=":1" />:
Riga 41:
* conoscenza totale del modello.
 
Per quanto riguarda invece le capacità dell'avversario, esse possono essere categorizzate come ''causative'' o ''esplorative'', nel caso dell'apprendimento supervisionato<ref>{{Cita pubblicazione|nome=Ling|cognome=Huang|nome2=Anthony D.|cognome2=Joseph|nome3=Blaine|cognome3=Nelson|data=2011-10-21|titolo=Adversarial machine learning|rivista=Proceedings of the 4th ACM workshop on Security and artificial intelligence|editore=Association for Computing Machinery|pp=43–58|accesso=2021-06-16|doi=10.1145/2046684.2046692|url=https://doi.org/10.1145/2046684.2046692}}</ref><ref>{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Giorgio|cognome2=Fumera|nome3=Fabio|cognome3=Roli|data=2014-04|titolo=Security Evaluation of Pattern Classifiers under Attack|rivista=IEEE Transactions on Knowledge and Data Engineering|volume=26|numero=4|pp=984–996|accesso=2021-06-16|doi=10.1109/TKDE.2013.57|url=http://arxiv.org/abs/1709.00609}}</ref>, oppure soltanto come causative nel caso dell'apprendimento non supervisionato<ref name=":1" />:
 
* per capacità causativa si intende, nel caso dell'apprendimento supervisionato, la possibilità di influenzare sia il dataset usato per l'addestramento che quello usato per il test, mentre, nel caso dell'apprendimento non supervisionato (ad esempio del clustering), si intende la capacità di influenzare o modificare il dataset unico;
* al contrario, per capacità esplorative si intende la possibilità da parte dell'attaccante di scoprire ulteriori informazioni sul modello sotto attacco manipolandone il solo test dataset.
 
Infine, l'attaccante potrebbe essere limitato nel numero massimo di modifiche che può apportare agli input. La ragione per questo ulteriore limite risiede nel fatto che eccessive modifiche potrebbero manomettere o snaturare eccessivamente l'input: questo è particolarmente vero nel caso degli attacchi di tipo obfuscation, in cui un attaccante vuole offuscare un determinato input in modo tale che esso venga etichettato dal modello come appartenente ad un'altra classe, ma senza che esso venga realmente trasformato in un membro di quella classe. Si pensi, ad esempio, ad un attaccante che intende modificare un [[malware]] per far sì che questo riesca ad eludere un classificatore: l'obiettivo dell'attaccante è, in questo caso, quello di far apparire il programma malevolo come "lecito" agli occhi del classificatore, tuttavia preservandone le funzionalità (malevole) originali; l'attaccante sarà pertanto limitato nel numero e nella tipologia di modifiche che potrà apportare al programma.
Riga 51:
Sono stati proposti diversi meccanismi di difesa contro gli attacchi di tipo adversarial. Tuttavia, è importante ricordare che, come in tutti gli altri contesti applicativi della sicurezza informatica, anche nell'adversarial machine learning i meccanismi di difesa dovranno essere aggiornati per contrastare i più recenti attacchi sviluppati contro di loro, in quella che in gergo è definita come "arms race" (corsa alle armi).
[[File:Proactive_arms_race.jpg|miniatura|La "corsa alle armi" fra gli sviluppatori di difese e gli attaccanti.|262x262px]]
Alcune strategie di difesa dipendono dal modello e dal tipo di apprendimento. Ad esempio, nel caso dell'addestramento supervisionato, uno dei metodi maggiormente noti per contrastare attacchi di tipo obfuscation è quello dell'adversarial training<ref>{{Cita pubblicazione|nome=Ian J.|cognome=Goodfellow|nome2=Jonathon|cognome2=Shlens|nome3=Christian|cognome3=Szegedy|data=2015-03-20|titolo=Explaining and Harnessing Adversarial Examples|rivista=arXiv:1412.6572 [cs, stat]|accesso=2021-06-17|url=http://arxiv.org/abs/1412.6572}}</ref>. Esso consiste nel ri-addestrare il modello includendo alcuni campioni malevoli, a cui è tuttavia associata la loro corretta classe di appartenenza. In questo modo, il modello imparerà ad associare il campione alla sua reale classe, nonostante le perturbazioni ad esso applicate. Questa tecnica può risultare efficace in molti casi e non richiede cambiamenti speciali al modello. Tuttavia, è necessario calibrare il quantitativo totale di campioni adversarial, in quanto un numero troppo basso potrebbe risultare in un modello poco resistente agli attacchi, mentre un numero troppo elevato potrebbe causare l'[[overfitting]] del modello su quel dataset specifico<ref>{{Cita pubblicazione|nome=Kathrin|cognome=Grosse|nome2=Nicolas|cognome2=Papernot|nome3=Praveen|cognome3=Manoharan|data=2016-06-16|titolo=Adversarial Perturbations Against Deep Neural Networks for Malware Classification|rivista=arXiv:1606.04435 [cs]|accesso=2021-06-17|url=http://arxiv.org/abs/1606.04435}}</ref>. Un'altra strategia proposta in letteratura è quella del distillation, una tecnica che in origine era stata sviluppata con lo scopo di generare una [[Apprendimento profondo|rete neurale artificiale profonda]] a partire da una più grande<ref>{{Cita pubblicazione|nome=Geoffrey|cognome=Hinton|nome2=Oriol|cognome2=Vinyals|nome3=Jeff|cognome3=Dean|data=2015-03-09|titolo=Distilling the Knowledge in a Neural Network|rivista=arXiv:1503.02531 [cs, stat]|accesso=2021-06-17|url=http://arxiv.org/abs/1503.02531}}</ref>. Nel [[Caso d'uso (informatica)|caso d'uso]] originale, questo veniva fatto con lo scopo di ottenere una rete neurale meno dispendiosa, (in quanto più piccola). Questa strategia è stata in seguito applicata nel contesto dell'adversarial machine learning. L'intuizione è che, diminuendodiminuendone la dimensione, la rete neurale ottenuta riesca a generalizzare meglio la conoscenza appresa da quella più grande, e sia pertanto più resistente alle perturbazioni<ref>{{Cita pubblicazione|nome=Nicolas|cognome=Papernot|nome2=Patrick|cognome2=McDaniel|nome3=Xi|cognome3=Wu|data=2016-03-14|titolo=Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks|rivista=arXiv:1511.04508 [cs, stat]|accesso=2021-06-17|url=http://arxiv.org/abs/1511.04508}}</ref>.
 
Altri metodi noti includono:
Riga 62:
 
== Impatto ==
Negli ultimi decenni, le tecniche di apprendimento automatico sono state utilizzate nei più svariati domini applicativi, dalle scienze naturali a quelle ingegneristiche, dallo sviluppo di agenti intelligenti alla medicina<ref>{{Cita web|url=https://www.semanticscholar.org/paper/A-Survey-on-Machine-Learning%3A-Concept%2CAlgorithms-Das-Behera/4d7855b8e5ef36acd4ac41deef596e67ac899e76|titolo=A Survey on Machine Learning: Concept,Algorithms and Applications|autore=Kajaree Das, R. Behera|sito=undefined|data=2017|lingua=en|accesso=2021-06-17}}</ref>. Tuttavia, la loro introduzione in problemi tipici della sicurezza informatica (ad esempio, l'identificazione di email contenenti [[phishing]]<ref>{{Cita pubblicazione|nome=Saeed|cognome=Abu-Nimeh|nome2=Dario|cognome2=Nappa|nome3=Xinlei|cognome3=Wang|data=2007-10-04|titolo=A comparison of machine learning techniques for phishing detection|rivista=Proceedings of the anti-phishing working groups 2nd annual eCrime researchers summit|editore=Association for Computing Machinery|pp=60–69|accesso=2021-06-17|doi=10.1145/1299015.1299021|url=https://doi.org/10.1145/1299015.1299021}}</ref>) ha sollevato alcune problematiche inerenti la loro sicurezza o affidabilità in contesti fortemente ''avversariali''. Questi ultimi non includono esclusivamente le applicazioni classiche della sicurezza informatica, ma anche ambiti emergenti in cui la sicurezza è molto importante, ad esempio quello dei [[Automated guided vehicle|veicoli automatici]]<ref>{{Cita pubblicazione|nome=Ivan|cognome=Studnia|nome2=Vincent|cognome2=Nicomette|nome3=Eric|cognome3=Alata|data=2013-06|titolo=Survey on security threats and protection mechanisms in embedded automotive networks|rivista=2013 43rd Annual IEEE/IFIP Conference on Dependable Systems and Networks Workshop (DSN-W)|pp=1–12|accesso=2021-06-17|doi=10.1109/DSNW.2013.6615528|url=https://ieeexplore.ieee.org/abstract/document/6615528?casa_token=oALZ7wYrArAAAAAA:jtaqTtXDLrJV48n-wAbVd31zve5Zpc3Zp1pDmLJcEBxIPj4dJbePUxB1t_riZcVM_Qb2f7uA}}</ref>.
 
=== Un esempio pratico: l'analisi di malware ===