Dall`ultima lezione (1)

Transcript

Dall`ultima lezione (1)
Elementi di
Sicurezza e Privatezza
Lezione 3
Chiara Braghin
Dall’ultima lezione (1)
•
Come difendersi? Come proteggere i dati/le
risorse?
 Prevention + detection + reaction
 Prevenire = controllo
1. Verificare che il sistema funzioni come previsto
2. Definire delle regole di accesso e controllare che chi vi
accede soddisfi tali regole
 politiche e meccanismi
CONTROLLO DEGLI ACCESSI
3. Trasmettere i dati non in chiaro
 crittografia e protocolli crittografici
1
1
Dall’ultima lezione (2)
• In un qualsiasi sistema:
 Specifica
• In sicurezza:
 Cosa deve fare?
 Policy
 Implementazione
 Specifica
 Implementazione
 Come lo deve fare?
 Correttezza
 Mechanism
 Correttezza
 Funziona?
 Assurance
1. Definire una politica di sicurezza
2. Scegliere un meccanismo per far rispettare la politica
3. Verificare che sia la politica che il meccanismo siano
valide e coerenti.
2
Dall’ultima lezione (3)
• Politiche vs Mecanismi
 Livelli di astrazione diversi
 Analisi dei requisiti di accesso
indipendente dall’implementazione
 Diversi meccanismi possono
implementare una stessa politica
 Un singolo meccanismo puo’
implementare diverse politiche
3
2
Controllo degli Accessi
• Gli elementi sono:
 Oggetti, risorse e/o dati
 Richieste di operazioni (o modalità di accesso) su
oggetti
 Soggetti, i richiedenti
• I soggetti possono venire classificati in:




utenti -- singoli individui
gruppi -- insiemi di utenti
ruoli -- entità funzionali all’interno dell’organizzazione
processi -- programmi in esecuzione
4
Controllo degli accessi- Modalità di accesso
• Permesso (o Privilegio) = possibilità di
accedere ad una risorsa secondo una
certa modalità
• A seconda del tipo di oggetto, ci possono
essere diverse modalità di accesso:
 Read/write: vedere/cambiare i contenuti di
un oggetto
 execute
 select, insert, update, delete, …
5
3
Modalità di Accesso - Esempio
• Nel sistema operativo Unix:
 Modalità di accesso ai file
 read: lettura di file
 write: scrittura di file
 execute: execuzione di un (program) file
 Modalità di accesso alle directory
 read: elenca gli elementi della directory
 write: crea o cambia nome a un file in una
directory
 execute: ricerca in una directory
6
Politiche
4
Modello Bell-La Padula
• Risorse e soggetti vengono classificati in livelli di sicurezza
 Livello del soggetto: autorizzazione/livello di fiducia associato all’utente
 Livello dell’oggetto: sensibilità dell’informazione
• Chiamata anche politica multi-livello
 I livelli possono formare un reticolo
 Es. di livelli:
 Trusted/untrusted
 Public/Secret/Top Secret
Previene cavalli di Troia
• Le regole sono:
 No write-down
 No read-up
Garantisce la segretezza
• Usato per garantire segretezza
8
Biba Model
• Le classi rappresentano livelli di integrità
 Livello del soggetto: indica quanto fidato sia il soggetto
 Livello dell’oggetto: fiducia nella validità dell’informazione
Dati integri
potrebbero venire
corrotti
• Le regole sono:
 No write-up
 No read-down
I dati potrebbero
non essere validi
• Usato per garantire integrità
9
5
Meccanismi
Controllo degli Accessi
• Un sistema di controllo degli accessi regola le
operazioni che possono venire eseguite sui dati e
sulle risorse che devono essere protette
• L’obiettivo è di controllare le operazioni eseguite
dai soggetti per prevenire azioni che potrebbero
danneggiare i dati o le risorse
• Il controllo in genere viene fatto dal sistema
operativo o all’interno del database management
system (Trusted Computing Base)
 Un reference monitor che decide come rispondere
alle richieste provenienti dai soggetti
11
6
Reference Monitor
NO
Soggetto
Richiesta
Reference
monitor
OK
Oggetto
Politica
•
•
Un soggetto attivo chiede accesso ad un oggetto passivo per
eseguire una specifica operazione di accesso
Il monitor concede o meno l’accesso
B. Lampson. Protection. ACM Operating System Reviews, 8, 1974.
Correttezza del controllo dell’accesso implica:
• Corretta identificazione/autenticazione
• Corretta definizione (e implementazione) delle regole di controllo
12
Matrice degli accessi
A:SxO→P
Soggetto
Oggetto
Subjects
(Come memorizzare una politica)
Privilegio o
Permesso
A(s,o)
s
Objects
o
La matrice in generale è grande e sparsa:
 Memorizzata per colonne: access control list (ACL)
 Lista di soggetti che possono accedere ad un dato file
 Memorizzata per righe: capability list
 Lista di risorse a cui puo’ accedere un utente
 Memorizzate triple non-nulle: tabelle di autorizzazione
 DBMSs
13
7
Access Control List
• Implementa la matrice degli accessi per colonne
• Elenca i soggetti s che possono accedere
all’oggetto o e con quale privilegio





compatta
facile sommario per-oggetto
difficile revocare un soggetto
richiede l’autenticazione degli oggetti
Utile:
s
o
 in caso di molti oggetti
 in caso di pochi soggetti
14
Capability List
• Implementa la matrice degli accessi
per righe
• Elenca gli oggetti o che ai quali il
soggetto s può accedere e come
 facile delegare a qc
 difficile revocare una capability
• Utile:
 In caso di delegazione
s
o
15
8
Controllo degli accessi
3 meccanismi principali:
• Discretionary Access Control (DAC)
 Il proprietario della risorsa decide gli accessi (chi può
accedere e in quale modalità)
 In genere i permessi possono venire modificati e delegati
• Mandatory Access Control (MAC)
 Una politica a livello di sistema stabilisce gli accessi
 Gli accessi sono gestiti in modo centralizzato e a priori
• Role-Based Access Control (RBAC)
 I soggetti sono raggruppati in classi che corrispondono ad un
ruolo specifico
16
Discretionaty Access Control - DAC
• Gli utenti possono avere l’autorita’ di
passare i propri privilegi ad altri
utenti
 Delegation of duty
17
9
Limiti di DAC
• Vulnerabile ad attacchi di tipo Trojan Horse
 Code malfidato acquisisce i permessi tramite:
 L’ignoranza dell’utente
 Il meccanismo di delegazione
 Il fatto che sono regolati solo gli accessi diretti
 Assume che codice eseguito da un utente fidato
sia fidato
 causa di tutti i virus attack
• Nessun controllo sull’informazione
rilasciata
 La modalità di accesso è un attributo del
soggetto
18
Cavallo di Troia
s1
invoca la funzione
read file1
write file2
file1:
proprietario s1
permessi: <s1 ,r,file1>
file2:
• s2 ottiene accesso ai dati di s1
proprietario s2
Permessi: <s2,r,file2>
<s1,w,file2 >
 s1 non se ne accorge
 Il meccanismo DAC è rispettato
 Computer virus downloaded from the net?
 Network worm that exploited vulnerability?
19
10
Mandatory Access Control -MAC
• La modalità di accesso è un attributo
dell’oggetto
• Assegna levelli di sicurezza a soggetti e
oggetti
• Il sistema impone una politica multilivello
 gli utenti non hanno controllo sul livello di
sicurezza
 non sono possibili attacchi di tipo Trojan horse
• 2 tipi:
 Secrecy based → confidenzialità
 Integrity based → integrità
20
Role-Based Access Control
• Basato sull’idea che uno stesso soggetto può aver
bisogno di permessi diversi a seconda dell’attività
(ruolo) che svolge




Tom
Tom
Tom
Tom
come
come
come
come
system administrator (root)
utente tommy
consulente della banca A
consulente della compagnia B
Ruoli
• L’accesso agli oggetti è mediato dai ruoli
 s con ruolo r ha tutti i permessi di r
soggetti
ruoli
s1
r1
s2
r2
s3
r3
oggetti
21
11
Vantaggi di RBAC
Supporta:
 Least privilege
 Facile revocation di un permesso
 Separation of duty
 Gerarchie di ruoli
 Anonymity (parziale)
NB:
 Gruppo: insieme di utenti
 Ruolo: insieme di permessi/privilegi
22
AC in Unix
• Utilizza il meccanismo DAC
 Soggetti = utenti (o root)
• Un file ha un proprietario e un gruppo
 Le modalità di accesso sono: read, write, execute
 I file sono protetti da ACLs
 indicano le modalità di accesso per user, group, world
 indicati mediante 9 bit: e.g., rwxr--r--
• Lista di capability elementare:
 /etc/passwd, /etc/group, /etc/host.deny, /etc/host.allow
• I programmi:
 vengono eseguiti in area di memoria protetta
 vengono eseguiti con i provilegi del chiamante (tranne suid/sgid)
23
12
AC in Microsoft
• DOS: Nessun controllo degli accessi
 Sistema con un singolo utente
• Windows 95, 98
 Controllo degli accessi di base
 Memoria non protetta!!
• Windows NT
 A parte l’interfaccia, simile a Unix
 Più ricco:
 Gli utenti sono organizzati in domini
 Principio del least privilege
• Windows 2000, ME, XP, …
 Più evoluti ancora
24
Crittografia e Protocolli
Crittografici
13
Comunicazione sicura?
canale insicuro
messaggi
Alice
Bob
• E’ possibile che Alice e Bob comunichino
in modo sicuro attraverso un canale
insicuro?
• E’ possibile implementare un canale
sicuro virtuale su di un mezzo insicuro?
26
CIA over Internet communication
canale insicuro
messaggi
Alice
Bob
Confidenzialità: solo Alice e Bob devono “capire” il
contenuto dei messaggi.
Integrità: i messaggi non devono venire modificati.
Autenticazione: Alice e Bob vogliono essere sicuri
che il loro interlocutore sia effettivamente chi loro
si aspettano.
Non-repudiation: Alice non può negare di aver
27
spedito un messaggio a Bob (e viceversa).
14
Cosa può fare un attaccante? (1)
canale insicuro
messaggi
Alice
Bob
Trudy
• L’attaccante può intercettare il messaggio
ascoltando il canale: minaccia alla
confidenzialità.
 solo leggere il messaggio (passivo)
 cancellare il messaggio senza inoltrarlo a Bob (attivo)
28
Cosa può fare un attaccante? (2)
canale insicuro
messaggi
Alice
Bob
Trudy
• L’attaccante può modificare i
messaggi in transito: minaccia
all’integrità.
 Come può Bob distinguere tra un messaggio
legittimo e uno contraffatto?
29
15
Cosa può fare un attaccante? (3)
canale insicuro
messaggi
Alice
Bob
Trudy
• L’attaccante può spedire messaggi
arbitrari fingendo di essere Alice:
minaccia all’autenticazione.
30
Cosa può fare un attaccante? (4)
canale insicuro
messaggi
Alice
Bob
Trudy
• L’attaccante può riutilizzare vecchi
messaggi salvati (replay attack):
minaccia all’autenticazione.
31
16
Perché tanto interesse?
• Chi possono essere Alice e Bob?
browser/server Web per transazioni elettroniche
(e.g., acquisti on-line)
on-line banking client e server
router che si scambiano gli aggiornamenti delle
tabelle di routing
… beh, Bob e Alice in carne e ossa, che si
scambiano messaggi privati!
altri esempi?
• In tutti i casi:
 L’informazione deve venire protetta dalla divulgazione e
modifica lungo la rete
 L’autenticazione dell’utente è necessaria: quando uno fa
login ci deve essere un modo per verificarne l’identità.
32
Come risolvere il problema?
• Utilizzando primitive crittografiche
 crittare un messaggio (va bene per la
segretezza, ma è sufficiente per garantire
autenticazione e integrità?)
• Utilizzando protocolli crittografici
 WEP, SSL, SSH, S-HTTP, PGP
33
17
Crittografia
Crittografia (1)
• Dal greco kryptós (=nascosto), e gráphein
(=scrivere), tratta dei metodi per rendere
un messaggio "offuscato” (crittogramma)
in modo da non essere comprensibile a
persone non autorizzate a leggerlo.
 non mira a nascondere il messaggio, ma il suo
significato
 codificare (testo in chiaro → testo codificato) e
decodificare (testo codificato → testo in chiaro)
informazione
35
18
Crittografia (2) - Storia
• Più di 2000 anni fa: comunicazione segreta
basata su steganografia (occultamento del
messaggio)
 23/9/480 a.C. battaglia di Salamina - Serse vs
Atene: tavoletta da scrittura con doppio strato di
cera
 Stessi anni: Istieo manda messaggio a Aristagora di
Mileto scritto sulla cute.
• ~2000 anni fa: Cifrari per sostituzione
 Sostituire una lettera con un’altra
 Cifratura di Cesare (a->D, b->E, c->F, …)
36
Crittografia (3) - Storia
• Alcuni secoli dopo: Cifrari per
permutazione
• Cifrari del rinascimento: utilizzano il
messaggio e le lettere di una chiave per
cifrare il messaggio
 la base della crittografia moderna
• 1976: Crittografia a chiave pubblica
37
19
Crittografia (4) - Storia
• Maria Stuarda, 8/12/1542 – 24/7/1567
regina di Scozia, cugina di Elisabetta I
d’Inghilterra
• Ernesto “Che” Guevara,
14/6/1928 – 9/10/1967
38
20