SELinux | |
---|---|
GUI de administrare SELinux pe Fedora 8 | |
Tip de | Siguranță |
Dezvoltator | palarie rosie |
Scris in | Xi |
Sistem de operare | Componenta nucleului Linux |
Prima editie | 1998 |
ultima versiune | |
eliberarea candidatului |
|
Licență | GNU GPL |
Site-ul web | selinuxproject.org |
Fișiere media la Wikimedia Commons |
SELinux ( English Security-Enhanced Linux - Linux with improved security) este o implementare a unui sistem de control al accesului forțat care poate funcționa în paralel cu un sistem clasic de control al accesului selectiv .
Rămânând într-un sistem selectiv de control al accesului , sistemul de operare are o limitare fundamentală în ceea ce privește partajarea accesului la resurse - accesul la resurse se bazează pe drepturile de acces ale utilizatorilor. Acestea sunt drepturi clasice rwxla trei niveluri - proprietar, grup de proprietari și altele.
În SELinux, drepturile de acces sunt determinate de sistemul însuși folosind politici special definite. Politicile operează la nivel de apel de sistem și sunt impuse de nucleul însuși (dar pot fi implementate și la nivel de aplicație). SELinux funcționează după modelul clasic de securitate Linux. Cu alte cuvinte, nu puteți permite prin SELinux ceea ce este interzis prin permisiunile de utilizator sau de grup. Politicile sunt descrise folosind un limbaj flexibil special pentru descrierea regulilor de acces. În cele mai multe cazuri, regulile SELinux sunt „transparente” pentru aplicații și nu este necesară nicio modificare. Unele distribuții includ politici gata de fabricație în care drepturile pot fi determinate pe baza unei potriviri între tipurile de proces (subiect) și fișier (obiect) - acesta este mecanismul principal al SELinux. Alte două forme de control al accesului sunt accesul bazat pe rol și accesul bazat pe securitate. De exemplu, „ DSP ”, „secret”, „secret”, „ OV ”.
Cel mai ușor tip de politică cu care se lucrează și se menține este așa-numita politică „țintită” dezvoltată de proiectul Fedora . Politica descrie peste 200 de procese care pot rula pe sistemul de operare. Tot ceea ce nu este descris de politica „țintă” se realizează în domeniul (cu tip) unconfined_t. Procesele care rulează în acest domeniu nu sunt protejate de SELinux. Astfel, toate aplicațiile utilizatorilor terți vor funcționa fără probleme într-un sistem cu o politică „țintită” în cadrul permisiunilor clasice ale unui sistem de control selectiv al accesului.
Pe lângă politica „țintită”, unele distribuții includ o politică cu un model de securitate stratificat (care acceptă modelul Bell-LaPadula ).
A treia opțiune de politică este „strictă”. Aici se aplică principiul „ceea ce nu este permis este interzis” ( principiul celor mai mici drepturi ). Politica se bazează pe Politica de referință Tresys .
SELinux a fost dezvoltat de Agenția Națională de Securitate din SUA , iar apoi codul sursă a fost pus la dispoziție pentru descărcare.
Text original (engleză)[ arataascunde] De la echipa Linux îmbunătățită cu securitatea NSA :
„Linux îmbunătățit cu securitatea NSA este un set de corecții pentru nucleul Linux și unele utilitare pentru a încorpora o arhitectură de control al accesului obligatoriu (MAC) puternică și flexibilă în subsistemele majore ale nucleului. Acesta oferă un mecanism pentru a impune separarea informațiilor pe baza cerințelor de confidențialitate și integritate, care permite abordarea amenințărilor de falsificare și ocolire a mecanismelor de securitate a aplicațiilor și permite limitarea daunelor care pot fi cauzate de aplicații rău intenționate sau defecte. Include un set de exemple de fișiere de configurare a politicii de securitate concepute pentru a îndeplini obiectivele de securitate comune, cu scop general.”
SELinux este inclus în nucleul Linux (începând cu versiunea 2.6).
De asemenea, SELinux necesită versiuni modificate ale unor utilitare ( ps , ls și altele) care oferă suport pentru noile funcții ale nucleului și suport din sistemul de fișiere.
LSM ( English Linux Security Modules - Linux security modules) sunt implementate sub formă de module kernel încărcate. În primul rând, LSM-urile sunt folosite pentru a sprijini controlul accesului. În sine, LSM-urile nu oferă sistemului nicio securitate suplimentară, ci servesc doar ca un fel de interfață pentru sprijinirea acestuia. Sistemul LSM asigură implementarea funcțiilor interceptoare, care sunt stocate într-o structură de politică de securitate care acoperă principalele operațiuni care trebuie protejate. Controlul accesului la sistem se realizează datorită politicilor configurate.
Majoritatea sistemelor de operare au caracteristici și metode de control al accesului care, la rândul lor, determină dacă o entitate la nivel de sistem de operare (utilizator sau program) poate accesa o anumită resursă. Sunt utilizate următoarele metode de control al accesului:
La începutul apariției sale, SELinux a fost implementat ca un patch. În acest caz, nu a fost ușor să configurați politica de securitate. Odată cu apariția mecanismelor LSM, configurarea și gestionarea securității au fost mult simplificate (politica și mecanismele de aplicare a securității au fost separate), SELinux a fost implementat ca plugin-uri de kernel. Înainte de a accesa obiectele interne ale sistemului de operare, codul kernelului este schimbat. Acest lucru este implementat folosind funcții speciale ( interceptoare de apeluri de sistem ) , așa-numitele funcții hook . Funcțiile interceptoare sunt stocate într-o structură de date, scopul lor este de a efectua anumite acțiuni de securitate pe baza unei politici prestabilite. Modulul în sine include șase componente principale: un server de securitate; acces vector cache ( ing. Access Vector Cache , AVC); tabele de interfață de rețea; codul semnalului de notificare a rețelei; sistemul său de fișiere virtual (selinuxfs) și implementarea funcțiilor interceptoare.
SELinux este disponibil comercial ca parte a Red Hat Enterprise Linux începând cu versiunea 4.
Distribuții Linux acceptate în comunitate:
SELinux este una dintre câteva abordări posibile pentru limitarea acțiunilor efectuate de software-ul instalat.
Sistemul AppArmor face aproape același lucru ca SELinux. O diferență importantă între aceste sisteme este modul în care sunt identificate obiectele sistemului de fișiere: AppArmor utilizează calea completă, SELinux merge mai adânc folosind inodul .
Aceste diferențe apar în două cazuri:
Aceste probleme pot fi evitate pe ambele sisteme prin aplicarea politicii implicite „fără acces”.