VULNERABILITY ASSESSMENT E PENETRATION TESTING (VAPT)

Anno accademico 2024/2025 - Docente: SERGIO ESPOSITO

Risultati di apprendimento attesi

  1. Conoscenza e capacità di comprensione (knowledge and understanding). Lo studente acquisisce conoscenza critica relativamente alle attività di vulnerability assessment e penetration testing.
  2. 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.
  3. Autonomia di giudizio (making judgements). Lo studente diventa un valutatore della robustezza agli attacchi di un dato sistema informatico target sulla base dello sfruttamento di strumenti opportuni e di vulnerabilità note.
  4. Abilità comunicative (communication skills). Lo studente familiarizza con i concetti tipici del vulnerability assessment e penetration testing acquisendo la capacità di trasmettere le risultanze di una sessione di detta attività sia in forma orale che in forma scritta.
  5. Capacità di apprendimento (learning skills). Lo studente acquisisce la mentalità critica e le capacità metodologiche per affrontare e condurre sessioni di vulnerability assessment e penetration testing.

Modalità di svolgimento dell'insegnamento

Durante le lezioni verranno videoproiettate delle slide sugli argomenti del corso. Il corso è caratterizzato da una forte interazione docente-studenti anche per via della natura estremamente pratica degli argomenti trattati.


Le slide del corso sono disponibili sul canale Teams dell'insegnamento. Codice Teams: r1lzo7s

Prerequisiti richiesti

Per una adeguata comprensione dei contenuti del corso sono raccomandati i seguenti prerequisiti:

  • Basi di reti di calcolatori;
  • Nozioni di basi di dati;
  • Basi di architetture degli elaboratori;
  • Conoscenza di base dei principali linguaggi di programmazione web, sia front-end che back-end.

Frequenza lezioni

La frequenza alle lezioni è di norma obbligatoria.

Contenuti del corso

Il corso di Vulnerability Assessment and Penetration Testing (VAPT) fornisce una comprensione approfondita delle tecniche e metodologie necessarie per identificare e sfruttare le vulnerabilità nei sistemi informatici, con un'attenzione particolare agli aspetti legali e pratici.

Il corso inizia con un'introduzione al VAPT, spiegando le differenze tra Vulnerability Assessment (VA), che si concentra sull'identificazione delle vulnerabilità perlopiù mediante strumenti automatizzati, e Penetration Testing (PT), che è più incentrato sullo sfruttamento, la concatenazione e la ricerca manuale di tali vulnerabilità al fine di valutare la sicurezza di un sistema. Vengono anche trattati i requisiti giuridici legati a tali attività di sicurezza e i bug bounty programs, che offrono ricompense a chi identifica e segnala vulnerabilità.

Vengono poi introdotte le principali metodologie per effettuare VAPT, nonché le best practice per condurre test di sicurezza efficaci. Si affronta quindi una descrizione delle diverse fasi del VAPT, dalla definizione dei requisiti iniziali fino alle attività di post-exploitation e conseguente reporting da parte del tester.

Più nel dettaglio, il corso copre le tecniche di Information Gathering e OSINT (Open Source Intelligence), fondamentali per raccogliere informazioni su bersagli potenziali prima di eseguire un attacco. In parallelo, viene introdotto il concetto di Threat Modeling, ossia l'analisi delle potenziali minacce e vulnerabilità di un sistema, anche teoriche, a seconda delle conoscenze e degli strumenti a disposizione degli avversari.

Un aspetto pratico riguarda la capacità di effettuare modifiche a exploit esistenti, per adattarli a specifici contesti e rendere più efficaci gli attacchi. Il corso include anche un modulo sul Social Engineering, illustrando come i comportamenti umani possano essere sfruttati per ottenere informazioni o accesso ai sistemi.

Nella fase di Post-Exploitation, il corso esplora tecniche avanzate come il movimento laterale, ovvero lo spostamento dell'attaccante all'interno di una rete compromessa, la privilege escalation per ottenere accesso a funzionalità amministrative, la cancellazione dei log per evitare la rilevazione, l'esfiltrazione dei dati, il crack delle password, l'evasione di Antivirus (AV), Firewall, Endpoint Detection and Response (EDR), e altro.

Infine, il corso conclude con l'importante fase del reporting, dove gli studenti imparano a documentare in modo chiaro e preciso i risultati delle loro attività di VAPT, fornendo al committente delle attività di VAPT una valutazione completa delle vulnerabilità scoperte e delle potenziali soluzioni. Il corso esplora anche l'uso di sistemi operativi orientati alla sicurezza offensiva, come Kali Linux, che seppur non indispensabili, forniscono strumenti specifici per queste attività.

Testi di riferimento

  • David Basin, Patrick Schaller, Michael Schläpfer "Applied Information Security", 2011, Springer

  • Peter Kim “The Hacker Playbook 3, Practical Guide to Penetration Testing”, 2018, Secure Planet LLC

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione al VAPTMateriale didattico fornito dal docente, risorse online e testi sopracitati
2Fasi del VAPTMateriale didattico fornito dal docente, risorse online e testi sopracitati
3Attività di sicurezza offensivaMateriale didattico fornito dal docente, risorse online e testi sopracitati
4Metodologie per il VAPTMateriale didattico fornito dal docente, risorse online e testi sopracitati
5Sistemi Operativi orientati alla sicurezza offensivaMateriale didattico fornito dal docente, risorse online e testi sopracitati
6Information Gathering e OSINTMateriale didattico fornito dal docente, risorse online e testi sopracitati
7Threat ModelingMateriale didattico fornito dal docente, risorse online e testi sopracitati
8Vulnerability AssessmentMateriale didattico fornito dal docente, risorse online e testi sopracitati
9Vulnerabilità comuni e loro sfruttamentoMateriale didattico fornito dal docente, risorse online e testi sopracitati
10Modifiche ad exploit esistentiMateriale didattico fornito dal docente, risorse online e testi sopracitati
11Social EngineeringMateriale didattico fornito dal docente, risorse online e testi sopracitati
12Azioni di post-exploitationMateriale didattico fornito dal docente, risorse online e testi sopracitati
13ReportingMateriale didattico fornito dal docente, risorse online e testi sopracitati

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

  1. Progetto implementativo.
  2. Colloquio orale.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.


Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente e il referente CInAP del DMI per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.


Le prove sono strutturate in modo che ad ogni studente sia attribuito un voto secondo il seguente schema:

  • Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi.
  • 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
  • 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori.
  • 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori.

Esempi di domande e/o esercizi frequenti

  • Progetto implementativo: simulare un'attività di VAPT su un ambiente di test e scrivere un report formale sull'attività svolta.
  • Colloquio orale: Spiegare perché la rimozione di tutti i caratteri speciali dall'input utente potrebbe non proteggere un servizio da SQL Injection.