Adversarial machine learning: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
FrescoBot (discussione | contributi)
m Bot: numeri di pagina nei template citazione
 
Riga 5:
 
=== Poisoning ===
Lo scopo di un attacco di tipo poisoning è quello di diminuire il più possibile l'accuratezza di un determinato modello per tutti i possibili input<ref name=":0">{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Blaine|cognome2=Nelson|nome3=Pavel|cognome3=Laskov|data=25 marzo 2013|titolo=Poisoning Attacks against Support Vector Machines|rivista=arXiv:1206.6389 [cs, stat]|accesso=15 giugno 2021|url=http://arxiv.org/abs/1206.6389}}</ref>. Varianti di questo tipo di attacco esistono per diversi modelli, sia nel caso dell'[[apprendimento supervisionato]]<ref name=":0" /><ref>{{Cita pubblicazione|nome=Benjamin I.P.|cognome=Rubinstein|nome2=Blaine|cognome2=Nelson|nome3=Ling|cognome3=Huang|data=4 novembre 2009|titolo=ANTIDOTE: understanding and defending against poisoning of anomaly detectors|rivista=Proceedings of the 9th ACM SIGCOMM conference on Internet measurement|editore=Association for Computing Machinery|pp=1–141-14|accesso=15 giugno 2021|doi=10.1145/1644893.1644895|url=https://doi.org/10.1145/1644893.1644895}}</ref><ref>{{Cita pubblicazione|nome=Shike|cognome=Mei|nome2=Xiaojin|cognome2=Zhu|data=25 gennaio 2015|titolo=Using machine teaching to identify optimal training-set attacks on machine learners|rivista=Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence|editore=AAAI Press|pp=2871–28772871-2877|accesso=15 giugno 2021|doi=10.5555/2886521.2886721|url=https://dl.acm.org/doi/10.5555/2886521.2886721}}</ref> che di quello [[Apprendimento non supervisionato|non supervisionato]]<ref name=":1">{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Ignazio|cognome2=Pillai|nome3=Samuel|cognome3=Rota Bulò|data=4 novembre 2013|titolo=Is data clustering in adversarial settings secure?|rivista=Proceedings of the 2013 ACM workshop on Artificial intelligence and security|editore=Association for Computing Machinery|pp=87–9887-98|accesso=15 giugno 2021|doi=10.1145/2517312.2517321|url=https://doi.org/10.1145/2517312.2517321}}</ref><ref name=":4">{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Konrad|cognome2=Rieck|nome3=Davide|cognome3=Ariu|data=7 novembre 2014|titolo=Poisoning behavioral malware clustering|rivista=Proceedings of the 2014 Workshop on Artificial Intelligent and Security Workshop|editore=Association for Computing Machinery|pp=27–3627-36|accesso=15 giugno 2021|doi=10.1145/2666652.2666666|url=https://doi.org/10.1145/2666652.2666666}}</ref>: nel primo caso, il poisoning del modello avviene durante la fase di addestramento dell'algoritmo. Da un punto di vista della [[sicurezza informatica]], il poisoning fa parte di una classe di attacchi definiti come [[denial of service]].
 
==== Esempio: clustering ====
Riga 30:
 
==== Esempio: reti neurali artificiali ====
Nel caso specifico delle [[Rete neurale artificiale|reti neurali artificiali]], un metodo per calcolare <math display="inline">X + \delta_X</math> a partire dal campione <math display="inline">X</math> è quello di sfruttare la [[matrice jacobiana]] di <math>F</math>. Essa può essere usata per costruire una ''mappa di salienza'', ovvero una mappa che include le [[Caratteristica (apprendimento automatico)|caratteristiche]] da integrare nella perturbazione espressa tramite il vettore <math>\delta_X</math>, per far sì che un determinato output possa essere riprodotto da <math>F</math>. Infine, dopo aver generato queste mappe, le corrispondenti modifiche dovranno essere effettivamente apportate ad <math>X</math> o alla sua rappresentazione vettoriale<ref name=":3" /><ref>{{Cita pubblicazione|nome=Kathrin|cognome=Grosse|nome2=Nicolas|cognome2=Papernot|nome3=Praveen|cognome3=Manoharan|data=2017|titolo=Adversarial Examples for Malware Detection|rivista=Computer Security – ESORICS 2017|editore=Springer International Publishing|pp=62–7962-79|lingua=en|accesso=16 giugno 2021|doi=10.1007/978-3-319-66399-9_4|url=https://link.springer.com/chapter/10.1007/978-3-319-66399-9_4}}</ref>.
 
=== Model extraction - Estrazione del modello ===
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 si considera, invece, 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=4 maggio 2018|titolo=Privacy Risk in Machine Learning: Analyzing the Connection to Overfitting|rivista=arXiv:1709.01604 [cs, stat]|accesso=16 giugno 2021|url=http://arxiv.org/abs/1709.01604}}</ref><ref>{{Cita pubblicazione|nome=Reza|cognome=Shokri|nome2=Marco|cognome2=Stronati|nome3=Congzheng|cognome3=Song|data=31 marzo 2017|titolo=Membership Inference Attacks against Machine Learning Models|rivista=arXiv:1610.05820 [cs, stat]|accesso=16 giugno 2021|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–370355-370|accesso=16 giugno 2021|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=12 ottobre 2015|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–13331322-1333|accesso=16 giugno 2021|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=19 giugno 2013|titolo=Hacking Smart Machines with Smarter Ones: How to Extract Meaningful Data from Machine Learning Classifiers|rivista=arXiv:1306.4447 [cs, stat]|accesso=16 giugno 2021|url=http://arxiv.org/abs/1306.4447}}</ref>.
 
==== Esempio: clonazione di un modello ====
Riga 49:
* 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=21 ottobre 2011|titolo=Adversarial machine learning|rivista=Proceedings of the 4th ACM workshop on Security and artificial intelligence|editore=Association for Computing Machinery|pp=43–5843-58|accesso=16 giugno 2021|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–996984-996|accesso=16 giugno 2021|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;
Riga 63:
Altri metodi noti includono:
 
* sistemi di classificazione che combinano più modelli insieme<ref>{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Giorgio|cognome2=Fumera|nome3=Fabio|cognome3=Roli|data=2010|titolo=Multiple Classifier Systems for Robust Classifier Design in Adversarial Environments|rivista=Journal of Machine Learning and Cybernetics|volume=1|pp=27–4127-41|accesso=17 giugno 2021|url=http://pralab.diee.unica.it/en/node/671|urlarchivio=https://web.archive.org/web/20230119094021/http://pralab.diee.unica.it/en/node/671|urlmorto=sì}}</ref><ref>{{Cita libro|titolo=Supervised and Unsupervised Ensemble Methods and Their Applications|url=http://pralab.diee.unica.it/en/node/642|accesso=17 giugno 2021|data=2009|editore=Springer Berlin / Heidelberg|volume=245|urlarchivio=https://web.archive.org/web/20150115114531/http://pralab.diee.unica.it/en/node/642|urlmorto=sì}}</ref>;
* algoritmi di apprendimento che permettono di preservare la privacy dei dati usati (attraverso ad esempio l'utilizzo di tecniche di privacy differenziale<ref>{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Igino|cognome2=Corona|nome3=Blaine|cognome3=Nelson|data=29 gennaio 2014|titolo=Security Evaluation of Support Vector Machines in Adversarial Environments|rivista=arXiv:1401.7727 [cs]|accesso=17 giugno 2021|url=http://arxiv.org/abs/1401.7727}}</ref><ref>{{Cita pubblicazione|nome=Benjamin I. P.|cognome=Rubinstein|nome2=Peter L.|cognome2=Bartlett|nome3=Ling|cognome3=Huang|data=30 novembre 2009|titolo=Learning in a Large Function Space: Privacy-Preserving Mechanisms for SVM Learning|rivista=arXiv:0911.5708 [cs]|accesso=17 giugno 2021|url=http://arxiv.org/abs/0911.5708}}</ref>);
* algoritmi di apprendimento intelligenti in grado di anticipare le mosse di un attaccante<ref>{{Cita pubblicazione|nome=Ofer|cognome=Dekel|nome2=Ohad|cognome2=Shamir|nome3=Lin|cognome3=Xiao|data=1º novembre 2010|titolo=Learning to classify with missing and corrupted features|rivista=Machine Learning|volume=81|numero=2|pp=149–178149-178|lingua=en|accesso=17 giugno 2021|doi=10.1007/s10994-009-5124-8|url=https://doi.org/10.1007/s10994-009-5124-8}}</ref>;
 
A questi si aggiungono metodi aspecifici come quello della sanitizzazione degli input<ref>{{Cita web|url=https://www.webopedia.com/definitions/input-sanitization/|titolo=What is Input Sanitization? {{!}} Webopedia Definition|sito=Webopedia|data=7 agosto 2020|lingua=en|accesso=17 giugno 2021}}</ref> o la rilevazione automatica di [[backdoor]]<ref>{{Cita web|url=https://www.iarpa.gov/index.php/research-programs/trojai|titolo=TrojAI|accesso=17 giugno 2021}}</ref>.
 
== 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=17 giugno 2021}}</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=4 ottobre 2007|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–6960-69|accesso=17 giugno 2021|doi=10.1145/1299015.1299021|url=https://doi.org/10.1145/1299015.1299021}}</ref>) ha sollevato alcune problematiche inerenti alla 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–121-12|accesso=17 giugno 2021|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 ===
Una delle applicazioni più promettenti dell'apprendimento automatico è quella dell'analisi automatizzata di [[malware]]. In particolare, diversi lavori hanno applicato algoritmi di [[clustering]] per determinare in modo automatico la famiglia di appartenenza di eventuali campioni<ref>{{Cita pubblicazione|nome=Michael|cognome=Bailey|nome2=Jon|cognome2=Oberheide|nome3=Jon|cognome3=Andersen|data=2007|titolo=Automated Classification and Analysis of Internet Malware|rivista=Recent Advances in Intrusion Detection|editore=Springer|pp=178–197178-197|lingua=en|accesso=17 giugno 2021|doi=10.1007/978-3-540-74320-0_10|url=https://link.springer.com/chapter/10.1007/978-3-540-74320-0_10}}</ref><ref>{{Cita pubblicazione|nome=Konrad|cognome=Rieck|nome2=Philipp|cognome2=Trinius|nome3=Carsten|cognome3=Willems|data=1º gennaio 2011|titolo=Automatic analysis of malware behavior using machine learning|rivista=Journal of Computer Security|volume=19|numero=4|pp=639–668639-668|lingua=en|accesso=17 giugno 2021|doi=10.3233/JCS-2010-0410|url=https://content.iospress.com/articles/journal-of-computer-security/jcs410}}</ref><ref>{{Cita pubblicazione|nome=Konrad|cognome=Rieck|nome2=Thorsten|cognome2=Holz|nome3=Carsten|cognome3=Willems|data=2008|titolo=Learning and Classification of Malware Behavior|rivista=Detection of Intrusions and Malware, and Vulnerability Assessment|editore=Springer|pp=108–125108-125|lingua=en|accesso=17 giugno 2021|doi=10.1007/978-3-540-70542-0_6|url=https://link.springer.com/chapter/10.1007/978-3-540-70542-0_6}}</ref>. Tuttavia, essendo l'analisi dei malware un'attività dalla forte componente avversariale, eventuali sistemi di apprendimento automatico devono necessariamente tenere in conto di potenziali attacchi adversarial. È stato infatti dimostrato come l'inserimento di pochi campioni all'interno del dataset (i quali potrebbero essere raccolti inavvertitamente da un [[honeypot]]) possa compromettere il risultato dell'intero processo di clustering<ref name=":4" />.
 
== Note ==