SICUREZZA Canale unico
Docente coordinatore e verbalizzante: DANIELE CONO D'ELIA
Docenti
Obiettivi formativi
Obiettivi Generali.
Il corso mira a fornire agli studenti conoscenze e competenze rilevanti per identificare, prevenire e rispondere alle minacce alla sicurezza nei sistemi informatici e nelle applicazioni software. Gli studenti apprenderanno riguardo, ad esempio, vulnerabilità comuni, pratiche di programmazione e test "attente alla sicurezza” e meccanismi di sicurezza generali. Acquisiranno inoltre esperienza pratica con tecnologie allo stato dell’arte. Alla fine del corso, gli studenti avranno acquisito familiarità con ciò che è necessario per progettare, implementare e valutare software e sistemi (più) sicuri.
Obiettivi specifici.
Conoscenza e comprensione:
Comprendere i concetti di base della sicurezza informatica, a partire dalle minacce e vulnerabilità che affrontano i sistemi digitali.
Applicare conoscenze e comprensione:
Acquisire esperienza sia metodologica che pratica con strumenti e tecnologie di sicurezza informatica. Studiare pratiche di sviluppo e testing del software consapevoli della sicurezza.
Capacità critiche e di giudizio:
Identificare, esaminare, comprendere e valutare le caratteristiche e le proprietà di programmi e sistemi software che sono rilevanti per la sicurezza.
Capacità comunicative:
Le attività permetteranno agli studenti di identificare, valutare e lavorare sugli aspetti rilevanti per la sicurezza dei software e dei sistemi.
Capacità di apprendimento:
Oltre alle classiche abilità di apprendimento fornite dalle descrizioni teoriche e dalle sessioni pratiche, gli studenti saranno stimolati a approfondire autonomamente le metodologie presentate e acquisire esperienza pratica con strumenti e tecniche per la sicurezza dei software e dei sistemi.
Risultati di apprendimento attesi
Al termine dell’insegnamento, lo studente sarà in grado di:
Conoscenza e comprensione: descrivere i concetti fondamentali della sicurezza informatica, dalla protezione dei dati alle principali minacce e vulnerabilità dei sistemi digitali, e spiegare i principi alla base dell’uso sicuro della crittografia e dello sviluppo del software.
Capacità di applicare conoscenza e comprensione: utilizzare metodi, strumenti e tecniche per analizzare e migliorare la sicurezza di software, dati e sistemi, anche attraverso attività pratiche di testing e fuzzing.
Autonomia di giudizio: identificare, esaminare e valutare le caratteristiche e le proprietà di programmi e sistemi software rilevanti per la sicurezza, selezionando contromisure adeguate rispetto alle minacce considerate.
Abilità comunicative: descrivere e motivare le scelte tecniche adottate nell’analisi e nella protezione di software, dati e sistemi.
Capacità di apprendimento: approfondire autonomamente le metodologie presentate e acquisire ulteriore esperienza pratica con strumenti e tecniche per la sicurezza del software, dei dati e dei sistemi.
Prerequisiti
Conoscenze indispensabili:
- Programmazione in linguaggio C
- Ciclo di sviluppo/compilazione/link del software
- Architettura dei calcolatori elettronici
- TCP/IP
Conoscenze utili:
- ASM x86
Programma dell’insegnamento
- (Pseudo)Randomness
- Data Integrity
- Data Confidentiality
- Standards for data protection
- Common Attacks and Countermeasures
- Secure Software Life Cycle
- Software Testing (dalla teoria al fuzzing hands-on)
- Memory and Type Safety
- Run-time Mitigations for Program Hardening
Testi di riferimento
Slide e risorse messe a disposizione dai docenti
Modalità di svolgimento
Lezioni frontali, esercitazioni, esperienze di laboratorio.
Frequenza
La frequenza è fortemente consigliata, ma non obbligatoria.
Modalità di esame
La prova pratica prevede lo svolgimento di quesiti al calcolatore e ha una durata di due ore.
Esempi di domande
Si prega di far riferimento alla pagina del corso (link disponibile sul sito dei docenti)
Programmazione delle attività didattiche
- Secure software life cycle (2h)
- Theory of software testing (4h)
- Memory and type safety (2h)
- Sanitizers (6h with hands-on)
- Run-time mitigations for program hardening (2h)
- Fuzzing (12h with hands-on)
- Practice (2h)
- Randomness/Pseudorandomness (4h)
- Data Encryption (3h)
- Data Integrity (3h)
- Signatures and PKI (4h)
- Key management/exchange (4h)
- Secure communication (4h)
- Typical attacks (4h)
- OpenSSL (4h)
Obiettivi per lo sviluppo sostenibile - Agenda ONU 2030
- Anno accademico2026/2027
- Corso di studio a cui afferisce l’insegnamentoIngegneria Informatica e Automatica
- Codice insegnamento10606849
- CurriculumInformatica
- Anno e semestre3º anno - 2º semestre
- TipologiaAttività formative caratterizzanti
- AmbitoIngegneria informatica
- SSDING-INF/05
- Presenza obbligatoriaNo
- Linguaita
- CFU6 CFU
- Durata complessiva60 ore
- Distribuzione delle ore36 classroom hours, 24 training hours