Sicurezza/2006-2007

Da WikiDsy.

Sicurezza, anno 2006/2007

Sicurezza è un corso complementare per la laurea in comunicazione digitale e altri corsi di laurea.

Docenti

Danilo Bruschi e-mail: <bruschi [at] dico [dot] unimi [it]>

Orari delle lezioni

Lunedì Mercoledì
15:30-17:30 Aula Alfa 16:30-18:30 Aula Sigma

Le lezioni del lunedì tratteranno la parte teorica del corso e saranno tenute dal prof. Bruschi,mentre le lezioni del mercoledi` tratteranno la parte pratica del corso e saranno tenute dai dott. Paleari, Marrone e Lanzi.

Indirizzi email docenti

  • Prof. Bruschi <bruschi [at] dico [dot] unimi [dot] it>
  • Dott. Lanzi <andrew [at] security [dot] dico [dot] unimi [dot] it>
  • Dott. Paleari <roberto [at] security [dot] dico [dot] unimi [dot] it>
  • Dott. Marrone <davide [at] security [dot] dico [dot] unimi [dot] it>

Sito del corso

Se andate qui trovate il programma del corso,le modalità d'esame e quant'altro di necessario.

Materiale didattico

  • Libro fondamentale:
    • Titolo: "Computer Security"
    • Autore: D.Gollmann
    • Casa editrice: J.Wiley
    • Lingua: solo inglese
    • prezzo: sui 45/50€
  • libro che forse verrà utilizzato:
    • Titolo: "Networking Security essentials"
    • Autori: Wiley, Stalling
    • Casa Editrice: Prentice Hall
    • Prezzo: n/a

Verranno presentate slides alle lezioni di teoria del lunedì, ma probabilmente NON verranno messe a disposizione sul sito.

Modalità d'esame

Si raccomandano come prerequisiti l'aver frequentato il corso di Reti di calcolatori e Sistemi Operativi,e di poter lavorare su Linux,in quanto la pratica verterà su questo sistema operativo. L'esame consiste di due prove da svolgere:

  • TEORIA: compito scritto a domande, ci si iscrive tramite sifa
  • PRATICA: orale se ci sono meno di venti persone, altrimenti esercizi in laboratorio; ci si iscrive al termine della prova di teoria, o tramite email


Diario del corso

Lezione del 02-10-06 (teoria)

  • definizioni di
    1. sistema operativo sicuro
    2. bug
    3. exploit
  • descrizione dei primissimi atti di hacking riusciti di rilevanza mondiale, ad opera di:
    1. Hess
    2. Robert Morris
    3. Vladimir Levin



Lezione del 09-10-06 (teoria)

Lezione incentrata sulla crittografia, spiegazione di essa e della distinzione fra chiavi simmetriche ed asimmetriche.

  • Principali protocolli crittografici simmetrici:
    1. AES
    2. DES
    3. IDEA
  • Problema del key exchange.
  • Algoritmo Diffie-Hellman.
  • Tipologia di attacco: man in the middle.



Lezione del 11-10-06 (laboratorio)

  • accesso alla propria macchina virtuale
  • gestione della rete all'interno della macchina virtuale utilizzando le modalità:
    1. NAT: da usare quando e' necessario "uscire" su Internet; l'ip viene assegnato automaticamente e per ottenerlo basta usare il comando dhclient <interfacccia> (es. eth0)
    2. BRIDGE: da utilizzare per collegarsi ad un altra macchina virtuale del laboratorio, per svolgere alcuni degli esercizi che verranno assegnati (non e' possibile uscire su Internet); l'ip dev'essere impostato manualmente, tramite ifconfig <interfacccia> <ip> netmask <netmask>



Lezione del 16-10-06 (teoria)

Spiegazione della crittografia a chiave asimmetrica (coppia di chiavi pubblica/privata), chiarite le definizioni di:

  • chiave pubblica.
  • chiave privata.

Protocolli usati per la crittografia a chiave asimmetrica:

    1. Diffie-Hellman.
    2. RSA.

L'RSA funziona a partire da due numeri primi di almeno 300 cifre.

  • Problemi correlati:
    1. necessità di trovare un algoritmo che verifichi se un numero é primo.
    2. La fattorizzazione rende possibile rompere RSA (nell'arco di qualche secolo, con i mezzi attuali).


  • Necessità imprescindibili:
    1. Confidenzialità.
    2. Integrità.
    3. Autenticazione.
  • definizioni, spiegazioni, motivazioni dell'ordine di applicazione di:
    1. message digest o checksum.
    2. keyed hash.
    3. firma digitale.

Pro/contro crittografia asimmetrica:

  • + Gestione chiavi semplice.
  • - Diffusione delicata della chiave pubblica.
  • -- Protocolli inefficienti come tempo di esecuzione.



Lezione del 18-10-06 (laboratorio)

Lezione teorica tenuta in laboratorio, avente come argomento la gestioni dei permessi su Linux; questa é la slide usata per la spiegazione. Le istruzioni da compiere per accedere ed utilizzare la propria macchina virtuale sono state riportate qui.

Gli argomenti affrontati sono:

  • Permessi d'accesso per file e cartelle.
    1. r: lettura.
    2. w: scrittura.
    3. x: esecuzione.
  • Modalità d'accesso.
    • File:
      1. SGID.
      2. SUID.
    • Cartelle:
      1. Sticky.
      2. GID.
    • umask.
  • Attributi.
    • chattr serve a impostare i seguenti attributi, preceduti da un + o un -.
      1. A
      2. a
      3. c
      4. i
      5. s
      6. u
      7. S
    • lsattr:
      1. -R
      2. -a
      3. -d
  • Comandi utilizzati nella gestione dei permessi:
    1. chown
    2. chgrp
    3. chmod
  • Schema di autenticazione: utente/password.
    • Si basa su due file:
      1. passwd
      2. shadow
    • Algoritmi utilizzati per la cifratura:
      1. DES modificato.
      2. funzione hash (MD5).
  • Tool di cracking: John the Ripper.
    • Modalità operative:
      1. Worldlistmode. es: # john -wordfile:password -rules passwordcheck
      2. Single Crack mode. es: # john -single passwordcheck
      3. Incremental mode. es: # john -incremental:alpha passwordcheck
      4. External mode. es: # john -wordfile:common-4 -external:Filter_Alpha password_check



Lezione del 23-10-06 (teoria)

  • applicazione della crittografia mista.
  • spiegazione e necessità dell'Autorità di Certificazione, e annessi certificati.
  • definizioni di:
    1. criptoanalisi
    2. robustezza
    3. attacchi di forza bruta, consentono di rompere:
      • AC4: rotto in otto giorni nel '95 con 120 workstastions
      • DES: necessari due anni, già rotto dall'NSA nel '78
  • lunghezza idonea in bit di una coppia di chiavi pubblica-privata:
privata pubblica
56bit 384bit
64bit 512bit
80bit 768bit
112bit 1792bit
128bit 2304bit
  • lunghezze da associare alle chiavi a seconda della lunghezza del periodo per cui devono essere usate:
durata segreto lunghezza minima chiave privata
decine di minuti 56bit
giorni 64bit
decade 112bit
40 anni 128bit

Capitolo 3 del libro

  • entità (principal) che accedono a un pc:
    1. utenti.
    2. gruppi.
    3. altri computer.
  • identità: attributo che identifica univocamente un principal all'interno di un pc.
  • rappresentazioni di identità:
    1. casuale.
    2. scelta dagli utenti.
    3. gerarchica.
  • riconoscimento utente:
    1. ciò che hai.
    2. ciò che sai.
    3. ciò che sei.
  • debolezze del sistema di identificazione ed autenticazione, username//password:
    1. intercettazione possibile.
    2. recuperare la password dal file delle password.
    3. password guessing.
      1. ricerca esaustiva.
      2. ricerca mirata.
      3. dictionary check.



Lezione del 25-10-06 (laboratorio)

Prima parte della lezione teorica, avente come argomento l'ACL;questa é la slide usata per la spiegazione.

Successivamente sono stati assegnati degli esercizi da svolgere, il cui testo é disponibile qui.



Lezione del 30-10-06 (teoria)

  • Single sign_on
  • one time password
  • metodi autenticazione:
    1. ciò che hai
      • vengono utilizzati i token
    2. ciò che sei
      • si utilizzano schemi biometrici, es:
        1. voce.
        2. scansione iride.
        3. viso.
        4. impronte digitali, il cui riconoscimento avviene così:
          1. enrollment.
          2. memorizzazione templates.
          3. comparazione fra il template in uso e quello conservato nel db.
          4. enrollment.
          • viene conservato il template di più dita.
  • autenticazione via password, non vi e possibilità d'errore
  • autenticazione biometrica, non é precisa al 100%, su usa per due scopi
    1. identificazione.
    2. verifica.
    • failure rate, dà luogo a:
      1. falsi positivi.
      2. falsi negativi.
    • equal error rate
  • attacchi alla biometria:
    1. falsaggio biometria.
    2. modifiche alle interazioni tra dispositivo e sistema.
  • autenticazione basata sulla località.




  • soggetti/principal: entità attive, es: utenti, processi.
  • oggetti: entità passive, es: file risorse.
  • operazioni d'accesso: accesso a memoria.
  • a un primo livello si usano:
    1. observe.
    2. alter.
  • BELL-LAPADULA definiscono quattro diritti d'accesso:
    1. execute.
    2. read.
    3. append -> blind write.
    4. write.
  • multics.


observe alter
execute
append X
read X
write X X


data segments
execute R
read write E R
read W
write A


dir segments
status R
search E
status modify W
append A


unix, operazioni su file
execute file
read file
write fire


unix, operazioni su dir
execute cerca file
read lista file
write crea/rinomina file



Lezione del 06-11-06 (teoria)

  • politiche di sicurezza.
    1. users.
    2. roles.
    3. procedures.
    4. data types.
    5. objects.
  • matrice degli accessi.
    1. righe = capability.
    2. colonne = ACLS.
  • anelli di protezione, le cui importanze possibili sono:
    1. operating system kernel: 0
    2. operating system: 1
    3. utilities: 2
    4. user processes: 3
  • etichetta/label:
    1. se é dominata da altre etichette é detta system low.
    2. se domina altre etichette é detta system high.
    • MLS: multi level security.
  • caratterizzazioni delle politiche:
    1. ai documenti vengono asegnati livelli di sicurezza.
    2. gli utenti sono caratterizati da clearance.
  • da garantire per definire l'os sicuro:
    1. no read up.
    2. no read down.



Lezione del 08-11-06 (laboratorio)

Prima parte della lezione teorica, avente come argomento le tecniche di criptaggio simmetriche/asimmetriche ;questa é la slide usata per la spiegazione.

Successivamente sono stati assegnati degli esercizi da svolgere, il cui testo é disponibile qui.


Lezione del 13-11-06 (teoria)

  • Trusted Computing Base (TCB).
  • Reference monitor.
  • Security kernel.
  • Meccanismi per proteggere l'os da modifiche non autorizzate:
    1. separazione fisica.
    2. bit di stato.
    3. controlled invocation -> supervisor call.
  • protezione della memoria, implica:
    1. rilocazione.
    2. protezione.
  • tagged architecture.



Lezione del 15-11-06 (laboratorio)

Lezione essenzialmente teorica, avente come argomento la "costruzione" di una vpn;questa é la slide usata per la spiegazione.



Lezione del 20-11-06 (teoria)

  • Caratteristiche sistemi unix e windows:
    • multiutente
    • multitasking, multithreading
    • time sharing, soft real-time.
  • Principali meccanismi di protezione:
    • processi di identificazione/autenticazione
    • controllo degli accessi
    • audit/monitoring


Identificazione in unix

  • Soggetti in ambito unix sono:
    1. utenti
      • identificati da:
        1. nome
        2. UID
        3. associazione fra nome e UID é in /etc/passwd
    2. gruppi:
      • un utente può appartenere a più gruppi
      • il gruppo primario é memorizzato in /etc/passwd
      • l'elenco dei gruppi é in /etc/group
    3. processi
  • root.
    1. può:
      • accedere a tutto
      • modificare il sistema operativo
      • diventare qualunque utente
    2. non può:
      • risalire al contenuto in chiaro di password o file cifrati.


Identificazione in Windows Xp

  • due modalità di gestione:
    1. stand-alone
    2. dominio
      • un server funge da domain controller
      • gli admin del dominio gestiscono tutte le risorse del dominio
  • principal:
    • dotati di:
      1. nome
      2. identificatore SID
    • si dividono in:
      1. local user
      2. aliases
      3. domain user
      4. gruppi
      5. macchine (host)
  • LSA
  • SID format (S-R-I-SA-SA-SA-N):
    • S: security identifier
    • R: revision number
    • I: identify authority
    • SA: sub authority
    • N: identificatore unico
  • registry


Logon su sistemi unix:

  • criptaggio della password di login:
    1. viene applicato l'algoritmo DES a un messaggio di 64 zeri, usando come chiave la password
    2. Il tutto viene eseguito per 25 volte
    3. é possibile usare un SALT a partire dalla data.
  • Sequenza di login:
    1. usando la password inserita al login prompt, viene calcolato il crypt(3)
    2. il risultato viene comparato con la voce corrispondente in /etc/passwd.
    3. se i due termini di paragone collimano, viene eseguito il login.

Logon su sistemi windows xp:

  • le macchine sono principal e hanno la password
  • possono essere usati dispositivi come le smart card
  • mediante crtl+alt+canc viene stabilito il trusted path fra tastiera e servizio di login
  • Quando un principal si collega al sistema:
    1. il processo di logon raccoglie le credenziali e le invia ad LSA
    2. LSA (lsass.exe) verifica le credenziali
    3. Logon (winlogon.exe) avvia una shell (explorer.exe) in una nuova sezione di lavoro appartenente al principal
    4. la shell genera i processi successivi nella sessione definitiva


Attacchi contro le password:

  • Trojan al logon
  • eaves dropping, shoulder sufrgin, post-it snapshot
  • social engineering
  • keyboard-logging, TTY tapping
  • brute forcing
  • dictionary attacks

Contromisure:

  • /etc/shadow contiene le password cifrate, accessibile solo da root
  • Utilizzo di MD5 al posto di DES



Lezione del 22-11-06 (laboratorio)

Lezione pratica, in cui sono stati svolti esercizi concernenti la costruzione di vpn questi sono gli esercizi.



Lezione del 27-11-06 (teoria)

Unix Access Control

  • Soggetti:
    1. processi
    2. UID/GID
      1. real UID/GID
      2. effective UID/GID
  • Oggetti
  • Owner
  • Sticky bit.

Access control in Windows Xp

  • contenuti token:
    1. user SID, group SID, alias SID
    2. previlegi
    3. owner SID, group SID, DACL
  • 27 tipi diversi di oggetti
  • DACL
  • ACE
  • Access rights:
    1. standard permissions:
      1. detect
      2. read_controlo
      3. write_dac
      4. write_owner
      5. synchronize
    2. specific permissions:
      1. generic_read
      2. generic_write
      3. generic_xxecute
      4. generic_all
  • inheritance
  • inheritange flags:
    1. inherited_only_ace
    2. no_propagate_inherit
    3. object_inherit_ace
    4. container_inherit_ace
    5. inherited_object_type


Finora sono stati svolti i primi sette capitoli del libro di testo adottato.



Lezione del 29-11-06 (laboratorio)

Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di tcpdump questa é la slide usata x la spiegazione.

Successivamente sono stati assegnati degli esercizi da svolgere, ovvero questi.



Lezione del 04-12-06 (teoria)

modalità di attacchi locali:

  1. environment attacks
  2. input argument attacks
  3. symlink attacks
  4. race condition attacks
  5. file descriptor attacks
  6. core-file attacks
  7. format strings attacks
  8. overflow
  • buffer overlow



Lezione del 06-12-06 (laboratorio)

Lezione pratica, in cui sono stati svolti esercizi concernenti tcpdump,questi sono gli esercizi.



Lezione del 11-12-06 (teoria)

  • Format bug

Virus (malcode):

  1. computer virus
  2. trojan horse
  3. macro
  4. hoax
  5. worm

i malcode possono propagarsi anche tramite:

  1. applet
  2. activex
  3. html

teniche per infettare host:

  1. overwriting virus
  2. parasitic virus
  3. appending virus
  4. prepending virus

virus famosi analizzati a lezione:

  1. melissa
  2. iloveyou
  3. codered
  4. slammer

problemi legati all'individuazione di virus da parte di antivirus:

  1. falsi positivi
  2. falsi negativi

meccanismi di autodifesa dei virus:

  1. polimorfismo
  2. entry point changer
  3. stealth
  4. armor



Lezione del 13-12-06 (laboratorio)

La lezione di laboratorio del 13/12 è sospesa causa sciopero mezzi pubblici.



Lezione del 18-12-06 (teoria)

  • Teoria di base relativa ad Internet Protocol (ip).


  • Attacchi su lan:
  1. tecniche:
    1. sniffing
    2. spoofing / hijacking, blind spoofing
    3. attacchi a protocolli arp/rarp
  2. obiettivi:
    1. impersonare un host
    2. denial of service
    3. accesso a dati sensibili
  • Attacchi ad arp
  • se la rete é switched si usa:
    1. mac flooding
    2. mac duplicating/cloning
  • icmp e icmp redirect



Lezione del 20-12-06 (laboratorio)

Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di openssh, questa é la slide usata x la spiegazione.

Successivamente sono stati assegnati degli esercizi da svolgere, ovvero questi.



Lezione del 08-01-07 (teoria)

Protezioni crittografiche x la rete

Adozione di sistemi crittografici su reti insicure (tcp/ip)

- Aggiunta del MAC (Message Authentication Code) al messaggio trasmesso per verificarne l'integrità. 
  
- Aspetti politici dell'uso della crittografia, il trattato di Wassennar sull'esportazione dei protocolli crittografici
- Aspetti tecnologici sulla scelta dei protocolli crittografici (Simmetrici o asimmetrici)
- Livelli di gestione della crittografia nello stack TCP/IP
  - Livello applicazione (Kerberos, PGP, S/MIME, Set, ...)
  - Livello trasporto (SSL/TLS)
  - Livello rete (IPSec)
- SSL/TLS
  - Handshake SSL 1.0
  - Attacco con Man in The Middle su SSL 1.0 e relativa soluzione


Lezione del 10-01-07 (laboratorio)

Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di openssh, questa é la slide usata x la spiegazione.

Successivamente sono stati assegnati degli esercizi da svolgere, ovvero questi.



Lezione del 15-01-07 (teoria)

  • Obiettivi di IPSEC:
    1. riservatezza e integrità dei dati
    2. autenticazione
  • relativi componenti:
    1. authentication header (AH) fornisce:
      1. connectionless integrity
      2. data origin authentication
      3. anti replay
    2. encapsulation security payload (ESP) fornisce:
      1. opzionalmente tutti i servizi di AH
      2. confidentiality
      3. limitated flow confidentiality
  • protocolli ESP per cifratura:
    1. DES-CBC
    2. triplo DES
    3. IDEA
    4. RC5
    5. blowfish
    6. triplo IDEA
  • transport mode
  • tunnel mode
  • traffico outbound IPSEC, decide di:
    1. eliminare pacchetto
    2. applicare /AH/ESP
    3. aggirare IPSEC
  • strumenti usati per traffico inbound:
    1. security association
    2. protocolli key exchange
  • security policies
    • relativi selettori:
      1. DST_IP_ADDR
      2. SRC_IP_ADDR
      3. USERNAME
      4. TRANS_PROTO
      5. SRC_PORT
      6. DST_PORT
  • security association
  • key management
  • ISAKMP
  • metodi di autenticazione IKE:
    1. pre shared key
    2. crittografia a chiave pubblica
    3. firma digitale




  • Firewall
    1. tutto il traffico in entrata ed in uscita deve passarvici
    2. solo traffico autorizzato può entrare/uscire
    3. deve essere il più possibile immune ad attacchi rispetto ad un host normale (per esempio, un qualunque pc con un firewall software)



Lezione del 17-01-07 (laboratorio)

Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di openssh, questa é la slide usata x la spiegazione.

Successivamente sono stati assegnati degli esercizi da svolgere, ovvero questi.



Lezione del 22-01-07 (teoria)


Lezione del 24-01-07 (laboratorio)