VULNERABILITY ASSESSMENT E PENETRATION TESTING (VAPT)
Anno accademico 2024/2025 - 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.
- 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 un valutatore della robustezza agli attacchi di un dato sistema informatico target sulla base dello sfruttamento di strumenti opportuni e di vulnerabilità note.
- 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.
- 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
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
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
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione al VAPT | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
2 | Fasi del VAPT | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
3 | Attività di sicurezza offensiva | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
4 | Metodologie per il VAPT | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
5 | Sistemi Operativi orientati alla sicurezza offensiva | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
6 | Information Gathering e OSINT | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
7 | Threat Modeling | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
8 | Vulnerability Assessment | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
9 | Vulnerabilità comuni e loro sfruttamento | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
10 | Modifiche ad exploit esistenti | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
11 | Social Engineering | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
12 | Azioni di post-exploitation | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
13 | Reporting | Materiale didattico fornito dal docente, risorse online e testi sopracitati |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
- Progetto implementativo.
- 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.