Federico Maggi Relatore

With more than a decade of research experience in the cybersecurity field, Federico Maggi has done offensive and defensive research on web applications, network protocols and devices, embedded systems, radio-frequency control systems, industrial robots, cars, and mobile devices. Some of his research work has been featured on mainstream and media outlets such as Wired, Reuters, Forbes, Hackread, ZDNet, and MIT Technology Review. Currently employed as a Senior Researcher with security giant Trend Micro (https://trendmicro.com), Federico was an Assistant Professor at Politecnico di Milano, one of the leading engineering technical universities in Italy. Aside his teaching activities, Federico co-directed the security group and has managed hundreds of graduate students. Federico has given several lectures and talks as an invited speaker at international venues and research schools, and also serves in the review or organizing committees of well-known conferences. More info about Federico and his work is available online at https://maggi.cc
  • Reverse engineering di protocolli radio proprietari: dalle basi al design di un ricetrasmettitore in hardware C'è un numero sempre più crescente di dispositivi embedded che comunicano via radio: dalla semplice domotica ai sistemi di sicurezza fisica, fino all'automazione industriale. Per i protocolli radio standard come Bluetooth, Zigbee, Wi-Fi, etc., esistono molti strumenti a supporto di chi deve fare analisi di sicurezza. Molti dispositivi, però, continuano—e probabilmente continueranno per molto tempo—a comunicare su protocolli proprietari, spesso nascondendo vulnerabilità. Analizzare questi casi "legacy" richiede un po' di teoria di analisi dei segnali, elettronica, buona volontà, e una buona dose di creatività. Con questo tutorial "hands on" vi farò vedere come, da zero, si può arrivare ad ottenere una certa dimestichezza in poco tempo. Inizierò a raccontarvi come si cattura un segnale radio, come lo si analizza in software, fino fare un reverse engineering completo del livello applicativo. Concluderò mostrandovi come realizzare velocemente dei prototipi hardware di ricetrasmettitori basati su dispositivi Arduino, molto utili per aiutarvi nell'analisi di (quasi) tutti i protocolli proprietari. - 16:00/16:45, 09 Nov 2019
  • 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