Domande frequenti su SELinux (FAQ)

Ciao a tutti! Specialmente per gli studenti del corso «Sicurezza di Linux» abbiamo preparato la traduzione della FAQ ufficiale del progetto SELinux. Pensiamo che questa traduzione possa essere utile non solo per gli studenti, quindi la condividiamo con voi.

Domande frequenti su SELinux (FAQ)

Abbiamo cercato di rispondere ad alcune delle domande più frequenti sul progetto SELinux. Attualmente le domande sono divise in due categorie principali. Tutte le domande e risposte sono riportate nella pagina FAQ.

Panoramica

Panoramica

  1. Che cos'è Linux con maggiore sicurezza?
    Linux con maggiore sicurezza (SELinux — Security-enhanced Linux) è un'implementazione di riferimento dell'architettura di sicurezza Flask per il controllo degli accessi vincolato e flessibile. È stato creato per dimostrare l'utilità di meccanismi flessibili di gestione del controllo accessi e come tali meccanismi possano essere integrati nel sistema operativo. L'architettura Flask è stata successivamente integrata in Linux e portata su diversi altri sistemi, incluso il sistema operativo Solaris, il sistema operativo FreeBSD e il kernel Darwin, generando una vasta gamma di lavori correlati. L'architettura Flask fornisce supporto generale per l'applicazione di vari tipi di politiche di controllo accesso vincolato, comprese quelle basate su concetti di Type Enforcement, Controllo accessi basato su ruoli e Sicurezza a più livelli.
  2. Cosa offre Linux con maggiore sicurezza che il Linux standard non può fornire?
    Il kernel Linux con maggiore sicurezza stabilisce politiche di controllo accesso vincolato che limitano i programmi utente e i server di sistema al minimo insieme di privilegi necessari per svolgere il proprio lavoro. Con tale limitazione, la capacità di questi programmi utente e demoni di sistema di causare danni in caso di compromissione (ad esempio, a causa di un overflow del buffer o di una configurazione errata) viene ridotta o esclusa. Questo meccanismo di limitazione funziona indipendentemente dai tradizionali meccanismi di controllo accesso di Linux. Non riconosce il superutente «root» e non condivide i difetti noti dei tradizionali meccanismi di protezione di Linux (ad esempio, la dipendenza dai file binari setuid/setgid).
    La sicurezza di un sistema Linux non modificato dipende dalla correttezza del kernel, di tutte le applicazioni privilegiate e di ogni loro configurazione. Un problema in uno di questi ambiti può portare al compromesso dell'intero sistema. Al contrario, la sicurezza di un sistema modificato, basato su un kernel Linux con sicurezza migliorata, dipende, in primo luogo, dalla correttezza del kernel e dalla configurazione della sua politica di sicurezza. Sebbene problemi di correttezza o configurazione delle applicazioni possano consentire una compromissione limitata di singoli programmi utente e demoni di sistema, non rappresentano una minaccia per la sicurezza di altri programmi utente e demoni di sistema o della sicurezza del sistema nel complesso.
  3. A cosa serve?
    Le nuove funzionalità di Linux con sicurezza migliorata sono concepite per garantire la separazione delle informazioni sulla base delle esigenze di riservatezza e integrità. Queste sono destinate a prevenire processi di lettura di dati e programmi, falsificazione di dati e programmi, elusione dei meccanismi di sicurezza delle applicazioni, esecuzione di programmi non affidabili o interferenza con altri processi in violazione della politica di sicurezza del sistema. Aiutano anche a limitare il danno potenziale che potrebbe essere causato da programmi nocivi o malfunzionanti. Dovrebbero anche essere utili per consentire l'utilizzo di un sistema da parte di utenti con diverse autorizzazioni di sicurezza per accedere a diversi tipi di informazioni con vari requisiti di sicurezza senza compromettere tali requisiti.
  4. Come posso ottenere una copia?
    Molte distribuzioni Linux includono il supporto SELinux già integrato come funzione predefinita o come pacchetto aggiuntivo. Il codice principale dell'utente di SELinux è disponibile su GitHub. Gli utenti finali devono generalmente utilizzare i pacchetti forniti dalla propria distribuzione.
  5. Cosa include il tuo rilascio?
    Il rilascio di NSA SELinux include il codice principale dell'utente di SELinux. Il supporto per SELinux è già incluso nel kernel Linux 2.6, disponibile su kernel.org. Il codice principale dell'utente di SELinux consiste in una libreria per la manipolazione della politica binaria (libsepol), un compilatore di politica (checkpolicy), una libreria per applicazioni che garantiscono sicurezza (libselinux), una libreria per strumenti di gestione della politica (libsemanage) e diversi strumenti correlati alla politica (policycoreutils).
    In aggiunta al kernel con supporto SELinux e al codice principale dell'utente, è necessaria una politica e alcuni pacchetti dell'utente modificati per SELinux per utilizzare SELinux. La politica può essere ottenuta da progetto di politica di riferimento SELinux.
  6. Posso installare Linux con maggiore sicurezza su un sistema Linux esistente?
    Sì, puoi installare solo le modifiche SELinux su un sistema Linux esistente oppure puoi installare una distribuzione Linux che già include il supporto per SELinux. SELinux consiste in un kernel Linux con supporto SELinux, un insieme principale di librerie e utilità, alcuni pacchetti dell'utente modificati e la configurazione della politica. Per installarlo su un sistema Linux esistente che non ha supporto SELinux, devi essere in grado di compilare il software e avere anche gli altri pacchetti di sistema necessari. Se la tua distribuzione Linux include già il supporto SELinux, non devi compilare o installare il rilascio di NSA SELinux.
  7. Quanto è compatibile Linux con maggiore sicurezza rispetto a Linux non modificato?
    Linux con maggiore sicurezza garantisce compatibilità binaria con le applicazioni Linux esistenti e con i moduli del kernel Linux esistenti, ma alcuni moduli del kernel potrebbero richiedere modifiche per interagire correttamente con SELinux. Queste due categorie di compatibilità vengono discusse in dettaglio qui di seguito:
    • Compatibilità delle applicazioni
      SELinux garantisce la compatibilità binaria con le applicazioni esistenti. Abbiamo ampliato le strutture dati del kernel, includendo nuovi attributi di sicurezza, e abbiamo aggiunto nuove chiamate API per le applicazioni che forniscono sicurezza. Tuttavia, non abbiamo modificato alcuna struttura dati visibile alle applicazioni e non abbiamo cambiato l'interfaccia di nessuna chiamata di sistema esistente, quindi le applicazioni esistenti possono funzionare senza modifiche, a condizione che la politica di sicurezza lo consenta.
    • Compatibilità dei moduli del kernel
      Inizialmente, SELinux forniva compatibilità di origine solo per i moduli del kernel esistenti; era necessario ricompilare tali moduli secondo le intestazioni del kernel modificate per catturare i nuovi campi di sicurezza aggiunti alle strutture dati del kernel. Poiché LSM e SELinux ora sono integrati nel kernel Linux 2.6, SELinux ora fornisce compatibilità binaria con i moduli del kernel esistenti. Tuttavia, alcuni moduli del kernel potrebbero non interagire bene con SELinux senza modifiche. Ad esempio, se un modulo del kernel alloca e imposta direttamente un oggetto del kernel senza utilizzare le normali funzioni di inizializzazione, l'oggetto del kernel potrebbe mancare di informazioni di sicurezza adeguate. Alcuni moduli del kernel potrebbero anche mancare di un adeguato controllo della sicurezza delle loro operazioni; qualsiasi chiamata esistente a funzioni del kernel o funzioni di autorizzazione attiverà anche i controlli delle autorizzazioni SELinux, ma per garantire l'applicazione delle politiche MAC potrebbe essere necessario un controllo più dettagliato o aggiuntivo.
      Linux con sicurezza avanzata non dovrebbe creare problemi di interazione con sistemi Linux normali, se tutte le operazioni necessarie sono consentite dalla configurazione della politica di sicurezza.
  8. Quali sono gli obiettivi di un esempio di configurazione della politica di sicurezza?
    A un livello elevato, l'obiettivo è dimostrare la flessibilità e la sicurezza dei mezzi di controllo degli accessi e fornire un sistema funzionante semplice con modifiche minime alle applicazioni. A un livello inferiore, la politica ha una serie di obiettivi descritti nella documentazione politica. Questi obiettivi includono la gestione dell'accesso non autorizzato ai dati, la protezione dell'integrità del kernel, del software di sistema, delle informazioni sulla configurazione del sistema e dei log di sistema, la limitazione del potenziale danno che può essere causato dall'uso di vulnerabilità in processi che richiedono privilegi, la protezione dei processi privilegiati dall'esecuzione di codice dannoso, la protezione del ruolo dell'amministratore e del dominio dall'accesso senza autenticazione dell'utente, la prevenzione dell'interferenza dei processi normali dell'utente con i processi di sistema o dell'amministratore, oltre alla protezione di utenti e amministratori dall'utilizzo di vulnerabilità nei loro browser da codice mobile dannoso.
  9. Perché è stato scelto Linux come piattaforma di base?
    Linux è stato scelto come piattaforma per l'implementazione iniziale di riferimento di questo lavoro a causa del suo crescente successo e dell'ambiente di sviluppo aperto. Linux offre una grande opportunità per dimostrare che questa funzionalità può essere efficace nel sistema operativo principale e, allo stesso tempo, contribuire alla sicurezza di un sistema ampiamente utilizzato. La piattaforma Linux offre anche una grande opportunità per questo lavoro di ottenere la massima ampiezza di visione e, forse, servirà da base per ulteriori ricerche sulla sicurezza da parte di altri appassionati.
  10. Perché hai fatto questo lavoro?
    Laboratorio Nazionale per la Sicurezza Informatica L'Agenzia per la Sicurezza Nazionale è responsabile della ricerca e dello sviluppo di tecnologie avanzate necessarie affinché l'NSA possa fornire soluzioni, prodotti e servizi per garantire la sicurezza informatica delle infrastrutture informatiche critiche per gli interessi della sicurezza nazionale degli Stati Uniti.
    La creazione di un sistema operativo sicuro e vitale rimane una delle più importanti sfide di ricerca. Il nostro obiettivo è lo sviluppo di un'architettura efficace che fornisca il supporto necessario per la sicurezza, eseguendo i programmi in modo trasparente per l'utente e attraente per i fornitori. Riteniamo che un passo importante verso il raggiungimento di questo obiettivo sia dimostrare come i meccanismi di controllo degli accessi possano essere integrati con successo nel sistema operativo principale.
  11. Qual è il legame con le ricerche precedenti sui sistemi operativi della NSA?
    I ricercatori del National Information Assurance Research Laboratory della NSA, insieme alla Secure Computing Corporation (SCC), hanno sviluppato un'architettura potente e flessibile di controllo degli accessi basata su Type Enforcement, un meccanismo sviluppato per la prima volta per il sistema LOCK. NSA e SCC hanno creato due prototipi dell'architettura basata su Mach: DTMach e DTOS (http://www.cs.utah.edu/flux/dtos/). NSA e SCC hanno poi collaborato con il gruppo di ricerca Flux dell'Università dello Utah per trasferire l'architettura nel sistema operativo di ricerca Fluke. Durante questo trasferimento, l'architettura è stata migliorata per garantire un migliore supporto per le politiche di sicurezza dinamiche. Questa architettura migliorata è stata chiamata Flask (http://www.cs.utah.edu/flux/flask/). Ora la NSA ha integrato l'architettura Flask nel sistema operativo Linux, per trasferire questa tecnologia a una più ampia comunità di sviluppatori e utenti.
  12. Linux con una sicurezza migliorata è un sistema operativo affidabile?
    La frase «Sistema operativo affidabile» si riferisce generalmente a un sistema operativo che fornisce un'adeguata assistenza per la protezione multilivello e la verifica della correttezza, in modo da soddisfare un determinato insieme di requisiti governativi. Linux con sicurezza migliorata include idee utili da questi sistemi, ma si concentra sul controllo accessi obbligatorio. L'obiettivo iniziale dello sviluppo di Linux con sicurezza migliorata era creare funzionalità utili che offrissero vantaggi tangibili in un'ampia gamma di ambienti reali per dimostrare questa tecnologia. SELinux di per sé non è un sistema operativo affidabile, ma fornisce una funzione di protezione critica: il controllo accessi obbligatorio, necessario per un sistema operativo fidato. SELinux è stato integrato nelle distribuzioni di Linux che sono state valutate secondo il Profilo di Protezione della Sicurezza Etichettata. Informazioni sui prodotti verificati e verificabili possono essere trovate all'indirizzo http://niap-ccevs.org/.
  13. È davvero protetto?
    Il concetto di sistema sicuro comprende numerosi attributi (ad esempio, sicurezza fisica, sicurezza del personale, ecc.), e Linux con maggiore sicurezza affronta solo un insieme molto ristretto di questi attributi (cioè gli elementi di controllo degli accessi obbligatori nel sistema operativo). In altre parole, un «sistema sicuro» significa sufficientemente protetto da proteggere alcune informazioni nel mondo reale da un avversario reale, contro il quale il proprietario e/o l'utente delle informazioni è avvertito. Linux con sicurezza migliorata è progettato solo per dimostrare gli elementi di controllo obbligatori in un moderno sistema operativo come Linux e quindi è improbabile che soddisfi una qualsiasi definizione interessante di sistema sicuro. Crediamo che la tecnologia dimostrata in Linux con sicurezza migliorata sarà utile per le persone che creano sistemi sicuri.
  14. Cosa hai fatto per aumentare la garanzia?
    L'obiettivo di questo progetto era aggiungere elementi di controllo degli accessi forzati apportando modifiche minime a Linux. Questo ultimo obiettivo limita fortemente ciò che può essere fatto per migliorare la garanzia, pertanto non sono stati effettuati lavori volto a migliorare la garanzia di Linux. D'altra parte, i miglioramenti si basano sul lavoro precedente di sviluppo di un'architettura di sicurezza ad alta affidabilità, e la maggior parte di questi principi di progettazione sono stati trasferiti in Linux con una sicurezza migliorata.
  15. Il CCEVS valuterà Linux con sicurezza migliorata?
    Linux con sicurezza migliorata non è progettato per affrontare l'intero insieme di problemi di sicurezza presentati dal profilo di protezione. Anche se sarebbe possibile valutare solo le sue funzionalità attuali, riteniamo che tale valutazione avrebbe un valore limitato. Tuttavia, abbiamo lavorato con altri per includere questa tecnologia in distribuzioni Linux che sono state valutate e distribuzioni che sono in fase di valutazione. Le informazioni sui prodotti verificati e verificabili possono essere trovate all'indirizzo http://niap-ccevs.org/.
  16. Hai provato a correggere eventuali vulnerabilità?
    No, non abbiamo cercato né trovato vulnerabilità durante il nostro lavoro. Abbiamo solo apportato il minimo necessario per aggiungere i nostri nuovi meccanismi.
  17. Questo sistema è approvato per l'uso governativo?
    Linux con sicurezza migliorata non ha approvazioni speciali o aggiuntive per l'uso governativo rispetto a qualsiasi altra versione di Linux.
  18. In cosa si differenzia da altre iniziative?
    Linux con sicurezza migliorata ha un'architettura chiaramente definita per un controllo degli accessi forzato flessibile, che è stata sperimentalmente testata attraverso diversi sistemi prototipali (DTMach, DTOS, Flask). Sono stati condotti studi dettagliati sulla capacità dell'architettura di supportare un'ampia gamma di politiche di sicurezza, disponibili in http://www.cs.utah.edu/flux/dtos/ e http://www.cs.utah.edu/flux/flask/.
    L'architettura fornisce un controllo dettagliato su molte astrazioni del kernel e servizi che non sono controllati da altri sistemi. Alcune delle caratteristiche distintive del sistema Linux con sicurezza avanzata sono:
    • Netta separazione della politica dai diritti di applicazione
    • Interfacce politiche ben definite
    • Indipendenza da politiche specifiche e linguaggi di politica
    • Indipendenza da formati specifici e contenuto delle etichette di sicurezza
    • Etichette e controlli separati per oggetti e servizi del kernel
    • Caching delle decisioni di accesso per efficienza
    • Supporto per modifiche delle politiche
    • Controllo sull'inizializzazione del processo e sull'eredità e l'esecuzione del programma
    • Gestione dei file system, delle directory, dei file e delle descrizioni dei file aperti
    • Gestione di socket, messaggi e interfacce di rete
    • Controllo sull'uso delle "Capacità"
  19. Quali sono i limiti di licenza per questo sistema?
    Tutto il codice sorgente disponibile sul sito https://www.nsa.gov, distribuito alle stesse condizioni dei codici sorgenti originali. Ad esempio, le correzioni per il kernel Linux e le correzioni per molte utility esistenti disponibili qui sono rilasciate secondo i termini GNU General Public License (GPL).
  20. C'è un controllo delle esportazioni?
    Per Linux con sicurezza avanzata non ci sono controlli di esportazione aggiuntivi rispetto a qualsiasi altra versione di Linux.
  21. L'NSA prevede di utilizzarlo all'interno del paese?
    Per motivi comprensibili, l'NSA non commenta l'uso operativo.
  22. La dichiarazione delle garanzie del 26 luglio 2002 della Secure Computing Corporation cambia la posizione dell'NSA sul fatto che SELinux sia stato fornito nell'ambito della GNU General Public License?
    La posizione dell'NSA non è cambiata. L'NSA continua a ritenere che i termini e le condizioni della Licenza Pubblica Generale GNU regolino l'uso, la copia, la distribuzione e la modifica di SELinux. Vedi. Comunicato stampa dell'NSA del 2 gennaio 2001.
  23. L'NSA supporta il software open source?
    Le iniziative della NSA per migliorare la sicurezza del software riguardano sia il software proprietario che quello open source, e abbiamo utilizzato con successo modelli sia proprietari che aperti nella nostra attività di ricerca. Il lavoro della NSA per migliorare la sicurezza del software è motivato da un semplice principio: utilizzare le nostre risorse nel modo più efficace possibile per fornire ai clienti della NSA le migliori opzioni di sicurezza nei prodotti più ampiamente utilizzati. L'obiettivo del programma di ricerca della NSA è sviluppare risultati tecnologici da condividere con la comunità di sviluppatori di software tramite vari meccanismi di trasferimento. La NSA non sostiene né promuove alcun prodotto software specifico o modello di business. Piuttosto, la NSA sostiene il miglioramento della sicurezza.
  24. La NSA supporta Linux?
    Come accennato sopra, la NSA non sostiene né promuove alcun prodotto software specifico o piattaforma; la NSA si limita a contribuire al miglioramento della sicurezza. L'architettura Flask, dimostrata nell'implementazione di riferimento di SELinux, è stata portata su diversi altri sistemi operativi, tra cui Solaris, FreeBSD e Darwin, migrata su hypervisor Xen e applicata a applicazioni come X Window System, GConf, D-BUS e PostgreSQL. I concetti dell'architettura Flask sono ampiamente applicabili a una vasta gamma di sistemi e ambienti.

Collaborazione

  1. Come prevediamo di interagire con la comunità Linux?
    Abbiamo set di pagine web su NSA.gov, che serviranno come il nostro principale mezzo per pubblicare informazioni su Linux con una sicurezza migliorata. Se sei interessato a Linux con sicurezza migliorata, ti invitiamo a iscriverti alla mailing list per gli sviluppatori, a consultare il codice sorgente e a fornire il tuo feedback (o codice). Per iscriverti alla mailing list per gli sviluppatori, visita. La pagina della mailing list degli sviluppatori SELinux.
  2. Chi può aiutare?
    SELinux è ora supportato e aggiornato dalla comunità di sviluppatori di software open source per Linux.
  3. La NSA finanzia qualche lavoro successivo?
    Attualmente, l'NSA non sta considerando proposte per ulteriori collaborazioni.
  4. Quale tipo di supporto è disponibile?
    Intendiamo affrontare le questioni tramite la mailing list selinux@tycho.nsa.gov, ma non saremo in grado di rispondere a tutte le domande relative a un sito specifico.
  5. Chi ha aiutato? Cosa hanno fatto?
    Un prototipo di Linux con sicurezza migliorata è stato sviluppato dall'NSA insieme ai partner di ricerca di NAI Labs, Secure Computing Corporation (SCC) e MITER Corporation. Dopo il rilascio pubblico iniziale, sono seguiti molti altri materiali. Vedi l'elenco dei partecipanti.
  6. Come posso saperne di più?
    Ti consigliamo di visitare le nostre pagine web, leggere la documentazione e i precedenti lavori di ricerca, oltre a partecipare alla nostra mailing list selinux@vger.kernel.org

Trovi utile la traduzione? Fammi sapere nei commenti!

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster