SOFTWARE SECURITY

Anno accademico
2024/2025 Programmi anni precedenti
Titolo corso in inglese
SOFTWARE SECURITY
Codice insegnamento
CM0631 (AF:513751 AR:286779)
Modalità
In presenza
Crediti formativi universitari
6 su 12 di SYSTEM AND SOFTWARE SECURITY
Livello laurea
Laurea magistrale (DM270)
Settore scientifico disciplinare
ING-INF/05
Periodo
II Semestre
Anno corso
1
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
L'insegnamento è una delle attività formative del corso di laurea magistrale di COMPUTER SCIENCE AND INFORMATION TECHNOLOGY.
Il corso intende fornire i concetti fondamentali di sicurezza del software e una rassegna di diverse problematiche relative allo sviluppo e la sicurezza del software; in particolare, lo studente acquisirà alcune competenze che servono per proteggere il software da attacchi di reverse engineering
La frequenza e la partecipazione attiva alle attività formative proposte dal corso (lezioni frontali, esercizi) e lo studio individuale consentiranno a studenti/studentesse di:

1. Conoscenza e comprensione:
1.1 acquisire i concetti teorici di reverse engineering e protezione del software;
1.2 acquisire le conoscenze di diversi argomenti relativi alla sicurezza del software.
2. Capacità di applicare conoscenza e comprensione:
2.1 sapere utilizzare le conoscenze acquisite per migliorare la protezione del software,
2.2 sessioni pratiche per sperimentare e acquisire una conoscenza attiva degli argomenti del corso.
3. Abilità comunicative
3.1 Saper comunicare informazioni, idee, problemi e soluzioni a interlocutori specialisti.
3.2 Sviluppare capacita' di lavoro di gruppo - teamwork
E' necessario aver seguito il corso SYSTEM SECURITY.

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
- Malware analysis e Cybercrime
- Modellazione di attacchi
- Tematiche avanzate di Software Security: e-Voting, anonymity e privacy, fattori umani in security.
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
5. Alexey Kleymenov, Amr Thabet, "Mastering Malware Analysis: A malware analyst's practical guide to combating malicious software, APT, cybercrime, and IoT attacks", 2nd Ed., Packt Publishing, 2022, ISBN 1803240245.
La verifica dell'apprendimento avviene attraverso una prova scritta che ha lo scopo di accertare le conoscenze acquisite sui diversi argomenti del corso.
I progetti (tesine) sono obbligatorie e consistono in un problema pratico da risolvere, o nello svolgere una presentazione di un articolo di ricerca, o di un breve tutorial di fronte al resto della classe.
Il progetto dà un bonus di max 4 punti sul punteggio acquisito allo scritto.

Per quanto riguarda la gradazione del voto dello scritto (modalità con cui saranno assegnati i voti), a prescindere dalla modalità frequentante o non frequentante:
A. punteggi nella fascia 18-22 verranno attribuiti in presenza di sufficiente conoscenza e capacità di comprensione applicata in riferimento al programma;
B. punteggi nella fascia 23-26 verranno attribuiti in presenza di discreta conoscenza e capacità di comprensione applicata in riferimento al programma;
C. punteggi nella fascia 27-30 verranno attribuiti in presenza di buona o ottima conoscenza e capacità di comprensione applicata in riferimento al programma;
D. la lode verrà attribuita in presenza di conoscenza e capacità di comprensione applicata in riferimento al programma, capacità di giudizio e abilità comunicative, eccellenti.
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
Programma definitivo.
Data ultima modifica programma: 29/01/2025