SICUREZZA

Anno accademico
2020/2021 Programmi anni precedenti
Titolo corso in inglese
SECURITY
Codice insegnamento
CT0539 (AF:320436 AR:172515)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
I Semestre
Anno corso
3
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
Fornire i concetti di base e le tecniche per lo sviluppo di applicazioni, sistemi e reti sicure. Il corso, dopo aver introdotto alcuni strumenti base per lo scripting e l'analisi di programmi, illustra le principali tecniche di attacco e di difesa di applicazioni, sistemi e reti ponendo particolare attenzioni sui principi per la programmazione sicura. Durante il corso verranno proposte diverse esercitazioni pratiche (challenge) nelle quali lo studente dovrà rompere la sicurezza di una applicazione individuando e sfruttando una vulnerabilità.
- conoscenza dei concetti di base e le tecniche per lo sviluppo di sistemi e reti sicure;
- conoscenza delle principali tecniche di attacco e difesa relative a program exploitation, system, network and web security;
- competenze relative sicurezza di sistemi e reti reali tramite esercitazioni pratiche.
Si richiede una conoscenza base di programmazione, architetture degli elaboratori, sistemi operativi e reti di elaboratori.
1. Background e strumenti
1.1 Introduzione alla shell di Unix
1.2 Stream editor e espressioni regolari
1.3 Introduzione a Python

2. Analisi di programmi
2.1 Assembly x86-64
2.2 Analisi dinamica di programmi

3. Program exploitation
3.1 Buffer overflow
3.2 Stack overflow
3.3 Format strings
3.4 Programmazione sicura

4. Sicurezza di sistemi e reti
4.1 Identificazione
4.2 Controllo degli accessi
4.3 Firewall

5. Sicurezza Web lato server
5.1 Attacchi web
5.2 SQL injection and difese
5.3 Blind SQL injection

6. Sicurezza Web lato client
6.1 Meccanismi di sicurezza
6.2 Attacchi: XSS e CSRF
J. Erickson, Hacking, the art of exploitation, No starch press, 2008.
La verifica dell'apprendimento avviene attraverso una prova scritta che ha lo scopo di accertare le conoscenze acquisite sui diversi argomenti del corso. Gli assignment sono facoltativi e hanno lo scopo di mettere in pratica le conoscenze acquisite e di verificare la competenze relative all'attacco e conseguente messa in sicurezza di sistemi informatici. Consistono in un problema (challenge) da risolvere la cui soluzione dà un bonus sul punteggio acquisito allo scritto.
Lezioni teoriche e pratiche in aula;
Risorse online (note, slide, video);
Chat e forum;
Sfide su diversi argomenti che daranno punteggio extra.
Italiano
scritto
Programma definitivo.
Data ultima modifica programma: 20/04/2020