Ciao a tutti! Abbiamo preparato una traduzione delle FAQ ufficiali del progetto SELinux per gli studenti del corso . Pensiamo che questa traduzione possa essere utile non solo agli studenti, quindi la condividiamo con voi.

Abbiamo cercato di rispondere ad alcune delle domande più frequenti sul progetto SELinux. Attualmente, le domande sono suddivise in due categorie principali. Tutte le domande e risposte sono riportate .
Panoramica
Panoramica
- Che cos'è Linux con sicurezza migliorata?
Linux con sicurezza migliorata (SELinux — Security-enhanced Linux) è l'implementazione di riferimento dell'architettura di sicurezza Flask per un controllo degli accessi obbligatorio flessibile. È stato creato per dimostrare l'utilità dei meccanismi di gestione degli accessi flessibili e come tali meccanismi possano essere integrati nel sistema operativo. L'architettura Flask è stata successivamente integrata in Linux e portata su diversi altri sistemi, tra cui il sistema operativo Solaris, il sistema operativo FreeBSD e il kernel Darwin, dando origine a una vasta gamma di lavori correlati. L'architettura Flask fornisce supporto generale per l'applicazione di vari tipi di politiche di controllo degli accessi obbligatori, comprese quelle basate sui concetti di Type Enforcement, Controllo degli Accessi Basato sui Ruoli e Sicurezza a più livelli. - Quali vantaggi offre Linux con sicurezza migliorata che il Linux standard non può fornire?
Il kernel Linux con sicurezza avanzata implementa politiche di controllo accesso obbligatorio che limitano i programmi utente e i server di sistema a un insieme minimo di privilegi necessari per eseguire le loro operazioni. Con questa restrizione, la capacità di tali programmi utente e demoni di sistema di causare danni in caso di compromissione (come ad esempio da un buffer overflow o configurazione errata) è ridotta o eliminata. Questo meccanismo di restrizione opera in modo indipendente dai tradizionali meccanismi di controllo accesso di Linux. Non riconosce il concetto di superutente "root" e non condivide le note vulnerabilità dei tradizionali metodi di protezione Linux (come 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 ciascuna delle loro configurazioni. Un problema in uno di questi ambiti può compromettere l'intero sistema. Al contrario, la sicurezza di un sistema modificato basato su un kernel Linux con maggiore sicurezza dipende, prima di tutto, dalla correttezza del kernel e dalla configurazione della sua politica di sicurezza. Sebbene i 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 degli altri programmi utente e demoni di sistema o per la sicurezza del sistema nel suo complesso. - A cosa serve?
Le nuove funzionalità di Linux migliorano la sicurezza e sono progettate per garantire la separazione delle informazioni in base ai requisiti di riservatezza e integrità. Queste sono destinate a prevenire la lettura dei dati e dei programmi, la falsificazione di dati e programmi, l'aggiramento dei meccanismi di sicurezza delle applicazioni, l'esecuzione di programmi non affidabili o l'interferenza con altri processi in violazione della politica di sicurezza del sistema. Inoltre, aiutano a limitare i danni potenziali causati da software dannoso o difettoso. Devono anche essere utili per consentire l'utilizzo di un singolo sistema da parte di utenti con diverse autorizzazioni di sicurezza per accedere a vari tipi di informazioni con requisiti di sicurezza differenti, senza compromettere tali requisiti. - Come posso ottenere una copia?
Molti distribuzioni Linux includono il supporto SELinux, già integrato come funzione di default o come pacchetto aggiuntivo. Il codice sorgente principale dell'utente per SELinux è disponibile su . Gli utenti finali devono generalmente utilizzare i pacchetti forniti dalla loro distribuzione. - Cosa include il tuo rilascio?
Il rilascio di NSA SELinux include il codice sorgente principale dell'utente di SELinux. Il supporto per SELinux è già incluso nel kernel Linux 2.6, disponibile su kernel.org. Il codice sorgente principale dell'utente di SELinux consiste in una libreria per la manipolazione della politica binaria (libsepol), un compilatore di politica (checkpolicy), una libreria per le applicazioni di sicurezza (libselinux), una libreria per gli strumenti di gestione della politica (libsemanage) e diversi strumenti correlati alla politica (policycoreutils).
In aggiunta al kernel con supporto SELinux e al codice sorgente principale dell'utente, avrai bisogno di una politica e di alcuni pacchetti dell'utente corretti per SELinux per utilizzare SELinux. La politica può essere ottenuta da . - Posso installare Linux con protezione rinforzata 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 per SELinux. SELinux è composto da un kernel Linux con supporto SELinux, un insieme base di librerie e utility, alcuni pacchetti utente modificati e la configurazione delle politiche. Per installarlo su un sistema Linux esistente privo di supporto SELinux, devi essere in grado di compilare il software e avere gli altri pacchetti di sistema necessari. Se la tua distribuzione Linux include già il supporto per SELinux, non è necessario compilare o installare il rilascio NSA di SELinux. - Quanto è compatibile Linux con la sicurezza avanzata rispetto a un Linux non modificato?
Linux con sicurezza avanzata offre compatibilità binaria con le applicazioni Linux esistenti e con i moduli del kernel Linux esistenti, ma alcuni moduli del kernel possono richiedere modifiche per interagire correttamente con SELinux. Queste due categorie di compatibilità sono discusse in dettaglio qui sotto:- 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 aggiunto nuove chiamate API per le applicazioni che forniscono sicurezza. Tuttavia, non abbiamo modificato alcuna struttura dati visibile per le applicazioni e non abbiamo cambiato l'interfaccia di alcuna chiamata di sistema esistente, quindi le applicazioni esistenti possono funzionare senza modifiche, se la politica di sicurezza lo consente. - Compatibilità dei moduli del kernel
Inizialmente, SELinux offriva compatibilità solo per i moduli del kernel esistenti; era necessario ricompilare tali moduli con le intestazioni del kernel modificate per catturare i nuovi campi di sicurezza aggiunti nelle strutture dati del kernel. Poiché LSM e SELinux sono ora integrati nel kernel Linux 2.6, SELinux fornisce ora compatibilità binaria con i moduli del kernel esistenti. Tuttavia, alcuni moduli del kernel potrebbero avere problemi di interazione con SELinux senza modifiche. Ad esempio, se un modulo del kernel alloca e imposta direttamente un oggetto del kernel senza utilizzare le consuete funzioni di inizializzazione, l'oggetto del kernel potrebbe non avere le corrette informazioni di sicurezza. Alcuni moduli del kernel potrebbero anche non avere un adeguato controllo di sicurezza delle loro operazioni; eventuali chiamate esistenti a funzioni del kernel o funzioni di autorizzazione attiveranno controlli di autorizzazione SELinux, ma per garantire il rispetto delle politiche MAC potrebbero essere necessari controlli più dettagliati o aggiuntivi.
Linux con sicurezza avanzata non dovrebbe causare problemi di interoperabilità con i normali sistemi Linux, a condizione che tutte le operazioni necessarie siano autorizzate dalla configurazione della politica di sicurezza.
- Compatibilità delle applicazioni
- Quali sono gli obiettivi dell'esempio di configurazione della politica di sicurezza?
A un livello elevato, l'obiettivo è dimostrare la flessibilità e la sicurezza dei controlli di accesso obbligatori e fornire un sistema funzionante semplice con minime modifiche alle applicazioni. A un livello più basso, la politica ha una serie di obiettivi descritti nella documentazione della 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 di sistema e dei log di sistema, la limitazione del danno potenziale che può derivare 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, il prevenire l'interferenza dei normali processi utente nei processi di sistema o negli processi dell'amministratore, e la protezione degli utenti e degli amministratori dall'uso di vulnerabilità nei loro browser da parte di codice mobile dannoso. - Perché Linux è stato scelto come piattaforma di base?
Linux è stata scelta come piattaforma per la realizzazione iniziale di questo lavoro grazie al suo crescente successo e all'open source. Linux offre un'eccellente opportunità per dimostrare che questa funzionalità può avere successo 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 una visione il più ampia possibile e potrebbe servire da base per ulteriori ricerche sulla sicurezza da parte di altri appassionati. - Perché avete realizzato questo lavoro?
L'Agenzia per la Sicurezza Nazionale è responsabile della ricerca e dello sviluppo di tecnologie necessarie affinché l'NSA possa fornire soluzioni, prodotti e servizi per garantire la sicurezza informatica delle infrastrutture informative, fondamentali per gli interessi di sicurezza nazionale degli Stati Uniti.
La creazione di un sistema operativo sicuro e funzionale rimane una delle principali sfide di ricerca. Il nostro obiettivo è sviluppare un'architettura efficace che fornisca il supporto necessario alla sicurezza, eseguendo programmi in modo ampiamente trasparente per l'utente e attraente per i fornitori. Riteniamo che un passo fondamentale per raggiungere questo obiettivo sia dimostrare come i meccanismi di controllo degli accessi forzati possano essere integrati con successo nel sistema operativo principale. - Come si collega alle ricerche precedenti dell'NSA?
Ricercatori della National Security Agency (NSA) insieme alla Secure Computing Corporation (SCC) hanno sviluppato un'architettura di controllo degli accessi forzati potente e flessibile basata su Type Enforcement, un meccanismo inizialmente sviluppato per il sistema LOCK. L'NSA e la SCC hanno creato due prototipi dell'architettura basata su Mach: DTMach e DTOS (). NSA e SCC hanno successivamente 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 perfezionata per garantire un migliore supporto per le politiche di sicurezza dinamiche. Questa architettura migliorata è stata chiamata Flask (). Ora la NSA ha integrato l'architettura Flask nel sistema operativo Linux, per trasmettere questa tecnologia a un pubblico più ampio di sviluppatori e utenti. - Linux con una sicurezza migliorata è un sistema operativo affidabile?
Il termine «Sistema operativo affidabile» si riferisce generalmente a un sistema operativo che offre un adeguato supporto per la protezione multilivello e la validazione della correttezza, in modo da soddisfare un determinato insieme di requisiti governativi. Linux con miglioramenti nella sicurezza incorpora idee utili da questi sistemi, ma si concentra sul controllo di accesso obbligatorio. L'obiettivo iniziale dello sviluppo di Linux con miglioramenti nella sicurezza era di creare funzionalità utili che forniscano vantaggi significativi nella protezione in una vasta gamma di ambienti reali per dimostrare questa tecnologia. SELinux non è di per sé un sistema operativo affidabile, ma fornisce una funzione di protezione critica: il controllo di accesso obbligatorio, necessario per un sistema operativo affidabile. SELinux è stato integrato in distribuzioni Linux che sono state valutate in base al profilo di protezione della sicurezza etichettata. Informazioni sui prodotti certificati e verificabili possono essere trovate all'indirizzo . - È davvero protetta?
Il concetto di un sistema sicuro comprende numerosi attributi (come la sicurezza fisica, la sicurezza del personale, ecc.), e Linux con sicurezza avanzata si occupa solo di un insieme molto ristretto di questi attributi (cioè gli elementi di controllo degli accessi forzati nel sistema operativo). In altre parole, un "sistema sicuro" è sufficientemente protetto da proteggere alcune informazioni nel mondo reale da un avversario reale contro cui il proprietario e/o l'utente delle informazioni è avvertito. Linux con sicurezza avanzata è progettato solo per dimostrare gli elementi di controllo obbligatori in un moderno sistema operativo come Linux e quindi da solo è improbabile che soddisfi qualche definizione interessante di sistema sicuro. Crediamo che la tecnologia dimostrata in Linux con sicurezza avanzata sarà utile per le persone che creano sistemi sicuri. - Cosa hai fatto per aumentare le garanzie?
L'obiettivo di questo progetto è stato quello di aggiungere controlli di accesso forzato apportando modifiche minime a Linux. Questa ultima meta limita fortemente ciò che può essere fatto per migliorare la garanzia, quindi non è stato condotto alcun lavoro volto a migliorare la garanzia di Linux. D'altra parte, i miglioramenti si basano su precedenti lavori di sviluppo di un'architettura di sicurezza altamente affidabile e la maggior parte di questi principi di progettazione è stata trasferita in Linux con una maggiore sicurezza. - Il CCEVS valuterà Linux con maggiore sicurezza?
Di per sé, Linux con maggiore sicurezza non è destinato a risolvere l'intero insieme di problemi di sicurezza presentati dal profilo di sicurezza. Sebbene sia possibile valutare solo le sue attuali funzionalità, riteniamo che tale valutazione avrebbe un valore limitato. Tuttavia, abbiamo collaborato con altri per includere questa tecnologia nelle distribuzioni Linux che sono state valutate e in quelle in fase di valutazione. Le informazioni sui prodotti verificati e in fase di verifica possono essere trovate all'indirizzo . - Hai cercato di correggere delle vulnerabilità?
No, non abbiamo cercato né trovato vulnerabilità durante il nostro lavoro. Abbiamo solo apportato il minimo necessario per aggiungere i nostri nuovi meccanismi. - 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. - In cosa si differenzia da altre iniziative?
Linux con sicurezza migliorata ha un'architettura chiaramente definita per un controllo accessi flessibile, che è stata sperimentalmente testata con diversi sistemi prototipali (DTMach, DTOS, Flask). Studi dettagliati sono stati condotti sulla capacità dell'architettura di supportare una vasta gamma di politiche di sicurezza e sono disponibili in e .
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 migliorata includono:- Separazione netta delle politiche dai diritti di applicazione
- Interfacce politiche chiaramente definite
- Indipendenza da politiche specifiche e linguaggi politici
- Indipendenza da formati specifici e contenuti delle etichette di sicurezza
- Etichette e controlli separati per oggetti e servizi di base
- Caching delle decisioni di accesso per efficienza
- Supporto per modifiche alle politiche
- Controllo dell'inizializzazione del processo e dell'eredità e dell'esecuzione del programma
- Gestione di file system, directory, file e descrittori di file aperti
- Gestione di socket, messaggi e interfacce di rete
- Controllo dell'uso delle "Capacità"
- Quali sono le restrizioni di licenza per questo sistema?
Tutto il codice sorgente trovato sul sito , è distribuito alle stesse condizioni dei codici sorgente originali. Ad esempio, le correzioni per il kernel Linux e le correzioni per molti utility esistenti disponibili qui vengono rilasciate secondo i termini . - C'è un controllo sulle esportazioni?
Per Linux con sicurezza avanzata non ci sono controlli aggiuntivi per l'esportazione rispetto a qualsiasi altra versione di Linux. - L'NSA prevede di utilizzarlo all'interno del paese?
Per motivi comprensibili, l'NSA non commenta l'uso operativo. - Modifica la Dichiarazione di Garanzie del 26 luglio 2002 della Secure Computing Corporation la posizione dell'NSA sul fatto che SELinux sia fornito sotto la GNU General Public License?
La posizione dell'NSA non è cambiata. L'NSA continua a ritenere che i termini e le condizioni della GNU General Public License standard regolino l'uso, la copia, la distribuzione e la modifica di SELinux. Vedi. . - L'NSA supporta il software open source?
Le iniziative della NSA per migliorare la sicurezza del software comprendono sia software proprietario che open source, e abbiamo utilizzato con successo modelli sia proprietari che aperti nelle nostre attività di ricerca. Il lavoro della NSA per migliorare la sicurezza del software è motivato da un semplice principio: utilizzare al meglio le nostre risorse per fornire ai clienti della NSA le migliori opzioni di sicurezza possibili nei prodotti più utilizzati. L'obiettivo del programma di ricerca della NSA è sviluppare innovazioni tecnologiche che possano essere condivise con la comunità degli sviluppatori software tramite vari meccanismi di trasferimento. La NSA non supporta né promuove nessun prodotto software specifico o modello di business. Piuttosto, la NSA contribuisce al miglioramento della sicurezza. - La NSA supporta Linux?
Come menzionato in precedenza, la NSA non supporta né promuove alcun prodotto software o piattaforma specifica; la NSA si impegna solo a migliorare la sicurezza. L'architettura Flask, dimostrata nell'implementazione di riferimento di SELinux, è stata portata su diversi altri sistemi operativi, tra cui Solaris, FreeBSD e Darwin, trasferita su hypervisor Xen e applicata a applicazioni come X Window System, GConf, D-BUS e PostgreSQL. Le concettualizzazioni dell'architettura Flask sono ampiamente applicabili a una vasta gamma di sistemi e ambienti.
Collaborazione
- Come pianifichiamo di interagire con la comunità Linux?
Abbiamo , che saranno il nostro principale mezzo per pubblicare informazioni su Linux con sicurezza migliorata. Se sei interessato a Linux con sicurezza migliorata, ti consigliamo di iscriverti alla mailing list degli sviluppatori, esaminare il codice sorgente e fornire il tuo feedback (o codice). Per iscriverti alla mailing list degli sviluppatori, visita. . - Chi può aiutare?
SELinux è ora supportato e sviluppato dalla comunità degli sviluppatori di software open source per Linux. - L'NSA finanzia qualche lavoro successivo?
Attualmente l'NSA non sta valutando proposte per ulteriori lavori. - Quale tipo di supporto è disponibile?
Abbiamo intenzione di affrontare le questioni attraverso la mailing list selinux@tycho.nsa.gov, ma non saremo in grado di rispondere a tutte le domande legate a siti specifici. - Chi ha aiutato? Cosa hanno fatto?
Un prototipo di Linux con maggiore sicurezza è stato sviluppato dall'NSA insieme a partner di ricerca di NAI Labs, Secure Computing Corporation (SCC) e MITER Corporation. Dopo il rilascio pubblico iniziale, sono seguiti molti altri materiali. . - Come posso saperne di più?
Ti consigliamo di visitare le nostre pagine web, leggere la documentazione e i lavori di ricerca passati, e partecipare alla nostra mailing list selinux@vger.kernel.org
Ritieni che la traduzione sia utile? Inviaci i tuoi commenti!
Fonte: habr.com
