In questa pagina sono riportati gli insegnamenti non ancora attivi nell’anno accademico in corso, ma che saranno attivati nei prossimi anni accademici in quanto previsti nel percorso formativo del Corso di Studio.
Prossima attivazione
Attività formative 2°anno
Corso integrato: Digital forensics
Modulo: Digital Forensics Techniques
(SSD ING-INF/05; 50 ore, 5 CFU, Caratterizzante)
Obiettivi formativi
L'insegnamento fornisce allo studente competenze specifiche nell'ambito della Digital Forensic Analysis e Investigation attraverso lo studio approfondito dei sistemi e delle migliori tecniche di indagine forense su diversi fronti. Tali tecniche potranno quindi essere utilizzate per il recupero delle evidenze digitali come elementi di prova da produrre in sede giudiziale.
Le conoscenze fornite daranno allo studente una visione generale degli aspetti della Digital Forensics i quali, nello specifico, tratteranno tematiche di Computer Forensics Techniques, Mobile Forensics Analysis, Memory Forensics e OSINT for Digital Forensic Intelligence. In particolare, i moduli di cui sopra forniscono conoscenze orizzontali nei moderni sistemi operativi, file-system, per poi approfondire tecniche di analisi dati, di rete, di memoria.
I laboratori fruiti attraverso una efficiente piattaforma di e-learning forniscono allo studente una capacità pratica che, unita a quella teorica acquisita, lo rendono indipendente per le attività tipiche del Digital Forensic Analyst. In questo contesto, vengono inoltre approfondite le tecniche di analisi specifiche per sistemi Windows, Linux e Mobile Android, permettendo allo studente di utilizzare le tecniche e gli strumenti specifici per il sistema considerato, al fine di massimizzare le possibilità di successo nell'attività di analisi forense.
In accordo con i Descrittori di Dublino, gli obiettivi formativi del corso sono i seguenti:
Conoscenza e comprensione
- avere una conoscenza generale sugli aspetti tecnici e metodologici nell’ambito della Digital Forensics;
- avere una conoscenza degli strumenti pratici utilizzati per effettuare analisi forensi;
- avere buona padronanza con le varie distribuzioni di sistema, in particolar modo in ambiente Unix/Linux.
Capacità di applicare conoscenza e comprensione
Lo studente, al termine del corso, dovrà:
- saper applicare gli strumenti di indagine forense ad una vasta gamma di dispositivi, sia fissi (desktop, laptop) che mobili (smartphone, tablet);
- saper sfruttare le caratteristiche dei diversi sistemi operativi in relazione al tipo di attività forense che si vuole svolgere;
- saper analizzare immagini di memoria e documenti;
- essere in grado di stilare esaustivi rapporti dell’attività svolta secondo criteri di chiarezza e sintesi, necessari nella fase di presentazione delle evidenze (prove) estratte in ambito processuale.
Autonomia di giudizio
Lo studente, al termine del corso, dovrà essere in grado di:
- saper valutare lo scenario forense sul quale operare e fare una corretta analisi per le attività che seguiranno;
- essere in grado di scegliere gli strumenti necessari (Open Source o Commerciali) per procedere con l’estrazione delle evidenze digitali.
Abilità comunicative
Lo studente, al termine del corso, dovrà essere capace di illustrare e discutere le diverse fasi dell'attività forense in relazione a casi giudiziari proposti.
Capacità di apprendimento
Il corso metterà lo studente nella condizione di poter approfondire ed acquisire l'uso di nuova strumentazione forense attraverso la lettura di documentazione tecnica e guide operative.
Prerequisiti
Sono prerequisiti necessari:
- Conoscenza di base delle principali distribuzioni dei Sistemi Operativi, in particolar modo quelle su piattaforma Unix/Linux e relativi comandi e processi;
- Conoscenza della struttura delle diverse tipologie di file-system presenti nei supporti di memorizzazione.
Contenuti
Il corso è strutturato in moduli, descritti come segue:
- MODULO 1 - INTRODUZIONE (5 ore)
- MODULO 2 - DISK FORENSICS (14 ore)
- Concetti generali di Computer Forensics;
- Analisi e profilazione dei casi;
- Strumenti di analisi forense (FTK, Autopsy, X-Ways Forensics);
- Preparazione di ambienti di analisi forense;
- Creazione di una prova simulata;
- Acqusizione e analisi di base della prova giudiziaria;
- Attività di reporting e catena di custodia;
- Caso studio / LAB.
- MODULO 3 – WINDOWS AND LINUX FORENSICS (9 ore)
- Analysis of Windows file systems (NTFS) and artifact -analysis (registry, pre-fetch, event manager);
- Analysis of PowerShell and scripting code;
- Analysis of Linux file systems.
- MODULO 4 – LIVE MEMORY FORENSICS (9 ore)
- Aspetti generali dell'analisi della RAM di un dispositivo;
- Introduzione allo strumento di analisi Volatility;
- Windows Memory Forensics
- Linux Memory Forensics - ricostruzione tabella simboli;
- Attività di analisi pratica in laboratorio.
- MODULO 5 – MOBILE FORENSICS ANALYSIS (8 ore)
- Aspetti generali della Mobile Forensics;
- Aspetti dettagliati dei sistemi Android e IOS;
- Tecniche di analisi, verifica ed estrazione del dato da apparati mobile: smartphone, tablet (es. write blocking, isolamento dei dispositivi, etc.);
- Strumenti di analisi del dato con software commerciali e non (Oxygen, Axiom, UFED).
- MODULO 6 - DOCUMENT FORENSICS (5 ore)
- Analisi forense di documenti PDF e MS Office;
- Analisi forense di audio;
- Attività di analisi pratica in laboratorio.
Modalità di verifica dell'apprendimento
La verifica dell'apprendimento si terrà:
- Attraverso lo svolgimento di un elaborato in cui lo studente dovrà dettagliare una simulazione di analisi forense, idealmente svolta per un tribunale, su uno degli argomenti principali visti durante il corso (forensics su dischi meccanici/ssd, forensics su dispositivi mobili, forensics su memorie RAM). La simulazione verte su alcuni quesiti tecnici ai quali lo studente deve rispondere.
L'elaborato viene valutato in trentesimi, verificando:
a. La correttezza tecnica delle risposte date dallo studente (70% del voto).
b. La capacità di fornire correttamente al lettore le basi per la comprensione delle risposte date (20% del voto).
c. La proprietà di linguaggio tecnico-forense (10% del voto).
- Attraverso una prova orale conclusiva in cui lo studente dimostra la conoscenza delle principali tecniche di analisi forense su dispositivi digitali e la capacità di saperle discutere attraverso l'uso della appropriata terminologia. Lo studente dovrà dimostrare autonomia di giudizio sapendo individuare vantaggi e svantaggi delle tecniche forensi viste a lezione e mostrare una adeguata padronanza del linguaggio forense.
La prova viene valutata in trentesimi, verificando:
1. La conoscenza degli argomenti spiegati durante il corso funzionali allo svolgimento del progetto (40% del voto finale)
2. La capacità di applicare la conoscenza acquisita al progetto scelto (30% del voto finale)
3. L’autonomia di giudizio riguardo alle tecniche forensi da impiegare (10% del voto finale)
4. La padronanza del linguaggio in un contesto tecnico-forense (20% del voto finale)
Il voto finale dell'esame è la media aritmetica fra le due prove.
Modulo: Digital Forensics Law
(SSD IUS/20; 50 ore, 5 CFU, Affine)
Obiettivi formativi
In coerenza con gli obiettivi formativi del Corso di Laurea Magistrale in Computer Engineering, Cybersecurity and Artificial Intelligence, obiettivo dell’insegnamento è quello di far acquisire allo studente conoscenze, abilità e competenze fondamentali nell'ambito dell’Informatica Forense.
Conoscenza e capacità di comprensione:
- lo studente acquisisce consapevolezza dell'esistenza di problemi giuridici legati alle nuove tecnologie.
- lo studente acquisisce consapevolezza dell'esistenza delle problematiche processuali (civili e penali) connessi alle nuove tecnologie.
Conoscenza e Capacità di comprensione applicate:
- lo studente comprenderà come poter sviluppare e utilizzare (come professionista o utente) le nuove tecnologie in modo conforme a leggi e regolamenti.
- lo studente comprenderà gli aspetti legali della ricerca, acquisizione, conservazione e analisi della prova informatica
Autonomia di giudizio:
lo studente svilupperà la capacità di valutare giuridicamente le evidenze informatiche
Abilità comunicative:
lo studente sarà capace di interagisce in modo qualificato con avvocati ed esperti del diritto.
Capacità di apprendere:
lo studente saprà reperire da fonti qualificate e di interpretare autonomamente la normativa vigente applicabile al suo ambito di interesse.
Prerequisiti
Non vi sono prerequisiti necessari in termini di conoscenze specialistiche.
Contenuti
Il corso è diviso in tre parti.
La prima parte è dedicata alle nozioni di base del diritto dell'informatica, con particolare approfondimento sui reati informatici (computer crimes). La seconda parte è dedicata agli aspetti processuali di ricerca, acquisizione, conservazione, analisi e valutazione delle prove informatiche nel processo (computer forensics).
La terza parte è dedicata alla disciplina in materia di protezione dei dati personali (data protection).
Modalità di verifica dell'apprendimento
L'esame consisterà in una prova orale che ha l'obiettivo di verificare l'acquisizione da parte dello studente delle conoscenze previste secondo quanto dettagliato negli obiettivi del corso, con riferimento a tematiche attinenti a quelle indicate nella sezione “Contenuti del corso”. Verranno valutate le conoscenze apprese, le capacità critiche e metodologiche dello studente, la competenza di collegare parti del programma in modo interdisciplinare. La prova orale è unica e valida per entrambi i moduli.
Lo scopo della prova orale è verificare la capacità dello studente di applicare il proprio bagaglio nozionistico e di eseguire i necessari collegamenti logico-deduttivi.
Gradazione del voto finale:
A titolo meramente esemplificativo, l’attribuzione del voto finale sarà ispirata ai seguenti criteri:
- preparazione sufficiente o poco più che sufficiente sugli argomenti affrontati, scarsa capacità critica, difficoltà di utilizzo del linguaggio tecnico-giuridico (18-21);
- preparazione discreta o piuttosto buona sugli argomenti affrontati, discreta capacità critica, buon utilizzo del linguaggio tecnico-giuridico (22-25);
- preparazione buona o più che buona sugli argomenti affrontati, buona capacità critica, padronanza del linguaggio tecnico-giuridico (26-29);
- preparazione sostanzialmente esaustiva sugli argomenti affrontati, ottima capacità critica, piena padronanza del linguaggio tecnico-giuridico (30-30L).
Control, Learning and Security in Network Systems
(SSD ING-INF/04; 50 ore, 5 CFU, Caratterizzante opzionale)
Obiettivi formativi
In coerenza con gli obiettivi formativi del Corso di Laurea in Computer Engineering, Cybersecurity and Artificial Intelligence, l’obiettivo dell’insegnamento è quello di far acquisire allo studente le competenze avanzate relative ai metodi per il controllo e l’analisi di sistemi dinamici interconnessi e sistemi multi-agente, anche in relazione alle problematiche di sicurezza dei sistemi dal punto di vista dell’automatica, come dettagliato di seguito.
Conoscenza e capacità di comprensione:
Lo studente conoscerà i modelli formali per la rappresentazione di sistemi dinamici interconnessi e multi-agente mediante equazioni differenziali e alle differenze, e le proprietà strutturali di tali sistemi. Lo studente comprenderà i metodi più significativi per l’analisi e il controllo distribuito, e la loro vulnerabilità rispetto a guasti o attacchi esterni.
Conoscenza e capacità di comprensione applicate:
Lo studente saprà definire le proprietà strutturali delle reti di sistemi dinamici, in connessione con la teoria algebrica dei grafi e la rappresentazione di reti attraverso grafi. Lo studente saprà caratterizzare il comportamento emergente di reti di sistemi dinamici, in cui il comportamento globale o collettivo emerge da semplici regole di interazione locale tra i componenti.
Autonomia di giudizio:
Lo studente sarà in grado di individuare vantaggi e svantaggi di alcune soluzioni progettuali di sistemi interconnessi e multi-agente, anche in relazione alla loro vulnerabilità rispetto al fallimento di singoli componenti o attacchi.
Abilità comunicative:
Lo studente sarà capace di esprimere chiaramente concetti tecnici e scientifici nell'ambito dei sistemi dinamici e multi-agente.
Capacità di apprendere:
Lo studente saprà integrare le conoscenze da varie fonti, inclusi recenti articoli scientifici, al fine di conseguire una visione ampia delle problematiche connesse al progetto di sistemi interconnessi e alle loro problematiche di sicurezza dal punto di vista della teoria dei controlli.
Prerequisiti
Per poter seguire proficuamente le lezioni lo studente deve aver acquisito da precedenti insegnamenti le seguenti conoscenze, abilità e competenze:
Elementi di analisi matematica, di algebra matriciale e di fisica. Calcolo integrale e differenziale multivariabile. Rappresentazione e analisi di sistemi dinamici nello spazio di stato. Elementi di programmazione Matlab-Simulink.
Contenuti
Introduzione (2 ore di lezioni frontali)
Argomenti ed obbiettivi del corso. Introduzione ai sistemi interconnessi e multi-agente, esempi motivanti.
Introduzione alla teoria algebrica dei grafi (2 ore di lezioni frontali)
Grafi come modelli formali di reti di sistemi dinamici. Definizione di grafi indiretti e diretti e loro proprietà. Classi di connettività dei grafi. Grafi periodici e aperiodici. Il grafo condensato e le sue proprietà. Grafi pesati. La matrice di adiacenza. Uso di Matlab per la manipolazione di grafi. Grafi random. Grafi di prossimità.
Elementi di teoria delle matrici non-negative per sistemi dinamici (4 ore di lezioni frontali, 2 ore di esercitazione)
Definizione e proprietà delle matrici non-negative, matrici stocastiche, matrici irriducibili, matrici primitive, matrici positive. Il teorema del disco di Gershgorin. Teoria di Perron-Frobenious e suoi usi.
Diffusione dell’informazione su reti a tempo-discreto e consenso (6 ore di lezioni frontali, 2 ore di esercitazioni)
Esempi su reti sociali, sistemi multi-robot e reti di sensori, media distribuita e consenso a tempo discreto. Algoritmi di consenso sulla media e proprietà di stabilità. Collegamenti tra teoria dei grafi, teoria delle matrici non-negative e sistemi dinamici, risultati e dimostrazioni.
Progetto di grafi pesati: modelli equal neighbors e Metropolis Hasting.
La matrice Laplaciana e protocolli di consenso a tempo continuo (4 ore di lezioni frontali, 2 ore di esercitazione)
Definizione della matrice Laplaciana. Proprietà strutturali. Esempi su sistemi meccanici ed elettrici. Rango della amtrice Laplaciana. Spettro della amtrice Laplaciana. Definizione e significato della connettività algebrica, esempio su problema di clustering.
Dinamica basata su Laplaciano. Esempi di reti fisiche che evolvono con dinamica basata su Laplaciano. Reti con sistemi dinamici del secondo ordine e loro applicazione ai sistemi multi-robot. Teoremi sul consenso a tempo continuo e dimostrazioni.
Coordinamento di sistemi multi-robot (8 ore di lezioni frontali, 2 ore di esercitazioni)
Teoria avanzata di stabilità alla Lyapunov per sistemi non-lineari e insiemi invarianti. Scenari di applicazione di sistemi multi-robot. Il problema del rendezvous e dell’inseguimento di un leader.
Introduzione al coordinamento multi-robot. Il metodo dei potenziali artificiali sugli archi. Stormi e controllo di formazione. Progetto di potenziali artificiali per il rendezvous, evitare collisioni, mantenimento della connettività. Criteri di convergenza.
Definizione di grafi rigidi, rigidità infinitesimale, matrice di rigiditò e proprietà del suo rango. Grafi minimamente rigidi e sequenza di Hanneberg. Stabilità di formazioni rigide.
Ottimizzazione e apprendimento su reti (6 ore di lezioni frontali, 2 ore di esercitazione)
Fondamenti di ottimizzazione convessa e distribuita, vincolata e non-vincolata. Ottimizzazione distribuita basata su consenso e metodi ADMM. Applicazioni all’apprendimento supervisionato su reti.
Controllo su reti senza fili e aggregazione sicura di dati su reti di sistemi (6 ore di lezioni frontali, 2 ore di esercitazione)
Esempi motivanti. Sistemi lineari controllati su reti con perdita di pacchetti. Teoria di Lyapunov per la stabilità di media quadratica per sistemi lineari con perdita di pacchetti. Vulnerabilità al jamming e attacchi DoS cyber-fisici. Il problema dei generali Bizantini. Votazione a magggioranza. Modellazione di agenti avversari. Calcolo di funzioni in presenza di avversari. Consenso sicuro e reti resilienti.
Selezione di risultati recenti e problemi di ricerca aperti.
Modalità di verifica dell'apprendimento
La verifica dell’apprendimento consiste in una prova orale in cui lo studente dimostra la conoscenza dei modelli formali di sistemi interconnessi e multi-agente, delle loro proprietà e dei metodi per la loro analisi e controllo. Lo studente dovrà dimostrare autonomia di giudizio, sapendo individuare vantaggi e svantaggi delle soluzioni progettuali presentate a lezione e mostrare un’adeguata padronanza del linguaggio tecnico. Durante la prova orale, lo studente sceglie se discutere le esercitazioni del corso oppure presentare un progetto da lui o lei sviluppato, previamente concordato con il docente.
Il punteggio della prova d'esame è attribuito mediante un voto espresso in trentesimi.
La prova orale valuta:
1- La conoscenza degli argomenti trattati durante il corso (40% del voto finale)
2- La capacità di applicare la conoscenza acquisita (30% del voto finale)
3- L’autonomia di giudizio riguardo alle scelte progettuali (20% del voto finale)
4- La padronanza del linguaggio tecnico (10% del voto finale)
Reverse Engineering and Malware Analysis
(SSD ING-INF/05; 50 ore, 5 CFU, Caratterizzante opzionale)
Obiettivi formativi
Obiettivi del corso
Comprendere le architetture X86-64, ARM e MIPS, con focus su disassemblaggio, decompilazione e debugging.
Analizzare malware per Windows/Linux/Android in ambienti sicuri, riconoscendo struttura, comportamento e tecniche anti-analisi.
Effettuare analisi statica e dinamica di binari e applicazioni, con particolare attenzione al formato PE e alle app Android.
Redigere report tecnici completi con indicatori di compromissione (IoC) e raccomandazioni difensive.
Risultati di apprendimento attesi (Descrittori di Dublino)
A. Conoscenza e comprensione
- Struttura di ELF e PE, sezioni, import/export, entry point, relocation.
- Set di registri e istruzioni per X86-64, ARM e MIPS.
- Tecniche di analisi statica (disassemblaggio, decompilazione) e dinamica (debugging, tracing).
- Struttura e comportamento dei malware (persistenza, C2, packing, anti-debugging/anti-VM).
- Struttura APK/DEX e pipeline Android (manifest, permessi, firma).
B. Capacità di applicare conoscenza e comprensione
- Analizzare binari con Ghidra, IDA Free, radare2/Cutter.
- Eseguire debugging con gdb, lldb, x64dbg.
- Condurre analisi statica e dinamica di malware in VM/sandbox, estrarre IoC e documentare i risultati.
- Effettuare reverse engineering di base su app Android (jadx, apktool, smali).
C. Autonomia di giudizio
- Selezionare il flusso di analisi più adatto (statica/dinamica/ibrida).
- Valutare affidabilità degli indizi e priorità di mitigazione.
- Riconoscere limiti e rischi (false lead, rilevamento sandbox).
D. Abilità comunicative
- Redigere report tecnici chiari (metodologia, risultati, IoC, impatto, mitigazioni).
- Presentare sinteticamente i risultati di analisi a un pubblico tecnico.
E. Capacità di apprendimento
- Aggiornarsi su nuove tecniche e tool.
- Adattare il metodo a nuove architetture e formati.
Prerequisiti
Programmazione in C/C++ e Python.
Fondamenti di sistemi operativi, reti e architetture.
Familiarità con Linux e macchine virtuali (snapshot, rete NAT/host-only).
Contenuti
Sequenza: X86 → Malware Analysis → ARM → MIPS → Android
Modulo 1 – X86/64 Reverse Engineering (8h)
ELF structure, memory layout, registri, opcodes, chiamate di funzione.
Disassemblaggio e decompilazione (Ghidra, IDA Free, radare2/Cutter).
Analisi dinamica di base (gdb, strace).
Laboratorio: esercizi su funzioni, stack frame, control flow.
Modulo 2 – Malware Analysis (18h)
Analisi statica: formato PE (sezioni, import/export, entry point, risorse), indicatori di packing e offuscamento.
Analisi dinamica: setup lab sicuro (VM, snapshot, rete isolata), Procmon, Regshot, Wireshark.
Anti-analisi e persistenza: anti-debugging/anti-VM, meccanismi di persistenza e comunicazione C2.
Laboratorio: analisi completa di campioni didattici con report.
Modulo 3 – ARM Reverse Engineering (8h)
Architettura ARM, registri, istruzioni, Thumb mode.
Cross-compilazione, stack, chiamate di funzione.
Laboratorio: esercizi guidati.
Modulo 4 – MIPS Reverse Engineering (8h)
Architettura MIPS, opcodes, branching, stack.
Toolchain di cross-compilazione ed esecuzione.
Laboratorio: esercizi guidati.
Modulo 5 – Android Reverse Engineering (8h)
Struttura APK/DEX, manifest, permessi.
Strumenti: jadx, apktool, baksmali/smali.
Analisi dinamica di base con Frida/objection.
Laboratorio: reverse di app didattiche, raccolta IoC e breve report.
Modalità di verifica dell'apprendimento
- Analisi completa di un malware didattico in ambiente sicuro, con consegna di un report tecnico dettagliato.
- Il report deve includere: analisi statica (PE: sezioni, import/export, stringhe, entry point), analisi dinamica (comportamento, persistenza, rete, file system), IoC e raccomandazioni difensive.
- Valutazione basata su completezza, accuratezza e chiarezza del report.
Computer Engineering, Cybersecurity and Artificial Intelligence