Mandatory access control

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Nella sicurezza informatica, il termine mandatory access control (MAC, in italiano: "controllo d'accesso vincolato") indica un tipo di controllo d'accesso alle risorse del sistema attraverso il quale il sistema operativo vincola la capacità di un soggetto (es. utente) di eseguire diverse operazioni su un oggetto o un obiettivo del sistema stesso.

Descrizione[modifica | modifica wikitesto]

Un soggetto può essere, ad esempio, un processo o un thread, ed oggetti i file, le cartelle, le porte TCP/UDP, segmenti di memoria condivisa e altro.

Il controllo di accesso si basa sulla specifica a priori di una serie di attributi di sicurezza rispettivamente per soggetti e oggetti: quando un soggetto tenta l'accesso a un oggetto, il kernel del sistema operativo avvia una regola di autorizzazione che esamina gli attributi di sicurezza di soggetti e oggetti e decide se l'accesso può aver luogo oppure essere negato.

Anche un sistema di gestione della base di dati (DBMS), come meccanismo di controllo degli accessi può applicare MAC. In questo caso gli oggetti sono rappresentati dalle tabelle, dalle viste, dalle procedure etc.

Per storia e tradizione, il MAC è strettamente correlato con i sistemi di sicurezza multilivello (MLS).

Retroscena storico e implicazioni con sicurezze multilivello[modifica | modifica wikitesto]

In passato, MAC era fortemente associato con sicurezze multilivello (multilevel security – MLS) in modo da proteggere le informazioni classificate americane. La Trusted Computer System Evaluation_Criteria (TCSEC) ha provveduto alla originale definizione del MAC come “una forma di restrizione d’accesso ad oggetti basata sulla sensibilità delle informazioni contenute in oggetti e l’autorizzazione formale di soggetti di accedere alle formazioni di tale sensibilità”. Più recenti implementazioni di MAC come Honeywell’s SCOMP, USAF SACDIN, NSA Blacker, e Boeing’s MLS LAN incentrata su MLS per proteggere livelli classificati di orientamento militare con rinforzi robusti. Il termine obbligatorio in MAC ha acquisito un significato speciale derivante dal suo utilizzo nei sistemi militari. In questo contesto, MAC implica un estremamente elevato grado di robustezza che assicura che i meccanismi di controllo possano resistere a ogni tipo di sovversione, in modo da permetter loro di imporre controlli d’accesso che sono affidati su ordine di un governo come “l’Executive Order 12958” per le informazioni classificate americane. L’imposizione dovrebbe essere più imperativa che per applicazioni commerciali. Questo preclude l’applicazione di meccanismi efficienti; solo meccanismi che possono provvedere assolutamente o quasi al compito sono accettabili nel MAC. Questo è un alto ordine e a volte risulta irrealistico a coloro che non sono familiari con strategie ben certe, e molto difficile per coloro che invece lo sono.

Gradi di potenza del sistema MAC[modifica | modifica wikitesto]

In alcuni sistemi, l’utente ha l’autorità di decidere se garantire l’accesso ad ogni altro utente. Per permettere questo, tutti gli utenti hanno autorizzazioni su tutti i dati. Questo non è necessariamente vero in un sistema MLA. Se esistono individui o processi a cui può essere negato l’accesso ad alcuni dati del sistema, allora il sistema deve imporre il MAC. Dal momento che ci possono essere diversi livelli di classificazione dei dati e utenti autorizzati, questo implica una quantificazione su scala per robustezza. Per promuovere la consistenza ed eliminare soggettività in termini di robustezza, un’estesa analisi scientifica e una valutazione degli argomenti ha prodotto una fondamentale standardizzazione di riferimento che quantifica le capacità di robustezza di sicurezza dei sistemi e li associa ai gradi di affidabilità garantiti per vari ambienti di sicurezza. I risultati sono stati documentati nel CSC-STD-004-85. Due componenti relativamente indipendenti di robustezza sono stati definiti: Assurance Level e Functionally. Entrambi sono stati specificati con livelli di precisione che garantiscono confidenze significative in certificazioni basate su questi criteri.

Evoluzione della potenza dei sistemi MAC[modifica | modifica wikitesto]

Il Common Criteria è basato su questa scienza e il suo intento è quello di preservare l’Assurance Level come livelli EAL e i funzionamenti specificati come Protection Profiles. Di questi due componenti essenziali di obiettiva robustezza dei segni di riferimento, solo i livelli EAL sono fedelmente preservati. Nel caso del TCSEC livello C2 è abbastanza fedelmente preservato nel Common Criteria, come il Controlled Access Protection Profile (CAPP). La sicurezza multilivello per la protezione dei profili è più generale rispetto al B2. Sono a conoscenza del MLS, ma manca una dettagliata implementazione dei requisiti degli Orange Book dei loro predecessori, concentrandosi maggiormente sugli obiettivi. Questo dà ai certificatori maggior flessibilità soggettiva nelle decisioni se le caratteristiche tecniche del prodotto raggiungono adeguatamente l’obiettivo, potenzialmente l’erosione della consistenza della valutazione dei prodotti e rendendo più facile ottenere la certificazione per la certificazione per prodotti meno affidabili. Per queste ragioni, l’importanza dei dettagli tecnici della protezione dei profili è critica per determinare l’adeguatezza di un prodotto. Una tale architettura previene l’autenticazione di utenti o processi di una determinate classificazione o livello di fiducia delle informazioni di accesso, processi, o dispositivi su diversi livelli. Questo fornisce un meccanismo di contenimento per utenti e processi, che entrambi lo sappiano oppure no.

Implementazioni[modifica | modifica wikitesto]

Alcune implementazioni di MAC, come il progetto Unisys’Blanker, erano certificate in modo abbastanza robusto da separare informazioni Top Secret da Classificati più tardi nell’ultimo millennio. La loro tecnologia è diventata obsoleta e non “rinfrescate”. Oggi non ci sono implementazioni certificate da TCSEC a quel livello di robustezza. Esistono comunque prodotti meno robusti:

  • Amon Ott’s RSBAC fornisce un framework per i nuclei di Linux che ammette la presenza di diversi modelli decisionali sulla sicurezza. Uno dei modelli implementato è il controllo obbligatorio d’accesso. Un obiettivo generale del design RSBAC era quello di provare a raggiungere “Orange Book” (TCSEC) livello B1. Il modello di MAC usato nel RSBAC è quasi lo stesso usato nei sistemi Unix V/MLS, versione 1.2.1 (sviluppato nel 1989 dal National Computer Security Center degli Stati Uniti d’America con una classificazione B1/TCSEC). RSBAC richiede un serie di aggiustamenti al magazzino, che sono mantenuti abbastanza bene dal proprietario del prodotto.
  • Un progetto di ricerca della National Security Agency chiamato SELinux ha aggiunto un'architettura di tipo MAC al Linux Kernel, che è stata poi implementata nella versione principale di Linux nell’agosto del 2003. Utilizza caratteristiche del nucleo Linux 2.6 chiamate LSM (Linux Security Modules interface). Red Hat Enterprise Linux versione 4 viene fornito con un kernel abilitato per SELinux. Sebbene SELinux sia in grado di limitare tutti i processi del sistema, il criterio di destinazione predefinito in RHEL limita i programmi più vulnerabili dal dominio non confinato in cui vengono eseguiti tutti gli altri programmi. RHEL 5 spedisce altri2 tipi di politiche binarie: strict, che tenta di implementare il minimo privilegio, e MLS, che si basa su strict e aggiunge etichette MLS. RHEL 5 contiene ulteriori miglioramenti MLS e ha ricevuto 2 certificazioni LSPP/RBACPP/CAPP/EAL4 nel Giugno del 2007.
  • TOMOYO Linux è implementazione leggera di Mac per Linux e Embedded Linux, sviluppata da NTT Data Corporation. È stata implementata nella versione principale di Linux Kernel 2.6.30 nel Giugno del 2009. A differenza degli approcci basati sulle etichette usati da SELinux, TOMOYO Linux esegue un Controllo d’Accesso Obbligatorio basato sul percorso del nome, separando domini della sicurezza in accordo con il processo di invocazione della storia, che descrive il sistema contemporaneo. Le politiche sono descritte in base al percorso. Una sicurezza dominante è semplicemente definita da un processo chiamato catena, e rappresentato da una stringa. Ci sono 4 modalità: disabilitato, apprendimento, permissivo, forzante. Gli amministratori possono assegnare diverse modalità a diversi domini. TOMOYO Linux introduce la modalità di “apprendimento”, nella quale gli accessi avvenuti nel nucleo sono automaticamente analizzati e memorizzati per generare politiche MAC: questa modalità potrebbe quindi essere il primo passo verso una politica di scrittura, rendendola più facile da personalizzare in seguito.
  • SUSE Linux e Ubuntu 7.10 hanno aggiunto una implementazione MAC chiamata AppArmor. AppArmor utilizza una funzione del kernel Linux 2.6 chiamata LSM (Linux Security Modules interfaces). LSM fornisce un'API del kernel che permette ai moduli del codice del kernel di gestire ACL (DAC ACL, liste di controllo d’accesso). AppArmor non è in grado di limitare tutti i programmi ed è opzionale nei kernel Linux dalla versione 2.6.36.
  • Linux e molte altre distribuzioni Unix hanno MAC per CPU, dischi, e memoria; mentre il software del sistema operativo non può gestire bene i privilegi, Linux è diventato famoso durante il 1990 essendo più sicuro e molto più stabile rispetto alle alternative non-Unix. I distributori Linux disabilitano MAC per essere i migliori DAC per alcuni dispositivi – anche se questo è vero per qualsiasi elettronica di consumo oggi.
  • grsecurity è una versione per il kernel Linux che fornisce un’implementazione MAC (precisamente, è una implementazione RBAC). grsecurity non è implementato attraverso LSM API.
  • Microsoft a partire da Windows Vista e Server 2008, Windows incorpora un controllo obbligatorio dell’integrità (Mandatory Integrity Control – MIC), che aggiunge livelli d’integrità (Integrity Level – IL) ai processi in esecuzione in una sessione logica. MIC restringe i permessi di accesso alle applicazioni che sono eseguite nello stesso account utente e che potrebbero essere meno affidabili. I cinque livelli di integrità sono: basso, medio, alto, sistema e programma di installazione affidabile. I processi iniziati da un utente regolare guadagnano un livello di integrità medio; processi elevati hanno un alto livello di integrità. Mentre i processi ereditano il livello di integrità dal processo da cui sono stati creati, il livello d’integrità può essere personalizzato in base al pre-processo: per esempio IE7 e gli eseguibili scaricati vengono eseguiti con un livello d’integrità basso. Windows controlla l’accesso agli oggetti attraverso il livello d’integrità, e inoltre definisce il limite per i messaggi di windows attraverso l’isolamento del privilegio dell’interfaccia utente (User Inteface Privilege Isolation). Oggetti con nome, inclusi file, chiavi di registri o altri processi e threads, hanno una voce nell’ACL che governa l’accesso ad essi che definisce il livello d’integrità minimo del processo che può utilizzare l’oggetto. MIC impone che un processo possa scrivere o cancellare un oggetto solo quando il suo livello d’integrità è uguale o superiore al livello d’integrità dell’oggetto. Inoltre, per impedire l’accesso ai dati sensibili in memoria, i processi non possono aprire processi con un livello d’integrità più alto per l’accesso in lettura.
  • FreeBSD supporta il controllo di accesso obbligatorio (Mandatory Access Control – MAC), implementato come una parte del progetto TrustedBSD. È stato introdotto nel FreeBSD 5.0. Dal FreeBSD 7.2, il supporto MAC è disponibile di default. La struttura è estensibile; vari modelli MAC implementano politiche come Biba e sicurezze multilivello.
  • Trusted Solaris di Sun usa un meccanismo di controllo sull’accesso obbligatorio e imposto dal sistema (MAC), dove vengono utilizzati nulla osta e etichette per applicare una politica di sicurezza. Tuttavia, si noti che la capacità di gestire le etichette non implica la forza del kernel di operare in modalità di sicurezza multilivello. L’accesso alle etichette e ai meccanismi di controllo non è adeguatamente protetto dalla corruzione di domini protetti gestiti dal kernel. Le applicazioni eseguite da un utente sono combinate con le etichette di sicurezza della sessione in cui l’utente lavora. L’accesso a informazioni, programmi e dispositivi è scarsamente controllato.
  • La struttura MAC OS X MAC di Apple è un’implementazione della struttura TrustedBSD MAC. Un’interfaccia sandboxing di alto livello limitata è fornita dalla funzione della linea di comando sandbox_int. Consultare la pagina sandbox_int del manuale per documentazione.
  • Oracle Label Security è un’implementazione del controllo di accesso obbligatorio (MAC) nel DBMS Oracle.
  • SE-PostgreSQL è un work in progress dal 27-01-2008, che fornisce l’integrazione nel SE-Linux. Il suo obiettivo è l’integrazione della versione 8.4, insieme alle restrizioni a livello di riga.
  • Trusted RUBIX è un controllo di accesso obbligatorio (MAC) che impone il DBMS che si integra completamente con SE-Linux per limitare l’accesso a tutti gli oggetti del database.
  • Il sistema operativo Astra Linux sviluppato per l’esercito russo ha il proprio controllo di accesso obbligatorio (MAC).
  • [Smack (software)|Smack] (Simplified Mandatory Access Control Kernel) è un modulo di sicurezza del kernel Linux che protegge i dati e processa l’interazione manipolazioni dannose usando una serie di regole di controllo d’accesso obbligatorie e personalizzate, con la semplicità come obiettivo principale di progettazione. È stato ufficialmente unito dalla versione rilasciata di Linux 2.6.25.

Note[modifica | modifica wikitesto]

1. "Technical Rational Behind CSC-STD-003-85: Computer Security Requirements". 1985-06-25. Archiviato dall'originale il 15 luglio del 2007. Recuperato il 15-03-2008.

2. "The Common Criteria Portal" Archiviato il 18 luglio 2006 in Internet Archive.. Recuperato il 15-03-2008.

3. Dipartimento della Difesa Americano (Dicembre 1985). "DoD 5200.28-STD: Trusted Computer System Evaluation Criteria". Recuperato il 15-03-2008.

4. "Controlled Access Protection Profile, Version 1.d" Archiviato il 7 febbraio 2012 in Internet Archive.. Agenzia della Sicurezza Nazionale. 10-08-1999. Recuperato il 15-03-1008.

5. "Protection Profile for Multi-Level Operating Systems in Environments Requiring Medium Robustness, Version 1.22". Agenzia della Sicurezza Nazionale. 23-05-2001. Recuperato il 15-03-2008.

6. National Information Assurance Partnership. "The Common Criteria Evaluation and Validation Scheme Validated Products List". Archiviato dall’originale il 14-03-2008. Recuperato il 15-03-2008.

7. "TOMOYO Linux, an alternative Mandatory Access Control". Linux 2 6 30. Linux Kernel Newbies.

8. "Linux 2.6.36 released 20 October 2010". Linux 2.6.36. Linux Kernel Newbies.

9. "Why doesn't grsecurity use LSM?".

10. Matthew Conover. "Analysis of the Windows Vista Security Model". Symantec Corporation. Archiviato dall’originale il 25-03-2008. Recuperato il 08-10-2007.

11. Steve Riley. "Mandatory Integrity Control in Windows Vista". Retrieved 2007-10-08.

12. Mark Russinovich. "PsExec, User Account Control and Security Boundaries". Recuperato il 08-10-2007.

13. TrustedBSD Project. "TrustedBSD Mandatory Access Control (MAC) Framework". Recuperato il 15-03-2008.

14. "sandbox_init(3) man page". O7-07-2007. Recuperato il 15-03-2008.

15. "SEPostgreSQL-patch".

16. "Security Enhanced PostgreSQL".

17. "Trusted RUBIX".

18. (in Russo) Ключевые особенности Astra Linux Special Edition по реализации требований безопасности информации

19. "Official SMACK documentation from the Linux source tree". Archiviato dall’originale il 21-09-2012.

20. Jonathan Corbet. "More stuff for 2.6.25". Archiviato dall’originale il 21-09-2012.

Bibliografia[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • Weblog post sul modo in cui la virtualizzazione può essere usata per l’implementazione del controllo obbligatorio d’accesso.
  • Weblog post da un impiegato Microsoft che descrive il controllo obbligatorio dell’integrità (Mandatory Integrity Control) e come differisce dalle implementazioni MAC.
  • GWV Formal Security Policy Model Una politica di sicurezza formale del kernel di separazione, David Greve, Matthew Wilding e W. Mark Vanfleet.
Sicurezza informatica Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di sicurezza informatica