Capability based computer systems
Download
1 / 55

Capability-Based Computer Systems - PowerPoint PPT Presentation


  • 189 Views
  • Uploaded on

Capability-Based Computer Systems. Corso di Sicurezza a.a.2002/03. Indice (1/2). Introduzione Problema:Controllo degli accessi Matrice di protezione ACL Lista di capability Cos’è una capability? Capability-Based Computer Systems. Indice (2/2). Capability : Problemi

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Capability-Based Computer Systems' - bernard-ferguson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Capability based computer systems

Capability-Based Computer Systems

Corso di Sicurezza a.a.2002/03


Indice 1 2
Indice (1/2)

  • Introduzione

  • Problema:Controllo degli accessi

  • Matrice di protezione

    • ACL

    • Lista di capability

  • Cos’è una capability?

  • Capability-Based Computer Systems


Indice 2 2
Indice (2/2)

  • Capability : Problemi

    • Memorizzare le capability

    • Revocare l’accesso

  • Capability vs ACL

  • EROS:un sistema operativo basato su capability

    • Persistenza

    • Capability


Introduzione 1 2

File System

Sistemi non necessariamente connessi in rete

Introduzione (1/2)

Sicurezza nei Sistemi Operativi stand-alone


Introduzione 2 2
Introduzione (2/2)

  • In un Sistema Operativo, la parte file system gestisce informazioni che sono di grande valore per gli utenti

  • La protezione di queste informazioni verso usi non autorizzati è uno dei problemi principali


Problema controllo degli accessi 1 4
Problema: Controllo degli accessi (1/4)

  • Problema base : Controllare a quali oggetti può accedere un dato processo e in quali modi

  • Tali oggetti possono essere componenti hardware (CPU, segmenti di memoria, lettori di dischi, stampanti..) o software(processi, file, basi di dati, semafori..)

  • Accesso = quali operazioni posso fare sugli oggetti (leggere, modificare, cancellare un file...)


Problema controllo degli accessi 2 4
Problema: Controllo degli accessi (2/4)

  • determina a cosa un processo può accedere e non a cosa una persona può accedere

  • Importante distinzione perché:

    • La stessa persona può agire con differenti identità (login)

    • Lo stesso programma può girare per conto di utenti diversi con diritti diversi

    • Le persone non sempre sanno quali programmi stanno lanciando


Problema controllo degli accessi 3 4
Problema: Controllo degli accessi (3/4)

  • Parlando di controllo degli accessi faccio riferimento a quattro concetti:

    • Preventing access: assicurarsi che una persona non possa danneggiarne un’altra o carpirne informazioni private

    • Limiting access : Accertarsi che un processo o un utente non faccia più di quello che gli è consentito


Problema controllo degli accessi 4 4
Problema: Controllo degli accessi (4/4)

  • Granting access: Voglio ad esempio consentire a due persone di lavorare contemporaneamente sullo stesso documento oppure consentire l’accesso ad un file ad una persona alla quale voglio delegare un compito.

  • Revoking access: Dopo aver consentito ad una persona l’accesso ad un oggetto, voglio negarglielo


Matrice di protezione 1 4
Matrice di protezione (1/4)

  • Una macchina virtuale è composta da:

    • Oggetti: implementano un insieme di operazioni

    • Soggetti: invocano le operazioni implementate dagli oggetti

  • Una componente può essere oggetto ad un istante e soggetto ad un istante diverso


Matrice di protezione 2 4
Matrice di protezione (2/4)

  • Definisce ad ogni istante lo stato di protezione del sistema : quali operazioni possono essere eseguite da un soggetto del sistema

  • Ogni sistema che ha tra i suoi obiettivi la robustezza deve avere una rappresentazione di questa matrice


Matrice di protezione 3 4

Oggetti

o1

o2

o3

o4

o5

o6

....

oN

op1 op2

op1

s1

op1 op2

op3

op1 op2

Soggetti

op1

op2

s2

op1 op2

op3

s3

op2

op2

Matrice di protezione (3/4)


Matrice di protezione 4 4
Matrice di protezione (4/4)

  • Le operazioni che possono essere invocate da un soggetto X all’istante t definiscono i diritti di X in quell’istante (dominio di protezione di X)

  • La matrice di protezione può essere implementata:

    • Per colonne(per oggetti):ACL

    • Per righe (per soggetti): Liste di Capability


Acl 1 3
ACL (1/3)

  • Idea: associare ad ogni oggetto una lista contente tutti i soggetti che possono accedere all’oggetto e come

  • Questa lista viene detta ACL(Access Control List)

  • In Unix: Ciascun elemento della lista di protezione sarà del tipo Nomefile:(uid,gid,permessi)


Acl 2 3
ACL (2/3)

  • Il controllo è spostato nell’oggetto

  • Quando un oggetto riceve una invocazione controlla se nella sua lista esiste il diritto corrispondente

  • Aumenta l’autonomia dell’oggetto rispetto al soggetto


Acl 3 3
ACL (3/3)

  • Esempio: Quattro utenti Jan, Els, Jelle e Mike che appartengono rispettivamente ai gruppi system, staff, student e student

  • File0: (Jan,*,RWX)

  • File1(Jan,system, RWX)

  • File2: (Jan,*,RW-), (Els, staff, RW-), (Mike,*,RWX)

  • File3: ( *, student, R--)

  • File4: (Jelle,*,---), (*,student, R--)


Lista di capability 1 2
Lista di capability (1/2)

  • Idea: associare ad ogni soggetto la lista degli oggetti ai quali ha accesso insieme all’elenco delle operazioni consentite per ciascuno di essi

  • Nella rappresentazione interna di un soggetto esiste la lista delle capability del soggetto


Lista di capability 2 2
Lista di capability (2/2)

  • Se il soggetto X può invocare l’operazione op sull’oggetto Y allora X ha una capability(Y,op)

  • Ad ogni invocazione di un operazione si controlla che esista una capability che lo permetta

  • Il controllo avviene nell’ambiente del soggetto


Cos una capability
Cos’è una capability?

  • Termine introdotto per la prima volta da Dennis e Van Horn nel 1966

  • Idea: Vogliamo progettare un sistema software

    • Per accedere ad un oggetto un processo deve avere uno speciale “token”

    • Questo token descrive un oggetto e conferisce al processo il diritto di eseguire un insieme di azioni su quell’oggetto.

    • Tale token è detto capability





Capability based computer systems 1 3
Capability-Based Computer Systems (1/3)

Accesso

Capability

  • L’accesso agli oggetti è realizzato attraverso delle capability

  • Le capability sono l’unico mezzo di accesso agli oggetti del sistema


Capability based computer systems 2 3
Capability-Based Computer Systems (2/3)

  • Un processo che vuole eseguire una certa azione su un oggetto deve possedere una capability su quell’oggetto

  • L’unico modo per ottenere le capability è ottenerle a seguito di una comunicazione

  • Se il processo A possiede la capability di comunicare con B allora in seguito possono scambiarsi capability l’uno con l’altro


Capability based computer systems 3 3
Capability-Based Computer Systems (3/3)

  • Possedere un numero elevato di capability è assurdo

  • Obiettivo: rendere l’insieme delle capability possedute il più specifico e piccolo possibile (principio del minimo privilegio)

  • Un processo non può abusare di una autorità che non ha


Capability problemi
Capability: problemi

  • Primo problema: conservare le informazioni relative alle capability consentendone un futuro accesso

  • Secondo problema: revocare l’accesso in modo selettivo


Memorizzare le capability 1 2
Memorizzare le capability (1/2)

  • Ci chiediamo:

    • Dove vanno a finire quando il sistema è shut-down e come vengono recuperate?

    • Da dove i processi presenti all’avvio del sistema prendono le loro capability?

    • Quale autorità le conserva?


Memorizzare le capability 2 2
Memorizzare le capability (2/2)

  • Problema che affligge i capability systems designers fin dai primi anni ‘70

  • Principale causa del fatto che pochi capability systems siano stati finora realizzati


Soluzione tradizionale 1 2
Soluzione tradizionale (1/2)

  • Ho una sorta di file system che garantisce di default ad ogni processo il privilegio di accedere al file system

  • Inoltre, utilizzo una specie di user-identity based system per decidere quale programma può accedere a quali file (Se un programma sta girando per conto dell’utente A potrà accedere soltanto ai file che A ha creato)


Soluzione tradizionale 2 2
Soluzione tradizionale (2/2)

  • Questo tipo di sistema

    • mi permette di effettuare: Prevent e Revoke access

    • non mi consente di effettuare: Limit e Grant access

  • Inoltre non mi permette di delegare l’autorità su un oggetto


Soluzione migliore universal persistence 1 3
Soluzione migliore: Universal Persistence (1/3)

  • Non avere un file system comune

  • Non dare ad ogni processo l’accesso al file system di default (I file system sono molto utili ma molti programmi o sottosistemi non hanno bisogno di accedervi)

  • Idea : ricordare tutto


Soluzione migliore universal persistence 2 3
Soluzione migliore: Universal Persistence (2/3)

  • Ogni 5 minuti tener traccia degli oggetti su cui il sistema sta lavorando

  • Se stavo lavorando su un file e avviene il reset del sistema, al riavvio si tornerà all’ultima copia salvata

  • Poiché viene salvata una copia di tutti i processi non c’è bisogno di capire chi è incaricato di cosa quando il sistema riparte


Soluzione migliore universal persistence 3 3
Soluzione migliore: Universal Persistence (3/3)

  • Si può pensare che sia inefficiente

  • In realtà:

    • Ha più velocità di esecuzione di un File System

    • Richiede meno codice

  • É usato da EROS (attualmente il più veloce capability system esistente)


Revocare l accesso 1 4
Revocare l’accesso (1/4)

  • Non c’è modo di dire: “revoca tutti i permessi che Fred ha su questo oggetto” (revoca selettiva)

  • Nella realtà questo problema si presenta spesso: ad esempio se un impiegato si trasferisce in un’altra ditta voglio fare in modo che non abbia più accesso ai vecchi file.


Revocare l accesso 2 4
Revocare l’accesso (2/4)

  • Tre aspetti:

    • Rimuovere interamente l’accesso di un utente

    • Revocare il corrente accesso di un utente senza rimuovere l’utente

    • Revocare l’accesso dell’utente ad un particolare oggetto


Revocare l accesso 3 4
Revocare l’accesso (3/4)

  • Soluzione 1: Si risolve eliminando la login dell’utente

  • Soluzione 2,3: Creare una nuova login per lo stesso utente e copiare nel nuovo account tutti i documenti personali a cui l’utente vuole accedere


Revocare l accesso 4 4
Revocare l’accesso (4/4)

  • Oppure: costruire un “contenitore” che non consenta di copiare i documenti fuori da esso e ne consenta invece l’accesso agli utenti solo dentro al contenitore (n.b. diverso da uno user group)


Capability vs acl 1 4
Capability vs ACL (1/4)

  • Diritti di accesso e persistenza(Cosa succede quando avviene il shut down del sistema e tutti i processi scompaiono?)

    • ACL:nessun problema, anche le sessioni di login scompaiono

    • Capability:il problema c’è. Soluzioni: associare una lista di capability iniziale ad ogni login oppure rendere persistenti tutti i processi


Capability vs acl 2 4
Capability vs ACL (2/4)

  • Minimo privilegio

    • Capability: forniscono una granularità più fine di protezione. Ogni processo ha uno specifico insieme di diritti di accesso

    • ACL:ogni processo eseguito da Fred ha gli stessi diritti.


Capability vs acl 3 4
Capability vs ACL (3/4)

  • Revoca dei privilegi

    • ACL: posso rimuovere un utente dalla lista ed egli non potrà più accedere ai suoi oggetti

    • Capability: non c’è un’ operazione equivalente. Questo è un problema : gli utenti vanno e vengono e dobbiamo essere in grado di rimuoverli affinché non possano più accedere ai vecchi dati.


Capability vs acl 4 4
Capability vs ACL (4/4)

  • Delega dei diritti

    • ACL: non possibile trasferire i diritti. Se Fred ottiene il diritto su un oggetto non può trasferirlo a Mary.

    • Capability: posso trasferire le capability. Questo è molto utile ( delego ad una persona un compito ) ma anche pericoloso ( se il programma che sto eseguendo è “malizioso” può rubarmi i diritti di accesso )


EROS

  • E’ un nuovo Sistema Operativo basato su capability implementato inizialmente presso l’Università della Pennsylvania, in seguito portato avanti presso la Johns Hopkins University

  • Team di sviluppatori: Jonathan S. Shapiro, Jonathan Adams, Colin McLean, Mike Laskin, Mike Berry, Daniel Brushteyn


Eros persistenza 1 3
EROS: persistenza (1/3)

  • In molti sistemi operativi le applicazioni muoiono quando il sistema ha un crash. Tutte le informazioni non salvate vengono perse

  • In EROS questo non succede: una volta che un’applicazione viene lanciata continua ad operare anche dopo il crash del sistema.


Eros persistenza 2 3
EROS: persistenza (2/3)

  • Tutto questo è realizzato mediante una tecnica chiamata checkpointing: ogni 5 minuti viene fatta una fotografia di uno stato consistente del sistema e tutte le informazioni relative vengono salvate.

  • Il ripristino del sistema avviene agevolmente e rapidamente


Eros persistenza 3 3
EROS: persistenza (3/3)

  • Altri vantaggi del checkpointing:

    • Richiede 100ms ogni 5 minuti.

    • Molte applicazioni non devono più salvare le proprie informazioni su file

    • Migliora le prestazioni del disk drive. Il meccanismo di checkpoint sposta i dati raggruppati in blocchi. I dischi in eros sono più veloci rispetto a Windows e Unix


Eros capability 1 8
EROS: capability (1/8)

  • Costituisce il meccanismo del sistema per garantire la sicurezza e il controllo degli accessi

  • Come già detto, una capability consente a chi la possiede di effettuare specifiche operazioni su un determinato oggetto

  • Il possesso della capability è la condizione necessaria e sufficiente per effettuare det. operazioni su un det.oggetto


Eros capability 2 8
EROS: capability (2/8)

  • In EROS i processi posseggono le capability per conto dei loro utilizzatori

  • In contrasto: Unix e Microsoft Windows in cui:

    • Ogni programma ha accesso al file system e può creare, rimuovere, aprire, modificare i file presenti

    • La protezione è basata sull’identità dell’utente che sta utilizzando l’applicazione piuttosto che su cosa l’applicazione è autorizzata a fare


Eros capability 3 8
EROS: capability (3/8)

  • EROS consente di delegare i diritti , Unix e Microsoft Windows no

  • EROS risolve ad esempio alcuni problemi che si possono presentare per quanto riguarda il controllo degli accessi e l’integrità


Eros capability 4 8
EROS: capability (4/8)

  • Problema 1: A ha un database di un certo valore e non vuole che venga copiato. Vende a B il diritto di eseguire un numero fissato di query e vuole assicurarsi che A non ne lanci più di quelle che ha pagato.

  • Soluzione: nei sistemi tradizionali è difficile da risolvere. In un capability system no.


Eros capability 5 8

Client

Mediator

Database

EROS: capability (5/8)

  • Interpongo un mediatore tra il Client e il Database. Il Mediatore manterrà un contatore e quando sarà a zero mi impedirà di lanciare ulteriori query.

  • In questo modo solo il Mediatore ha accesso al Database, mentre l’utente no. La sicurezza non viene compromessa.


Eros capability 6 8
EROS: capability (6/8)

  • Problema 2: B ha un database costoso e A ha implementato un importante algoritmo che B ha bisogno di lanciare

    • A non vuole che B acceda al codice dell’algoritmo

    • B non vuole che A acceda al database

      Come possono collaborare?

  • Soluzione: impossibile in un sistema tradizionale. Piuttosto facile in un capability system.


Eros capability 7 8

Constructor

1

3

2

Client

Application

4

EROS: capability (7/8)

  • Fase1: Il Client chiede al Constructor: ”E’ sicuro se lancio questo programma?”


Eros capability 8 8
EROS: capability (8/8)

  • Fase2: Il Constructor risponde si o no basandosi sulle capability che il programma possiede. Il Client decide se lanciare o no il programma. Se si richiede una copia del programma.

  • Fase3: Il Constructor ne prepara una copia e restituisce una capability al Client

  • Fase4: Il Client e l’applicazione possono comunicare liberamente


Bibliografia
Bibliografia

  • Anrew S. Tanenbaum, Albert S.Woodhull Sistemi Operativi, Progetto e Implementazione

  • Cos’è una capability, Capability-Based Computer Systems

    http://www.eros-os.org/essays/00Essays.html

  • EROS

    http://www.eros-os.org/

  • Altri riferimenti e informazioni sulle capability http://www.capsecure.org/



ad