Seleziona l'Anno Accademico:     2016/2017 2017/2018 2018/2019 2019/2020 2020/2021 2021/2022
Docente
DAVIDE MAIORCA (Tit.)
Periodo
Annuale 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
INGLESE 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[70/90]  COMPUTER ENGINEERING, CYBERSECURITY AND ARTIFICIAL INTELLIGENCE [90/00 - Ord. 2018]  PERCORSO COMUNE 6 60

Obiettivi

L'insegnamento di Web Security e Malware Analysis si propone di presentare agli studenti:
- i meccanismi di sicurezza delle applicazioni web (con particolare riferimento a diverse classi di attacco e alle loro tecniche di rilevazione);
- I meccanismi di funzionamento di software malevolo (malware), attraverso l'analisi a basso livello (codice assembly) svolta mediante tecniche di reverse engineering.

In accordo con i Descrittori di Dublino, gli obiettivi del corso sono i seguenti:

Conoscenza e comprensione:
Lo studente, al termine del corso dovrà conoscere e comprendere:

- Le principali caratteristiche di sicurezza di una applicazione web e delle sue tecnologie;
- La struttura di richieste e risposte effettuate mediante protocollo HTTP;
- Le caratteristiche di sicurezza del linguaggio PHP;
- Le principali problematiche di sicurezza relative a tecniche di autenticazione;
- Le vulnerabilità di sicurezza di database, ed i concetti di base relativi a tecniche di injection;
- I concetti base relativi a tecniche di Cross-Site Scripting ed offuscamento del linguaggio JavaScript;
- La struttura di malware in formato Portable Executable (PE);
- Le tecniche di analisi statica di malware attraverso l'apprendimento dell'Assembly X86/64;
- Tecniche di analisi dinamica di malware;
- Le principali caratteristiche dei malware per il Sistema Operativo Windows;
- Le principali tecniche di anti-diassembling e anti-debugging.

Capacità di applicare conoscenza e comprensione
Lo studente, al termine del corso, dovrà:

- Saper intercettare il traffico da/verso un'applicazione web ed analizzare le relative richieste e risposte HTTP;
- Saper effettuare attacchi di base tramite bruteforce;
- Saper leggere codici PHP complessi individuandone le vulnerabilità;
- Saper effettuare degli attacchi SQL injection di base;
- Saper utilizzare tecniche di Cross-Site-Scripting;
- Saper de-offuscare dei codici JavaScript di media complessità;
- Saper analizzare, attraverso strumenti professionali (IDA Pro, Ghidra), la struttura ed il codice Assembly di un malware per Windows;
- Saper utilizzare tecniche di debugging per poter effettuare l'analisi dinamica di malware di media complessità, oltre che strumenti di analisi per individuare l'attività del malware stesso (es. RegShot, Procmon, etc.);
- Saper riconoscere le principali caratteristiche che rendono malevolo un programma per Windows.

Autonomia di giudizio
Lo studente, al termine del corso, dovrà essere in grado di:
- Scegliere la migliore tecnica di attacco o difesa a seconda della vulnerabilità rilevata in applicazioni web;
- Scegliere il metodo di analisi più adeguato per capire le funzionalità di un programma malevolo.

Abilità comunicative
Al termine del corso, lo studente dovrà essere in grado di discutere le possibili problematiche di sicurezza di un'applicazione web, oltre a saper illustrare la struttura ed il funzionamento di un programma malevolo per Windows.

Capacità di apprendimento
Al termine del corso, lo studente avrà le competenze per poter approfondire tecniche di attacco e difesa contro applicazioni web. Inoltre, sarà in grado di approfondire tecniche maggiormente avanzate per l'analisi di malware.

Prerequisiti

Sono prerequisiti necessari:
- Conoscenza dei protocolli Internet;
- Conoscenza delle Basi di Dati (linguaggio SQL);
- Conoscenza della Programmazione in linguaggio C;
- Conoscenza della gestione dei processi da parte del Sistema Operativo.

Contenuti

Modulo Web Security (30 ore)

- Introduzione (2 ore teoria)
- Caratteristiche di base delle applicazioni web (2 ore teoria)
- Introduzione alle tecnologie di sicurezza per applicazioni web, caratteristiche richieste e risposte HTTP, web spidering (3 ore teoria - 3 ore laboratorio)
- Attacchi contro autenticazione (2 ore teoria - 3 ore laboratorio)
- Attacchi contro database e injection (2 ore teoria - 3 ore laboratorio)
- Attacchi Cross-Site-Scripting (XSS) ed offuscamento JavaScript (2 ore teoria - 3 ore laboratorio)
- Seminario extra sicurezza web (2 ore teoria)
- Analisi complessiva sicurezza applicazione web (3 ore laboratorio)

Modulo Malware Analysis (30 ore)

- Introduzione (2 ore teoria)
- Analisi struttura file PE (3 ore teoria)
- Elementi Assembly X86/64 (2 ore teoria - 3 ore laboratorio)
- Analisi statica e decompilazione (2 ore teoria - 3 ore laboratorio)
- Analisi dinamica (2 ore teoria - 3 ore laboratorio)
- Caratteristiche Malware Windows (2 ore teoria - 3 ore laboratorio)
- Analisi comportamentale del malware: Tecniche di anti-disassemling e anti-debugging (2 ore teoria - 3 ore laboratorio)

Metodi Didattici

L'insegnamento è organizzato con:

- lezioni frontali con supporto di presentazioni grafiche;
- esercitazioni su applicazioni web in ambienti simulati e reali;
- esercitazioni su campioni malevoli reali in ambienti virtualizzati;
- un seminario aggiuntivo sulla web security.

Verifica dell'apprendimento

La verifica dell'apprendimento si terrà:
- Attraverso lo svolgimento di 10 assignment che verranno proposti durante il corso. A tali assignment viene associato un punteggio complessivo compreso fra 0 e 10.
- Attraverso una prova orale, che fornirà un punteggio compreso fra 0 e 22. E' possibile sostenere la prova orale solo dopo aver inviato tutti gli assignment.

La prova orale sarà organizzata in questo modo:

- 4 domande di teoria, due per la parte di web security, due per la parte di malware analysis. Per ciascuna parte, una domanda verterà su degli aspetti generali teorici trattati durante il corso, mentre l'altra domanda sarà più specifica ed orientata alla verifica di determinate nozioni.
- 2 domande pratiche, una per web security ed una per malware analysis. Lo studente avrà a disposizione, per ogni domanda, 15 minuti per poter iniziare ad impostare la risposta, la quale verrà poi discussa col docente.

Al termine dell'esame, lo studente può chiedere una domanda bonus teorica che avrà, come effetto complessivo, l'incremento del voto complessivo di 1 in caso di risposta esaustiva o il decremento di 1 in caso di mancata risposta.

E' possibile sostenere l'esame in due parti durante il corso. La modalità sarà identica alla prova completa, ma ogni prova verterà soltanto su uno dei due moduli (lo studente riceverà quindi 3 domande su web security durante la prima parte, e 3 domande su malware analysis nella seconda parte). La domanda bonus può essere richiesta solo durante uno dei due test.

Il massimo punteggio è pari a 32. In caso di punteggio pari a 32, il voto è 30 e lode.

Testi

D. Stuttard and M. Pinto. The Web Application Hackers Handbook, Wiley Inc.
M. Sikorski e A. Honig, Practical Malware Analysis, No Starch Press.

Altre Informazioni

Il materiale utilizzato comprende:

- Le slide mostrate durante le lezioni frontali;
- Ulteriore materiale di approfondimento, nonché il materiale pratico (campioni da analizzare, macchine virtuali, applicazioni web) da utilizzare durante i laboratori;
- Libri di testo per approfondimenti

Questionario e social

Condividi su: