Mandatory access control: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Descrizione: 1 wlink |
m →Descrizione: typo |
||
(6 versioni intermedie di 4 utenti non mostrate) | |||
Riga 7:
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 (informatica)|autorizzazione]] che esamina gli attributi di sicurezza di soggetti e oggetti e decide se l'accesso può aver luogo oppure deve essere negato.
Anche un sistema di gestione della [[base di dati]] ([[DBMS]]), può applicare il MAC come meccanismo di controllo degli accessi
Per storia e tradizione, il MAC è strettamente correlato con i sistemi
== Retroscena storico e implicazioni con la sicurezza multilivello ==
In passato, MAC era fortemente associato con la sicurezza multilivello (
La [[
Il termine "mandatory ("obbligatorio") ha acquisito un significato speciale nel MAC, derivante dal suo utilizzo nei sistemi militari.
Riga 46:
== Implementazioni ==
Alcune implementazioni di MAC, come il progetto Blanker di Unisys, erano certificate in modo
La loro tecnologia non è stata aggiornata ed è diventata obsoleta.
Oggi non ci sono implementazioni certificate da TCSEC a quel livello di robustezza.
Esistono comunque prodotti meno robusti:
*RSBAC di Amon Ott fornisce un framework per i kernel Linux che ammette la presenza di diversi modelli decisionali sulla sicurezza. Uno dei modelli implementato è il controllo obbligatorio d’accesso. Un obiettivo generale del
*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 Linux|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]] è un'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 [[Windows Server 2008|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.
|