Moduli di sicurezza Linux - Linux Security Modules

Linux Security Modules ( LSM ) è un framework che consente al kernel Linux di supportare senza pregiudizi una varietà di modelli di sicurezza del computer . LSM è concesso in licenza secondo i termini della GNU General Public License ed è una parte standard del kernel Linux a partire da Linux 2.6. AppArmor , SELinux , Smack e TOMOYO Linux sono i moduli di sicurezza attualmente approvati nel kernel ufficiale.

Design

LSM è stato progettato per rispondere a tutti i requisiti per implementare con successo un modulo di controllo degli accessi obbligatorio , imponendo il minor numero possibile di modifiche al kernel Linux. LSM evita l'approccio dell'interposizione delle chiamate di sistema utilizzato da Systrace perché non si adatta a kernel multiprocessore ed è soggetto ad attacchi TOCTTOU (race). Invece, LSM inserisce " hook " (richiamate al modulo) in ogni punto del kernel in cui sta per verificarsi una chiamata di sistema a livello di utente con un accesso a un importante oggetto interno del kernel come gli inode e i blocchi di controllo delle attività.

LSM ha uno scopo ristretto per risolvere il problema del controllo degli accessi , senza imporre una patch di modifica ampia e complessa al kernel mainstream. Non è inteso come un meccanismo generale di " aggancio " o " richiamata ", né supporta la virtualizzazione a livello di sistema operativo .

L'obiettivo di controllo degli accessi di LSM è strettamente correlato al problema del controllo del sistema , ma è leggermente diverso. Il controllo richiede che ogni tentativo di accesso sia registrato. LSM non può fornire questo, perché richiederebbe molti più hook, al fine di rilevare i casi in cui il kernel " cortocircuita " le chiamate di sistema in errore e restituisce un codice di errore prima di avvicinarsi a oggetti significativi.

Il progetto LSM è descritto nel documento Linux Security Modules: General Security Support for the Linux Kernel presentato a USENIX Security 2002. Alla stessa conferenza è stato presentato il documento Using CQUAL for Static Analysis of Authorization Hook Placement che ha studiato l'analisi statica automatica del codice del kernel per verificare che tutti gli hook necessari siano stati effettivamente inseriti nel kernel Linux.

Adozione

Storia

Al Linux Kernel Summit del 2001, la NSA ha proposto di includere SELinux in Linux 2.5. Linus Torvalds ha rifiutato SELinux in quel momento, perché ha osservato che ci sono molti diversi progetti di sicurezza in fase di sviluppo e, poiché tutti differiscono, la comunità della sicurezza non ha ancora formato un consenso sul modello di sicurezza definitivo. Invece, Linus ha incaricato la comunità della sicurezza di "renderlo un modulo".

In risposta, Crispin Cowan ha proposto LSM: un'interfaccia per il kernel Linux che fornisce sufficienti "ganci" (upcall) dall'interno del kernel Linux a un modulo caricabile in modo da consentire al modulo di imporre controlli di accesso obbligatori. Lo sviluppo di LSM nei due anni successivi è stato condotto dalla comunità LSM, inclusi contributi sostanziali di Immunix Corporation , NSA , McAfee , IBM , Silicon Graphics e molti collaboratori indipendenti. LSM è stato infine accettato nel mainstream del kernel Linux ed è stato incluso come parte standard di Linux 2.6 nel dicembre 2003.

Nel 2006, alcuni sviluppatori del kernel hanno osservato che SELinux era l'unico modulo LSM ampiamente utilizzato incluso nell'albero dei sorgenti del kernel Linux mainstream. Se deve esserci un solo modulo LSM ampiamente utilizzato, è stato ragionato, quindi l'indiretto di LSM non è necessario e LSM dovrebbe essere rimosso e sostituito con SELinux stesso. Tuttavia, ci sono altri moduli LSM mantenuti al di fuori dell'albero del kernel mainstream ( AppArmor , Linux Intrusion Detection System , FireFlier , CIPSO , Multi ADM , ecc.), quindi questo argomento ha portato a due risultati: 1. che gli sviluppatori di questi moduli hanno iniziato a mettere sforzo nell'upstreaming dei rispettivi moduli, e 2. al Kernel Summit del 2006 , Linus ha affermato ancora una volta che LSM sarebbe rimasto perché non voleva arbitrare quale fosse il miglior modello di sicurezza.

È probabile che LSM rimanga poiché moduli di sicurezza aggiuntivi Smack (versione 2.6.25), TOMOYO Linux (versione 2.6.30, giugno 2009) e AppArmor (versione 2.6.36) sono stati accettati nel kernel principale.

Riferimenti

link esterno