Sicurezza/2006-2007
Indice
- 1 Sicurezza, anno 2006/2007
- 2 Diario del corso
- 2.1 Lezione del 02-10-06 (teoria)
- 2.2 Lezione del 09-10-06 (teoria)
- 2.3 Lezione del 11-10-06 (laboratorio)
- 2.4 Lezione del 16-10-06 (teoria)
- 2.5 Lezione del 18-10-06 (laboratorio)
- 2.6 Lezione del 23-10-06 (teoria)
- 2.7 Lezione del 25-10-06 (laboratorio)
- 2.8 Lezione del 30-10-06 (teoria)
- 2.9 Lezione del 06-11-06 (teoria)
- 2.10 Lezione del 08-11-06 (laboratorio)
- 2.11 Lezione del 13-11-06 (teoria)
- 2.12 Lezione del 15-11-06 (laboratorio)
- 2.13 Lezione del 20-11-06 (teoria)
- 2.14 Lezione del 22-11-06 (laboratorio)
- 2.15 Lezione del 27-11-06 (teoria)
- 2.16 Lezione del 29-11-06 (laboratorio)
- 2.17 Lezione del 04-12-06 (teoria)
- 2.18 Lezione del 06-12-06 (laboratorio)
- 2.19 Lezione del 11-12-06 (teoria)
- 2.20 Lezione del 13-12-06 (laboratorio)
- 2.21 Lezione del 18-12-06 (teoria)
- 2.22 Lezione del 20-12-06 (laboratorio)
- 2.23 Lezione del 08-01-07 (teoria)
- 2.24 Lezione del 10-01-07 (laboratorio)
- 2.25 Lezione del 15-01-07 (teoria)
- 2.26 Lezione del 17-01-07 (laboratorio)
- 2.27 Lezione del 22-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.
Volevo segnalarvi che se andate al sito del 2004-2005 di sicurezza ci sono le slide di teoria http://security.dico.unimi.it/sicurezza0405/ Tante sono file zip protetti ma in particolare la lezione 4 Teoria, Lezione 11a Teoria e Lezione 11b Teoria sono semplici file pdf molto simili a quelli utilizzati dal proff a lezione quest'anno e possono essere utili x lo studio. Update:Per la password dei file protetti guardate qui http://www.dsy.it/forum/showthread.php?s=&threadid=28821
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
É OBBLIGATORIO DARE L'ESAME DI PRATICA AL PRIMO APPELLO DISPONIBILE DOPO LA TEORIA; solitamente la parte di pratica si fa 10gg dopo la teoria. Tuttavia *pare* che il prof intenda permetterci di fare la prova pratica anche all'appello successivo.
SE NON SI PASSA LA PRATICA, BISOGNA RIFARE LA TEORIA.
Diario del corso
Lezione del 02-10-06 (teoria)
- definizioni di
- sistema operativo sicuro
- bug
- exploit
- descrizione dei primissimi atti di hacking riusciti di rilevanza mondiale, ad opera di:
- Hess
- Robert Morris
- 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:
- AES
- DES
- 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à:
- 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)
- 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:
- Diffie-Hellman.
- RSA.
L'RSA funziona a partire da due numeri primi di almeno 300 cifre.
- Problemi correlati:
- necessità di trovare un algoritmo che verifichi se un numero é primo.
- La fattorizzazione rende possibile rompere RSA (nell'arco di qualche secolo, con i mezzi attuali).
- Necessità imprescindibili:
- Confidenzialità.
- Integrità.
- Autenticazione.
- definizioni, spiegazioni, motivazioni dell'ordine di applicazione di:
- message digest o checksum.
- keyed hash.
- 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.
- r: lettura.
- w: scrittura.
- x: esecuzione.
- Modalità d'accesso.
- File:
- SGID.
- SUID.
- Cartelle:
- Sticky.
- GID.
- umask.
- File:
- Attributi.
- chattr serve a impostare i seguenti attributi, preceduti da un + o un -.
- A
- a
- c
- i
- s
- u
- S
- lsattr:
- -R
- -a
- -d
- chattr serve a impostare i seguenti attributi, preceduti da un + o un -.
- Comandi utilizzati nella gestione dei permessi:
- chown
- chgrp
- chmod
- Schema di autenticazione: utente/password.
- Si basa su due file:
- passwd
- shadow
- Algoritmi utilizzati per la cifratura:
- DES modificato.
- funzione hash (MD5).
- Si basa su due file:
- Tool di cracking: John the Ripper.
- Modalità operative:
- Worldlistmode. es: # john -wordfile:password -rules passwordcheck
- Single Crack mode. es: # john -single passwordcheck
- Incremental mode. es: # john -incremental:alpha passwordcheck
- External mode. es: # john -wordfile:common-4 -external:Filter_Alpha password_check
- Modalità operative:
Lezione del 23-10-06 (teoria)
- applicazione della crittografia mista.
- spiegazione e necessità dell'Autorità di Certificazione, e annessi certificati.
- definizioni di:
- criptoanalisi
- robustezza
- 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:
- utenti.
- gruppi.
- altri computer.
- identità: attributo che identifica univocamente un principal all'interno di un pc.
- rappresentazioni di identità:
- casuale.
- scelta dagli utenti.
- gerarchica.
- riconoscimento utente:
- ciò che hai.
- ciò che sai.
- ciò che sei.
- debolezze del sistema di identificazione ed autenticazione, username//password:
- intercettazione possibile.
- recuperare la password dal file delle password.
- password guessing.
- ricerca esaustiva.
- ricerca mirata.
- 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:
- ciò che hai
- vengono utilizzati i token
- ciò che sei
- si utilizzano schemi biometrici, es:
- voce.
- scansione iride.
- viso.
- impronte digitali, il cui riconoscimento avviene così:
- enrollment.
- memorizzazione templates.
- comparazione fra il template in uso e quello conservato nel db.
- enrollment.
- viene conservato il template di più dita.
- si utilizzano schemi biometrici, es:
- ciò che hai
- autenticazione via password, non vi e possibilità d'errore
- autenticazione biometrica, non é precisa al 100%, su usa per due scopi
- identificazione.
- verifica.
- failure rate, dà luogo a:
- falsi positivi.
- falsi negativi.
- equal error rate
- failure rate, dà luogo a:
- attacchi alla biometria:
- falsaggio biometria.
- 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:
- observe.
- alter.
- BELL-LAPADULA definiscono quattro diritti d'accesso:
- execute.
- read.
- append -> blind write.
- 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.
- users.
- roles.
- procedures.
- data types.
- objects.
- matrice degli accessi.
- righe = capability.
- colonne = ACLS.
- anelli di protezione, le cui importanze possibili sono:
- operating system kernel: 0
- operating system: 1
- utilities: 2
- user processes: 3
- etichetta/label:
- se é dominata da altre etichette é detta system low.
- se domina altre etichette é detta system high.
- MLS: multi level security.
- caratterizzazioni delle politiche:
- ai documenti vengono asegnati livelli di sicurezza.
- gli utenti sono caratterizati da clearance.
- da garantire per definire l'os sicuro:
- no read up.
- 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:
- separazione fisica.
- bit di stato.
- controlled invocation -> supervisor call.
- protezione della memoria, implica:
- rilocazione.
- 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:
- utenti
- identificati da:
- nome
- UID
- associazione fra nome e UID é in /etc/passwd
- identificati da:
- gruppi:
- un utente può appartenere a più gruppi
- il gruppo primario é memorizzato in /etc/passwd
- l'elenco dei gruppi é in /etc/group
- processi
- utenti
- root.
- può:
- accedere a tutto
- modificare il sistema operativo
- diventare qualunque utente
- non può:
- risalire al contenuto in chiaro di password o file cifrati.
- può:
Identificazione in Windows Xp
- due modalità di gestione:
- stand-alone
- dominio
- un server funge da domain controller
- gli admin del dominio gestiscono tutte le risorse del dominio
- principal:
- dotati di:
- nome
- identificatore SID
- si dividono in:
- local user
- aliases
- domain user
- gruppi
- macchine (host)
- dotati di:
- 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:
- viene applicato l'algoritmo DES a un messaggio di 64 zeri, usando come chiave la password
- Il tutto viene eseguito per 25 volte
- é possibile usare un SALT a partire dalla data.
- Sequenza di login:
- usando la password inserita al login prompt, viene calcolato il crypt(3)
- il risultato viene comparato con la voce corrispondente in /etc/passwd.
- 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:
- il processo di logon raccoglie le credenziali e le invia ad LSA
- LSA (lsass.exe) verifica le credenziali
- Logon (winlogon.exe) avvia una shell (explorer.exe) in una nuova sezione di lavoro appartenente al principal
- 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:
- processi
- UID/GID
- real UID/GID
- effective UID/GID
- Oggetti
- Owner
- Sticky bit.
Access control in Windows Xp
- contenuti token:
- user SID, group SID, alias SID
- previlegi
- owner SID, group SID, DACL
- 27 tipi diversi di oggetti
- DACL
- ACE
- Access rights:
- standard permissions:
- detect
- read_controlo
- write_dac
- write_owner
- synchronize
- specific permissions:
- generic_read
- generic_write
- generic_xxecute
- generic_all
- standard permissions:
- inheritance
- inheritange flags:
- inherited_only_ace
- no_propagate_inherit
- object_inherit_ace
- container_inherit_ace
- 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:
- environment attacks
- input argument attacks
- symlink attacks
- race condition attacks
- file descriptor attacks
- core-file attacks
- format strings attacks
- 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):
- computer virus
- trojan horse
- macro
- hoax
- worm
i malcode possono propagarsi anche tramite:
- applet
- activex
- html
teniche per infettare host:
- overwriting virus
- parasitic virus
- appending virus
- prepending virus
virus famosi analizzati a lezione:
- melissa
- iloveyou
- codered
- slammer
problemi legati all'individuazione di virus da parte di antivirus:
- falsi positivi
- falsi negativi
meccanismi di autodifesa dei virus:
- polimorfismo
- entry point changer
- stealth
- 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:
- tecniche:
- sniffing
- spoofing / hijacking, blind spoofing
- attacchi a protocolli arp/rarp
- obiettivi:
- impersonare un host
- denial of service
- accesso a dati sensibili
- Attacchi ad arp
- se la rete é switched si usa:
- mac flooding
- 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:
- riservatezza e integrità dei dati
- autenticazione
- relativi componenti:
- authentication header (AH) fornisce:
- connectionless integrity
- data origin authentication
- anti replay
- encapsulation security payload (ESP) fornisce:
- opzionalmente tutti i servizi di AH
- confidentiality
- limitated flow confidentiality
- authentication header (AH) fornisce:
- protocolli ESP per cifratura:
- DES-CBC
- triplo DES
- IDEA
- RC5
- blowfish
- triplo IDEA
- transport mode
- tunnel mode
- traffico outbound IPSEC, decide di:
- eliminare pacchetto
- applicare /AH/ESP
- aggirare IPSEC
- strumenti usati per traffico inbound:
- security association
- protocolli key exchange
- security policies
- relativi selettori:
- DST_IP_ADDR
- SRC_IP_ADDR
- USERNAME
- TRANS_PROTO
- SRC_PORT
- DST_PORT
- relativi selettori:
- security association
- key management
- ISAKMP
- metodi di autenticazione IKE:
- pre shared key
- crittografia a chiave pubblica
- firma digitale
Lezione del 17-01-07 (laboratorio)
Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di netfilter, questa é la slide usata x la spiegazione.
Lezione del 22-01-07 (teoria)
- Firewall
- tutto il traffico in entrata ed in uscita deve passarvici
- solo traffico autorizzato può entrare/uscire
- deve essere il più possibile immune ad attacchi rispetto ad un host normale (per esempio, un qualunque pc con un firewall software)
- Filtri:
- servizi
- direzione
- user control
- behavior control
- Tipi di firewall:
- packet filtering
- vantaggi:
- semplice
- trasparente ad utenti
- opera ad alta velocità
- svantaggi:
- difficoltà di configurazione
- meccanismi di autenticazione
- vantaggi:
- application_level gateway (detto anche proxy server)
- vantaggi:
- controlli più sofisticati
- operazioni di logging più mirate
- svantaggi:
- più lento
- vantaggi:
- circuit_level gateway
- packet filtering
- bastion host
- screened subnet firewall
- delimitarized zone (DMZ)
- IDS (intrusion detection system)
- anomaly detection
- misuse detecetion