Rule Set Based Accessi Control (RSBAC) per Linux - Panoramica
1.
Caratteristiche chiave
- Estensione di sicurezza Open Source (GPL) per il kernel Linux
- Indipendente da governi e grandi compagnie
-
Diversi modelli di sicurezza supportati, sia noti che nuovi, inclusi MAC,
ACL ed RC
-
Controlli programmabili sugli utenti individuali e sugli accessi di rete
- Possibile combinazione di diversi modelli
-
Facilmente estendibile: si può scrivere il proprio modello registrandolo in
fase di esecuzione
- Supporta tutti i kernel correnti
- Stabile per uso di produzione
2.
Cosa è RSBAC?
RSBAC è un framework open source per il controllo degli accessi, flessibile,
potente e veloce per i kernel Linux di uso corrente, rilasciato in versione
stabile dal gennaio 2000 (versione 1.0.9a). Lo sviluppo completo è stato fatto
indipendentemente, non usando nessun codice di controllo degli accessi
preesistente.
Il pacchetto standard contiene una vasta gamma di modelli di controllo degli
accessi come MAC, RC, ACL (si veda di seguito). Inoltre, la possibilità di
registrazione in fase di esecuzione, o "runtime" (REG) rende semplice
implementare moduli di controllo proprietari, trattandoli come fossero moduli
del kernel caricabili runtime.
Il framework RSBAC è descritto in modo esteso nel documento Generalized Framework for
Accessi Control (GFAC) di Abrams e LaPadula. In pratica tutte le chiamate
di sistema con aspetti rilevanti per la sicurezza vengono "estese" con un codice
di rinforzo. Questo codice esegue una chiamata verso un modulo centrale
decisionale, che a sua volta esegue una chiamata a tutti i moduli decisionali
attivi e decide se eseguire o meno la chiamata originaria. Il codice della
chiamata decisa viene poi "rinforzata" con estensioni delle chiamate di sistema
ed eseguita.
Le decisioni prese sono basate sul tipo di accessi (tipo di richieste), sul
target cui si accede e sui valori degli attributi associati a tali chiamate e
target. Altri attributi indipendenti possono essere usati da moduli individuali,
es. dal Privacy Module (PM). Tutti gli
attributi sono memorizzati in directory completamente protette, una per ogni
dispositivo montato. Di conseguenza il cambio di questi attributi richiede
chiamate di sistema speciali.
Ogni tipo di accesso alla rete può essere controllato individualmente per tutti
gli utenti e i programmi. Questo dà il pieno controllo sul comportamento in rete
e rende più semplice la prevenzione e l'identificazione degli accessi di rete
illegali.
Siccome tutti i tipi di decisione di accesso sono basati su richieste generiche
di decisione, politiche di sicurezza diverse possono essere implementate
mediante singoli moduli decisionali. A parte i modelli nativi mostrati di
seguito, l'opzione Module Registration (REG) permette di registrare moduli di
decisione addizionali personalizzati al runtime.
3.
Modelli implementati
Nella versione 1.2.5 di RSBAC, sono inclusi i seguenti moduli. Si noti che
tutti quanti sono opzionali.
MAC
Bell-LaPadula Mandatory Accessi Control Module
UM
Modello User Management. In RSBAC esso è basato sul kernel ed è complementare o
rimpiazza totalmente il sottosistema Linux. L'amministrazione degli utenti è
rinforzato da granularità e flessibilità.
PM
Privacy Model. Il modello di Simone
Fischer-Huebner nella sua prima implementazione. Si veda l'articolo RSBAC
su l' implementazione di
PM per la National Information Systems Security Conference (NISSC 98).
Dazuko
Questo non è un vero e proprio modello di controllo degli accessi, ma piuttosto
un modulo di protezione del sistema contro il malware. L'esecuzione e la lettura
dei file infettati da malware può essere prevenuta.
FF
Modello File Flags. Provvede e usa flag per directory e file, al momento
execute_only (file), read_only (file e directory), search_only (directory),
secure_delete (file), no_execute (file), add_inherited (file e directory),
no_rename_or_delete (file e directory, nessuna ereditarietà) e append_only
(file e directory). Solo gli addetti alla sicurezza FF possono modificare queste
flag.
RC
Modello Role Compatibility. Definisce ruoli e tipi per ogni target (file, dir,
dev, ipc, scd, process) del sistema. Per ciascun ruolo, la compatibilità con i
rimanenti e con tutti i tipi può essere personalizzata con la granularità
desiderata. Per l'amministrazione c'è un'ottima e granulare separazione dei
compiti. I diritti possono avere durata temporale limitata. Il modello e le
specifiche di implementazione sono descritte nell'articolo Nordsec 2002 RC
Paper
AUTH
Modello Authorization enforcement. Controlla tutte le richieste di CHANGE_OWNER
per processi target, e solo programmi/processi che hanno il permesso di eseguire
il generico setuid e quelli che lo hanno per il target user ID possono eseguire
di fatto questo comando. La capacità di esecuzione di setuid può essere
controllata da altri programmi/processi, es. demoni di autenticazione.
ACL
Modello Access Control Lists. In questo modello, per ogni oggetto esiste una
Lista di Controllo degli Accessi, che definisce quali soggetti possono accedere
ad un oggetto prefissato e con quali tipi di richiesta. I soggetti possono
essere di tipo user, ruolo RC e gruppo ACL. Gli oggetti sono raggruppati
mediante tipo di target, ma hanno liste personalizzate. Se non esiste nessuna
voce nella lista di un dato oggetto relativa a un dato soggetto, i diritti sono
"ereditati" da oggetti "genitori", filtrati da una maschera di "ereditarietà".
Diritti diretti (user) e indiretti (role, group) sono cumulabili. Per ogni tipo
di oggetto esiste una ACL predefinita all'apice della gerarchia prefissata. La
gestione dei gruppi è stata aggiunta nella versione 1.0.9a. Sia diritti che
appartenenza a un dato gruppo possono avere durata temporale limitata.
CAP
Modello Linux Capabilities. Per ogni utente e programma si possono definire un
insieme minimo e uno massimo di capacità, in termini di possibilità di
esecuzione di chiamate al sistema con aspetti di sicurezza, in ambiente Linux
("insieme dei diritti speciali di root"). Ciò permette ad esempio di eseguire
programmi server a semplici utenti, o di restringere i diritti dei programmi di
root nella maniera standard possibile in ambiente Linux.
JAIL
Modello Process Jails. Questo modello aggiunge una nuova chiamata di sistema,
la rsbac_jail, che è fondamentalmente un insieme maggiorato delle chiamate di
sistema jail di FreeBSD. Esso incapsula il processo chiamante e tutti i
sottoprocessi in un ambiente chroot con indirizzo IP prefissato e molte
ulteriori restrizioni.
RES
Modello Linux Resources. Per ogni utente e ogni programma si possono definire un
insieme minimo e uno massimo di risorse usabili dai processi generati in
ambiente Linux (ad esempio formato di memoria, numero di file aperti, numero di
processi per utente). Internamente questi insiemi sono usati come dato per
impostare le flag standard per le risorse in ambiente Linux.
Tutti i modelli di decisione sono trattati in dettaglio nella relativa pagina di
descrizione.
L'obiettivo generale del progetto RSBAC è quello di raggiungere un giorno il
livello B1 dell'(obsoleto) Orange Book (TCSEC).
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|