Sicurezza informatica

A.A. 2022/2023
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Learning objectives
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.
Expected learning outcomes
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.

Course syllabus and organization

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
Professor(s)