SICUREZZA

Anno accademico
2019/2020 Programmi anni precedenti
Titolo corso in inglese
SECURITY
Codice insegnamento
CT0539 (AF:314738 AR:168583)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea
Settore scientifico disciplinare
INF/01
Periodo
II Semestre
Anno corso
3
Sede
VENEZIA
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 Linux
1.2 Introduzione a Python
1.3 Assembly Intel
1.4 Analisi di programmi

2. Program exploitation
2.1 Overflow e protezione dello stack
2.2 Sovrascrittura del return address
2.3 Format strings
2.4 Programmazione sicura e contromisure

3. Sicurezza di sistemi e reti
3.1 Identificazione
3.2 Controllo degli accessi
3.3 Attacchi di rete e contromisure

4. Sicurezza Web lato server
4.1 SQL injections
4.2 Blind SQL injections
4.3 Prevenzione di SQL injections

5. Sicurezza Web lato client
5.1 Cross site scripting (XSS)
5.2 Cross site request forgery (CSRF)
5.3 Prevenzione di attacchi lato client
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: 23/07/2019