Quello di Bell-Lapadula (BLM, noto anche come modello multi-livello) è un metodo per la tutela della riservatezza dei dati, che utilizza entrambi i meccanismi di controllo degli accessi mandatorio e discrezionale (DAC - discretionary access control, MAC mandatory access control).
In merito a questo, ricordiamo che uno dei pilastri di una strategia della sicurezza IT completa è l'implementazione di un controllo degli accessi appropriato. I quattro tipi fondamentali di controllo accessi sono:
- MAC - Mandatory Access Control
- DAC - Discretionary Access Control
- RuBAC - Rule-Based Access Control
- RBAC -Role-Based Access Control
Il Modello Bell-Lapadula è stato ideato per il Dipartimento della Difesa USA (DoD) nel periodo tra il 1973 ed il 1976 David Elliott Bell e Len LaPadula, da cui il nome.
Secondo questo modello formale, le entità di un Sistema Informativo vengono divise in soggetti e oggetti, a cui vengono assegnati delle classi di accesso (access classes), vale a dire i clearance level e i sensitivity level.
Ai soggetti vengono assegnati dei clearance level, mentre agli oggetti vengono assegnati dei sensitivity level.
Secondo quest'ottica, una access class consiste di due componenti:
- security level (TopSecret > Secret > Confidential > Unclassified)
- category set (un insieme di categorie che dipendono dall'applicazione in cui i dati sono usati e non è gerarchico; ad es. delle categorie possono essere la posta elettronica, i prodotti commerciali, le centali atomiche, etc.)
Ogni soggetto può inoltre accedere ai vari oggetti secondo modi di accesso (access modes) detti:
- Read: per la sola lettura
- Append: per l'aggiuntsa senza lettura
- Execute: per l'esecuzione (di software)
- Write: per la lettura-scrittura
Transizioni di stato
Attraverso specifiche operazioni lo stato del sistema può subire delle transizioni. Le transizioni di stato consentite all'interno del modello di Bell-LaPadula sono:
- Create object: attiva un oggetto inattivo rendendolo accessibile;
- Delete object: disattiva un oggetto attivo. È l'operazione inversa alla precedente;
- Get access: quando un soggetto guadagna l'accesso ad un oggetto;
- Release access: quando il soggetto termina l'accesso bisogna. È l'operazione inversa alla precedente;
- Give access: permette che i diritti di accesso ad un oggetto possano essere propagati da un soggetto ad un altro. L'operazione viene eseguita solo se rispetta le politiche di sicurezza;
- Rescind access: revoca un accesso precedentemente garantito con l'operazione precedente. Affinché questa operazione possa essere eseguita, il soggetto richiedente deve avere il permesso di scrittura sul genitore dell'oggetto interessato;
- Change subject security level: cambia l'attuale livello di sicurezza. Il nuovo livello deve essere inferiore della clearance attribuita inizialmente al soggetto;
- Change object security level: ha l'effetto di attribuire un nuovo valore alla funzione 'f' dell'oggetto inattivo; tale livello può solo essere aumentato, e non deve mai superare la clearance del soggetto richiedente il cambiamento.
Stato sicuro
Il concetto di uno Stato Sicuro è definito ed è provato dal fatto che ogni transizione preserva la sua sicurezza spostandosi da stato sicuro ad un altro stato sicuro.
Il passaggio da uno stato a un altro stato è definito da funzioni di transizione. Uno stato di sistema è definito sicuro se tutti i modi di accesso dei subjects and objects sono conformi alla politica di sicurezza.
Per determinare se un modo di accesso specifico è permesso, la clearance è paragonato alla classificazione dell'object (più precisamente: la combinazione di classificazione e l'insieme di compartimenti compongono il livello di sicurezza) per determinare se il soggetto è autorizzato a quello specifico modo di accesso.
Lo schema di accesso/classificazione è espresso in termini di un reticolo. Ogni operazione richiesta è controllata da un reference monitor, e la sua esecuzione è concessa se, e solo se, lo stato risultante in cui si verrebbe a trovare il sistema sia sicuro, ovvero soddisfi tutte le proprietà del modello.
Il modello definisce due regole obbligatorie del controllo accessi (MAC) e una regola discrezionale di controllo accessi (DAC) con tre proprietà sulla sicurezza:
- Simple Security Property (SS-property): dichiara che è possibile che un soggetto possa accedere ad un oggetto solo se il suo livello di sicurezza è maggiore od uguale a quello dell'oggetto; (quindi: no read up);
- Star-Property (*-property o S-property): dichiara che un soggetto può accedere all'oggetto solo per operazioni di append se ha un livello inferiore (rispetto all'oggetto), per operazioni di write se ha un livello uguale e per operazioni di read se ha un attuale livello di sicurezza superiore a quello dell'oggetto; (quindi no write-down);
- Discretionary Security Property (DS-property): utilizza una matrice di accesso per specificare il controllo accessi discrezionale; cioè ogni soggetto può esercitare solo gli accessi per cui ha la necessaria autorizzazione.
Questi principi di per sé non sono qualcosa di straordinario. Ad esempio il simple security rule, a guardarlo bene, è quanto di più elementare si poossa pensare come principio di sicurezza: se vuoi vedere qualcosa, devi essere autorizzato a farlo.
Queste regole insieme servono ad evitare che le informazioni possano propagarsi senza controllo da parte del proprietario, e sono lo strumento per impedire che il sistema possa essere espugnato da un trojan horse (Cavallo di Troia: virus nascosto in un programma che penetra tramite il programma in un computer).
Il trasferimento di informazioni da un paragrafo high-sensitivity a un documento lower-sensitivity può avvenire nel modello Bell-LaPadula per mezzo del concetto di soggetti di fiducia. Subjects di fiducia non sono limitati dalla proprietà.
Un Subject di fiducia deve essere mostrato e testato affinché possa essere dichiarato affidabile in merito alla politica di sicurezza.
Con Bell-LaPadula, gli utenti possono creare contenuto solo sopra il loro personale livello di sicurezza (i ricercatori Secret possono creare file Secret o Top-Secret ma non possono creare file Public): nessun write-down.
Al contrario, gli utenti possono esaminare contenuto solo sotto il loro personale livello di sicurezza (i ricercatori Secret possono esaminare file Public o Secret, ma non possono esaminare file Top-Secret): nessun read-up.
quindi riassumendo, il modello di Bell-Lapadula, essendo progettato per tutelare la riservatezza (confidentiality), è focalizzato sui diritti di lettura e scrittura. La lettura di materiale con livello di riservatezza superiore a quello di un soggetto, è di fatto una forma di accesso non autorizzato.
Il secondo principio menzionato (la star property) sancisce semplicemente che un soggetto ha facoltà di modifica (scrittura) di un oggetto solo se la sua classe di sicurezza è minore o uguale a quello dell'oggetto (no-write-down). Il suo scopo è la prevenzione della diffusione di informazioni ad utenti che non hanno il livello di accesso appropriato. Questo può essere utilizzato per prevenire il data leakage (ad esempio pubblicazione di dati di bilancio aziendali o bancari al pubblico).
Una schematizzazione grafica della modalità di gestione degli accessi secondo i principi menzionati è dato di seguito:
Dalla figura si evince come il soggetto al livello i a accesso read-write agli oggetto al livello i.
I soggetti al livello i, hanno però solo l'accesso read-only agli oggetti di livello inferiore ad i.
Sugli oggetti dei livelli superiori ad i, i soggetti a livello i hanno accesso in append.
Fonti:
- Wikipedia
- Singhal,M. and Shivaratri,N.: Advanced Concepts in Operating Systems , McGraw-Hill, 1994
- Peterson,J.L. and Silberschatz,A.: Operating System Concepts, 2nd ed, Addison Wesley, 1985
- Landwehr,C.E, Formal Models of Computer Security, ACM Computing Surveys, Sept. 1981
- Protection: Bell-Lapadula Model - by Harsh Manocha