Security-Enhanced Linux: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
correzioni minori |
3.9 Etichette: Modifica da mobile Modifica da web per mobile |
||
(8 versioni intermedie di 6 utenti non mostrate) | |||
Riga 5:
|Sviluppatore = [[National Security Agency|NSA]] e [[Red Hat]]
|DataPrimaVersione = {{Data|01|01|1998|}}
|UltimaVersione =
|DataUltimaVersione = {{Data|
|SistemaOperativo = Linux
|Linguaggio = c
Riga 16:
}}
In [[informatica]], il '''Security-Enhanced Linux''' ('''SELinux''') è un [[Linux Security Modules|modulo di sicurezza]] del [[Linux (kernel)|kernel Linux]] che fornisce un insieme di strumenti per utilizzare e monitorare il controllo degli accessi incluso il ''[[
SELinux è un set di modifiche che possono essere applicate a [[sistemi operativi]] di tipo [[Unix]] come [[Linux]] e [[BSD]]. La sua architettura cerca di separare l'uso delle regole di sicurezza dalla definizione delle regole stesse, riducendo il numero di [[software]] incaricati a verificare che queste vengano rispettate. I concetti base di SELinux possono essere ricondotti ad alcuni progetti della [[National Security Agency]] (NSA) statunitense.
== Storia ==
Il primo lavoro rivolto a standardizzare i controlli di accesso obbligatori e discrezionali (MAC e DAC) all'interno di un ambiente UNIX (più precisamente [[POSIX]]) può essere attribuito al gruppo di lavoro Trusted UNIX (TRUSIX) dell'agenzia di sicurezza nazionale americana ([[National Security Agency|NSA]]) che dal 1987 al 1991 ha prodotto un modello formale (pubblicato in un [[Rainbow Book]]) ed un prototipo di valutazione che però non è mai stato pubblicato.
SELinux è stato progettato per dimostrare il valore dei controlli di accesso obbligatori alla comunità linux e come tali controlli potrebbero essere aggiunti a Linux. Originariamente, le patch che sono state integrate in SELinux dovevano essere esplicitamente applicate al [[codice sorgente]] del kernel linux, dalla versione 2.6 del kernel invece è stato completamente integrato di default.
Il primo sviluppatore di SELinux, ha rilasciato la prima versione alla comunità di sviluppo [[open source]] sotto la [[GNU General Public License|GNU GPL]] il 22 dicembre 2000.<ref>Compare{{Cita web |url= https://www.nsa.gov/news-features/press-room/press-releases/2001/se-linux.shtml |titolo= National Security Agency Shares Security Enhancements to Linux |data= 2 gennaio 2001 |opera= NSA Press Release |editore= National Security Agency Central Security Service |città= Fort George G. Meade, Maryland |accesso= 17 novembre 2011 |citazione= The NSA is pleased to announce that it has developed, and is making available to the public, a prototype version of a security-enhanced Linux operating system. |dataarchivio= 20 febbraio 2018 |urlarchivio= https://web.archive.org/web/20180220033503/https://www.nsa.gov/news-features/press-room/press-releases/2001/se-linux.shtml |urlmorto= sì }}</ref> Il software si è unito al main kernel Linux 2.6.0-test3, rilasciato l'8 agosto 2003.
Security-Enhanced Linux implementa il [[Flux Advanced Security Kernel]] (FLASK). Questo kernel contiene componenti architetturali progettati per il sistema operativo Fluke. I componenti di Fluke forniscono un ampio supporto per l'applicazione di molti tipi di politiche per il controllo degli accessi obbligatorie, incluse quelle basate su esecuzione, controllo degli accessi role-based (RBAC) e protezioni di [[sicurezza multilivello]]. FLASK, a sua volta, si basa su DTOS, un sistema operativo Trusted Mach, un progetto di ricerca fatto da [[Trusted Information Systems]] che ha influenzato la progettazione e l'implementazione di DTOS.
== Descrizione ==
Da NSA Security-enhanced Linux Team:<ref>{{Cita web |url=https://www.nsa.gov/what-we-do/research/selinux/ |titolo=Security-Enhanced Linux - NSA/CSS |editore=National Security Agency |data=15 gennaio 2009 |accesso=6 febbraio 2013 |dataarchivio=19 luglio 2019 |urlarchivio=https://web.archive.org/web/20190719112434/https://www.nsa.gov/What-We-Do/Research/SELinux/ |urlmorto=sì }}</ref>
<blockquote>NSA Security-Enhanced Linux è un insieme di strumenti del kernel Linux per monitorare il controllo degli accessi ([[Mandatory Access Control|MAC]]) installato nelle principali distribuzioni Linux.
Riga 46:
Gli utenti e le politiche di SELinux non devono essere correlati agli utenti e alle politiche del sistema Linux. Per ogni utente o processo, SELinux assegna un context a tre stringhe costituito da nome utente, ruolo e dominio (o tipo). Di norma, la maggior parte degli utenti reali condivide lo stesso nome utente SELinux e tutto il controllo degli accessi è gestito tramite il terzo tag, il dominio. Questo sistema utilizzato è quindi più flessibile di quanto è normalmente richiesto. Un processo viene posto in un determinato dominio se la configurazione delle politiche lo permette. Per avviare un processo in un contesto esplicitamente specificato (utente, ruolo, dominio) deve essere lanciato con il comando <code>runcon</code>, SELinux può negare l'avvio se non è specificato nella configurazione della politica di sicurezza.
Hardware, porte di rete e file possiedono un contesto SELinux. Questo è costituito da un nome, un ruolo (raramente usato) e un tipo. In caso di [[file system]], il mapping tra i file e i contesti di sicurezza è chiamato etichettatura. L'etichettatura è definita nei file delle politiche, ma può anche essere regolata manualmente senza modificare le configurazioni delle politiche. I tipi, nei contesti SELinux, vengono definiti in modo molto dettagliato.
Ad esempio, <code>bin_t</code> (tutti i file nella cartella /bin) oppure <code>postgresql_port_t</code> (porta [[PostgreSQL]], 5432).
Il contesto SELinux per un file system remoto può essere specificato esplicitamente al momento del montaggio.
Riga 79:
SELinux lo si può anche trovare nelle versioni corrispondenti di [[CentOS]] e [[Scientific Linux]] e dalla versione 4.3<ref>{{Cita web|titolo=Security-Enhanced Linux in Android |accesso=31 gennaio 2016 |editore=Android Open Source Project |url=https://source.android.com/security/selinux/}}</ref> è anche implementato nel sistema operativo [[Android]].
Una delle prime distribuzioni, supportate dalla comunità GNU/Linux, ad aver implementato SELinux è stata [[Fedora (informatica)|Fedora]]. Altre distribuzioni che oggi lo supportano sono [[Debian]], [[Ubuntu]] 8.04 Hardy Heron<ref>{{Cita web|url=https://ubuntu-tutorials.com/2008/03/18/how-to-install-selinux-on-ubuntu-804-hardy-heron/|titolo=How To Install SELinux on Ubuntu 8.04 "Hardy Heron"|opera=Ubuntu Tutorials|accesso=17 dicembre 2017|dataarchivio=5 luglio 2017|urlarchivio=https://web.archive.org/web/20170705102909/https://ubuntu-tutorials.com/2008/03/18/how-to-install-selinux-on-ubuntu-804-hardy-heron/|urlmorto=sì}}</ref> e dalla versione 11.1 Enterprise anche [[SUSE Linux|openSUSE]] ne ha un'implementazione come "anteprima tecnologica"<ref>{{Cita web|url=https://www.novell.com/linux/releasenotes/x86_64/SUSE-SLED/11/#02 |titolo=Release Notes for SUSE Linux Enterprise Desktop 11 |editore=[[Novell]] |data= |accesso=6 febbraio 2013}}</ref>.
SELinux è molto utilizzato nei sistemi basati su [[container linux]], come [[Container Linux di CoreOS]] e rkt<ref>{{Cita web|url=https://coreos.com/os/docs/latest/selinux.html |titolo=SELinux on CoreOS|opera=CoreOS Docs}}</ref>. È utile come controllo di sicurezza aggiuntivo, per contribuire a rafforzare ulteriormente l'isolamento tra i container ed il loro host.
Riga 121:
===Differenze===
* Un'importante differenza riguarda il fatto che AppArmor identifica gli oggetti del filesystem in base al nome del percorso anziché l'utilizzo dell'inode. Ciò significa che, ad esempio, un file inaccessibile può diventare accessibile, in AppArmor, anche solo creando un collegamento fisico, mentre SELinux nega l'accesso tramite il nuovo collegamento fisico appena creato.
* Si può affermare che AppArmor non sia un sistema "type enforcement", infatti ai file non viene assegnato un tipo ma vengono semplicemente referenziati in un [[file di configurazione]].
* SELinux e AppArmor differiscono anche in modo significativo nel modo in cui sono amministrati e in che modo si integrano nel sistema<ref>{{Cita web|url= https://www.suse.com/documentation/sles11/book_security/data/sect1_chapter_book_security.html |editore= SUSE |serie= Security Guide |opera= SELinux |titolo= SELinux backgrounds }}</ref>.
* AppArmor utilizza i tradizionali controlli DAC a livello MAC, il set di operazioni è anche molto più piccolo di quelli disponibili nella maggior parte delle implementazioni di SELinux. Ad esempio, il set di operazioni di AppArmor consiste in: lettura, scrittura, aggiunta, esecuzione, blocco e collegamento<ref>{{Cita web |url=https://manpages.ubuntu.com/manpages/hardy/man5/apparmor.d.5.html |titolo=apparmor.d - syntax of security profiles for AppArmor |urlmorto=sì |urlarchivio=https://web.archive.org/web/20131017094320/http://manpages.ubuntu.com/manpages/hardy/man5/apparmor.d.5.html |dataarchivio=17 ottobre 2013 }}</ref>. SELinux di solito supporta le stesse autorizzazioni, ma include anche controlli per mknod, binding ai socket di rete, uso implicito delle funzionalità POSIX, caricamento e scaricamento dei moduli del kernel, vari modi per accedere alla memoria condivisa, ecc.
Riga 131:
==Sistemi simili==
L'isolamento dei processi e delle applicazioni, per motivi di sicurezza, può essere realizzato anche da altri sistemi, tipo quelli [[virtualizzati]].
Il progetto [[One Laptop
Anche la NSA ha utilizzato alcuni concetti di SELinux per la sicurezza dei sistemi operativi basati su [[Android]]<ref>{{Cita web |titolo=
==Note==
Riga 152:
{{Controllo di autorità}}
{{portale|sicurezza informatica}}
[[Categoria:Sicurezza informatica]]
[[Categoria:Kernel Linux]]
|