SELinux

Från Wikipedia
Hoppa till: navigering, sök

Security-Enhanced Linux (SELinux) är en funktion för Linuxkärnan som gör det möjligt att ha avancerade säkerhetslösningar för körande processer, filer eller hårdvara. SELinux har utvecklats för att möjliggöra användandet av Linux i säkerhetskritiska system.

SELinux främjar tillgången politik för kontroll av säkerhet, inklusive Förenta staternas Department of Defense-stil obligatoriska åtkomstkontroller, genom användning av Linux Security Modules (LSM) i Linux-kärnan. Det är inte en Linux-distribution, utan snarare en uppsättning of Kernel ändringar och användarvänliga utrymme verktyg som kan läggas till olika Linux-distributioner. Dess arkitektur strävar efter att separera verkställighet av beslut om säkerhet från den säkerhetspolitiska sig och effektiviserar volymen av programvara laddas med säkerhetspolitiken verkställighet [1] [2]. De viktigaste begreppen bakom SELinux kan spåras till flera tidigare projekt av USA: s National Security Agency.

SELinux är integrerat i den vanliga Linuxkärnan sedan version 2.6.

Innehåll

Översikt [redigera]

USA National Security Agency (NSA), den ursprungliga primära utvecklaren av SELinux, släppte den första versionen till den öppna källkod samhället under GNU GPL den 22 december 2000. [3] Programmet samman med huvudlinjen Linuxkärnan 2.6. 0-test3, släpptes den 8 augusti 2003. Andra viktiga bidragsgivare inkluderar Network Associates, Secure Computing Corporation, Trusted Solutions Dator och Tresys. Experimentella hamnar i kolven / TE genomförandet har gjorts tillgängliga via TrustedBSD projekt för FreeBSD och Darwin operativsystem.

Från NSA Security-enhanced Linux Team:

   "NSA Security-enhanced Linux är en uppsättning patchar till Linuxkärnan och några verktyg för att införliva en stark, flexibel obligatorisk åtkomstkontroll (MAC) Arkitektur i större delsystem i kärnan. Det ger en förbättrad mekanism för att upprätthålla separation av information baserat på sekretess och krav integritet, vilket gör hot om manipulering och kringgående av ansökan säkerhetsmekanismer som skall behandlas och möjliggör inneslutning av skador som kan orsakas av skadliga eller bristfälliga ansökningar. Den innehåller en rad politiska prov säkerhet konfigurationsfiler för att möta gemensamma, allmänna ändamål säkerhet mål. "

(SELinux har integrerats i version 2,6 serier av Linux-kärnan, och separata patchar är nu onödigt, det ovanstående är en historisk citat.)

Security-Enhanced Linux genomför Flux Advanced Security Kernel (kolv) integreras i vissa versioner av Linux kärna med ett antal verktyg för att påvisa värdet av obligatoriska åtkomstkontroll till Linux och hur sådana kontroller kan läggas till Linux. En sådan kärna innehåller arkitektoniska komponenter prototyp i Fluke operativsystemet. Dessa ger generellt stöd för att genomdriva många typer av obligatoriska riktlinjer för åtkomstkontroll, inklusive de baserade på koncepten av typ verkställighet, rollbaserad åtkomstkontroll och nivåer säkerhet. FLASK i sin tur byggde på DTO: ema, en Mach-deriverad Distributed Trusted Operativsystem, liksom Trusted Mach, ett forskningsprojekt från tillförlitliga informationssystem som hade en inverkan på utformningen och genomförandet av DTO: ema.

En Linux-kärnan Integrera SELinux verkställer obligatoriska passersystem politik som Confine användarprogram och servrar systemet till det minsta privilegium de behöver för att göra sitt jobb. Detta minskar eller eliminerar möjligheten för dessa program och demoner för att orsaka skada när äventyras (via buffertöverflöden eller felaktiga, till exempel). Denna begränsning mekanismen fungerar oberoende av de traditionella Linux åtkomstkontroll mekanismer. Det har inget begrepp om en "root" super-användare, och inte delar de väl kända brister i de traditionella Linux säkerhetsmekanismer (som ett beroende setuid / setgid binärer).

Säkerheten i en "omodifierad" Linux-system (ett system utan SELinux) beror på riktigheten av kärnan av alla de privilegierade program och för varje av deras konfigurationer. Ett problem i något av dessa områden kan tillåta en kompromiss på hela systemet. Däremot säkerhet en "modifierad" system (baserat på en SELinux) kärna beror främst på riktigheten av kärnan och dess säkerhetspolitiska konfiguration. Medan problem med korrekta eller konfiguration av applikationer kan tillåta begränsade kompromiss individuella användarprogram och demoner system, inte utgör de inte ett hot mot säkerheten för andra användare program och demoner system eller säkerheten i systemet som helhet.

Ur en purist perspektiv ger SELinux en hybrid av begrepp och förmågor tas från obligatoriska åtkomstkontroll, obligatoriska kontroller integritet, rollbaserad åtkomstkontroll (RBAC), och typ verkställighet arkitektur. Verktyg från tredje part göra det möjligt att bygga en mängd olika säkerhetsregler.

Användare, policies och säkerhetssammanhang [redigera]

SELinux användare och roller är inte relaterade till de faktiska systemets användare och roller. För varje aktuell användare eller process, tilldelar SELinux en tre sträng kontext som består av en roll, användarnamn och domän (eller typ). Detta system är mer flexibelt än normalt krävs: i regel är de flesta av de verkliga användare delar samma SELinux användarnamn, och alla åtkomstkontroll hanteras genom den tredje taggen, domänen. Omständighet när användaren tillåts att komma in i en viss domän måste konfigureras i politiken. Kommandot runcon möjliggör inledandet av en process i ett uttryckligen anges sammanhang (användare, roll och domän), men SELinux kan förneka övergången om det inte godkänns av politiken konfigurationen.

Filer, hamnar nätverk och annan hårdvara har också en SELinux sammanhang bestående av ett namn, roll (används sällan), och typ. I fråga om de filsystem, kartläggning mellan filer och säkerhet sammanhang kallas märkning. Märkningen definierad i politiska filer men kan även justeras manuellt utan att ändra politik. Hårdvara typer är ganska detaljerade, till exempel bin_t (alla filer i mappen / bin) eller postgresql_port_t (PostgreSQL-port, 5432). Den SELinux sammanhanget för en fjärrfilsystemet kan specificeras explicit vid monteringstid. SELinux lägger-Z omkopplaren till skalkommandon ls, ps, och några andra, så att säkerheten ramen för de filer eller motsvarande för att ses.

Typiska politiska regler består ofta av öppet tillstånd, vilka domäner användaren måste ha för att utföra vissa åtgärder med den givna målet (läsa, köra eller, i händelse av nätverksport, binda eller ansluta), och så vidare. Mer komplexa mappningar är också möjliga, där roller och säkerhetsnivåer. En typisk policy består av en kartläggning (märkning) fil, en regel fil och ett gränssnitt fil som definierar domänen övergången. Dessa tre filer måste kompileras tillsammans med SELinux verktyg för att producera en gemensam politik fil. Den resulterande politiken filen kan laddas in i kärnan, vilket gör det aktivt. Lastning och lossning politik kräver inte en omstart. De politiska filerna är antingen handskrivna eller kan genereras från mer användarvänlig SELinux verktyg. De normalt testas i tillåtande läge först, där kränkningar loggas, men tillåtna. Den audit2allow Verktyget kan användas senare för att producera ytterligare bestämmelser som sträcker sig politiken så att alla legitima verksamheter att ansökan begränsas.

Funktioner [redigera]

   Ren separation av politiken mot verkställighet
   Väldefinierade politiska samspel
   Stöd för applikationer utfrågning politiken och verkställande åtkomstkontroll (till exempel crond köra jobb i rätt sammanhang)
   Oberoende av särskilda strategier och språkpolitik
   Oberoende av särskilda format säkerhetsetikett och innehåll
   Enskilda etiketter och kontroller för kärnan objekt och tjänster
   Stöd för politiska förändringar
   Separata åtgärder för att skydda systemets integritet (domän-typ) och datasekretess (flera nivåer säkerhet)
   Flexibel politik
   Kontroller över processen initiering och arv och programutförande
   Kontroller över filsystem, kataloger, filer och öppna deskriptorer fil
   Kontroller över uttag, meddelanden och nätverksgränssnitt
   Kontrollen över användningen av "möjligheter"
   Cached information om kopplingspunkter-beslut via AVC (Access Vector Cache) [4]

Användning [redigera]

SELinux kan potentiellt kontrollera vilka aktiviteter tillåts för varje användare, process-och demon, med mycket exakta specifikationer. Det är dock oftast används för att begränsa demoner som databas motorer eller webbservrar som har tydligare dataåtkomst och rättigheter aktivitet. En begränsad daemon som blir äventyras således begränsad i den skada den kan göra. Vanlige användaren behandlar ofta körs i enaxliga domänen begränsas inte av SELinux men ändå begränsas av de klassiska Linux rättigheter.

Se även: chcon [5], restorecon [6], restorecond [7], runcon [8], sekundär [9], fixfiles [10], setfiles [11], load_policy [12], booleska [13], getsebool [ 14], setsebool [15], togglesebool [16] setenforce, load_policy setfiles [17], selinuxenabled, semodule, postfix-nochroot, check-selinux-installation, semodule_package, checkmodule, selinux-config-upprätthålla, selinuxenabled, selinux-policy- uppgradera; och även: security_set_boolean [18]

Användning exempel (för att sätta SELinux i tillåtande läge):

  1. Setenforce 0

Implementeringar [redigera]

SELinux finns med kommersiell support som en del av Red Hat Enterprise Linux (RHEL) version 4 och alla framtida releaser. Denna närvaro återspeglas också i motsvarande versioner av CentOS. Som stöds politik RHEL4 är målinriktad politik som syftar till maximal användarvänlighet och är således inte lika restriktiv som det kan vara. Framtida versioner av RHEL kommer att ha fler mål i den riktade politik som kommer att innebära en mer restriktiv politik.

I fria samhället stödda GNU / Linux-distributioner, var Fedora en av de tidigaste adopters, inklusive stöd för den som standard sedan Fedora Core 2. Andra distributioner inkluderar stöd för den som Debian som av etch-utgåvan, [19] Ubuntu och med 8,04 Hardy Heron, [20] Härdat Gentoo och Yellow Dog Linux.

Det är också stöd i EnGarde Secure Linux. [Behövd stämning]

Från och med version 11,1, innehåller openSUSE SELinux "grundläggande Enablement". [21] SUSE Linux Enterprise 11 kommer att innehålla SELinux som en "Technology Preview".

Det fanns en del arbete för att ge SELinux paket för Slackware, [22] men utvecklingen verkar ha stagnerat.

Det har varit arbete med andra distributioner såsom Familiar Linux, men en del av detta var upphört på grund av tekniska orsaker. (Den välbekanta Linux Arbetet övergavs när SELinux behov förlängas filattribut utan stöd i JFFS2 filsystemet.) [Behövd stämning]

Det tidigaste arbete riktat mot standardisering av en inflygning till tillhandahållande av obligatoriska och diskretionär åtkomstkontroller (MAC och DAC) inom en UNIX (mer exakt, POSIX) datormiljö kan hänföras till National Security Agency Trusted UNIX (TRUSIX) Working Group, som sammanträdde 1987 till 1991 och publiceras en Rainbow Book (# 020A) och producerade en formell modell och tillhörande bedömningsbevis prototyp (# 020B) som var ytterst opublicerade. Det sponsras av Chet Coates och Mario Tinto av NSA: s nationella Computer Security Center, och förvaltas av Dr Charles Testa och Bruce Wilner i InfoSystems Technology (Greenbelt, Maryland, senare, Falls Church, Virginia), de avgörande arkitekter TRUSIX projektet , och medlemmarna i modellering underutskott -. Steve gäng, Dr Frank Knowles, Dr J. Eric Roskos, Larry Wehr, och Bruce Wilner [23] Deras insatser, särskilt som kritiker av den mindre tekniskt djupgående arbete TRUSIX Access Control List (ACL) Underkommittén, överleva i IEEE POSIX 1003.6 "säkerhet tillägg för bärbara operativsystem miljöer"-specifikationen. [behövd stämning]

Andra system [redigera]

SELinux är en av flera möjliga metoder för att problemet med att begränsa de åtgärder som installerad programvara kan ta.

AppArmor Systemet tar i allmänhet ett liknande förhållningssätt till SELinux. En viktig skillnad är att AppArmor identifierar föremål filsystemet genom sökvägen istället för inode. Detta innebär att till exempel kan en fil som är oåtkomligt blir tillgänglig under AppArmor när en hård länk skapas till det, samtidigt som SELinux skulle förneka åtkomst via det nyskapade hårda länk. Å andra sidan kan data som är otillgängliga i SELinux blir tillgängliga när ansökan uppdatera filen genom att ersätta den med en ny version - en ofta använd teknik - medan AppArmor skulle fortsätta att neka åtkomst till uppgifterna. I båda fallen undviks en standard politik för "ingen åtkomst" problemet. [Behövd stämning]

SELinux-och AppArmor skiljer sig också markant i hur de administreras och hur de integreras i systemet. [Behövd stämning]

Isolering av processer kan även åstadkommas genom mekanismer som virtualisering, den OLPC-projektet, till exempel i sin första genomförandet [24] sandbox enskilda program i lätta Vservers.

Se även [redigera]