Marcello Pogliani Relatore
Marcello Pogliani ha ottenuto il dottorato di ricerca in ingegneria informatica al Politecnico di Milano, ateneo presso cui ha svolto attività di ricerca nel campo della sicurezza dei sistemi di controllo industriale in ambiente manifatturiero. È co-autore di vari articoli scientifici nell'ambito della sicurezza informatica e ha presentato la propria ricerca presso importanti eventi internazionali, inclusa la prestigiosa conferenza “Black Hat USA” nel 2017 e nel 2020. Nel tempo libero, Marcello partecipa e organizza competizioni di “capture the flag”: dal 2014 è membro della squadra del Politecnico, Tower of Hanoi, e ha partecipato alle finali del DEF CON CTF 26 con la squadra italiana mHACKeroni. Attualmente Marcello lavora come Security Engineer presso Secure Network, dove svolge attività di consulenza per importanti clienti italiani e internazionali, principalmente in ambito security assessment e penetration testing.
Lista Talk
- Attenzione a quei robot! Vulnerabilità nei programmi di automazione industriale e come trovarle. Vogliamo parlarvi di robot industriali. Proprio di quelli usati per assemblare aerei, automobili, produrre o confezionare cibo e medicinali, o maneggiare materiale sanitario. Grandi player di settore, tra cui ABB e Kuka, hanno costruito negli anni molteplici piattaforme proprietarie, molto diverse tra loro, che formano la spina dorsale dell'automazione industriale: una tecnologia di fatto legacy divenuta critica per il mondo moderno. Nel corso di questa ricerca abbiamo notato che, anche quando perfettamente aggiornato, il software a bordo di questi macchinari può comunque "nascondere" vulnerabilità. Infatti, i linguaggi usati per programmare questi robot permettono di accedere, a bassissimo livello, alle risorse di sistema: file, rete e addirittura invocare funzioni dinamicamente o modificare codice a runtime. Chiunque abbia mai programmato in qualsiasi linguaggio sa bene che queste funzionalità sono pericolose senza una corretta separazione dei permessi, perché creano i presupposti per vulnerabilità sfruttabili da un aggressore per alterare il funzionamento originale del programma a vari livelli, fino all'accesso completo al sistema in questione. Senz'altro utili, queste funzionalità così come implementate negli 8 linguaggi per automazione industriale che abbiamo analizzato, possono indurre i programmatori a commettere gli errori più comuni. Errori che effettivamente abbiamo trovato in una cinquantina di repository GitHub pubblici, scambiati nei forum e in alcune estensioni di ROS (Robot Operating System), il più popolare sistema operativo "open" per robotica industriale. La mancanza di un meccanismo di separazione di privilegi permette ad un programmatore malevolo di sfruttare le funzionalità di basso livello per creare programmi malevoli che ad oggi nessuna tecnologia di rilevazione automatica è in grado di riconoscere. La collaborazione fra Trend Micro Research e il Politecnico di Milano ha dato vita ad un prototipo in grado di individuare automaticamente la presenza di vulnerabilità o funzionalità malevole analizzando il codice sorgente di un programma di automazione industriale. Oltre ad una demo del prototipo, vi mostreremo gli effetti di un malware che si propaga in un impianto industriale simulato, e concluderemo con delle linee guida di programmazione sicura, pensate specificatamente per chi si occupa di automazione industriale. A questa ricerca hanno contribuito anche: Davide Quarta e Stefano Zanero (Politecnico di Milano), Marco Balduzzi, Rainer Vosseler e Martin Rösler (Trend Micro Research) - 15:00/15:45, 31 Oct 2020