SELinux
Z Wikipedie, otevřené encyklopedie
Security-Enhanced Linux (SELinux, česky Linux se zvýšeným zabezpečením) je vlastnost Linuxu, která poskytuje rozmanité možnosti zabezpečení, zahrnující U.S. Department of Defense style mandatory access controls, s použitím Linux Security Modules (LSM) v Linuxovém jádře. Není to Linuxová distribuce, ale spíše souhrn modifikací, který může být aplikován do Unixu podobných operačních systémů, jako je Linux a BSD. Jeho architektura se snaží být v souladu se svazky softwaru, které mají na starosti vynucení si zabezpečení a které jsou úzce spojeny s Trusted Computer System Evaluation Criteria (TCSEC, referované jako Orange Book) požadavekem na trusted computing base (TCB) minimalizaci (aplikovatelnou na hodnotící třídy B3 a A1), která ale není docela spojena s požadavkem na nejmenší privilegium (B2, B3, A1) jak je často prohlašováno. Zárodkové koncepty před SELinuxem můžeme vysledovat v několika dřívějších projektech U.S. National Security Agency.
Obsah |
[editovat] Charakteristika
SELinux byl vyvíjen v americké National Security Agency. Dne 22. prosince 2000 byl uvolněn pod GPL licencí jako open source software a byl začleněn do oficiálního jádra Linuxu verze 2.6.0-test3, které bylo vydáno 8. srpna 2003. Do kódu významně přispěli: Network Associates, Secure Computing Corporation, Trusted Computer Solutions a Tresys. Experimentální porty FLASK/TE implementace byly zpřístupněny přes TrustedBSD projekt pro operační systémy FreeBSD a Darwin.
Z NSA Security-enhanced Linux Team:
- "NSA Security-enhanced Linux je souhrn patchů do Linuxového jádra a některých nástrojů zahrnujících silné, flexibilní mandatory access control (MAC) architektury do hlavních subsystémů jádra. Poskytuje mechanismus k vynucení oddělení informace založené na jistosti a integritě požadavků, který povoluje hrozby nepovolených změn, které mohou obejít aplikace bezpečnostních mechanismů, aby byly adresovány a povolili uzamčení poškození, které může být způsobeno škodlivými, nebo vadnými aplikacemi. Zahrnuje vzorek zabezpečení konfiguračních složek vytvořený ke splnění společných, všeobecných bezpečnostních cílů."
(SELinux byl integrován do verze 2.6 série Linuxového jádra a jednotlivé patche jsou nyní nepotřebné; výše zmíněné je historická citace.)
Security-Enhanced Linux je FLASK implementace integrovaná v některých verzích Linuxového jádra s množstvím nástrojů vytvořených k demonstraci hodnoty mandatory access controls do celku Linuxu a jak tyto kontroly mohou být přidány do Linuxu. Takové jádro obsahuje architektonické součásti, které se poprvé objevily v operačním systému Fluke. Tyto součásti poskytují obecnou podporu k vynucení hodně druhů mandatory access control metod, zahrnujíc ty založené na metodách type enforcement, role-based access control, a multi-level security. Pozorování výzkumu zabezpečení operačního systému může znovu vyvolat DTOS, Mach-derived Distributed Trusted Operating System, na kterém byl Flask založen, stejně jako Trusted Mach, výzkumný projekt od Trusted Information Systems, který ovlivnil designování a implementaci DTOS. Ti které zajímá Type Enforcement může také zajímat Domain and Type Enforcement.
Linuxové jádro integrující SELinux prosazuje mandatory access control metody, které omezují uživatelské programy a systémové servery k minimálnímu množství privilegií, které potřebují k tomu aby udělaly svoje úkony. Tímto se redukuje nebo eliminuje schopnost těchto programů a démonů způsobit poškození, když jsou zkompromitovány (přes přetečení vyrovnávací paměti nebo špatné nastavení, například). Tento mechanismus operuje nezávisle na tradičním Linuxovém mechanismu kontrolujícím přístup. Neexistuje v něm koncept pro "root" super-uživatel, a nesdílí dobře známé nedostatky tradičních Linuxových bezpečnostních mechanismů (jako je závislost na setuid/setgid binaritě).
Bezpečnost nezměněných Linuxových systémů závisí na tom, jak kvalitní je jejich jádro, na všech výsadních aplikacích, a na jejich nastavení. Problém v některé z těchto oblastí může znamenat kompromis v celém systému. Naproti tomu, zabezpečení modifikovaného systému založeném na SELinux jádře závisí hlavně na kvalitě jádra a jeho nastavení zabezpečení. Kdežto problémy se správností, nebo nastavením applikací mohou znamenat omezené kompromisy individuálních uživatelských programů a programů běžících na pozadí, které neznamenají hrozbu bezpečnosti dalších uživatelských programů a programů běžících na pozadí, nebo bezpečnosti systému celého.
Z prostého pohledu, SELinux poskytuje zkřížení konceptů a schopností vyvozených z mandatory access kontrol, mandatory integrity control, role-based access control (RBAC), a type enforcement architecture. Třetí nástroj povoluje člověku postavit různé bezpečnostní opatření.
[editovat] Vlastnosti
- Jasné oddělení metod od vynucení
- Dobře definované metody rozhraní
- Podpora aplikací dotazujících se na metody a vynucující si kontrolu přístupu (například, crond běžící práce ve správném kontextu)
- Nezávislost určitých koncepcí a koncepčních jazyků
- Nezávislost určitých bezpečnostních označených formátů a obsahů
- Individuální označení a kontroly pro objekty a služby jádra
- Skladiště pro přístupová rozhodnutí a jejich účinnost
- Podpora změn bezpečnostních metod
- Oddělená opatření pro ochranu systémové integrity (domain-type) a důvěryhodnosti dat (MLS aka Multilevel security)
- Velmi flexibilní metody
- Kontrola nad inicializací procesů, dědičností a vykonáváním programů
- Kontrola nad systémem souborů, adresářem, složkami, a otevřeným file descriptorem
- Kontrola nad sokety, zprávami, a síťovými rozhraními
- Kontrola nad použitím "schopností"
[editovat] Implementace
SELinux je dostupný s komerční podporou jako část Red Hat Enterprise Linux (RHEL) verze 4 a všemi budoucími vydáními. Podporovaná koncepce v RHEL 4 směřuje k maximální snadnosti používání a proto neomezuje tolik, jak by mohla. Budoucí verze RHEL budou mít více cílů v této oblasti, což bude znamenat více omezovacích koncepcí.
Ve společnosti podporující Linuxové distribuce zdarma, je SELinux podporován v Debian jako "slepené" vydání [1], Ubuntu verze 8.04 od Hardyho Herona [2] , Fedora od verze 2, Hardened Gentoo, a Yellow Dog Linux.
Je také podporován v EnGarde Secure Linux, který požaduje registraci pro stažení.
Byly snahy poskytnout SELinux balíčky pro SUSE[3] a Slackware [4], ale vypadá to že vývoj byl zastaven (soubory jsou již staré).
Také bylo usilováno o jiné distribuce jako třeba Familiar Linux, ale některé z nich byly ukončeny z technických důvodů (dobře známý případ je opuštění práce když SELinux potřeboval extended attributes, které nebyly podporovány v JFFS2 systému souborů).
Nejdřívější práce směřovala k standardizování přístupu k zajištění povinných a volitelných přístupových kontrol (MAC & DAC) v UNIXU (přesněji, POSIXU), počítačově vědecké prostředí může být připisováno pracovní skupině National Security Agency's Trusted UNIX (TRUSIX), která se sešla od roku 1987 do roku 1991 a publikovala Rainbow Book (#020A), také produkovala formální model a spojila hodnotící evidenční prototyp (#020B), který ale nakonec nebyl publikován. Sponzorována Chetem Coatesem a Mariem Tintou z NSA's National Computer Security Center a řízena Charlesem Testou z Infosystems Technology, stežejními architekty projektu TRUSIX — a členy jeho Modelling Subcommittee — byli Steve Bunch, Frank Knowles, Eric Roskos, Larry Wehr, a Bruce Wilner. (Testa a Wilner také krátce řídili NSA Labelling Subcommittee — která počítala mezi své členy Davida Bella, Marva Schaefera a Willise Wara — stejně jako stavěli Trusted RUBIX, jediný relational database management system, který nabízí B2 funkčnost a ujištění B2 POSIXOVÉ platformy, částečně pod slibem United States Air Force Rome Laboratory.) Jejich snahy zejména jako kritikové méně technicky důkladné práce TRUSIX Access Control List (ACL) Subcommittee, přežily v IEEE POSIX 1003.6 "Bezpečnostní rozšíření pro přenosné systémové prostředí" specifikaci.
[editovat] Další systémy
SELinux zastupuje jeden z několika možných přístupů k problému omezení akcí, které může instalovaný systém provádět.
AppArmor systém v podstatě pojímá stejný přístup jako SELinux. Jeden důležitý rozdíl je v tom že identifikuje objekty systému souborů podle jména cesty namísto inode. To znamená, že například soubor, který je nepřístupný se může stát přístupným v AppArmor když je k němu vytvořen pevný odkaz, kdežto SELinux by popřel přístup přes nově vytvořený odkaz. Na druhou stranu v SELinuxu, data, která jsou nepřístupná se mohou stát přístupná když aplikace updatuje soubor tím že ho nahradí za novou verzi (často používaná technika), kde by AppArmor stále popíral přístup k datům. (V obou případech přednastavené koncepce, které nedovolují přístup, předchází problému.)
Zatímco byla vedena značná diskuze, který přístup je lepší, není žádný důkaz o tom že jeden přístup by byl preferovanější před druhým.
Všimněte si také, že existující mechanismus kontrolující přístup zůstal v obou systémech.
SELinux a AppArmor se také výrazně liší v tom jak jsou řízeny a jak se integrují do systému.
Izolace procesu může být také dosažena mechanismem jako virtualizace; OLPC projekt, například odkládá jednotlivé aplikace do nevýznamných Vserverů.
[editovat] Související články
- AppArmor
- Capability
- Computer security
- grsecurity
- Linux
- List of Linux distributions
- NSA
- Rule Set Based Access Control (RSBAC)
- TrustedBSD
- Solaris Trusted Extensions
- Systrace
- Multilevel security
[editovat] Citace
- “Nechte mě abych vás ujistil, že tato akce NSA byla ekvivalentem papeže sestupujícího z balkónu v Římě a získávajícího si dav několika krajíci chleba a rybou a pak pozváním všech na sledování fotbalu a několik piv u něj doma. Jsou prostě některé věci, které člověk nikdy nečeká že by se staly a NSA, která vydala zdrojový kód společně s detaily zabezpečovacího mechanismu, byla přímo na tomto seznamu.” — Larry Loeb [1]
- “...dát špatné příklady a schopnosti týkající se protivníka je pravděpodobně vhodné... Ale to pravděpodobně není nutně vhodné pro všechny uživatele. SELINUX je tak hrozný k použití, že po vyhození značného času uvedením ho do chodu a pak sledovat všechny moje aplikace umřít hroznou smrtí protože neměly vhodnou ručně vyrobenou bezpečnostní koncepci, mě stálo hodně nadávání. Mě dalo výhružný příklad a uvědomil jsem si jak je čas cenný, život je příliš krátký pro SELinux.” — Theodore Ts’o [2]

