CODICE 101811 ANNO ACCADEMICO 2026/2027 CFU 6 cfu anno 2 COMPUTER ENGINEERING 11965 (LM-32) - GENOVA 9 cfu anno 2 COMPUTER SCIENCE 11964 (LM-18) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE INF/01 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre 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 Apprendere come scrivere codice sicuro, analizzare il comportamento e valutare le proprietà di sicurezza dei programmi sorgente e binari, individuando e correggendo le loro vulnerabilità o applicando misure correttive. 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. Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA), per disabilità o altri bisogni educativi sono invitati a contattare il docente e il referente di Scuola per la disabilità all’inizio dell’insegnamento per concordare eventuali modalità didattiche che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali. I contatti del referente di Scuola per la disabilità sono disponibili al seguente link https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita. 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. LEZIONI INIZIO LEZIONI https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso 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. Gli studenti con certificazioni valide per Disturbi Specifici dell’Apprendimento (DSA) possono richiedere adattamenti in sede d'esame, con almeno 7 giorni di anticipo rispetto alla data dell’esame, compilando il "modulo richieste adattamenti" (dai servizi online https://modulionline.unige.it/richiesta-adattamenti#no-back) che verrà inviato in automatico dal sistema al/alla docente responsabile dell’insegnamento e al/alla docente referente per gli studenti con disabilità e con DSA della propria Scuola/Area. Lo studente riceverà una copia della sua richiesta.