CODICE 101811 ANNO ACCADEMICO 2025/2026 CFU 6 cfu anno 2 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA 9 cfu anno 2 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE L'insegnamento mira a sensibilizzare gli sviluppatori sul fatto che i programmi (scritti male) possono essere sfruttati da un attaccante per scopi potenzialmente dannosi, facendo agire i programmi in modi non voluti dagli autori. Questo obiettivo viene raggiunto mostrando come i programmi binari possono essere analizzati e come eventuali vulnerabilità trovate possano essere sfruttate. Inoltre, il corso descrive come progettare e scrivere software sicuro, cioè privo di tali vulnerabilità. L'analisi in contesti avversariali, come, l'analisi del malware, verrà inoltre discussa. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Learning how to write secure code, analyze the behavior and assess security properties of source and binary programs, pinpointing and fix their vulnerabilities or apply corrective counter-measures. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine del corso gli studenti saranno in grado di: scrivere codice sicuro valutare le proprietà di sicurezza di programmi in forma sorgente e binaria individuare le vulnerabilità eliminare vulnerabilità o applicare contromisure correttive. Per il percorso da 9-CFU, gli studenti saranno inoltre in grado di analizzare programmi in contesti avversariali (per esempio, campioni di malware). PREREQUISITI Familiarità con la programmazione in C (sopratutto, gestione diretta della memoria, uso di puntatori) e coi concetti di sistemi operativi MODALITA' DIDATTICHE Lezioni frontali e attività pratiche. Alcuni argomenti ed esercizi, esplicitamente marcati nel materiale di supporto, sono opzionali per chi ha la versione da 6 CFU in piano di studi. PROGRAMMA/CONTENUTO Introduzione Cosa sono i (programmi) binari e come vengono eseguiti Analisi dinamica Analisi statica Scrivere codice sicuro, vulnerabilità comuni Tecniche di anti-analisi e analisi del malware Exploitation Alcuni argomenti ed esercizi, esplicitamente marcati nel materiale di supporto, sono opzionali per chi ha la versione da 6 CFU in piano di studi. TESTI/BIBLIOGRAFIA Il materiale di supporto e la bibliografia suggerita saranno disponibili su AulaWeb. DOCENTI E COMMISSIONI GIOVANNI LAGORIO Ricevimento: Su appuntamento via email. Commissione d'esame GIOVANNI LAGORIO (Presidente) ALESSANDRO ARMANDO MAURA CERIOLI (Presidente Supplente) DAVIDE ANCONA (Supplente) LEZIONI INIZIO LEZIONI In accordo con il calendario didattico approvato dal Consiglio dei Corsi di Studio in Informatica: https://corsi.unige.it/corsi/10852/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Sessione pratica e discussione orale. Indicazioni per studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali sono disponibili a partire da https://corsi.unige.it/corsi/10852/studenti-disabilita-dsa MODALITA' DI ACCERTAMENTO L'esame valuterà la capacità di analizzare i programmi per scovare eventuali vulnerabilità, di scrivere semplici "exploit" e applicare misure correttive. Si valuterà la conoscenza dei concetti visti a lezione e la capacità analitica ed espositiva degli studenti. Agli studenti da 9-CFU potrebbero venir assegnati dei campioni di malware (o simil-malware) da analizzare ALTRE INFORMAZIONI Per ulteriori informazioni, consultare il modulo Aulaweb dell'insegnamento o contattare il docente.