Sicurezza/2006-2007

Da WikiDsy.
Versione del 9 gen 2007 alle 23:29 di 81.174.25.2 (discussione) (Lezione del 08-01-07 (teoria))

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.



Visto ke nn sono ancora stati aggiunti gli argomenti della lezione mi permetto di aggiungerli io... Spero siano utili...

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

Verrà a breve inserito del materiale sul sito del corso da parte del docente riguardante la lezione tenuta. Sono ancora previste 1/2 lezioni teoriche e 2 lezioni di laboratorio.

Lezione del 10-01-07 (laboratorio)


Lezione del 15-01-07 (teoria)


Lezione del 17-01-07 (laboratorio)


Lezione del 22-01-07 (teoria)


Lezione del 24-01-07 (laboratorio)