20810140 - CYBERSECURITY

Il corso in Cybersecurity intende fornire allo studente le competenze necessarie per comprendere e affrontare problematiche di sicurezza informatica per sistemi ICT e organizzazioni complesse, per progettare reti e sistemi informatici con un certo livello di sicurezza e per pianficiare e gestire attività legate alla sicurezza informatica. Il corso fornice competenze circa attacchi, contromisure, strumenti crittografici, applicazioni e metodologie nel campo della cybersecurity. Argomenti avanzati circa l'integrità dei dati sono anche trattati.
scheda docente | materiale didattico

Programma

• Introduzione al corso
• Introduzione alla sicurezza informatica e terminologia
• Vulnerabilità e minacce
◦ Vulnerabilità del software input fidato e non fidato, validazione dell'input. Vulnerabilità di applicazioni scritte in linguaggi interpretati, code injection. Injection in pagine web: XSS. Cross site request forgery. OWASP.
▪ esempio di sito vulnerabile a sql injection
◦ Attacchi di tipo buffer overflow . Exploitation: privilege excalation, intrusioni via rete tramite servizi aperti, intrusione via documenti non fidati (via email, via web o altro).
▪ esempio di codice vulnerabile a buffer overflow e relativo exploit
◦ Vulnerabilità delle reti : sniffing, mac flood, ARP poisoning, vulnerabilità del DNS, attacco di Kaminsky. TCP session hijecking, attacchi MitM, DOS e Distributed DoS, Route hijacking.
• Pianificazione della sicurezza: contenuti del piano di sicurezza, analisi dei rischi.
• Contromisure
◦ Principi di progettazione di politiche e meccanismi
◦ Modelli: AAA, confinamento, DAC, MAC, access control matrix 
◦ Tecniche crittografiche:
▪ richiami di crittografia (hash, simmetrica, asimmetrica, MAC, firma digitale), attacchi birthday, rainbow, qualità delle chiavi, generazione di numeri pesudo-casuali.
▪ Protocolli di autenticazione e di scambio di chiavi. Attacchi replay e reflection. Nonces. Perfect Forward Secrecy. Diffie-Helman. 
▪ Certificati, certification authority, public key infrastructure e loro vulnerabilità.
▪ Applicazioni: Porotocolli ssl, tls, ssh, virtual private network, ipsec, ecc. Protocolli di autenticazione punto-punto e in rete locale. radius e vulnerabilità. Altre applicazioni.
◦ Considerazioni sui sistemi per la rilevazione automatica dei problemi
◦ Sicurezza dei sistemi:
▪ principi generali: passwords e loro vulnerabilità, metodologia di hardening, assessment e auditing
▪ unix: controllo di accesso discrezionario, sicurezza nel filesystem, autenticazione, PAM, syslog
◦ Sicurezza delle reti:
▪ Firewalling: firewall stateless e statefull, connessioni, syn-proxy e syn-cookies, load balancing e high availability, linux netfilter ed esempi di configurazioni.
▪ Sicurezza di rete a livello 1 e 2.
▪ Proxy applicativi, Intrusion detection systems di rete.
• Authenticated Data Structures
• Distributed Ledger Technologies and Bitcoin
• Smart contracts
• Cybersecurity nelle grandi organizzazioni


Testi Adottati

Dispense del corso

Bibliografia Di Riferimento

M. Bishop, "Computer Security: Art and Science", Addison-Weslesy. C. Kaufman, R. Perlman, M. Speciner, "Network Security: Private Comunication in a Public World (second edition)", Prentice Hall. C. Pfleeger, S. Pfleeger, "Security in Computing", Pearson - Prentice Hall. A. Antonopoulos, Mastering Bitcoin, 2nd Edition, O'Reilly, ,2017 A. Antonopoulos, G, Wood, Mastering ethereum: building smart contracts and dapps. O'Reilly Media, 2018

Modalità Erogazione

Lezioni frontali

Modalità Valutazione

Gli studenti verranno valutati sulla base di una prova scritta (circa il 66% della valutazione) e di un progetto individuale (circa il 33% della valutazione).