# Che cosa è il SELinux?
Il SELinux è un prototipo di sistema operativo ed un numero di utilities con avanzate funzionalità di sicurezza.

# Perchè SELinux?
SELinux nasce per far fronte alle limitazioni dei moderni Sistemi Operativi e per rispondere con il MAC, Mandatory Access Control, all'inadeguatezza del DAC (Discretionary Access Control) che permette al proprietario di un file o di una directory di concedere o negare l'accesso agli altri utenti.
Le nuove caratteristiche di Security-enhanced Linux sono disegnate per forzare la separazione delle informazioni basandosi su requisiti di confidenzialità ed integrità. Esse sono disegnate per prevenire che i processi possano leggere dati e programmi, alterare dati e programmi, bypassare i meccanismi di sicurezza delle applicazioni, eseguire programmi sconosciuti, o interferire con altri processi in violazione della policy di sicurezza del sistema. Inoltre aiutano a confinare il potenziale danno che può essere causato da programmi maliziosi o corrotti. Potrebbe anche essere utilizzata per abilitare un singolo sistema ad essere usato da utenti con differenti autorizzazioni di sicurezza nell'accedere a molteplici tipi di informazioni con requisiti di sicurezza differenti senza compromettere questi requisiti di sicurezza.

# Perchè il DAC è inadeguato?
Perchè le decisione di accesso sono basate solo sull'identità dell'utente e su ciò che possiede nel sistema; inoltre l'amministratore del sistema ne ha il completo controllo.

# Che cosa è il MAC?
A differenza del DAC, il Mandatory Access Control è basato su politiche valide per tutto il sistema, che non possono essere modificate da utenti individuali. Viene assegnata una classe di sicurezza ad ogni oggetto facente parte di un DataBase e ad ogni soggetto vengono associati determinati permessi sulle varie classi di sicurezza definite. Le regole, basate su classi di sicurezza assegnate agli oggetti e permessi sulle classi, associate agli utenti, determinano chi può leggere o scrivere determinati dati.

# Che cosa offre il MAC?
  - Decisioni di accesso basate su etichette di sicurezza.
  - L'amministratore non ha più il controllo assoluto.
  - Un processo che ha etichetta di sicurezza di livello inferiore a quella del file non può leggere il file.
  - Un processo che ha etichetta di sicurezza diversa da quella del file non può scrivere il file.

# Il MAC basato sull'architettura Flask:
L'architettura Flask definisce due tipi di dati indipendenti per le etichette di sicurezza:
  a) Contesto di sicurezza: rappresentazione dell'etichetta tramite una stringa di lunghezza variabile;
  b) Identificazione di sicurezza (SID): intero mappato dal SS in un contesto di sicurezza

# Alcuni approfondimenti sull'architettura Flsk:
  - Decisioni di Labeling: il SID per il nuovo oggetto è restituito come un paramentro di output.
  - Decisioni di Accesso: I permessi concessi sono ritornati come parametri di output.

# L'arrivo di SELinux...
Il Secure Enhanced Linux (SELinux) è un prototipo realizzato dalla National Security Agency implementando l'architettura Flask all'interno del kernel 2.4.2 di Linux.

# I vantaggi di SELinux in ambiente webserver:
Se hai un webserver su internet che serve anche Email e DNS applicando SELinux una vulnerabilità nel processo del server web non permette ad un attaccante di corrompere il tuo server DNS. SELinux è uno dei pochi sistemi operativi che in pratica può fornire questo tipo di protezione.

# SELinux per i desktop (Kde, Gnome):
SELinux allo stato attuale non rende sicuri molto bene gli ambienti desktop (kde, gnome) e ha un significativo sovraccarico in manutenzione. Se intalli una nuova applicazione su un sistema SELinux e quell'applicazione non ha una policy scritta per lei, l'utente medio dovrà probabilmente disattivare SELinux per far funzionare l'applicazione. In futuro ciò si potrà migliorare non appena più policies verranno sviluppate.
Per l'utente di casa, una normale (non-SE) installazione di Linux dovrebbe essere abbastanza sicura. Disattivando i servizi non utilizzati, possibilmente abilitando il firewall, si sarà sufficientemente sicuri per l'uso quotidiano.


Fonti ed ulteriori approfondimenti:
--> FAQ SELinu di www.adamantio.net
--> www.dia.unisa.it/~ads/corso-security/ www/CORSO-0102/SELinux.pdf