cerca
ESP - Lezione 7 germile 216
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

ESP - Lezione 7 germile 216

 :: ESP - Lezione 7 germile 216 ::

Altrimenti noto come 27 marzo 2008

Torna alla pagina di ESP

Debolezza delle politiche discrezionarie

Per completare il discorso sui problemi di sicurezza delle politiche discrezionarie, vediamo che esse non sono in grado di prevenire gli attacchi basati su Trojan Horse.

Ecco uno scenario tipico.

L'utente Jane possiede un file, detto RobaCheScotta.txt, di cui è proprietaria. L'utente cattivo, Devilman, vorrebbe leggerlo, ma non può. Allora che cosa fa: crea un file dal nome FileInnocente.txt, e lo rende accessibile da parte di chiunque, e un programmino che Jane troverebbe molto utile, per esempio un programma che calcola la frequenza delle sedute dal parrucchiere in funzione delle fasi lunari.

Jane quindi esegue ignara questo programma, il quale però contiene occultamente delle operazioni che 1) leggono da RobaCheScotta.txt e scrivono su FileInnocente.txt. Tutto ciò è reso possibile dal fatto che Jane ha i permessi su RobaCheScotta.txt, ma anche su FileInnocente.txt, che è stato reso accessibile a tutti da Devilman.

Politiche Mandatorie

Questo è un altro tipo di politica. Distingue tra utenti, le persone, e soggetti, ovvero i processi. Gli utenti sono considerati fidati, le persone no. Ci sono anche gli oggetti.

I soggetti e gli oggetti vengono classificati tramite un'etichetta, che contiene 2 campi: 1) Un campo che contiene valori tratti da un insieme ordinato 2) Un campo che contiene valori tratti da un insieme non ordinato

Queste etichette possono essere di 2 tipi, cioè essere fatte in modo da garantire la confidenzialità oppure l'integrità. Ma vedremo questa distinzione più tardi.

L'etichetta è detta parzialmente ordinata, perché un suo campo è ordinato, mentre l'altro no. Il campo totalmente ordinato è il livello di sicurezza, d'ora in poi semplicemente livello. Il campo non ordinato è invece la categoria, che come le categorie del Wiki serve solo a distinguere i diversi ambiti.

Per chiarirci, i livelli potrebbero essere, in ordine gerarchico, TS (Top Secret) ≥ S (Secret) ≥ C (Confidential) ≥ U (Unclassified). Invece, le categorie potrebbero essere Amministrazione, Anagrafica, Armi Nucleari, e rappresentano i domini di competenza, cioè una suddivisione che il proprietario del sistema crea per distinguere tra dati pertinenti ad un'area e dati riguardanti un'altra area.

Le categorie vengono utili per fare in modo che un utente possa utilizzare solo dati che facciano parte della categoria su cui ha i permessi. Ad esempio, ad un'impiegata in segreteria non dovrebbe essere permesso di accedere impunemente ai dati relativi alle Armi Nucleari.

Le varie etichette, altrimenti dette classi di sicurezza, sono ordinate parzialmente tramite una relazione di dominanza, così definita:

 (L1, C1) e (L2, C2) sono 2 classi di sicurezza (L è il livello, C la categoria)
 (L1, C1) ≥ (L2, C2) sse
 * L1 ≥ L2
 * C1 ⊇ C2

Vuol dire che L1 deve essere maggiore o uguale di L2, e C1 deve comprendere o essere al più uguale a C2.

Esempio: I miei livelli sono quelli di prima, ovvero TSSCU, e le categorie sono ancora anagrafica, amministrazione e armi nucleari. La prima classe è x = (S, {anagrafica, amministrazione}). La seconda classe è y = (S, {amministrazione}). Posso dire che x ≥ y?

Possiamo verificarlo facilmente, controllando se le due proprietà sono rispettate

 * L1 ≥ L2? Sì, S ≥ S
 * C1 ⊇ C2? Sì, perché l'insieme {anagrafica, amministrazione} contiene
 l'insieme {amministrazione}

Ecco che x ≥ y.

Il reticolo di classificazione

Le classificazioni presentano delle simpatiche (?) proprietà.

Riflessività: una classe domina se stessa. Non sto qui a scribacchiarlo, però provate e vedrete che ovviamente soddisfa le condizioni di cui sopra.

Transitività: se xy, e yz, allora xz

Antisimmetria:se xy e yx, allora x = y. La cosa è logica, se fate riferimento alla proprietà della riflessività qualche riga più sopra.

Least Upper Bound: date 2 classi, x e y, esiste un'unica classe z che le domina entrambe, e che è la minore di tutte le classi che dominano x e y. Vedi dopo per i dettagli.

Greatest Lower Bound: date 2 classi, x, e y, esiste un'unica classe z che è dominata da entrambe, e che è la maggiore di tutte le classi dominate da x e y

Queste belle proprietà possono essere rappresentate graficamente in un reticolo, che io qui per pietà nei miei confronti non disegno.

Inoltre, le ultime due proprietà, il Least Upper Bound e il Greatest Lower Bound, familiarmente chiamati LUB e GLB, possono essere "trovati" secondo queste semplici formulette:

LUB: Il LUB tra (L1, C1) e (L2, C2) è (L3, C3), dove:

  • se L1 ≥ L2, L3 = L1; altrimenti L3 = L2 (in altre parole, prendo il maggiore tra i due livelli)
  • C3 = C1 ⋃ C2; cioè l'unione dei due insiemi

GLB: Il GLB tra (L1, C1) e (L2, C2) è (L3, C3), dove:

  • se L1 = L2, L3 = L2, altrimenti L3 = L1 (il più piccolo tra i due livelli)
  • C3 = C1 ⋂ C2.

Si possono fare esercizi al riguardo, e forse in un futuro ne faremo.

Controllo di sicurezza: classificazione

La classe assegnata ad un utente è detta clearance, ed è il livello di fiducia dell'utente. Quindi, ogni utente ha un livello di segretezza a cui può accedere, ed un'area di competenza data dalle categorie a cui può accedere.

Un utente può collegarsi al sistema utilizzando una qualsiasi classe che sia ≤ della sua clearance. Per garantire la segretezza, vanno rispettate queste due proprietà:

no write down: un soggetto può scrivere solo su oggetti di una classe ≥ della sua.

no read up: un soggetto può leggere solo oggetti di una classe ≤ della sua.

La seconda proprietà, no read up, è comprensibile: posso leggere solo gli oggetti appartenenti ad una classe che io posso dominare. Ma la prima potrebbe lasciare perplessi, ed infatti dice che posso scrivere su qualsiasi oggetto che sia ≥ della mia classe, ovvero che appartenga alla mia classe o a qualsiasi classe da me dominata. Questo vuol proprio dire che posso scrivere su dati di una classe superiore!

Infatti, questo sistema garantisce sì la confidenzialità, ovvero che non si possa leggere ciò che non mi è stato destinato, ma non garantisce l'integrità dei dati, come abbiamo appena visto. Il flusso delle informazioni va dal basso verso l'alto, ed è questo che garantisce la confidenzialità.

Torna alla pagina di ESP