In questa sezione viene descritto un esempio
di configurazione della politica di sicurezza sviluppata per SELinux.
Gli obiettivi di tale esempio sono di dimostrare la flessibilitą e la sicurezza
del MAC e di fornire un sistema
funzionante con minime modifiche alle applicazioni. La configurazione esempio
consiste di una combinazione di RBAC
e TE.
L'esempio definisce un insieme di domini e tipi TE.
 |
Domini TE
|
 |
Tipi TE
|
Ogni processo ha un dominio associato e ogni oggetto ha un tipo associato.
La configurazione della politica specifica gli accessi consentiti dai domini
ai tipi e le interazioni consentite tra domini. Specifica quali tipi di programmi
possono essere usati per accedere ad ogni dominio e per le transizioni permesse
tra domini. Specifica, anche, le transizioni automatiche tra domini quando
alcuni tipi di programmi sono eseguiti. Queste transizioni assicurano che
i processi di sistema e alcuni programmi siano memorizzati nei loro domini
automaticamente.
La configurazione definisce, anche, un insieme di ruoli.
 |
Ruoli RBAC
|
Ogni processo ha un ruolo associato, per
esempio tutti i processi di sistema girano in modalitą system_r.
Due ruoli sono, attualmente, definiti per gli utenti: user_r,
per gli utenti ordinari, e sysadm_r, per gli amministratori di
sistema. Questi ruoli sono settati inizialmente dal programma login
e possono essere cambiati con il programma newrole, che č simile
al programma su.
La configurazione della politica specifica un insieme di domini che possono
essere accessi da ogni ruolo. Ogni ruolo utente ha un dominio di login iniziale
associato, il dominio user_t, per il ruolo user_r,
e il dominio sysadm_t, per il ruolo sysadm_r. Il
dominio di login iniziale č associato con la shell di login iniziale dell'utente.
Quando l'utente esegue dei programmi le transizioni agli altri domini
possono verificarsi automaticamente per supportare cambi nei privilegi. Per
esempio, le transizioni dal dominio user_t al dominio user_netscape_t
e le transizioni dal dominio sysadm_t al dominio sysadm_netscape_t,
quando il programma netscape viene eseguito per restringere il
browser ad un sottoinsieme dei permessi dell'utente.
Figura 4: Configurazione per
l'esecuzione di insmod.
 |
La figura 4 mostra una porzione della configurazione di politica che permette
al dominio dell'amministratore di lanciare il programma insmod per
l'inserimento di moduli nel kernel. Il programma insmod č etichettato
con il tipo insmod_exec_t e gira nel dominio insmod_t.
La prima regola permette al dominio sysadm_t di lanciare il programma
insmod, la seconda permette al dominio sysadm_t di transire
nel dominio insmod_t, la terza permette l'accesso al dominio
insmod_t da parte del programma insmod e di eseguire
codice da questo programma, la quarta permette al dominio insmod_t
di ereditare e usare file descriptors dal dominio sysadm_t, la quinta
permette al dominio insmod_t di usare la capacitą CAP_SYS_MODULE,
l'ultima permette al dominio insmod_t, quando termina, di inviare
il segnale SIGCHLD al sysadm_t.
Da quest'ultimo esempio, si capisce che la flessibilitą del MAC produce un corrispondente
incremento nella complessitą di gestione della politica di sicurezza.
La configurazione della politica definisce tipi distinti per le devices di memoria
del kernel, devices dischi e /proc/kcore. Definisce, inoltre, domini
separati per processi che richiedono l'accesso a questi tipi, come klogd_t
e fsadm_t.
La configurazione protegge l'integritą del kernel. Definisce tipi distinti per
file di boot, module object files, utilitą dei moduli, files di configurazione
dei moduli e per i parametri sysctl, e definisce domini separati
per processi che richiedono l'accesso in scrittura a tali files.
La configurazione protegge, inoltre, l'integritą del software di sistema, le informazioni
di configurazione del sistema e i logs di sistema. La configurazione definisce
tipi distinti per le librerie e i binari di sistema per controllare l'accesso
a questi file. Solo all'amministratore č permesso modificare il software di sistema.
La configurazione limita potenziali danni che possono essere causati attraverso
lo sfruttamento di buchi in processi che richiedono privilegi, in processi di sistema
o in programmi con privilegi aumentati. Tale limitazione č ottenuta memorizzando
i programmi e i processi di sistema privilegiati in domini separati, con ogni
dominio limitato ai soli permessi che esso richiede.
I processi privilegiati sono protetti dall'esecuzione di codice malizioso. La
configurazione definisce un tipo eseguibile per i programmi eseguiti da ogni processo
privilegiato e permette solo le transizioni a domini privilegiati eseguendo tale
tipo. Al dominio dell'amministratore č permesso eseguire programmi creati dall'amministratore
e software di sistema, ma non programmi creati da utenti ordinari o processi di
sistema.
La configurazione non permette l'accesso al ruolo e al dominio dell'amministratore
senza l'autenticazione dell'utente. A tal proposito, la configurazione permette
solo le transizioni al ruolo e al dominio dell'amministratore tramite il programma
login, il quale richiede all'utente di identificarsi prima di lanciare
una shell con il ruolo e il dominio dell'amministratore.
Essa previene le transizioni al ruolo e al dominio dell'amministratore tramite
logins remote per prevenire logins remote non autentificate attraverso files
.rhosts.
E' stato aggiunto il programma newrole per permettere ad utenti autorizzati
di accedere al ruolo e al dominio dell'amministratore durante una sessione di
logins remota, questo programma effettua una nuova autenticazione dell'utente.
Per fornire la confidenzialitą delle informazioni segrete di autenticazione, la
configurazione etichetta il file delle shadow password con il suo proprio tipo
e consente la lettura di questo tipo a programmi autorizzati, come login
e su.
I processi di utenti ordinari sono ostacolati dall'interferire con processi di
sistema e dell'amministratore. La configurazione permette solo ad alcuni processi
di sistema e dell'amministratore di accedere alle entrate procfs
di processi in altri domini. Controlla l'uso di ptrace su altri processi
e la consegna di segnali tra domini. Definisce tipi distinti per l'home directory
di utenti ordinari e l'home directory dell'amministratore. Assicura che files
creati in directories condivise, come /tmp, hanno tipi distinti basati
sul dominio creante.
La configurazione protegge gli utenti e l'amministratore dallo sfruttamento di
buchi nel browser netscape da parte di codice malizioso. Essa memorizza
il browser in un dominio separato e ne limita i permessi. Inoltre definisce un
tipo che gli utenti possono usare per limitare l'accesso di lettura del browser
a files locali, e definisce un tipo che gli utenti possono usare per concedere
l'accesso in scrittura a files locali.