Sicurezza Informatica

Docenti: Danilo Bruschi & Andrea Lanzi

AA 2017/2018

Contenuti

News

Descrizione del corso

In questo corso saranno analizzate approfonditamente una serie di vulnerabilità presenti nei sistemi informatici a livello di sistema operativo ed applicazioni web e si analizzeranno le tecniche utilizzate per lo sfruttamento di tali vulnerabilità ai fini dell'accesso non autorizzato nei sistemi informatici. La trattazione sarà particolarmente articolata e approfondita al fine di consentire allo studente di poter cogliere appieno l'importanza della problematica trattata ed i suoi risvolti. Particolare enfasi verrà posta sugli aspetti pratici dei vari problemi trattati senza ovviamente trascurare le implicazioni teoriche ad essi correlate. Viste le modalità di svolgimento del corso e delle prove d'esame si incoraggiano vivamente gli studenti interessati al corso a frequentarne assiduamente le lezioni.

Logistica e organizzazione

Le lezioni del corso si terranno nella Via Comelico 39 dalle 8,30 alle 12.30 il mercoledì. Al corso sono riconosciuti 6 CFU, per un carico di studio complessivo di 150 ore di cui 47 di didattica e prove intermedie e 100 di studio. Qualora lo studente non sia in regola con i prerequisiti, questo numero di ore dovrà essere opportunamente adeguato. Gli studenti che intendono seguire il corso sono invitati a installare sul proprio PC le utility (apt-get install binutils) necessarie alla programmazione GAS, che dovranno essere disponibili sin dalla prima lezione.

Obiettivi Formativi

Al termine del corso lo studente che avrà superato con profitto l'esame sarà in grado di:

Prerequisiti

Al fine di poter trarre il massimo profitto dal corso gli studenti interessati a frequentarlo devono possedere i seguenti requisiti:

Studenti che NON posseggono questi requisiti possono comunque seguire il corso ma dovranno autonomamente provvedere al recupero delle suddette nozioni e capacità.

Programma del corso

  1. Introduzione alla programmazione assembler IA-32

    • Richiami sull'architettura IA-32
    • Principali istruzioni Assembler
    • GAS: GNU Assembler
    • Puntatori
    • System call in assembler
  2. Elementi di reverse engineering

    • Debugger
    • Disassembler
  3. Memory error exploits

    • Shell code
    • Buffer overflow
    • Integer overflow: accenni
    • Proteggersi dai memory error exploit
  4. Reverse Engineering

    • Conoscenze degli eseguibili
    • Tecniche di Analisi degli eseguibili
    • Gestione delle tecniche di Obfuscation
  5. Computer Forensic

    • Tecniche di Analisi della Memoria
    • Individuazione delle informazioni nel sistemi operativi
    • Tecniche di ricerca dei dati

Materiale didattico

Gli argomenti trattati nel corso fanno riferimento a materiale in inglese reperibile direttamente dalla rete, per ulteriori riferimenti consultare il calendario del corso.

Altro materiale:

Orario e argomenti delle lezioni

Segue l'orario settimanale del corso, con gli argomenti trattati nelle lezioni e il relativo materiale di riferimento per lo studio e l'approfondimento dei temi trattati a lezione. Questo elenco pu? essere modificato senza preavviso per motivi di ordine didattico.

-->
Data Argomento Materiale didattico Tipo attivita Altro
27 Sett. Programmazione Assembler (parte prima) GNU Assembler
Instruction set
SLIDES: lezioni 1 e 2
Didattica frontale
4 Ott. Programmazione Assembler (parte seconda) Programming from the Ground Up Didattica frontale
11 Ott. Memory error: buffer overflow (prima parte) Smashing the stack Didattica frontale
18 Ott. Memory error: buffer overflow (seconda parte), shellcode. Didattica frontale
25 Ott. Shellcode su architettura a 64 bit, protezione da attacchi di buffer overflow, return into libc Ret-into-libc by c0ntex Buffer overflow 64 bits Tutorial Didattica frontale
9 Nov. Return-oriented programming (ROP) Didattica frontale Si prega di presentarsi alla lezione con PEDA già installato.
15 Nov. Introduzione alle tecniche di reverse engineering Slide (parte 1) Slide (parte 2) Didattica frontale
22 Nov. Tecniche di reverse engineering ed esercizi Slide (reverse)
Esercizio
Didattica frontale
29 Dic. Tecniche di reverse engineering ed esercizi System Protection I System Protection II IDA Shortcut
IDA Download IDA Tutorial
Didattica frontale
6 Dic. Primo compitino
13 Dic. Computer Forensics Slide:memory_forensics1.pdf.gpg
silentbanker.vmem.zip laqma.vmem.zip stuxnet.vmem.zip zeus.vmem.zip forensic-book.gpg Slide:memory_forensics2.pdf.gpg DLL injection I DLL Injection II
Volatility cheat sheet
Didattica frontale
20 Dic. Network forensics Slide
Esercizi e link
Didattica frontale

Modalità d'esame

L'esame per il corso di sicurezza prevede lo svolgimento di due prove scritte/pratiche. Le prove si svolgeranno durante il corso in particolare:

Dettagli

Ore di lezione

Il corso si svolge il Mercoledì dalle 8.30 alle 12.30, in Sala Lauree in via Comelico, 39.

Docenti

Teaching assistants