Differenze tra le versioni di "Sicurezza/2006-2007"

Da WikiDsy.
m
 
(29 versioni intermedie di 14 utenti non mostrate)
Riga 40: Riga 40:
 
** prezzo: sui 45/50€
 
** prezzo: sui 45/50€
  
*  libro che forse verrà utilizzato:
+
*  libro che sarebbe dovuto essere utilizzato:
 
** Titolo: ''"Networking Security essentials"''
 
** Titolo: ''"Networking Security essentials"''
 
** Autori: Wiley, Stalling
 
** Autori: Wiley, Stalling
Riga 46: Riga 46:
 
** Prezzo: n/a
 
** Prezzo: n/a
  
Verranno presentate slides alle lezioni di teoria del lunedì, ma probabilmente NON verranno messe a disposizione sul sito.
+
Sono state presentate slides alle lezioni di teoria del lunedì, ma non sono state 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.'''
  
 
=== Modalità d'esame ===
 
=== Modalità d'esame ===
Riga 55: Riga 59:
 
* TEORIA: compito scritto a domande, ci si iscrive tramite sifa
 
* 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
 
* 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 O AL SECONDO APPELLO DISPONIBILE DOPO LA TEORIA; solitamente la parte di pratica si fa 10gg dopo la teoria.
 +
 +
SE NON SI PASSA LA PRATICA, BISOGNA RIFARE LA TEORIA.
  
  
Riga 77: Riga 85:
 
Lezione incentrata sulla crittografia, spiegazione di essa e della distinzione fra chiavi simmetriche ed asimmetriche.
 
Lezione incentrata sulla crittografia, spiegazione di essa e della distinzione fra chiavi simmetriche ed asimmetriche.
  
* Principali protocolli crittografici asimmetrici:
+
* Principali protocolli crittografici simmetrici:
 
*# AES
 
*# AES
 
*# DES
 
*# DES
Riga 192: Riga 200:
 
=== Lezione del 23-10-06 (teoria)  ===
 
=== 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:
 +
 +
{| border=1
 +
! 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:
 +
 +
{| border=1
 +
! durata segreto!! lunghezza minima chiave privata
 +
|-
 +
| decine di minuti|| 56bit
 +
|-
 +
| giorni|| 64bit
 +
|-
 +
|-anno|| 80bit
 +
|-
 +
| 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.
  
  
Riga 198: Riga 277:
 
=== Lezione del 25-10-06 (laboratorio)  ===
 
=== Lezione del 25-10-06 (laboratorio)  ===
  
 +
Prima parte della lezione teorica, avente come argomento l'ACL;[http://security.dico.unimi.it/sicurezza0607/stuff/02b_lab_sicurezza_18-10-2006.pdf questa] é la slide usata per la spiegazione.
 +
 +
Successivamente sono stati assegnati degli esercizi da svolgere, il cui testo é disponibile [http://security.dico.unimi.it/sicurezza0607/stuff/ex/ex_acl_password_25-10-2006.pdf qui].
  
  
Riga 204: Riga 286:
 
=== Lezione del 30-10-06 (teoria)  ===
 
=== 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.
 +
 +
* 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
 +
 +
* attacchi alla biometria:
 +
*# falsaggio biometria.
 +
*# modifiche alle interazioni tra dispositivo e sistema.
 +
 +
* autenticazione basata sulla località.
  
  
 
----
 
----
  
=== Lezione del 06-11-06 (laboratorio)  ===
+
 
 +
* 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.
 +
 
 +
 
 +
{| border=1
 +
! !! observe!!alter
 +
|-
 +
| execute|| ||
 +
|-
 +
| append|| || X
 +
|-
 +
| read|| X||
 +
|-
 +
| write|| X|| X
 +
|}
 +
 
 +
 
 +
{| border=1
 +
! !! data segments
 +
|-
 +
| execute|| R
 +
|-
 +
| read write|| E R
 +
|-
 +
| read|| W
 +
|-
 +
| write|| A
 +
|}
 +
 
 +
 
 +
{| border=1
 +
! !! dir segments
 +
|-
 +
| status|| R
 +
|-
 +
| search|| E
 +
|-
 +
| status modify|| W
 +
|-
 +
| append|| A
 +
|}
 +
 
 +
 
 +
{| border=1
 +
! unix, operazioni su file
 +
|-
 +
| execute|| file
 +
|-
 +
| read|| file
 +
|-
 +
| write|| fire
 +
|}
 +
 
 +
 
 +
{| border=1
 +
! unix, operazioni su dir
 +
|-
 +
| execute|| cerca file
 +
|-
 +
| read|| lista file
 +
|-
 +
| write|| crea/rinomina file
 +
|}
  
  
Riga 214: Riga 405:
 
----
 
----
  
=== Lezione del 08-11-06 (teoria)  ===
+
=== 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 ;[http://security.dico.unimi.it/sicurezza0607/stuff/03_lab_sicurezza_08-11-2006.pdf questa] é la slide usata per la spiegazione.
 +
 +
Successivamente sono stati assegnati degli esercizi da svolgere, il cui testo é disponibile [http://security.dico.unimi.it/sicurezza0607/stuff/ex/ex02_gnupg_08-11-2006.pdf qui].
  
 
----
 
----
Riga 222: Riga 451:
 
=== Lezione del 13-11-06 (teoria)  ===
 
=== 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.
  
  
Riga 230: Riga 471:
 
=== Lezione del 15-11-06 (laboratorio)  ===
 
=== Lezione del 15-11-06 (laboratorio)  ===
  
 
+
Lezione essenzialmente teorica, avente come argomento la "costruzione" di una vpn;[http://security.dico.unimi.it/sicurezza0607/stuff/04_lab_sicurezza_15-11-2006.pdf questa] é la slide usata per la spiegazione.
  
  
Riga 237: Riga 478:
 
=== Lezione del 20-11-06 (teoria)  ===
 
=== 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
 +
*# gruppi:
 +
*#* un utente può appartenere a più gruppi
 +
*#* il gruppo primario é memorizzato in /etc/passwd
 +
*#* l'elenco dei gruppi é in /etc/group
 +
*# processi
  
 +
* root.
 +
*# può:
 +
*#* accedere a tutto
 +
*#* modificare il sistema operativo
 +
*#* diventare qualunque utente
 +
*# non può:
 +
*#* risalire al contenuto in chiaro di password o file cifrati.
 +
 +
 +
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)
 +
 +
* 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
  
  
Riga 245: Riga 585:
 
=== Lezione del 22-11-06 (laboratorio)  ===
 
=== Lezione del 22-11-06 (laboratorio)  ===
  
 +
Lezione pratica, in cui sono stati svolti esercizi concernenti la costruzione di vpn [http://security.dico.unimi.it/sicurezza0607/stuff/ex/ex03_openvpn_22-11-2006.pdf 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
 +
 
 +
* inheritance
 +
* inheritange flags:
 +
*# inherited_only_ace
 +
*# no_propagate_inherit
 +
*# object_inherit_ace
 +
*# container_inherit_ace
 +
*# inherited_object_type
  
=== Lezione del 27-11-06 (teoria)  ===
 
  
 +
Finora sono stati svolti i primi sette capitoli del libro di testo adottato.
  
  
Riga 261: Riga 646:
  
  
 +
Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di tcpdump [http://security.dico.unimi.it/sicurezza0607/stuff/05b_lab_sicurezza_29-11-2006.pdf questa] é la slide usata x la spiegazione.
 +
 +
Successivamente sono stati assegnati degli esercizi da svolgere, ovvero
 +
[http://security.dico.unimi.it/sicurezza0607/stuff/ex/ex04_tcpdump_29-11-2006.pdf questi].
  
  
Riga 267: Riga 656:
 
=== Lezione del 04-12-06 (teoria)  ===
 
=== 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
  
  
Riga 275: Riga 674:
  
  
 +
Lezione pratica, in cui sono stati svolti esercizi concernenti tcpdump,[http://security.dico.unimi.it/sicurezza0607/stuff/tcpdump.html questi] sono gli esercizi.
  
  
Riga 281: Riga 681:
 
=== Lezione del 11-12-06 (teoria)  ===
 
=== 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
  
  
Riga 288: Riga 723:
 
=== Lezione del 13-12-06 (laboratorio)  ===
 
=== Lezione del 13-12-06 (laboratorio)  ===
  
 
+
La lezione di laboratorio del 13/12 è sospesa causa sciopero mezzi pubblici.
  
  
Riga 295: Riga 730:
 
=== Lezione del 18-12-06 (teoria)  ===
 
=== 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
  
  
Riga 301: Riga 756:
  
 
=== Lezione del 20-12-06 (laboratorio)  ===
 
=== Lezione del 20-12-06 (laboratorio)  ===
 +
 +
Prima parte della lezione teorica, in cui é stato spiegato l'utilizzo di openssh, [http://security.dico.unimi.it/sicurezza0607/stuff/06_lab_sicurezza_20-12-2006.pdf questa] é la slide usata x la spiegazione.
 +
 +
Successivamente sono stati assegnati degli esercizi da svolgere, ovvero
 +
[http://security.dico.unimi.it/sicurezza0607/stuff/ex/ex05_ssh_20-12-2006.pdf 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, [http://security.dico.unimi.it/sicurezza0607/stuff/07_lab_sicurezza_10-01-2007.pdf questa] é la slide usata x la spiegazione.
 +
 +
Successivamente sono stati assegnati degli esercizi da svolgere, ovvero
 +
[http://security.dico.unimi.it/sicurezza0607/stuff/ex/ex06_hping_10_01_2007.pdf 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
 +
 +
* 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
 +
 +
* 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, [http://security.dico.unimi.it/sicurezza0607/stuff/08_lab_sicurezza_17-01-2007.pdf 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
 +
*# application_level gateway (detto anche proxy server)
 +
*#* vantaggi:
 +
*#*# controlli più sofisticati
 +
*#*# operazioni di logging più mirate
 +
*#* svantaggi:
 +
*#*# più lento
 +
*# circuit_level gateway
 +
 +
 +
* bastion host
 +
* screened subnet firewall
 +
* delimitarized zone (DMZ)
 +
 +
* IDS (intrusion detection system)
 +
*# anomaly detection
 +
*# misuse detection

Versione attuale delle 20:06, 11 gen 2010

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 sarebbe dovuto essere utilizzato:
    • Titolo: "Networking Security essentials"
    • Autori: Wiley, Stalling
    • Casa Editrice: Prentice Hall
    • Prezzo: n/a

Sono state presentate slides alle lezioni di teoria del lunedì, ma non sono state 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.

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 O AL SECONDO APPELLO DISPONIBILE DOPO LA TEORIA; solitamente la parte di pratica si fa 10gg dopo la teoria.

SE NON SI PASSA LA PRATICA, BISOGNA RIFARE LA TEORIA.


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



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
    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)
  • Filtri:
    1. servizi
    2. direzione
    3. user control
    4. behavior control
  • Tipi di firewall:
    1. packet filtering
      • vantaggi:
        1. semplice
        2. trasparente ad utenti
        3. opera ad alta velocità
      • svantaggi:
        1. difficoltà di configurazione
        2. meccanismi di autenticazione
    2. application_level gateway (detto anche proxy server)
      • vantaggi:
        1. controlli più sofisticati
        2. operazioni di logging più mirate
      • svantaggi:
        1. più lento
    3. circuit_level gateway


  • bastion host
  • screened subnet firewall
  • delimitarized zone (DMZ)
  • IDS (intrusion detection system)
    1. anomaly detection
    2. misuse detection