Seleziona l'Anno Accademico:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Docente
DAVIDE MAIORCA (Tit.)
Periodo
Primo Semestre 
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à in due modi:

Esame sostenuto in due parti (solo seguendo regolarmente il corso):

- Attraverso lo svolgimento di due assignment conclusivi (uno per Web Security ed uno per Malware Analysis) che verranno proposti durante il corso. Ai due assignment viene assegnato un punteggio complessivo compreso fra 0 e 12.
- Attraverso due prove scritte (una per Web Security ed una per Malware Analysis), che forniranno un punteggio compreso fra 0 e 20. E' possibile sostenere le prove scritte dopo aver inviato gli assignment corrispondenti.

Per ogni parte, verrà assegnato un punteggio compreso fra 0 e 32, pari alla somma del voto dell'assignment e della prova scritta. Il voto finale è la media dei due punteggi conclusivi. In caso di punteggio superiore a 30, il voto finale è 30 e lode.

Esame sostenuto completo:

- Attraverso lo svolgimento di un assignment conclusivo che verrà proposto al termine del corso, a cui viene assegnato un punteggio fra 0 e 6.
- Attraverso una prove scritta finale che fornirà un punteggio compreso fra 0 e 26. E' possibile sostenere la prova scritta dopo aver inviato l'assignment.

Il massimo punteggio è pari a 32. In caso di punteggio superiore a 30, 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:
Impostazioni cookie