Sicurezza informatica

A.A. 2022/2023
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
In questo insegnamento verranno esplorate le foundation del software security. e considerate importanti vulnerabilita` software e attacchi low-level come heap overflow, use after free e buffer overflow. Verranno inoltre illustrate ed analizzate le techniche di difesa per prevenire e mitigare questi attacchi includendo meccanismi di testing avanzato e di program analysis come la symbolic execution e il fuzzing.
Risultati apprendimento attesi
Lo studente che avrà superato l'esame di questo insegnamento con successo sarà in grado di applicare tecniche di attacco di base sui low-level attacks come buffer overflow, heap overflow e use after free. Avra` compreso le tecniche di difesa generali dei sistemi e sarà in grado di applicare techniche avanzate di testing e program analysis su linguaggi C e C++. Lo studente che affronta questo insegnamento dovrà avere un background di base sulla programmazione, una conoscenza dei linguaggi C/C++ e degli algoritmi.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Primo semestre

Programma
1) Modulo Low-Level Attacks
Introduction
Buffer Overflow
Lab Buffer overflow
Heap Overflow
Lab Heap Overflow
Use after Free (UAF)
Lab UAF
2) Modulo Low-Level Security: Defense
- Introduction
- Memory Safety
- Type Safety + Avoid Exploitation
- ROP Return Oriented Programming
- ROP lab
- CFI
3) Modulo Static and Dynamic Flow Analysis
- Introduction
- Static Analysis
- Data Flow analysis
4) Modulo Symbolic Execution
- Introduction
- Symbolic Execution
- Lab of Symbolic Execution
Prerequisiti
Al fine di poter trarre il massimo profitto dal corso gli studenti interessati a frequentarlo devono possedere i seguenti requisiti:

- Saper gestire autonomamente un sistema Linux/Windows/MacOS
- Saper scrivere programmi in C
- Saper usare un emulatore QEMU/VMware
- Aver frequentato il corso di Sicurezza 1
Metodi didattici
Le lezioni sono di 4 ore e vengono divise in due parti: una lezione teorica di 2 ore e una lezione di laboratorio di 2 ore.
Materiale di riferimento
- Sito Ariel di riferimento Sito del Corso (Ariel)
- GitHub repository Security Exercise
- Slide fornite dal docente
- paper in riferimento all'argomento della lezione
Modalità di verifica dell’apprendimento e criteri di valutazione
Il criterio di valutazione sara` diviso in due parti: Una parte scritta (quiz) riguardante la parte teorica del corso, una parte pratica che riguardera` un'esercitazione pratica dove si dovranno risolvere degli esercizi di exploitation gia` discussi nelle lezioni di laboratorio. Il voto finale sara` una media pesata tra i due voti.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Lanzi Andrea