Védd magad! - Az SELinux 1.
Szinte mindenkivel előfordult már, hogy egy rosszul működő alkalmazás miatt betörés áldozata lett, vagy éppenséggel a hagyományosnál finomabban kellett volna szabályoznia a rendszer jogosultságait. Nos, ilyen helyzetekre született az SELinux.
A Linux jogosultsági rendszere (DAC - discretionary access control) a Unix-ből maradt ránk. Sokan szeretik, hiszen egyszerűségéből adódóan gyorsan és áttekinthetően lehet a jogosultságok kiosztását, menedzselését elvégezni. Akik jobban ismerik, azok már bírálják, hiszen a hagyományos user - group - others triumvirátuson kívüli kombinációkat elég nehéz leképezni benne. Ráadásul igen sok hátránya is van: egy felhasználó által indított alkalmazás, processz mindig az adott user jogosultságaival fog futni - ha ez éppenséggel a root, akkor könnyen belátható, hogy egy rosszul megírt alkalmazás vagy gonosz program végzetes kárt okozhat.
Az MAC (Mandatory Access Control) rendszerek pontosan ezt a többességet próbálják megakadályozni. A működésük lényege, hogy minden, a rendszerben futó process és user számára kötelező szabályokat definiálunk, amelyek kibúvók nélkül mindenkire vonatkoznak, még a rootra is. Ezzel könnyedén korlátozhatjuk az adminisztrátor jogosultságait, illetve az egyes alkalmazások elleni támadásokat, korrekt védelmet adva rendszerünknek.
A Linux kernel sokáig nem tartalmazott semmilyen MAC megoldást. Később megjelentek ugyan egyes kiegészítők (pl. grsecurity, LIDS, RSBAC), de valamilyen okból nem lettek igazán népszerűek és az enterprise világban sem terjedtek el. A 90-es években az Amerikai Nemzetbiztonsági Hivatal (NSA) indított egy projektet, melynek célja egy igazán biztonságos platform kialakítása volt. Eleinte önálló környezetben gondolkoztak (Flux/Flask), aztán kis keresgélés után ráakadtak a Linux kernelére, amely nyílt fejlesztési modellje miatt tökéletes alanya volt a kísérleteknek. Innen egyenes út vezetett ahhoz, hogy mindenki számára elérhetővé váljon a fejlesztések eredménye, így megszületett a Security Enhanced Linux, röviden SELinux.
Az SELinux több olyan megoldást ötvöz, amely mindegyike külön-külön is erős biztonsági környezet kialakítását teszi lehetővé:
- Type Enforcement: processzek és erőforrások biztonsági típusainak definiálása és összerendelése
- RBAC: role-okat (szerepköröket) definiálhatunk és ezekhez egyedi felhasználókat adhatunk
- MLS és az MCS (Multi Category Security és Multi Level Security): többszintű felhasználói és fájlrendszer biztonság implementálása
Az SELinux fejlesztői között mindenképpen érdemes megemlíteni a Red Hat-et, hiszen a Red Hat Enterprise Linux volt az első kereskedelmi disztribúció, amelyik teljes és közel tökéletes támogatást tartalmazott az SELinux, első komoly alkalmazási területe a RHEL 4-ben megjelent targeted policy volt (erről majd később, részletesebben is írunk), a RHEL 5-ben pedig teljesen új policy arzenál jelent meg.
Az SELinuxot sokáig kritikával illették, hiszen meglehetősen összetett, nehezen menedzselhető rendszernek tűnt, ennek ellenére sokan használták és bővítették. Mindenkit örömmel töltött el az új, ún. moduláris policy megjelenése, amely segítségével sokkal gyorsabban és egyszerűbben lehet új szabályokat írni vagy a régieket módosítani.
(folytatjuk)
A cikkel kapcsolatos kérdéseket, hozzászólásokat az SELinux fórumba várjuk.
- 3329 olvasás