COMPUTER SECURITY E LABORATORIO
Modulo LABORATORIO

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 dei problemi di sicurezza considerati "di frontiera" oggigiorno.
  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 penetration testing. Diventa altresì capace di condurre elementari sessioni di analisi formale.
  3. Autonomia di giudizio (making judgements). Lo studente diventa un giocatore esperto del “gioco della sicurezza”, ovvero quello di trovare possibili attacchi ad un sistema che dovrebbe essere sicuro, onde poi aggiustare il sistema per proteggerlo dagli attacchi trovati.
  4. Abilità comunicative (communication skills). Lo studente familiarizza col lessico tipico della sicurezza informatica, acquisendo la capacità di utilizzare in maniera disambigua le varie sfaccettature del termine “sicurezza” per quanto concerne alcuni argomenti di ricerca, il penetration testing e l'analisi formale.
  5. Capacità di apprendimento (learning skills). Lo studente acquisisce la mentalità critica e le capacità metodologiche per affrontare e risolvere i nuovi problemi di sicurezza che gli si possano presentare.

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.

Prerequisiti richiesti

Avere competenze di base di reti di calcolatori, architetture degli elaboratori, sistemi operativi e programmazione web.

Frequenza lezioni

La frequenza alle lezioni è fortemente consigliata per via della natura pratica dell'insegnamento.

Contenuti del corso

Il Laboratorio di Computer Security è progettato per fornire agli studenti competenze pratiche nell'analisi delle vulnerabilità e nell'uso di strumenti avanzati per la sicurezza informatica. Il modulo inizia con l'esplorazione dei database di vulnerabilità e debolezze, come CVE (Common Vulnerabilities and Exposures), NVD (National Vulnerability Database), MSB (Microsoft Security Bulletins) e CWE (Common Weakness Enumeration), che offrono informazioni sulle vulnerabilità note e le debolezze comuni nei sistemi informatici.

Successivamente, il laboratorio introduce l'uso di Metasploit Framework, una delle piattaforme più utilizzate per il penetration testing. Gli studenti creano il loro laboratorio virtuale di test, impiegando e configurando macchine virtuali vulnerabili al fine di imparare a gestire le basi di Metasploit, ad esempio per eseguire exploit, payload e attacchi contro tali sistemi. Si studiano anche le diverse tipologie di shell utilizzate in questo contesto, con particolare attenzione a Meterpreter, una shell che offre molte funzionalità di controllo remoto e post-exploitation.

Il corso copre inoltre modalità operative specifiche di Meterpreter, come la stageless mode, che consente di eseguire exploit senza passaggi intermedi, e le silent shell, utilizzate per mantenere furtivamente l'accesso ai sistemi compromessi. Viene anche approfondita la migrazione di Meterpreter su altri processi, una tecnica che permette di evitare la rilevazione e di mantenere il controllo su un sistema anche dopo che il processo originale è stato terminato.

Infine, il laboratorio si concentra sulle tecniche di post-exploitation con Metasploit, ossia le attività che è possibile eseguire dopo aver ottenuto l'accesso a un sistema, come il furto di credenziali, la raccolta di dati sensibili, e la privilege escalation.

Testi di riferimento

  • Appunti rilasciati dal docente
  • William Stallings: Sicurezza delle reti. Applicazioni e standard
  • Bruce Schneier: Sicurezza digitale. Miti da sfatare, strategie da adottare

Programmazione del corso

 ArgomentiRiferimenti testi
1Database di vulnerabilità e debolezzeMateriale didattico fornito dal docente, risorse online e testi sopracitati
2Utilizzo base di MetasploitMateriale didattico fornito dal docente, risorse online e testi sopracitati
3Moduli di MetasploitMateriale didattico fornito dal docente, risorse online e testi sopracitati
4Tipologie di shellMateriale didattico fornito dal docente, risorse online e testi sopracitati
5MeterpreterMateriale didattico fornito dal docente, risorse online e testi sopracitati
6Stageless ModeMateriale didattico fornito dal docente, risorse online e testi sopracitati
7Silent shellMateriale didattico fornito dal docente, risorse online e testi sopracitati
8Migrazione di MeterpreterMateriale didattico fornito dal docente, risorse online e testi sopracitati
9Post-exploitation con MetasploitMateriale didattico fornito dal docente, risorse online e testi sopracitati

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

  1. Prove in itinere facoltative di configurazione pratica di laboratorio con risoluzione di problemi reali.
  2. Progetto implementativo.
  3. Colloquio orale.

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

Esempi di domande e/o esercizi frequenti

  • Prove in itinere: sfruttare una vulnerabilità con Metasploit, all'interno di un ambiente di test.
  • Progetto implementativo: scrivere un modulo per Metasploit che sfrutti una CVE nota per cui ancora non esiste un exploit pubblico.
  • Colloquio orale: descrivere come avviene la migrazione di Meterpreter da un processo all'altro, e qual è il vantaggio di eseguire questa operazione.