Rule Set Based Accessi Control (RSBAC) per Linux - Panoramica Amon Ott Michal Purzynski Guillaume Destuynder Franco Tampieri Questo documento vuole illustrare il sistema di controllo d'accesso RSBAC. 1.2 2005-10-11 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
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.

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).