Sviluppo di software sicuro
Avvisi
Informazioni generali del corso
Nome del corso:
|
Sviluppo di software sicuro [262-027]
|
Docenti:
|
Mauro Andreolini
|
Corso di Studio:
|
Laurea Magistrale di Informatica
|
Tipologia:
|
Caratterizzante
|
CFU:
|
9
|
Periodo Didattico:
|
secondo trimestre
|
Recapiti docenti:
Edizioni precedenti del corso
Edizione 2020-21: disponibile qui.
Obiettivi formativi
L'insegnamento si prefigge i seguenti obiettivi formativi:
-
acuire la sensibilità ai rischi insiti in applicazioni
non sicure;
-
saper valutare il grado di sicurezza di una applicazione esistente;
-
saper irrobustire una applicazione esistente;
-
saper progettare ex-novo un software con caratteristiche di sicurezza
(security/safety/privacy by design).
Programma del corso
-
Cenni storici.
-
Vulnerabilità principali nelle applicazioni.
-
Strumenti per l'analisi di software esistente.
-
Ciclo di sviluppo del software sicuro.
Programma di esame
Testi
Materiale didattico di riferimento
Dispense fornite dal docente.
Materiale didattico di approfondimento
Orario delle lezioni
-
Lunedì: h. 14:00-16:00 (Aula M0.2 Dip. Mat.)
-
Martedì: h. 9:00-11:00 (Aula M0.2 Dip. Mat.)
-
Mercoledì: h. 11:00-13:00 (Aula M0.2 Dip. Mat.)
Lucidi delle lezioni
Lezione 1: Introduzione al corso
Data: lunedì 28 febbraio 2022 14:00 - 16:00
Slide:
Lezione 2: Cenni storici
Data: lunedì 28 febbraio 2022 14:00 - 16:00
Data: martedì 1 marzo 2022 9:00 - 11:00
Data: mercoledì 2 marzo 2022 11:00 - 13:00
Slide:
Approfondimenti:
Lezione 3: Definizioni
Data: mercoledì 2 marzo 2022 11:00 - 13:00
Slide:
Lezione 4: Vulnerabilità software
Data: lunedì 7 marzo 2022 14:00 - 16:00
Data: martedì 8 marzo 2022 9:00 - 11:00
Data: mercoledì 9 marzo 2022 11:00 - 13:00
Data: lunedì 14 marzo 2022 14:00 - 16:00
Data: martedì 15 marzo 2022 9:00 - 11:00
Data: mercoledì 16 marzo 2022 11:00 - 13:00
Data: lunedì 21 marzo 2022 14:00 - 16:00
Slide:
Approfondimenti:
Lezione 5: Esecuzione con privilegi elevati
Data: martedì 22 marzo 2022 9:00 - 11:00
Data: mercoledì 23 marzo 2022 11:00 - 13:00
Data: lunedì 28 marzo 2022 14:00 - 16:00
Data: martedì 29 marzo 2022 9:00 - 11:00
Data: mercoledì 30 marzo 2022 11:00 - 13:00
Data: lunedì 4 aprile 2022 14:00 - 16:00
Data: martedì 5 aprile 2022 9:00 - 11:00
Slide:
Esempi:
Approfondimenti:
Lezione 6: Iniezione locale
Data: mercoledì 6 aprile 2022 11:00 - 13:00
Data: lunedì 11 aprile 2022 14:00 - 16:00
Data: martedì 12 aprile 2022 9:00 - 11:00
Slide:
Esempi:
Approfondimenti:
Lezione 7: Iniezione remota
Data: mercoledì 13 aprile 2022 11:00 - 13:00
Data: mercoledì 20 aprile 2022 11:00 - 13:00
Data: martedì 26 aprile 2022 9:00 - 11:00
Data: mercoledì 27 aprile 2022 11:00 - 13:00
Slide:
Esempi:
Lezione 8: Corruzione della memoria
Data: mercoledì 27 aprile 2022 11:00 - 13:00
Data: lunedì 2 maggio 2022 14:00 - 16:00
Data: martedì 3 maggio 2022 9:00 - 11:00
Data: mercoledì 4 maggio 2022 11:00 - 13:00
Data: lunedì 9 maggio 2022 14:00 - 16:00
Data: martedì 10 maggio 2022 9:00 - 11:00
Data: mercoledì 11 maggio 2022 11:00 - 13:00
Slide:
Esempi:
Approfondimenti:
Lezione 9: Attacchi Web
Data: lunedì 16 maggio 2022 14:00 - 16:00
Slide:
Esempi:
Hall of Fame studenti (in ordine alfabetico e di data)
Nome studente
|
Data
|
Motivazione
|
Punteggio parziale
|
Punteggio totale
|
Alessia Golfieri
|
venerdì 18 marzo 2022, 14:51:47
|
Lezione 4-vulnerabilita-software.pdf, slide 248-253:
il punteggio Attack Surface nello scenario di attacco
esterno è sbagliato per via di un errore di
inserimento dei punteggi da parte del docente.
Nello specifico, i punteggi di RP (ovvero 0.7) e RL (ovvero 0.9)
sono stati inseriti nelle celle che riguardano le sigle
relative alle risposte (RU per la metrica RP e S per la
metrica RL) e non nelle celle del punteggio, lasciando così
il punteggio a zero. La conseguenza è una diminuzione
importante del sottopunteggio Attack Surface.
Le slide ed il foglio di calcolo sono stati corretti.
|
3/3
|
3/3
|
Rebecca Righetti
|
mercoledì 20 aprile 2022, 12:37:38
|
Lezione 5-esecuzione-privilegi-elevati.pdf, slide 30:
l'espressione "L'esecuzione durante l'esecuzione"
è sbagliata; quella corretta è "L'elevazione
durante l'esecuzione".
Le slide sono state corrette di conseguenza.
|
3/3
|
3/3
|
Rebecca Righetti
|
lunedì 2 maggio 2022, 20:00:29
|
Lezione 5-esecuzione-privilegi-elevati.pdf, slide 107 e archivio esempi
5-esempi.tar.gz, programmi di esempio drop_rest_unix_dbg.c e
drop_rest_unix_dbg2.c :
lo statement di debug printf("In GNU/Linux: grep Gid /proc/$(pgrep -f drop_rest_unix_dbg)/status\n");
dovrebbe riferirsi al programma drop_rest_unix_dbg o
drop_rest_unix_dbg2 .
Cercando sempre e solo drop_rest_unix_dbg , se uno studente
esegue le due demo drop_rest_unix_dbg e
drop_rest_unix_dbg2 simultaneamente, pgrep ritorna
i GID di due processi senza specificare il PID, complicando l'analisi.
Le slide e il programma drop_rest_unix_dbg2.c sono stati corretti
di conseguenza.
|
3/3
|
6/3
|
Federico Gibertoni
|
giovedì 17 maggio 2022, 16:07:37
|
Archivio esempi 9-Web_for_Pentester.tar.gz,
writeup SQL_Injections/Example8/example8.txt :
la spiegazione dell'esecuzione alla cieca con OR
al posto di AND è sballata.
Il writeup è stato rivisto e corretto
di conseguenza.
|
3/3
|
3/3
|
Lorenzo Storchi
|
giovedì 17 maggio 2022, 16:07:37
|
Archivio esempi 9-Web_for_Pentester.tar.gz,
writeup SQL_Injections/Example8/example8.txt :
la spiegazione dell'esecuzione alla cieca con OR
al posto di AND è sballata.
Il writeup è stato rivisto e corretto
di conseguenza.
|
3/3
|
3/3
|
Luca Bonacorsi
|
mercoledì 8 giugno 2022, 10:49:37
|
Lezione 8-corruzione-memoria.pdf, slide 251:
l'indirizzo di ESP è erroneamente
0xbffffca0 al posto del valore corretto
0xbffffc90 .
Le slide sono state corrette di conseguenza.
|
3/3
|
3/3
|
Ricevimento studenti
Link ricevimento e tutorato venerdì 30/7/2021
Calendario d'esame per l'appello del 25/02/2022 (Aula M1.1).
Turno 1: ore 16:00 - 18:00
Modalità
|
Nome e cognome del candidato
|
Presenza
|
Davide Bondioli
|
Presenza
|
Lorenzo Ferrari
|
Presenza
|
Ali Fedy Haj
|
Presenza
|
Andrea Montanari
|
Presenza
|
Gagandeep Singh
|
Gli studenti che devono sostenere l'esame in presenza sono
pregati di presentarsi all'ingresso dell'edificio MO 18 (Via
Campi 213/b) all'orario di inizio del turno e dovranno uscire
dall'aula di esame all'orario di fine turno.
Gli studenti che devono sostenere l'esame a distanza si
devono collegare alla riunione virtuale al link seguente
(pubblicato subito prima dell'appello).