VULNERABILITY ASSESSMENT AND PENETRATION TESTING
Anno accademico 2025/2026 - Docente: SERGIO ESPOSITORisultati di apprendimento attesi
Conoscenza e capacità di comprensione (knowledge and understanding): Lo studente acquisisce conoscenza critica relativamente alle attività di vulnerability assessment e penetration testing e comprende come vulnerabilità presenti in hardware e software permettano agli attaccanti di manipolarne il comportamento.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): Lo studente acquisisce capacità pratica di costruire un laboratorio virtuale per condurre esperimenti di vulnerability assessment e penetration testing. Diventa altresì capace di condurre indipendentemente sessioni attive dell'attività di vulnerability assessment e penetration testing.
Autonomia di giudizio (making judgements): Lo studente diventa in grado di valutare la robustezza agli attacchi di un dato sistema informatico, sulla base dello sfruttamento di strumenti opportuni e di vulnerabilità note. Lo studente diventa altresì in grado di stimare l’impatto degli attacchi effettuati.
Abilità comunicative (communication skills): Lo studente familiarizza con i concetti tipici del vulnerability assessment e penetration testing acquisendo la capacità di trasmettere i risultati di una sessione di detta attività sia in forma orale che in forma scritta.
Capacità di apprendimento (learning skills): Lo studente acquisisce la mentalità critica per riconoscere e sfruttare nuove vulnerabilità, nonché le capacità metodologiche per affrontare e condurre autonomamente sessioni di vulnerability assessment e penetration testing anche su tecnologie poco documentate.
Modalità di svolgimento dell'insegnamento
L’insegnamento si svolge attraverso lezioni frontali e attività pratiche. Le lezioni introdurranno i concetti teorici, mentre le attività pratiche ne permetteranno l’applicazione tramite esercitazioni e casi studio.
Qualora l'insegnamento venisse
impartito in modalità mista o a distanza potranno essere introdotte le
necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di
rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
L'insegnamento "Programmazione II e Laboratorio" è propedeutico per questo corso.
Per un’adeguata comprensione dei contenuti del corso sono raccomandati i seguenti prerequisiti:
· Familiarità con i componenti hardware di base, con i principi di esecuzione delle istruzioni macchina, nonché con la gestione della memoria;
· Conoscenza dei principali modelli di comunicazione in rete, dalla trasmissione di pacchetti ai protocolli fondamentali per l'interconnessione tra dispositivi;
· Saper realizzare operazioni CRUD su database mediante l’utilizzo di query;
·
Conoscenza di base dei principali linguaggi di programmazione web, sia
front-end che back-end.
Frequenza lezioni
Per una
comprensione approfondita degli argomenti trattati e delle metodologie
presentate, si raccomanda vivamente la regolare partecipazione alle lezioni.
Contenuti del corso
Il corso di Vulnerability Assessment and Penetration Testing (VAPT) fornisce una formazione teorica e pratica sulle tecniche per identificare e sfruttare vulnerabilità nei sistemi informatici, con attenzione agli aspetti legali. Dopo un'introduzione alle differenze tra VA (analisi automatizzata delle vulnerabilità) e PT (sfruttamento manuale e contestualizzato delle vulnerabilità), si analizzano tutte le fasi di una classica attività di VAPT. Viene anche introdotto l’uso di ambienti come Kali Linux, utili ma non essenziali per l’attività di VAPT.
Infatti, all'interno del corso vengono dettagliati strumenti e metodologie di Information Gathering e Threat Modeling, per valutare scenari di attacco realistici, nonché tecniche di intrusione, tra cui il Social Engineering e la modifica di exploit esistenti per adattarli a diversi contesti. Viene anche approfondita la fase di post-exploitation, discutendo tecniche come il movimento laterale, la privilege escalation, la rimozione dei log, l’evasione di AV/EDR e l’esfiltrazione di dati.
Viene infine
affrontata la redazione del report tecnico dell'attività svolta, contenente la
descrizione delle vulnerabilità emerse e delle possibili mitigazioni.
Testi di riferimento
[1] Peter Kim “The Hacker Playbook 3, Practical Guide to Penetration Testing”, 2018, Secure Planet LLC
[2] Materiale
didattico fornito dal docente, reperibile nel canale Teams dell’insegnamento.
Codice Teams: r1lzo7s.
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Introduzione al VAPT | [1] Capitolo non numerato “Introduction”; [2] Blocco di slide denominato “Introduzione al Corso” |
| 2 | Fasi degli attacchi informatici | [2] Blocco di slide denominato “Fasi dell’Attacco e Tipologie di Attività”. |
| 3 | Attività di sicurezza offensiva | [1] Capitolo non numerato “Introduction”; [2] Blocco di slide denominato “Fasi dell’Attacco e Tipologie di Attività”. |
| 4 | Metodologie per il VAPT | [2] Blocco di slide denominato “Metodologie”. |
| 5 | Sistemi Operativi orientati alla sicurezza offensiva | [2] Blocco di slide denominato “Distro Offensive" |
| 6 | Information Gathering | [1] Capitolo 2 “Before the Snap – Red Team Recon”; [2] Blocco di slide denominato “Information Gathering e OSINT” |
| 7 | Threat Modeling | [2] Blocco di slide denominato “Vulnerability Assessment” |
| 8 | Vulnerability Assessment | [2] Blocco di slide denominato “Vulnerability Assessment” |
| 9 | Vulnerabilità web client-side | [1] Capitolo 3 “The Throw – Web Application Exploitation”; [2] Blocco di slide denominato “Exploitation – Parte I – Web Client Side” |
| 10 | Vulnerabilità web server-side | [1] Capitolo 3 “The Throw – Web Application Exploitation”; [2] Blocco di slide denominato “Exploitation – Parte III – Web Server Side” |
| 11 | Vulnerabilità su database | [1] Capitolo 3 “The Throw – Web Application Exploitation”; [2] Blocco di slide denominato “Exploitation – Parte II – Database” |
| 12 | Vulnerabilità su file binari | [2] Blocco di slide denominato “Exploitation – Parte IV – Reverse Engineering e Binary Exploitation” |
| 13 | Vulnerabilità su Active Directory | [1] Capitolo 4 “The Drive – Compromising the Network”; [2] Blocco di slide denominato “Exploitation – Parte V – Active Directory” |
| 14 | Azioni di post-exploitation | [1] Capitolo 4 “The Drive – Compromising the Network” e Capitolo 8 “Special Teams – Cracking, Exploits and Tricks”; [2] Blocco di slide denominato “Post-Exploitation e Reporting” |
| 15 | Reporting | [2] Blocco di slide denominato “Post-Exploitation e Reporting” |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
La verifica dell’apprendimento viene effettuata mediante la valutazione di un progetto individuale e di un colloquio orale, in quest’ordine. Per partecipare all'esame è necessario avere effettuato la prenotazione sul portale SmartEdu. Per eventuali problemi tecnici relativi alla prenotazione occorre rivolgersi alla Segreteria didattica.
Durante il progetto, lo studente deve dimostrare di aver interiorizzato gli argomenti del corso effettuando un’attività di VAPT su una macchina di test preventivamente concordata con il docente. Per la valutazione del progetto vengono prese in considerazione la completezza dell’attività e del relativo report, nonché l’esposizione dell’attività da parte dello studente.
Durante il colloquio orale, lo studente è chiamato a rispondere a domande che possono coprire tutto il programma trattato a lezione.
Tali prove potranno avere luogo per via telematica, qualora le condizioni lo dovessero richiedere. La prova orale potrà svolgersi il giorno stesso in cui viene discusso il progetto.
La prova d’esame è finalizzata a valutare in modo approfondito la preparazione dello studente, la capacità di analisi e di ragionamento sugli argomenti trattati durante il corso, nonché l’adeguatezza del linguaggio tecnico utilizzato.
Per l'attribuzione del voto si seguiranno di norma i seguenti criteri:
· non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere alle domande.
· 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di esposizione e di collegamento dei contenuti sono modeste, riesce a rispondere a domande semplici.
· 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di esposizione e di collegamento dei contenuti sono buone, riesce a rispondere alle domande con un buon livello di dettaglio.
· 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di esporli compiutamente e di collegarli con spirito critico; riesce a rispondere alle domande dimostrando piena padronanza degli argomenti trattati.
Il voto finale è calcolato mediante la media aritmetica tra la valutazione ricevuta per il progetto e la valutazione ricevuta per il colloquio orale.
Gli studenti con disabilità e/o DSA
dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il
docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per
comunicare che intendono sostenere l'esame fruendo delle opportune misure
compensative.
Esempi di domande e/o esercizi frequenti
· Spiegare perché la rimozione di tutti i caratteri speciali dall'input utente potrebbe non proteggere un servizio da SQL Injection.
· Spiegare la differenza tra metodologie di VAPT e Kill Chain.
· Spiegare il funzionamento del tool Sharphound.
· Discutere il possibile impatto di una Server Side Request Forgery.
· Elencare e discutere le possibili mitigazioni per XSS.
· Spiegare le possibili applicazioni del diffing con NMap.
Si precisa che
tali domande hanno carattere puramente indicativo: le domande effettivamente
proposte in sede d’esame potranno divergere, anche in modo significativo, da
quelle riportate in questa lista.