SELinux | |
---|---|
SELinux Adminisztrációs GUI a Fedora 8 rendszeren | |
Típusú | Biztonság |
Fejlesztő | piros kalap |
Beírva | Xi |
Operációs rendszer | Linux kernel komponens |
Első kiadás | 1998 |
legújabb verzió | |
felszabadító jelölt |
|
Engedély | GNU GPL |
Weboldal | selinuxproject.org |
Médiafájlok a Wikimedia Commons oldalon |
A SELinux ( angolul Security-Enhanced Linux – Linux fokozott biztonsággal) egy kényszerített hozzáférés-vezérlő rendszer megvalósítása , amely párhuzamosan működhet a klasszikus szelektív beléptetőrendszerrel .
A szelektív hozzáférés-vezérlő rendszeren belül maradva az operációs rendszer alapvető korlátokkal rendelkezik az erőforrásokhoz való folyamathoz való hozzáférés megosztása tekintetében - az erőforrásokhoz való hozzáférés a felhasználói hozzáférési jogokon alapul. Ezek klasszikus jogok rwxhárom szinten - tulajdonos, tulajdonosi csoport és mások.
A SELinuxban a hozzáférési jogokat maga a rendszer határozza meg speciálisan meghatározott házirendek segítségével. A házirendek rendszerhívási szinten működnek, és maga a kernel kényszeríti ki őket (de megvalósíthatók alkalmazásszinten is). A SELinux a klasszikus Linux biztonsági modell szerint működik. Más szavakkal, nem engedélyezheti a SELinuxon keresztül azt, amit a felhasználói vagy csoportos engedélyek tiltanak. A házirendek leírása a hozzáférési szabályok leírására szolgáló speciális rugalmas nyelven történik. A legtöbb esetben a SELinux szabályok "átláthatóak" az alkalmazások számára, és nincs szükség módosításra. Egyes disztribúciók olyan készenléti irányelveket tartalmaznak, amelyekben a jogok a folyamat (alany) és a fájl (objektum) típusok egyezése alapján határozhatók meg – ez a SELinux fő mechanizmusa. A hozzáférés-szabályozás két másik formája a szerepalapú hozzáférés és a biztonsági alapú hozzáférés. Például " DSP ", "titkos", "szigorúan titkos", " OV ".
A legkönnyebben használható és karbantartható házirend a Fedora projekt által kifejlesztett úgynevezett „célzott” házirend . A házirend több mint 200 olyan folyamatot ír le, amelyek futhatnak az operációs rendszeren. Minden, amit a "cél" házirend nem ír le, a tartományban történik (típussal) unconfined_t. Az ebben a tartományban futó folyamatokat nem védi a SELinux. Így minden harmadik féltől származó felhasználói alkalmazás probléma nélkül fog működni egy „célzott” házirenddel rendelkező rendszerben a szelektív beléptetőrendszer klasszikus engedélyein belül.
A „célzott” házirend mellett egyes disztribúciók tartalmaznak egy réteges biztonsági modellt is ( a Bell-LaPadula modellt támogatva ).
A harmadik szakpolitikai lehetőség a „szigorú”. Itt az „ami nem megengedett, az tilos” ( a legkisebb jogok elve ) elve érvényesül. A szabályzat a Tresys Reference Policy-n alapul .
A SELinuxot az Egyesült Államok Nemzetbiztonsági Ügynöksége fejlesztette ki , majd a forráskódját letölthetővé tették.
Eredeti szöveg (angol)[ showelrejt] Az NSA biztonsággal továbbfejlesztett Linux csapatától :
"Az NSA Security Enhanced Linux a Linux kernel és néhány segédprogram javításainak készlete, amelyek egy erős, rugalmas kötelező hozzáférés-vezérlési (MAC) architektúrát építenek be a kernel fő alrendszereibe. Mechanizmust biztosít az információk titkossági és integritási követelményeken alapuló elkülönítésének kikényszerítésére, amely lehetővé teszi az alkalmazásbiztonsági mechanizmusok manipulálásával és megkerülésével kapcsolatos fenyegetések kezelését, és lehetővé teszi a rosszindulatú vagy hibás alkalmazások által okozott károk korlátozását. Tartalmaz olyan minta biztonsági házirend-konfigurációs fájlokat, amelyeket úgy terveztek, hogy megfeleljenek a közös, általános célú biztonsági céloknak."
A SELinux benne van a Linux kernelben (a 2.6-os verzió óta).
Ezenkívül a SELinux bizonyos segédprogramok ( ps , ls és mások) módosított verzióit is megköveteli, amelyek támogatják az új kernelfunkciókat és a fájlrendszer támogatását.
Az LSM ( angolul Linux Security Modules – Linux biztonsági modulok) betölthető kernelmodulok formájában valósul meg. Elsősorban az LSM-eket a hozzáférés-vezérlés támogatására használják. Az LSM-ek önmagukban nem nyújtanak további biztonságot a rendszernek, csak egyfajta támogatási felületként szolgálnak. Az LSM rendszer az elfogó funkciók megvalósítását biztosítja, amelyeket a védelemre szoruló fő műveleteket lefedő biztonságpolitikai struktúrában tárolnak. A rendszerhez való hozzáférés szabályozása a konfigurált házirendeknek köszönhetően történik.
A legtöbb operációs rendszer rendelkezik hozzáférés-vezérlési szolgáltatásokkal és módszerekkel, amelyek viszont meghatározzák, hogy az operációs rendszer szintjén lévő entitás (felhasználó vagy program) hozzáfér-e egy adott erőforráshoz. A következő hozzáférés-szabályozási módszerek használatosak:
Megjelenésének legelején a SELinuxot patchként implementálták. Ebben az esetben nem volt könnyű konfigurálni a biztonsági házirendet. Az LSM-mechanizmusok megjelenésével a biztonsági konfigurálás és kezelés nagymértékben leegyszerűsödött (a szabályzat és a biztonsági végrehajtási mechanizmusok különváltak), a SELinux rendszermag-bővítményként valósult meg. Az operációs rendszer belső objektumaihoz való hozzáférés előtt a rendszermag kódja megváltozik. Ezt speciális funkciókkal ( rendszerhívás-elfogók ) , az úgynevezett hook függvényekkel valósítják meg . Az elfogó funkciók valamilyen adatstruktúrában vannak tárolva, céljuk bizonyos biztonsági műveletek végrehajtása egy előre meghatározott szabályzat alapján. Maga a modul hat fő összetevőből áll: egy biztonsági szerver; hozzáférés vektoros gyorsítótárhoz ( eng. Access Vector Cache , AVC); hálózati interfész táblák; hálózati értesítési jel kódja; virtuális fájlrendszere ( selinuxfs ) és az elfogó funkciók megvalósítása.
A SELinux a Red Hat Enterprise Linux részeként a 4-es verzió óta elérhető a kereskedelemben.
Támogatott Linux disztribúciók a közösségben:
A SELinux egyike a számos lehetséges megközelítésnek a telepített szoftverek által végrehajtott műveletek korlátozására.
Az AppArmor rendszer nagyjából ugyanazt teszi, mint a SELinux. Az egyik fontos különbség ezek között a rendszerek között a fájlrendszer-objektumok azonosításának módja: az AppArmor a teljes elérési utat használja, a SELinux pedig az inode használatával mélyebbre megy .
Ezek a különbségek két esetben jelentkeznek:
Ezek a problémák mindkét rendszeren elkerülhetők az alapértelmezett „nincs hozzáférés” házirend alkalmazásával.