Sicurezza Informatica

Docenti: Danilo Bruschi & Andrea Lanzi

AA 2016/2017

Contenuti

News

  • Il Security Reading Group del 19 maggio è annullato. Verrà riprogrammato in data da definirsi
  • Il Security Reading Group del 28 aprile è stato spostato al giorno 5 maggio.
  • Il Security Reading Group del 28 aprile è annullato. Verrà riprogrammato in data da definirs
  • Sono disponibili le informazioni riguardanti i seminari "Security Reading Group" (date e paper assegnati): download
  • I seminari "Security Reading Group" si svolgeranno a partire da aprile
  • L'accettazione ed eventuale verbalizzazione del voto deve essere effettuata entro lunedi 27 in accordo con il Prof. Bruschi, chi non la fa entro tale data verbalizza con l'esame di Giugno
  • Sono disponibili i risultati del secondo compitino. Chi vuole aumentare il proprio voto di un massimo 3 punti potrà fare un seminario, che si svolgerà nel mese di marzo/aprile su paper assegnati dal docente. Chi fosse interessato può mandare una mail a
  • Il secondo compitino è fissato per il giorno 8 febbraio, dalle ore 9:00 alle ore 15:30 in aula Tau
  • Sono disponibili i risultati del primo compitino
  • La lezione del giorno 14 dicembre si terrà in aula Omega al solito orario (8:30 - 12:30)
  • Per seguire meglio l'introduzione a Metasploit del giorno 16 novembre, gli studenti possono installare Metasploit Framework per provare gli esempi.
  • Il giorno 11 novembre si terrà in aula Omega un seminario su heap buffer overflow, alle 14:30. Gli studenti interessati sono invitati a partecipare.
  • Si ricorda che il giorno mercoledì 26 ottobre non ci sarà lezione
  • 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
    28 Sett. Programmazione Assembler (parte prima) GNU Assembler
    Instruction set
    SLIDES: lezioni 1 e 2
    Didattica frontale
    5 Ott. Programmazione Assembler (parte seconda) Programming from the Ground Up Didattica frontale
    12 Ott. Memory error: buffer overflow (prima parte) Smashing the stack Didattica frontale
    19 Ott. Memory error: buffer overflow (seconda parte), shellcode. Didattica frontale
    2 Nov. 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. Protezione da attacchi di buffer overflow (cont.), Return-oriented programming (ROP), Integer Overflow Basic Integer Overflows Didattica frontale
    16 Nov. Introduzione alle tecniche di reverse engineering Slide (parte 1) Slide (parte 2) Didattica frontale
    23 Nov. Tecniche di reverse engineering ed esercizi Slide (reverse) Slide (obfuscation)
    Esercizio
    Didattica frontale
    30 Nov. Primo compitino
    14 Dic. Tecniche di reverse engineering ed esercizi System Protection I System Protection II IDA Shortcut
    IDA Download IDA Tutorial
    Didattica frontale
    21 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
    Didattica frontale
    11 Gen. 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