L'obiettivo del corso è fornire una panoramica dei principali aspetti di cybersecurity alla base dei moderni ecosistemi software e infrastrutture di rete. Il corso consentirà di comprendere le vulnerabilità e le debolezze del software, riconoscere le cattive pratiche di sicurezza, i principali modelli di attacco, e di reperire autonomamente informazioni su malware e minacce informatiche.
Prerequisiti
Conoscenza di base dei sistemi operativi e delle architetture hardware, nozioni di base di programmazione e dei protocolli di rete più diffusi.
Metodi didattici
Lezioni frontali in presenza con supporto di slide. I concetti più importanti saranno corredati da semplici esempi. Tutto il materiale necessario (ad esempio, piccoli frammenti di codice, esempi di malware e regole YARA) sarà reso disponibile in un repository GitHub, consentendo di replicare gli esempi e condurre piccoli esperimenti autonomi.
Verifica Apprendimento
Due possibili modalità. Modalità 1: svolgere un assigment di gruppo su un argomento del corso (ad esempio, l'analisi di un malware reale, la spiegazione di una attack chain, il design di una semplice tecnica di mitigazione) da discutere in classe tramite slide o altro materiale. I relatori interagiranno con me. Voto: 0/24. Al termine del corso, un esame scritto di tre domande aperte sui concetti principali, ciascuna delle quali può essere valutata fino a 3 punti. Voto: 0/9. I due punteggi vengono sommati e, se il totale è maggiore di 31, allora 30 e lode. In caso contrario, la somma. Modalità 2: se si decide di non svolgere l'assignment di gruppo o il lavoro non è sufficiente, è necessario sostenere un esame scritto alla fine del corso. L'esame conterrà 11 domande aperte sui concetti principali, ciascuna delle quali può essere valutata fino a 3 punti. Anche in questo caso, se il totale è maggiore di 31, si ottiene 30 e lode. In caso contrario, la somma. Verrà proposta una simulazione intermedia dell'esame scritto per verificare i propri progressi. Ciò non contribuirà in alcun modo al punteggio finale né causerà distorsioni nella valutazione.
Testi
Non esiste un libro completo sull'argomento e i libri tendono a diventare rapidamente obsoleti su aspetti di frontiera. Le slide saranno informative e facili da annotare. Ogni modulo conterrà un elenco di paper scientifici introduttivi selezionati (sottoposti a peer review, pubblicati e citati) sull'argomento, brevi video o esempi.
Contenuti
Il corso è organizzato in moduli che trattano un tema base della sicurezza informatica di particolare rilevanza per la figura dell'ingegnere. Sarà anche valutata la possibilità di ospitare un esperto per un seminario di 2 ore sulla sicurezza del software. Programma principale: 1. Introduction and Basics: Course introduction, main attack models, the Cyber Kill Chain, concepts related to the attack surface and attack surface reduction practices. 2. Security Analysis: Common weaknesses enumeration, common vulnerability enumeration, common vulnerability scoring system, testing (static and fuzzing). 3. Software Supply Chain Security: Introduction of modern software supply chains, main attack entry points, dependency attacks, *-squatting, starjacking, build system attacks, mitigation via reproducible builds. 4. Malware: Virus, worms, droppers, RATs, trojans, cryptolockers, cryptominers, botnets, architecture of a malware, static analysis, packers, YARA rules, obfuscation, de-obfuscation and minification. 5. Network Security: Main network threats, network vulnerability scanning, flooding attacks, port scanning, network segmentation, firewalls and honeypots. - Optional Advanced Topics - I seguenti argomenti saranno integrati nelle lezioni del corso o approfonditi come piccole monografie a seconda della risposta dei partecipanti. 6. Information Hiding: Information Hiding and steganography, steganographic malware (i.e., stegomalware), network and local covert channels (with hints at side-channel-attacks). 7. Watermarking and AI: Hiding information for defense and tracking, digital watermarking of data, software, and 3D meshes, major AI-based security challenges.