Domande frequenti su SELinux (FAQ)

Ciao a tutti! Soprattutto per gli studenti del corso "Sicurezza Linux" abbiamo preparato una traduzione delle FAQ ufficiali del progetto SELinux. Ci sembra 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. Le domande sono attualmente suddivise in due categorie principali. Vengono fornite tutte le domande e le risposte nella pagina delle domande frequenti.

panoramica

panoramica

  1. Che cos'è Linux con sicurezza avanzata?
    Security-enhanced Linux (SELinux) è l'implementazione di riferimento dell'architettura di sicurezza Flask per il controllo degli accessi flessibile e forzato. È stato creato per dimostrare l'utilità di meccanismi di applicazione flessibili e come tali meccanismi possono essere aggiunti a un sistema operativo. L'architettura Flask è stata successivamente integrata in Linux e trasferita su diversi altri sistemi, tra cui il sistema operativo Solaris, il sistema operativo FreeBSD e il kernel Darwin, dando origine a un'ampia gamma di lavori correlati. L'architettura Flask fornisce un supporto generale per l'applicazione di molti tipi di criteri di applicazione del controllo degli accessi, inclusi quelli basati sui concetti di applicazione dei tipi, controllo degli accessi basato sui ruoli e sicurezza multilivello.
  2. Cosa offre Linux con sicurezza avanzata rispetto a Linux standard?
    Il kernel Linux con sicurezza avanzata applica politiche di controllo degli accessi forzate che limitano i programmi utente e i server di sistema al set minimo di privilegi di cui hanno bisogno per svolgere il loro lavoro. Con questa restrizione, 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 eliminata. Questo meccanismo di restrizione funziona indipendentemente dai tradizionali meccanismi di controllo degli accessi di Linux. Non ha il concetto di superutente "root" e non condivide i ben noti limiti dei tradizionali meccanismi di sicurezza di Linux (ad esempio, la dipendenza dai binari setuid/setgid).
    La sicurezza di un sistema Linux non modificato dipende dalla correttezza del kernel, di tutte le applicazioni privilegiate e di ciascuna delle loro configurazioni. Un problema in una qualsiasi di queste aree può compromettere l'intero sistema. Al contrario, la sicurezza di un sistema modificato basato sul kernel Linux con sicurezza avanzata dipende principalmente dalla correttezza del kernel e dalla configurazione della sua politica di sicurezza. Sebbene i problemi con la correttezza o la configurazione dell'applicazione possano consentire una compromissione limitata di singoli programmi utente e demoni di sistema, non rappresentano un rischio per la sicurezza di altri programmi utente e demoni di sistema o per la sicurezza del sistema nel suo insieme.
  3. A cosa serve?
    Le nuove funzionalità di sicurezza avanzate di Linux sono progettate per fornire la segregazione delle informazioni in base ai requisiti di riservatezza e integrità. Sono progettati per impedire ai processi di leggere dati e programmi, manomettere dati e programmi, aggirare i meccanismi di sicurezza delle applicazioni, eseguire programmi non attendibili o interferire con altri processi in violazione della politica di sicurezza del sistema. Aiutano anche a limitare i potenziali danni che possono essere causati da malware o programmi difettosi. Dovrebbero inoltre essere utili per garantire che gli utenti con autorizzazioni di sicurezza diverse possano utilizzare lo stesso sistema per accedere a diversi tipi di informazioni con requisiti di sicurezza diversi senza compromettere tali requisiti.
  4. Come posso ottenerne una copia?
    Molte distribuzioni Linux includono il supporto per SELinux già integrato come funzionalità predefinita o come pacchetto opzionale. Il codice utente principale di SELinux è disponibile all'indirizzo GitHub. Gli utenti finali dovrebbero generalmente utilizzare i pacchetti forniti dalla loro distribuzione.
  5. Cosa è incluso nella tua release?
    La versione NSA di SELinux include il codice utente principale di SELinux. Il supporto per SELinux è già incluso nel kernel mainstream Linux 2.6, disponibile su kernel.org. Il codice principale di SELinux è costituito da una libreria per la manipolazione delle policy binarie (libsepol), un compilatore di policy (checkpolicy), una libreria per le applicazioni di sicurezza (libselinux), una libreria per gli strumenti di gestione delle policy (libsemanage) e diverse utilità relative alle policy ( policycoreutils).
    Oltre al kernel abilitato per SELinux e al codice utente di base, avrai bisogno di una politica e di alcuni pacchetti per lo spazio utente con patch SELinux per utilizzare SELinux. La politica può essere ottenuta da Progetto di politica di riferimento SELinux.
  6. Posso installare Linux rinforzato su un sistema Linux esistente?
    Sì, puoi installare solo le modifiche di SELinux su un sistema Linux esistente oppure puoi installare una distribuzione Linux che include già il supporto di SELinux. SELinux è costituito da un kernel Linux con supporto SELinux, un set principale di librerie e utilità, alcuni pacchetti utente modificati e una configurazione delle policy. Per installarlo su un sistema Linux esistente privo del supporto SELinux, devi essere in grado di compilare il software e disporre anche di altri pacchetti di sistema richiesti. Se la tua distribuzione Linux include già il supporto per SELinux, non è necessario creare o installare la versione NSA di SELinux.
  7. Quanto è compatibile Linux con sicurezza migliorata con Linux non modificato?
    Linux con sicurezza avanzata fornisce 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à sono discusse in dettaglio di seguito:

    • Compatibilità dell'applicazione
      SELinux fornisce compatibilità binaria con le applicazioni esistenti. Abbiamo esteso le strutture dati del kernel per includere nuovi attributi di sicurezza e aggiunto nuove chiamate API per le applicazioni di sicurezza. Tuttavia, non abbiamo modificato alcuna struttura di dati visibile dall'applicazione, né abbiamo modificato l'interfaccia di alcuna chiamata di sistema esistente, quindi le applicazioni esistenti possono ancora essere eseguite finché la politica di sicurezza lo consente.
    • Compatibilità del modulo del kernel
      Inizialmente, SELinux forniva solo la compatibilità iniziale per i moduli del kernel esistenti; era necessario ricompilare tali moduli con intestazioni del kernel modificate per raccogliere i nuovi campi di sicurezza aggiunti alle strutture dati del kernel. Poiché LSM e SELinux sono ora integrati nel kernel Linux 2.6 mainstream, 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, allora l'oggetto del kernel potrebbe non avere le informazioni di sicurezza appropriate. Alcuni moduli del kernel potrebbero anche non avere adeguati controlli di sicurezza sulle loro operazioni; qualsiasi chiamata esistente alle funzioni del kernel o alle funzioni di autorizzazione attiverà anche controlli di autorizzazione SELinux, ma potrebbero essere necessari controlli più granulari o aggiuntivi per applicare le politiche MAC.
      Linux con sicurezza avanzata non dovrebbe creare problemi di interoperabilità con i normali sistemi Linux se tutte le operazioni necessarie sono consentite dalla configurazione della politica di sicurezza.
  8. Qual è lo scopo dell'esempio di configurazione della politica di sicurezza?
    Ad alto livello, l'obiettivo è dimostrare la flessibilità e la sicurezza dei controlli di accesso forzati e fornire un sistema di lavoro semplice con modifiche minime alle applicazioni. A un livello inferiore, una policy ha una serie di obiettivi, descritti nella documentazione della policy. Questi obiettivi includono il controllo dell'accesso ai dati grezzi, la protezione dell'integrità del kernel, del software di sistema, delle informazioni sulla configurazione del sistema e dei registri di sistema, la limitazione del potenziale danno che potrebbe essere causato dallo sfruttamento di una vulnerabilità in un processo che richiede privilegi, la protezione dei processi privilegiati dall'esecuzione di attività dannose codice, proteggere il ruolo di amministratore e il dominio dall'accesso senza autenticazione dell'utente, impedire ai normali processi utente di interferire con il sistema o i processi di amministrazione e proteggere utenti e amministratori dallo sfruttamento delle vulnerabilità nel proprio browser tramite codice mobile dannoso.
  9. Perché Linux è stato scelto come piattaforma di base?
    Linux è stato scelto come piattaforma per l'implementazione di riferimento iniziale di questo lavoro grazie al suo crescente successo e all'ambiente di sviluppo aperto. Linux offre un'eccellente opportunità per dimostrare che questa funzionalità può avere successo su un sistema operativo host e, allo stesso tempo, contribuire alla sicurezza di un sistema ampiamente utilizzato. La piattaforma Linux offre anche un'eccellente opportunità per questo lavoro di ottenere la visione più ampia possibile e forse servire come base per ulteriori ricerche sulla sicurezza da parte di altri appassionati.
  10. Perché hai fatto questo lavoro?
    Laboratorio nazionale di ricerca sulla sicurezza delle informazioni La National Security Agency è responsabile della ricerca e dello sviluppo tecnologico avanzato per consentire alla NSA di fornire soluzioni, prodotti e servizi per la sicurezza delle informazioni alle infrastrutture informative fondamentali per gli interessi di sicurezza nazionale degli Stati Uniti.
    La creazione di un sistema operativo sicuro praticabile rimane una delle principali sfide della ricerca. Il nostro obiettivo è creare un'architettura efficiente che fornisca il supporto necessario per la sicurezza, esegua i programmi in modo ampiamente trasparente per l'utente e sia attraente per i fornitori. Riteniamo che un passo importante per raggiungere questo obiettivo sia dimostrare come i meccanismi di controllo degli accessi forzati possano essere integrati con successo nel sistema operativo principale.
  11. In che modo questo si collega alla precedente ricerca OS NSA?
    I ricercatori del National Assurance Research Laboratory della NSA hanno collaborato con la Secure Computing Corporation (SCC) per sviluppare un'architettura di applicazione potente e flessibile basata su Type Enforcement, un meccanismo sperimentato dal sistema LOCK. NSA e SCC hanno sviluppato due architetture prototipo basate su Mach: DTMach e DTOS (http://www.cs.utah.edu/flux/dtos/). La NSA e l'SCC hanno quindi collaborato con il Flux Research Group dell'Università dello Utah per trasferire l'architettura al sistema operativo Fluke Research. Durante questa migrazione, l'architettura è stata perfezionata per fornire un supporto migliore per i criteri di sicurezza dinamici. Questa architettura migliorata è stata denominata Flask (http://www.cs.utah.edu/flux/flask/). Ora NSA ha integrato l'architettura Flask nel sistema operativo Linux per portare la tecnologia alla più ampia comunità di sviluppatori e utenti.
  12. Linux con sicurezza avanzata è un sistema operativo affidabile?
    La frase "Sistema operativo affidabile" si riferisce generalmente a un sistema operativo che fornisce un supporto sufficiente per la sicurezza e la convalida a più livelli per soddisfare una serie specifica di requisiti governativi. Linux con sicurezza avanzata incorpora informazioni utili da questi sistemi, ma si concentra sul controllo degli accessi forzato. L'obiettivo originale dello sviluppo di Linux con protezione avanzata era creare funzionalità utili che fornissero vantaggi di sicurezza tangibili in un'ampia gamma di ambienti del mondo reale per dimostrare questa tecnologia. SELinux non è di per sé un sistema operativo attendibile, ma fornisce una funzionalità di sicurezza fondamentale, il controllo degli accessi forzato, necessaria per un sistema operativo attendibile. SELinux è stato integrato nelle distribuzioni Linux che sono state classificate secondo il Labeled Security Protection Profile. Informazioni sui prodotti testati e testati sono disponibili all'indirizzo http://niap-ccevs.org/.
  13. È davvero protetta?
    Il concetto di sistema sicuro include molti attributi (ad esempio, sicurezza fisica, sicurezza del personale, ecc.) e Linux con sicurezza avanzata si rivolge solo a un insieme molto ristretto di questi attributi (ovvero, i controlli di imposizione del sistema operativo). In altre parole, "sistema sicuro" significa abbastanza sicuro da proteggere alcune informazioni nel mondo reale da un vero avversario contro il quale il proprietario e/o l'utente delle informazioni viene messo in guardia. Linux potenziato dalla sicurezza ha solo lo scopo di mostrare i controlli richiesti in un sistema operativo moderno come Linux, e quindi è improbabile che da solo si adatti a qualsiasi definizione interessante di un sistema sicuro. Riteniamo che la tecnologia dimostrata in Linux potenziato dalla sicurezza sarà utile per le persone che costruiscono sistemi sicuri.
  14. Cosa hai fatto per migliorare la garanzia?
    L'obiettivo di questo progetto era aggiungere controlli di accesso forzato con modifiche minime a Linux. Quest'ultimo obiettivo limita fortemente ciò che può essere fatto per migliorare la garanzia, quindi non c'è stato lavoro per migliorare la garanzia di Linux. D'altra parte, i miglioramenti si basano sul lavoro precedente sulla progettazione di un'architettura di sicurezza ad alta sicurezza e la maggior parte di questi principi di progettazione è stata trasferita a Linux potenziato dalla sicurezza.
  15. CCEVS valuterà Linux con maggiore sicurezza?
    Di per sé, Linux con sicurezza avanzata non è progettato per affrontare l'insieme completo dei problemi di sicurezza rappresentati da un profilo di sicurezza. Mentre sarebbe possibile valutare solo la sua attuale funzionalità, riteniamo che tale valutazione avrebbe un valore limitato. Tuttavia, abbiamo lavorato con altri per includere questa tecnologia nelle distribuzioni Linux che sono state valutate e nelle distribuzioni che sono in fase di valutazione. Informazioni sui prodotti testati e testati sono disponibili all'indirizzo http://niap-ccevs.org/.
  16. Hai provato a correggere eventuali vulnerabilità?
    No, non abbiamo cercato né trovato alcuna vulnerabilità nel corso del nostro lavoro. Abbiamo contribuito solo con il minimo indispensabile per aggiungere i nostri nuovi ingranaggi.
  17. Questo sistema è approvato per uso governativo?
    Linux con sicurezza avanzata non ha alcuna approvazione speciale o aggiuntiva per l'uso da parte del governo rispetto a qualsiasi altra versione di Linux Linux con sicurezza avanzata non ha un'approvazione speciale o aggiuntiva per l'uso da parte del governo rispetto a qualsiasi altra versione di Linux.
  18. In cosa si differenzia da altre iniziative?
    Linux potenziato dalla sicurezza ha un'architettura ben definita per il controllo degli accessi forzato flessibile che è stato testato sperimentalmente con diversi sistemi prototipo (DTMach, DTOS, Flask). Sono stati eseguiti studi dettagliati sulla capacità dell'architettura di supportare un'ampia gamma di politiche di sicurezza e sono disponibili in http://www.cs.utah.edu/flux/dtos/ и http://www.cs.utah.edu/flux/flask/.
    L'architettura fornisce un controllo granulare su molti servizi e astrazioni del kernel che non sono controllati da altri sistemi. Alcune delle caratteristiche distintive di un sistema Linux con sicurezza estesa sono:

    • Pura separazione della politica dai diritti di esecuzione
    • Interfacce politiche ben definite
    • Indipendenza da specifiche politiche e linguaggi politici
    • Indipendenza da formati e contenuti specifici delle etichette di sicurezza
    • Etichette e controlli separati per oggetti e servizi del kernel
    • Decisioni di accesso alla cache per l'efficienza
    • Supporto per le modifiche alle policy
    • Controllo sull'inizializzazione e l'ereditarietà del processo e sull'esecuzione del programma
    • Gestione di file system, directory, file e descrizioni di file aperti
    • Gestione di socket, messaggi e interfacce di rete
    • Controllo sull'utilizzo delle "Opportunità"
  19. Quali sono le restrizioni di licenza per questo sistema?
    Tutto il codice sorgente trovato sul sito https://www.nsa.gov, è distribuito alle stesse condizioni dei codici sorgente originali. Ad esempio, le correzioni per il kernel Linux e le correzioni per molte delle utilità esistenti disponibili qui vengono rilasciate secondo i termini GNU General Public License (GPL).
  20. Esistono controlli sulle esportazioni?
    Non ci sono controlli di esportazione aggiuntivi per Linux con sicurezza estesa rispetto a qualsiasi altra versione di Linux.
  21. La NSA prevede di utilizzarlo a livello nazionale?
    Per ovvie ragioni, la NSA non commenta l'uso operativo.
  22. La dichiarazione di garanzia del 26 luglio 2002 della Secure Computing Corporation cambia la posizione della NSA secondo cui SELinux è stato reso disponibile sotto la GNU General Public License?
    La posizione della NSA non è cambiata. La NSA crede ancora che i termini e le condizioni della GNU General Public License governino l'uso, la copia, la distribuzione e la modifica di SELinux. Cm. Comunicato stampa della NSA del 2 gennaio 2001.
  23. La NSA supporta il software open source?
    Le iniziative di sicurezza del software dell'NSA abbracciano sia software proprietario che open source, e nelle nostre attività di ricerca abbiamo utilizzato con successo sia modelli proprietari che open source. Il lavoro dell'NSA per migliorare la sicurezza del software è motivato da una semplice considerazione: sfruttare al massimo le nostre risorse per fornire ai clienti dell'NSA le migliori opzioni di sicurezza possibili nei loro prodotti più diffusi. L'obiettivo del programma di ricerca della NSA è sviluppare progressi tecnologici che possano essere condivisi con la comunità di sviluppo del software attraverso una varietà di meccanismi di trasferimento. La NSA non approva né promuove alcun particolare prodotto software o modello di business. Piuttosto, la NSA promuove la sicurezza.
  24. L'NSA supporta Linux?
    Come notato sopra, la NSA non approva o promuove alcun particolare prodotto o piattaforma software; L'NSA contribuisce solo ad aumentare la sicurezza. L'architettura Flask dimostrata nell'implementazione di riferimento di SELinux è stata trasferita su diversi altri sistemi operativi tra cui Solaris, FreeBSD e Darwin, trasferita sull'hypervisor Xen e applicata ad applicazioni come X Window System, GConf, D-BUS e PostgreSQL . I concetti di architettura Flask sono ampiamente applicabili a un'ampia gamma di sistemi e ambienti.

Cooperazione

  1. Come intendiamo interagire con la comunità Linux?
    Abbiamo set di pagine web su NSA.gov, che servirà come modo principale per pubblicare informazioni su Linux con sicurezza avanzata. Se sei interessato a Linux con maggiore sicurezza, ti invitiamo a unirti alla mailing list degli sviluppatori, visualizzare il codice sorgente e fornire il tuo feedback (o codice). Per unirti alla mailing list degli sviluppatori, vedi Pagina della mailing list degli sviluppatori SELinux.
  2. Chi può aiutare?
    SELinux è ora gestito e migliorato dalla comunità del software Linux open source.
  3. L'NSA finanzia lavori di follow-up?
    La NSA non sta attualmente valutando proposte per ulteriori lavori.
  4. Che tipo di supporto è disponibile?
    Intendiamo risolvere i problemi attraverso la mailing list [email protected], ma non saremo in grado di rispondere a tutte le domande relative a un determinato sito.
  5. Chi ha aiutato? Cosa hanno fatto?
    Il prototipo di Linux con sicurezza avanzata è stato sviluppato dalla NSA con partner di ricerca di NAI Labs, Secure Computing Corporation (SCC) e MITRE Corporation. Molto più materiale è seguito dopo il rilascio pubblico iniziale. Consulta l'elenco dei partecipanti.
  6. Come posso saperne di più?
    Ti invitiamo a visitare le nostre pagine Web, leggere la documentazione e i documenti di ricerca passati e partecipare alla nostra mailing list. [email protected]

Trovi utile la traduzione? Scrivi commenti!

Fonte: habr.com

Aggiungi un commento