SICUREZZA

Anno accademico
2024/2025 Programmi anni precedenti
Titolo corso in inglese
SECURITY
Codice insegnamento
CT0539 (AF:402007 AR:218246)
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.

Modalità con cui saranno assegnati i voti della prova scritta:

A. punteggi nella fascia 18-22 verranno attribuiti in presenza di:
- sufficiente conoscenza delle materie del corso;
- limitate competenze nello svolgimento di esercizi pratici legati ai laboratori del corso;
- sufficienti abilità comunicative, specie in relazione all'utilizzo del linguaggio specifico che attiene la sicurezza dei sistemi informatici.
B. punteggi nella fascia 23-26 verranno attribuiti in presenza di:
- discreta conoscenza delle materie del corso;
- discrete competenze nello svolgimento di esercizi pratici legati ai laboratori del corso;
- discrete abilità comunicative, specie in relazione all'utilizzo del linguaggio specifico che attiene la sicurezza dei sistemi informatici.
C. punteggi nella fascia 27-30 verranno attribuiti in presenza di:
- buona o ottima conoscenza delle materie del corso;
- buone o ottime competenze nello svolgimento di esercizi pratici legati ai laboratori del corso;
- abilità comunicative pienamente appropriate, specie in relazione all'utilizzo del linguaggio specifico che attiene la sicurezza dei sistemi informatici.
D. la lode verrà attribuita in presenza di conoscenze, competenze e abilità comunicative, eccellenti.

Modalità con cui sono attribuiti i bonus delle challenge:
A. punteggio da 0.1 a 0.3
- sufficienti competenze nello svolgimento dell'esercitazione;
- sufficienti capacità comunicative nella scrittura di un report che descriva la soluzione proposta.
B. punteggio da 0.4 a 0.5
- buone competenze nello svolgimento dell'esercitazione;
- buone capacità comunicative nella scrittura di un report che descriva la soluzione proposta.
C. punteggio da 0.6 a 0.7
- eccellenti competenze nello svolgimento dell'esercitazione;
- eccellenti capacità comunicative nella scrittura di un report che descriva la soluzione proposta.
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/10/2024