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)
- 2.28 Lezione del 24-01-07 (laboratorio)
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
- 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.
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.