1.4 Configurazione della Politica di Sicurezza

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.
Figura 4



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.



pagina precedente pagina successiva