SOFTWARE SECURITY

Anno accademico
2021/2022 Programmi anni precedenti
Titolo corso in inglese
SOFTWARE SECURITY
Codice insegnamento
CM0588 (AF:359536 AR:186867)
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea magistrale (DM270)
Settore scientifico disciplinare
ING-INF/05
Periodo
I Semestre
Anno corso
2
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
I corso introduce concetti e tecnologie di sicurezza del software.
Nella prima parte del corso verrà trattata la protezione del software da attacchi di reverse engineering e attacchi Man-At-The-End (MATE), con laboratori ed esempi pratici.
Nella seconda parte verrano trattati diversi argomenti relativi alla sicurezza del software su diversi tipi di sistemi.
Gli obiettivi del corso sono far acquisire:
- l'importanza della protezione delle applicazioni software da attacchi MATE (Man-At-The-End) basati su reverse engineering.
- l'uso di strumenti software per la protezione della proprietà intellettuale (Digital Rights Management) come offuscazione, tamper-proofing e watermarking
- la sicurezza software su sistemi cloud, mobili, e voto elettronico
- la conoscenza di varie tematiche di sicurezza software: malware e cybercrime, anonymity e privacy, analisi e modellazione di attacchi
Con le esercitazioni si avrà l’opportunità di sperimentare e di acquisire una conoscenza attiva della materia.
E' necessario aver seguito il corso SECURITY I [CM0493] oppure il corso di SECURITY [CT0539].
E' consigliabile, ma non necessario, aver seguito i corsi di CRYPTOGRAPHY [CM0480] e SOFTWARE CORRECTNESS, SECURITY, AND RELIABILITY [CM0476].

Si consiglia vivamente di frequentare le lezioni, dato che il corso ha componenti teoriche e sperimentali.
L'acquisizione dei concetti avviene anche grazie all'uso di strumenti software in laboratorio e discussioni di casi pratici.
Il corso presenterà diverse tematiche della sicurezza del software, toccando diversi argomenti:
- Analisi del codice binario e reverse engineering
- Strumenti di protezione dell'analisi del software con vari tipi di offuscazione
- Strumenti di protezione dell'integrità del codice: tamperproofing e code-guards
- Watermarking e strumenti di protezione della proprietà intellettuale e Digital Rights Management
- Protezione contro la pirateria del software: similarità del codice e metodi di protezione anti-copia.
- Malware analysis e Cybercrime
- Modellazione di attacchi
- Tematiche avanzate di Software Security: penetration testing, e-Voting, cloud security, Android security, anonymity e privacy.
Documentazione fornita dal docente che farà riferimento a:
1. Christian Collberg, Jasvir Nagra; Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection, 2009, Addison-Wesley Professional, ISBN 978-0321549259, First Edition.
2. Adam Shostack; Threat Modeling: Designing for Security, 2014, Wiley, ISBN 978-1118809990
3. Chris Eagle, Kara Nance; The Ghidra book: the Definitive Guide, 2020, No Starch Press, ISBN-13: 978-1-71850-102-7
4. Vijay Kumar Velu, Robert Beggs; Kali Linux for Advanced Penetration Testing- Third Edition, 2019, Packt Publishing, ISBN 978-1-78934-056-3
La verifica dell'apprendimento avviene attraverso una prova scritta che ha lo scopo di accertare le conoscenze acquisite sui diversi argomenti del corso.
Le tesine sono facoltative e consistono in un problema pratico da risolvere, o nello svolgere una presentazione di un articolo di ricerca di fronte al resto della classe.
La tesina dà un bonus sul punteggio acquisito allo scritto.
Lezioni teoriche e pratiche in aula;
Risorse online (note, slide, video);
Chat e forum;
Tesine su diversi argomenti che daranno punteggio extra.
Laboratori pratici.
Inglese
scritto

Questo insegnamento tratta argomenti connessi alla macroarea "Città, infrastrutture e capitale sociale" e concorre alla realizzazione dei relativi obiettivi ONU dell'Agenda 2030 per lo Sviluppo Sostenibile

Programma definitivo.
Data ultima modifica programma: 21/05/2021