Panoramica sulla sicurezza nei
sistema ad agenti
Palermo, 24 giugno 2004
1
SOMMARIO
• INTRODUZIONE
• CARATTERISTICHE DI SICUREZZA
• TIPI DI MINACCE
• CONTROMISURE
• LA SICUREZZA IN JADE
• BIBLIOGRAFIA
Palermo, 24 giugno 2004
2
Introduzione
Problemi:
• Mandare in esecuzione un agente di cui non si
conosce la provenienza su una piattaforma, col
rischio che possa accedere a risorse e dati sensibili o
che possa eseguire operazioni illecite.
• Mandare in esecuzione un agente che tratta dati
importanti in una piattaforma non identificata col
rischio che i dati vengano intercettati e\o manipolati.
Palermo, 24 giugno 2004
3
Caratteristiche richieste
Un utente si aspetta che il sistema ad agenti offra alcune
caratteristiche di sicurezza:
•Integrità
•Riservatezza
•Responsabilità
•Disponibilità
•Anonimato
Palermo, 24 giugno 2004
4
Integrità
• La piattaforma dovrebbe proteggere gli agenti che
ospita da modifiche non autorizzate del loro codice,
del loro stato e dei loro dati.
• E’ anche importante l’integrità della piattaforma
stessa: un nodo maligno potrebbe compromettere la
sicurezza dell’intera rete.
Palermo, 24 giugno 2004
5
Riservatezza
• Qualsiasi dato memorizzato su una piattaforma o
trasportato da un agente dovrebbe restare riservato.
• Non deve essere possibile portare attacchi
eavesdropping, ossia l’intercettazione non autorizzata
di comunicazioni.
• Un agente potrebbe anche voler tenere segreta la sua
locazione.
Palermo, 24 giugno 2004
6
Responsabilità
• Un agente deve essere ritenuto responsabile delle sue
azioni. Ciò è fondamentale, ad esempio, in applicativi
per e-commerce, transazioni finanziarie, etc.
• Questo richiede che ogni agente venga identificato in
maniera univoca, e tenuto sotto controllo.
• E’ bene tenere una traccia, in un file log, delle azioni
di un agente, in modo da avere la storia delle azioni
dell’agente e costruire la reputazione di un agente.
Palermo, 24 giugno 2004
7
Disponibilità
• La piattaforma dove assicurare la disponibilità di dati
e servizi agli agenti.
• Deve evitare il rischio di creare situazioni di denial
of service, ossia per non trovarsi nelle condizioni di
non riuscire a fornire i servizi previsti.
Palermo, 24 giugno 2004
8
Anonimato
• Una piattaforma dovrebbe trovare un equilibrio tra i
requisiti di riservatezza degli agenti e la caratteristica
di poter attribuire agli agenti la responsabilità del loro
comportamento.
• In generale, la piattaforma dovrebbe essere in grado
di tenere segreta l’identità di un agente, ma, nello
stesso tempo, di dare la possibilità di determinare
l’identità dell’agente qualora risulti necessario, ad
esempio per motivi legali.
Palermo, 24 giugno 2004
9
Minacce
Le possiamo classificare in:
• Agente che attacca piattaforma
• Piattaforma che attacca i suoi agenti
• Agente che attacca agente
• Altri che attaccano il sistema
Palermo, 24 giugno 2004
10
Agente contro piattaforma
Possibili minacce di questo tipo sono :
• unauthorized access Quando un agente cerca di accedere a
servizi e risorse senza la necessaria autorizzazione.
• masquerading Quando una agente simula l’identità di un altro
agente.
• denial of service Quando un agente occupa, con task e/o
messaggi fittizzi, una quantità eccessiva di risorse di calcolo
della piattaforma.
Palermo, 24 giugno 2004
11
Piattaforma contro agenti
Possibili minacce di questo tipo sono :
• masquerading Quando una piattaforma assume l’identità di
un’altra piattaforma.
• denial of service Quando la piattaforma ignora le richieste
dell’agente, non alloca ad esso risorse.
• eavesdropping Quando la piattaforma, intercetta comunicazioni
segrete, oppure tutti i passi di un agente.
• alteration Quando la piattaforma altera il codice di un agente
Palermo, 24 giugno 2004
12
Agente contro agente
Possibili minacce di questo tipo sono :
• unauthorized access Quando un agente non autorizzato invoca i
metodi pubblici di un altro, o accede al codice.
• masquerading Quando un agente assume l’entità di un altro e
quindi può comunicare con altri malignamente
• denial of service Quando un agente impegna un’altro agente,
per esempio inviandogli continuamente messaggi.
• repudiation Quando un agente nega una transazione o
comunicazione realmente avvenuta.
Palermo, 24 giugno 2004
13
Altri contro il sistema
Possibili minacce di questo tipo sono :
• unauthorized access Quando agenti remoti richiedono
l’accesso a risorse per le quali non sono autorizzati.
• masquerading Quando agenti e piattaforme assumono identità
di altri per effettuare operazioni illecite
• denial of service Quando entità remote impegnano le risorse di
una piattaforma
• copy and replay Quando entità remote intercettano messaggi
che transitano e ne effettuano una copia per poi ritrasmetterla.
Palermo, 24 giugno 2004
14
Contromisure
Tecniche per assicurare la sicurezza, le dividiamo:
• Convenzionali utili per quello che riguarda gli agenti
statici, ma che danno problemi quando si è in presenza
di mobilità.
• Innovative nuove tecniche che si orientano alla
sicurezza degli agenti mobili.
Palermo, 24 giugno 2004
15
Contromisure Convenzionali
Alcune di esse sono:
• Cifratura
• Cifrario a sostituzione
• Cifrario a trasposizione
• Crittografia a chiave segreta
• Crittografia a chiave pubblica
• Sintesi di messaggi.
• Firma digitale
• Certificati a chiave pubblica
• Soluzione Single Hop
Palermo, 24 giugno 2004
16
Cifratura
In questa tecnica i messaggi da codificare “TESTI IN
CHIARO” vengono trasformati da una funzione chiamata
“CHIAVE” ed il risultato è il “TESTO CIFRATO”.
I metodi di cifratura più semplici sono:
•Cifrario a sostituzione: ogni lettera o gruppo di lettere viene
sostituita da un’altra lettera o gruppo di lettere. Es. Cifrario di
Cesare.
•Cifrario a trasposizione: le lettere vengono riordinate ma non
sostituite. Es. Cifrario a trasposizione per colonne.
Palermo, 24 giugno 2004
17
Crittografia a chiave segreta
In questa tecnica la chiave usata in fase di codifica è
uguale a quella di decodifica.
Quindi un’unica chiave per tutti da tenere strettamente
segreta, ecco perchè chiave segreta.
Anche in presenza di chiavi estremamente complesse, se
un intruso riesce ad avere la chiave, il sistema diventa
non sicuro.
Palermo, 24 giugno 2004
18
Crittografia a chiave pubblica
In questa tecnica la chiave usata in fase di codifica è
diversa da quella di decodifica.
Ogni utente possiede una chiave pubblica, nota a tutti,
per cifrare i messaggi da inviare a quell’utente e una
segreta, nota solo all’utente, per decifrare i messaggi.
L’uso della coppia di chiavi può essere invertito.
•Digest di messaggi
•Firme digitali
24 giugno 2004
•Certificati a chiave Palermo,
pubblica
19
Digest di messaggi
• Il messaggio viene elaborato da una funzione che
restituisce un riassunto, tipicamente una sequenza di
bit chiamata “hash” o “message digest”. Anche una
piccola modifica del messaggio da una differenza nel
riassunto prodotto.
• Le funzioni di hash possono essere usate per
verificare l’integrità dei messaggi, ma non per la loro
segretezza.
Palermo, 24 giugno 2004
20
Firme Digitali
Questa tecnica permette di assicurare l’autenticità di un
documento mediante l’utilizzo della firma digitale del mittente.
L’utilizzo di questa tecnica assicura che:
• Il destinatario possa verificare l’identità del mittente.
• Il mittente non possa poi disconoscere il messaggio firmato.
• Il destinatario non possa inventarsi il messaggio firmato.
Una firma digitale si ottiene applicando un algoritmo di cifratura
a chiave pubblica ad una sintesi del testo in chiaro (hash). La
sintesi del messaggio viene cifrata usando la chiave segreta del
mittente, il risultato è la firma digitale. Il documento in chiaro e la
firma digitale vengono inviati al destinatario.
Palermo, 24 giugno 2004
21
Certificati a chiave pubblica
Viene rilasciato da un’organizzazione di fiducia (Certification
Authority) e permette l’identificazione del portatore. Un certificato
contiene diversi campi tra i quali:
•Issuer rappresenta l’autorità che ha rilasciato il certificato.
•Validity ci informa sulla scadenza del certificato
•Subject ci informa sull’entità identificata dal certificato.
•Pubblic Key la più importante: la chiave pubblica del subject
•Signature la firma digitale apposta sul certificato dall’autorità che
lo ha rilasciato. Essa è ottenuta utilizzando la chiave privata
dell’autorità.
Palermo, 24 giugno 2004
22
Contromisure innovative
Individuiamo due categorie :
• Preventive: orientate ad evitare gli attacchi
• Di rilevamento: orientate a rilevare l’attacco dopo che è avvenuto
Considerati i due elementi principali di un sistema ad agenti che
sono Piattaforma e Agente individueremo due categorie di tecniche
di protezione:
• Tecniche per la protezione delle piattaforme
• Tecniche per la protezione degli agenti
TABELLA DELLE CONTROMISURE
Palermo, 24 giugno 2004
23
Tabella Contromisure
CONTROMISURA
CATEGORIA
OGGETTO
Signed code
Rilevamento
PIATTAFORMA
State appraisal
Rilevamento
PIATTAFORMA
Path histories
Rilevamento
PIATTAFORMA
Riconoscimento con impronte Digitali
Prevenzione
PIATTAFORMA
Software-based fault isolation
Prevenzione
PIATTAFORMA
Safe code interpretation
Prevenzione
PIATTAFORMA
Attribute certificate
Prevenzione
PIATTAFORMA
Proof carrying code
Prevenzione
PIATTAFORMA
Partial result encapsulation
Rilevamento
AGENTE
Mutual itinerary recording
Rilevamento
AGENTE
Replication and voting
Rilevamento
AGENTE
Execution tracing
Rilevamento
AGENTE
Environmental key generation
Prevenzione
AGENTE
Encrypted functions
Prevenzione
AGENTE
Prevenzione
Palermo, 24 giugno 2004
AGENTE
Obfuscated code
24
Protezione Piattaforma
Tecniche per la protezione di piattaforme sono:
•software-based fault isolation
•safe code interpretation
•state appraisal
•signed code
•attribute certificates
•path histories
•proof carrying code
•Biometric authentication
Palermo, 24 giugno 2004
25
Software-based fault isolation
(Prevenzione-Piattaforma)
• le applicazioni vengono isolate in domini di
sicurezza (sandbox).
• il codice insicuro viene trasformato in modo che tutti
gli accessi siano confinati a risorse contenute nel
dominio.
• vengono esclusi dal dominio di sicurezza le risorse
del file system locale, gli accessi alla rete, le variabili
di ambiente, gli accessi a basi di dati.
Palermo, 24 giugno 2004
26
Safe code interpretation
(Prevenzione - Piattaforma)
• i sistemi ad agenti sono spesso sviluppati usando
linguaggi di programmazione interpretati.
• i comandi potenzialmente pericolosi vengono
controllati prima di essere eseguiti, dopo di che
vengono resi sicuri o negati.
Palermo, 24 giugno 2004
27
Signed code
(Rilevamento – Piattaforma)
• consiste nel contrassegnare il codice con una firma
digitale.
• chi firma il codice è il creatore dell’agente, l’utente
dell’agente.
Palermo, 24 giugno 2004
28
State Appraisal
(Rilevamento – Piattaforma)
• l’autore e l’utente producono delle funzioni di
stima dello stato di un agente.
• eventuali attacchi allo stato possono essere
rilevati controllando tali stime.
• uno svantaggio è che gli stati assumibili sono
numerosi e quindi l’agente si potrebbe trovare
in maniera lecita in uno stato non stimato.
Palermo, 24 giugno 2004
29
Attribute certificate
(Prevenzione – Piattaforma)
• ogni agente possiede l’attribute certificate in cui sono
riportati anche:
• L’identità del proprietario
• L’identità del rilasciante
• La validità del certificato
• una piattaforma che riceve l’agente verifica la validità
dei certificati, l’identità di chi ha emesso il certificato
e se i privilegi concordano con la sua politica di
sicurezza.
Palermo, 24 giugno 2004
30
Path histories
(Rilevamento – Piattaforma)
• si mantiene una registrazione autenticata delle piattaforme
visitate da un agente.
• ogni piattaforma aggiunge una voce firmata al percorso e lo
invia alla successiva.
• una piattaforma può decidere, in base alla provenienza
dell’agente o dal percorso da esso effettuato, se mandare in
esecuzione un agente.
• uno svantaggio è che quando il percorso dell’agente è
costituito
da
molti
step,
la
verifica
diventa
computazionalmente pesante.
Palermo, 24 giugno 2004
31
Proof carrying code
(Prevenzione – Piattaforma)
• si obbliga il proprietario di ogni agente a provare
che l’agente possegga delle caratteristiche di
sicurezza negoziate in precedenza con l’ambiente di
esecuzione e in accordo con la politica di sicurezza.
• Il codice e la prova vengono inviate insieme, in modo
da verificare le proprietà di sicurezza.
• la prova è strettamente legata al codice.
Palermo, 24 giugno 2004
32
Biometric authentication
(Prevenzione – Piattaforma)
• una piattaforma, prima di ospitare un agente,
controlla che l’utente che lo lancia sia il vero e solo
che può utilizzare le sue funzioni. Tale
autenticazione avviene tramite verifica di
username, password e infine tramite la verifica di una
caratteristica biometrica dell’utente (ad esempio
l’impronta digitale prelevata da un sensore)
Palermo, 24 giugno 2004
33
Protezione Agente
Tecniche per la protezione di Agenti:
•
•
•
•
•
•
•
partial result encapsulation
mutual itinerary recording
replication and voting
execution tracing
environmental key generation
encrypted functions
obfuscated code
Palermo, 24 giugno 2004
34
Partial result encapsulation
(Rilevamento – Agente)
• Si incapsulano i risultati prodotti da un agente, in
ogni nodo visitato, per una verifica successiva quando
torna al suo punto di origine o sui nodi sicuri.
• Ci sono tre modi alternativi di incapsulare i risultati :
• dare all’agente gli strumenti per incapsulare le informazioni;
• affidarsi alle capacità di incapsulamento della piattaforma;
• affidarsi ad una terza parte fidata.
Palermo, 24 giugno 2004
35
Mutual itinerary recording
(Rilevamento – Agente)
• Le informazioni del percorso di un agente vengono
registrate da un altro agente cooperante e
viceversa. Le informazioni vengono trasmesse
mediante un canale autenticato.
• E’ improbabile che se l’agente si trova in una
piattaforma maliziosa, questa collabori con un’altra
piattaforma maliziosa visitata in quel momento dal
suo compagno.
• Uno svantaggio è l’esigenza di avere un canale
Palermo, 24 giugno 2004
36
autenticato per la coppia
di agenti.
Replication and voting
(Rilevamento – Agente)
• Vengono effettuate numerose copie dello stesso
agente.
• Anche se una piattaforma non fidata può modificare
alcune copie dell’agente, la presenza di un elevato
numero di replicati garantisce che la computazione
sia portata a termine con successo.
• Uno svantaggio è il consumo di risorse dovuto alle
diverse copie dell’agente.
Palermo, 24 giugno 2004
37
Execution tracing
(Rilevamento – Agente)
• Si effettua una registrazione del comportamento
di un agente durante l’esecuzione su ciascuna
piattaforma.
• Ogni piattaforma coinvolta crea e mantiene la
registrazione e fornisce alla fine una impronta
crittografica della registrazione.
• Uno svantaggio è quello di dover mantenere
numerose registrazioni.
Palermo, 24 giugno 2004
38
Environmental key generation
(Prevenzione – Agente)
• permette ad un agente di eseguire azioni predefinite
quando certe condizioni ambientali risultino
verificate.
• se sono verificate le condizioni richieste tramite
una chiave viene sbloccata una porzione di codice
cifrata.
• uno svantaggio è che molte politiche di sicurezza non
prevedono l’esecuzione di codice generato
dinamicamente.
Palermo, 24 giugno 2004
39
Encrypted functions
(Prevenzione – Agente)
• Al posto di eseguire la funzione dell’agente, ne viene
seguita un’altra cifrata il risultato poi verrà decifrato.
• Se vogliamo calcolare f(x) ma non si vuole far
conoscere f, allora f viene cifrata in cf, viene
calcolato cf(x) che poi decifrato darà f(x).
1) f  cf 2) calcolo cf(x) 3) cf(x) f(x)
• Un problema è quello di trovare appropriati schemi di
cifratura che possano trasformare funzioni arbitrarie
nella maniera voluta
Palermo, 24 giugno 2004
40
Obfuscated code
(Prevenzione – Agente)
• il codice viene “offuscato” in modo tale che
nessuno sia in grado di capire il suo
funzionamento, o sia in grado di modificarlo senza
che ciò venga rilevato.
Palermo, 24 giugno 2004
41
La Sicurezza in Jade: Jade-S
Due modelli di sicurezza:
• Code-Centric: tipico del linguaggio JAVA
• User-Centric: introdotto con JADE-S
Palermo, 24 giugno 2004
42
Modello Code-Centric
• Alla base di tutto c’è il codice.
• Le decisioni da prendere in materia di sicurezza si
basano sulle caratteristiche del codice da eseguire, da
quale dominio proviene, chi lo ha firmato
• Si presta poco per applicazioni ad agenti mobili.
Palermo, 24 giugno 2004
43
Modello User-Centric
• Le misure di sicurezza sono basate sull’utente, su chi esegue
l’applicazione e non sull’applicazione che viene eseguita.
Il modello Jade individua i seguenti concetti:
• Principal
• Risorse
• Permessi
ed è in grado di gestire:
Autenticazione, Autorizzazione
Delega, Canali Sicuri
Palermo, 24 giugno 2004
44
Principal
• Il principal è una qualsiasi entità la cui identità può
essere provata. (persone, enti, associazioni)
• In Jade-S anche i singoli agenti vengono associati ad
un principal, il cui nome è quello dell’agente stesso
• Più utenti possono essere raggruppati in gruppi in
modo da associare gerarchicamente i privilegi e
rendere flessibili le politiche di sicurezza.
Palermo, 24 giugno 2004
45
Risorse
1. Sono presenti quelle del modello Java: file system,
accessi alla rete, accessi a basi di dati.
2. Inoltre sono risorse gli agenti stessi ed i container
3. Sono organizzate gerarchicamente in modo da
essere raggruppate nella concessione dei permessi.
4. Tra di esse non sono presenti tempi di cpu, spazio in
memoria o su disco.
Palermo, 24 giugno 2004
46
Permessi
• E’ l’oggetto che attribuisce la capacità di eseguire
un’azione
• Alla richiesta di un accesso ad una risorsa, le funzioni
di controllo confrontano i permessi del principal con
quelli che servono per quell’operazione
Palermo, 24 giugno 2004
47
Autenticazione
• Ad ogni entità bisogna dare un’identità, per
assegnargli i permessi e i privilegi.
• Autenticazione degli utenti in jade un utente si
autentica come proprietario di un agente tramite
username e password.
Autenticazione degli agenti avviene quando questi
richiedono accesso alle risorse tramite un certificato
di identità.
Palermo, 24 giugno 2004
48
Autorizzazione
• Ogni agente ha un certificato di autorizzazione, dove
sono elencati i permessi concessi all’agente.
• Questi certificati possono essere ottenuti all’atto della
creazione o tramite delega da altri agenti
Palermo, 24 giugno 2004
49
Delega
• Quando un oggetto “delegante” autorizza un altro
“delegato” ad eseguire un compito utilizzando alcuni
diritti di cui il delegante è in possesso.
• Delega semplice il delegante delega il delegato a
svolgere un suo compito usando i propri diritti.
• Delega a cascata il delegato delega a sua volta un
altro agente a svolgere un suo compito usando i
propri diritti e quelli ricevuti dal delegante.
Palermo, 24 giugno 2004
50
Canali Sicuri
• I container di Jade-S possono essere connessi alla piattaforma
principale tramite collegamento remoto usando canali sicuri.
• In Jade-S il modello proposto usa il protocollo SSL (Secure
Sockets Layer)
• Protocollo sviluppato da Netscape
• Usa una combinazione di processi crittografici.
• Le comunicazioni si basano su:
– Negoziazione: le due parti si accordano sui meccanismi
di cifratura da utilizzare
– Autenticazione: le parti si identificano e scelgono la
chiave segreta
– Invio dati cifrati: sarà usata la chiave scelta
Palermo, 24 giugno 2004
51
Bibliografia
• Wayne Jansen, Tom Karygiannis
NIST Special Publication 800-19 – Mobile Agent Security
• Wayne A. Jansen
Countermeasures for Mobile Agent Security
• Giosuè Vitaglione
Jade Tutorial
• Agostino Poggi, Giovanni Rimassa, Michele Tomaiuolo
Multi-User and Security Support for Multi-Agent Systems
Palermo, 24 giugno 2004
52
Scarica

Contromisure nei sistemi ad agenti