1. Argomenti
  2. Sicurezza
  3. Che cos'è SELinux (Security-Enhanced Linux)?

Che cos'è SELinux (Security-Enhanced Linux)?

CopiatoCopia non riuscitaCopia URL

Security-Enhanced Linux (SELinux) è un'architettura di sicurezza per i sistemi Linux®, che offre agli amministratori un livello di controllo superiore sugli utenti autorizzati ad accedere al sistema. È stata originariamente sviluppata dalla National Security Agency (NSA) degli Stati Uniti come una serie di patch per il kernel Linux utilizzando i moduli di sicurezza Linux (LSM).  

SELinux è stato condiviso con la community open source nel 2000 e integrato nel kernel Linux upstream nel 2003.

Prova senza costi un sistema operativo abilitato per SELinux


 

SELinux definisce i controlli degli accessi alle applicazioni, ai processi e ai file di un sistema tramite i criteri di sicurezza: si tratta di un insieme di regole che indicano a quali elementi è consentito accedere in base a una data policy. 

Quando un'applicazione o un processo, ovvero un soggetto, richiede di accedere a un oggetto (es. un file), SELinux verifica dove sono state salvate le autorizzazioni per i soggetti e gli oggetti tramite un'Access Vector Cache (AVC).

Se non è in grado di prendere una decisione sull'accesso in base alle autorizzazioni salvate nella cache, SELinux invia la richiesta al server di sicurezza, che verifica il file e il contesto di sicurezza dell'app o del processo. Tale contesto viene applicato a partire dal database delle policy di SELinux, e l'autorizzazione viene quindi concessa o negata. 

In quest'ultimo caso, in /var/log/audit/audit.log verrà registrato il messaggio avc: denied. Se auditd non è in esecuzione, gli stessi messaggi possono comparire anche nel journal di sistema o in /var/log/messages.

Quanto è sicuro il tuo cloud? Esegui la valutazione

Come configurare SELinux 

Per proteggere il sistema è possibile scegliere tra diverse opzioni di configurazione di SELinux; le più comuni sono la policy mirata e la sicurezza multilivello (MLS).

La policy mirata è l'opzione predefinita e si può utilizzare con numerosi processi, attività e servizi, mentre l'MLS può essere complicata e solitamente viene impiegata solo dalle organizzazioni governative. 

Puoi verificare il livello di sicurezza del tuo sistema visualizzando il file /etc/sysconfig/selinux; questo file include una sezione che indica se SELinux è disattivato oppure impostato sulla modalità enforcing o permissive, e quale policy deve essere caricata.

  • Modalità enforcing: modalità operativa predefinita e consigliata. SELinux funziona normalmente, applicando la policy di sicurezza caricata all'intero sistema.
  • Modalità permissive: il sistema si comporta come se SELinux applicasse la policy di sicurezza caricata, inclusa l'etichettatura degli oggetti e l'immissione di voci di negazione dell'accesso nei log, ma in realtà non nega alcuna operazione. Sebbene non sia consigliata per i sistemi di produzione, la modalità permissive può essere utile per lo sviluppo delle policy e il debug di SELinux.
  • Modalità disabled: l'utilizzo è fortemente sconsigliato. Il sistema non solo evita di applicare la policy di SELinux, ma evita anche di etichettare qualsiasi oggetto persistente come i file, rendendo difficile l'abilitazione di SELinux in un secondo momento.

Etichettatura e type enforcement in SELinux 

L'etichettatura e il type enforcement sono i concetti più importanti in SELinux.

SELinux funziona come un sistema di etichettatura: ciò significa che tutti i file, i processi e le porte di un sistema sono associati a un'etichetta SELinux. Le etichette sono un modo logico per raggruppare gli elementi, e il kernel gestisce le etichette durante l'avvio.

SELinux adopera il type enforcement per applicare una policy definita sul sistema. Il type enforcement è la componente di una policy SELinux che stabilisce se un processo in esecuzione di un tipo specifico può accedere a un file etichettato di un tipo specifico.

Le etichette SELinux presentano 4 campi:

  • utente
  • ruolo 
  • tipo
  • livello di sicurezza

L'etichetta del tipo è il campo più importante perché le policy standard di SELinux la utilizzano per controllare le autorizzazioni di sistema. I campi utente, ruolo e livello sono riservati alle configurazioni avanzate, come la sicurezza multilivello (MLS) o la sicurezza multicategoria (MCS).

Come attivare SELinux

Se SELinux è stato disattivato nel tuo ambiente, è possibile abilitarlo modificando /etc/selinux/config e selezionando l'opzione SELINUX=permissive. Quando riattiviamo SELinux, è preferibile non selezionare subito la modalità enforcing, poiché è probabile che il sistema applichi le etichette in modo errato, con conseguenti problemi all'avvio.  

Per forzare la rietichettatura automatica del filesystem da parte del sistema, è necessario creare nella directory principale un file vuoto denominato .autorelabel e poi eseguire il riavvio. Se il sistema presenta troppi errori, il riavvio deve essere effettuato in modalità permissive affinché vada a buon fine. Una volta che la rietichettatura è stata completata, bisogna impostare SELinux in modalità enforcing con /etc/selinux/config e procedere con il riavvio, oppure si deve eseguire setenforce 1. 

Nel caso in cui un amministratore di sistema non abbia molta familiarità con la riga di comando, sono disponibili alcuni strumenti grafici per la gestione di SELinux. 

SELinux offre un livello di sicurezza aggiuntivo per il sistema, già integrato nelle distribuzioni Linux. È consigliabile mantenerlo attivo, in modo che possa proteggere il sistema in caso di compromissione.

Ottimizza la sicurezza di Linux con Red Hat

Risorse da Red Hat

In passato, i sistemi Linux e UNIX hanno utilizzato il DAC, ma SELinux è un esempio di un sistema MAC per Linux. 

Con il DAC, i file e i processi hanno dei proprietari. Un utente, un gruppo o un qualunque altro soggetto può possedere un file e modificarne le autorizzazioni.

Con un sistema DAC, l'utente root ha il controllo totale degli accessi. L'accesso root consente di accedere ai file di qualunque altro utente o eseguire qualsiasi tipo di azione sul sistema. 

Nei sistemi MAC come SELinux, invece, è impostata una policy amministrativa relativa all'accesso. Anche se le impostazioni DAC nella home directory vengono modificate, è possibile proteggere il sistema attivando una policy SELinux che impedisca ad altri utenti o processi di accedere alla directory. 

Le policy SELinux consentono di essere specifici e trattare un ampio numero di processi. Con SELinux si possono implementare modifiche per limitare l'accesso tra utenti, file, directory e altro ancora.

La segnalazione di un errore in SELinux indica la presenza di un problema da risolvere. Le quattro tipologie più comuni sono le seguenti:

  1. Le etichette non sono corrette. In caso di etichettatura errata, è possibile utilizzare gli strumenti di correzione appositi.
  2. Una policy deve essere modificata. Ciò può significare che bisogna informare SELinux di una modifica effettuata, oppure che è necessario correggere una policy utilizzando i moduli specifici o i valori booleani.
  3. La policy presenta un bug. Potrebbe trattarsi di un bug da correggere all'interno della policy.
  4. Si è verificata una violazione del sistema. Malgrado SELinux sia in grado di offrire protezione in molte situazioni, può comunque succedere che un sistema venga compromesso. In caso di sospetta violazione è necessario prendere immediatamente provvedimenti.

Cosa sono i valori booleani?

I valori booleani sono impostazioni che consentono di attivare e disattivare le funzioni in SELinux. Esistono centinaia di impostazioni per abilitare e disabilitare le funzionalità di SELinux, molte delle quali sono già predefinite. Per scoprire i valori booleani preimpostati nel sistema è necessario eseguire getsebool -a.

Red Hat Enterprise Linux è leader mondiale tra le piattaforme Linux open source. Consente di mitigare i rischi, applicare configurazioni e policy di sicurezza e ottimizzare le strategie per soddisfare i requisiti di conformità. 

I ruoli di sistema di Red Hat Enterprise Linux sono un insieme di ruoli Ansible® supportati che forniscono flussi di lavoro coerenti e semplificano l'esecuzione delle attività manuali. I ruoli di sistema supportano i team nell'automazione della sicurezza dei flussi di lavoro e nella manutenzione in modo scalabile, riducendo al minimo l'uso delle risorse e semplificando i requisiti di gestione e conformità. Con il ruolo di sistema SELinux è possibile automatizzare il deployment e la gestione di SELinux. Queste includono: 

  • attivazione di SELinux attraverso le modalità enforcing o permissive per garantire controlli coerenti;
  • personalizzazione dei valori booleani, dei file context, delle porte e dei login in SELinux al fine di soddisfare i requisiti;
  • utilizzo del ruolo di sistema per riconciliare i file context su file o directory specifici.

Scopri di più sui ruoli di sistema di Red Hat Enterprise Linux

Red Hat Enterprise Linux 10

Red Hat Enterprise Linux 10 risolve con efficacia le più complesse sfide IT moderne, dalla mancanza di competenze Linux adeguate alla sicurezza post-quantistica. Scopri come.

Tutte le versioni di prova dei prodotti Red Hat

Grazie alle versioni di prova gratuite dei prodotti Red Hat potrai acquisire esperienza pratica, prepararti per le certificazioni o capire se il prodotto che hai scelto è giusto per le esigenze della tua organizzazione.

Continua a leggere

Shift left e shift right a confronto

Adottare strategie shift left e shift right significa implementare test continui in ogni fase del ciclo di vita dello sviluppo del software.

Cos'è un software bill of materials (SBOM) ?

Scopri il ruolo di un software bill of materials (SBOM, ovvero una distinta base del software) nella trasparenza del software, nella gestione dei rischi e nella protezione della catena di distribuzione dalle vulnerabilità.

Cos'è la metodologia DevSecOps?

Per sfruttare tutta l'agilità e la reattività di DevOps, occorre tenere conto anche di un altro elemento indispensabile dell'intero ciclo di vita delle applicazioni: la sicurezza IT.

Sicurezza: risorse consigliate

Articoli correlati