Roberto Clapis Relatore

Roberto è laureato in ingegneria informatica presso il Politecnico di Milano. Security engineer e appassionato di sicurezza informatica partecipa a CTF come membro del team di hacking “Tower of Hanoi” del Politecnico di Milano. Per lavoro si occupa principalmente di revisione del codice e penetration test sia di applicazioni web che per dispositivi mobili. Ha una passione per lo sviluppo di strumenti automatici per analisi sia infrastrutturali che applicative.
  • Go get my/vulnerabilities: an in-depth analysis of go language runtime and the new class of vulnerabilities it introduces Go sta rapidamente prendendo piede sia nella programmazione di semplici applicazioni per hardware a basso consumo sia per la creazione di software di elevata complessità computazionale. Molte tra le più grandi compagnie lo stanno adottando come linguaggio preferenziale per lo sviluppo di nuovi applicativi e si sta diffondendo molto anche tra i programmatori indipendenti. Tra le principali caratteristiche di go vi sono le goroutine, green threads che permettono di sfruttare al meglio l'hardware moderno. Questa feature permette al software scritto in go di scalare perfettamente con un numero indefinito di unità computazionali senza pagare i derivanti costi di task-switch del sistema operativo sottostante. Per permettere di avere questi vantaggi le goroutine sacrificano alcune delle caratteristiche tipiche dei task tradizionali, come i riferimenti ai threads o al controllo su di essi. Questi, ed altri cambiamenti sono stati apportati per garantire un tempo competitivo di task-switching. L'approccio di questo linguaggio lo rende quello con i miglior risultati per applicazioni concorrenti, ma come ogni ottimizzazione, anche quella di go ha un costo. È conoscenza comune che il go sia molto efficiente, ma ci sono poche informazioni sulle implicazioni che del fare affidamento sul suo scheduler interno. Molte guide e documentazioni trattano le goroutines come se fossero thread tradizionali, ma non avvertono i programmatori delle differenze e dei rischi possibili, creando una tendenza pericolosa per la prossima generazione del software. Quali sono le conseguenze di utilizzare goroutines invece di thread? Introducono nuove vulnerabilità? Possono essere utilizzate in modo sicuro? - 12:15/13:00, 06 May 2017