- SELinux
-
Security-Enhanced Linux, abrégé SELinux, est un Linux security module (LSM), qui permet de définir une politique de contrôle d'accès obligatoire aux éléments d'un système basé sur Linux.
Son architecture dissocie l'application de la politique d'accès et sa définition. Il permet notamment de classer les applications d'un système, en différents groupes, avec des niveaux d'accès plus fins. Il permet aussi d'attribuer un niveau de confidentialité pour l'accès à des objets systèmes, comme des descripteurs de fichier, selon un modèle de sécurité multiniveau (MLS pour Multi level Security). SELinux utilise le modèle Bell LaPadula complété par le mécanisme Type enforcement de contrôle de l'intégrité, développé par SCC. Il s'agit d'un logiciel libre, certaines parties étant sous licences GNU GPL ou BSD[réf. nécessaire].
Sommaire
Historique
La NSA a besoin de logiciels de Multi-Level Security (MLS) pour conserver ses informations secrètes. Multi-Level Security consiste à permettre à des données avec différents niveaux de classification de coexister sur la même machine. C'est un problème complexe, difficile à implémenter, nécessitant un processus de certification lourd et qui intéresse essentiellement un seul type de client : les gouvernements. De plus, une fois installé, il est difficile de changer de système et donc la probabilité de se retrouver enfermé dans une solution est grande. Ce sont les conditions parfaites pour que se développent des logiciels propriétaires très chers, qui n'innovent pas.
Afin de réduire les couts, de stimuler l'innovation et de donner accès à ce type de logiciel au secteur privé (banques, services de santé, etc.) pour se protéger des pirates informatiques, Stephen Smalley de la NSA a décidé d'utiliser l'open source[1]. Il est parti des prototypes de recherche (prototypes DTMach, DTOS[2], projet FLASK[3]) réalisés avec SCC et l'université d'Utah aux USA[4] et les a publiés sous licence GPL. L'objectif est la formation d'une communauté de chercheurs, d'utilisateurs et d'entreprises pour améliorer le logiciel et fournir des solutions avancées.
Utilisation
En pratique, la base de l'innovation est de définir des attributs étendus dans le système de fichiers UNIX. En plus de la notion de "droits de lecture, écriture, exécution" pour un usager donné, SELinux définit pour chaque fichier ou processus :
- Un usager virtuel (ou collection de rôles) ;
- Un rôle ;
- Un contexte de sécurité.
Les commandes « système » sont étendues pour pouvoir manipuler ces objets et définir des politiques (règles d'accès), et des statuts (niveau de confidentialité). Par exemple la commande « ls -Z » fait apparaître les dits attributs étendus, soit :
ls -Z /etc/passwd
donne
-rw-r--r-- root root system_u:object_r:etc_t /etc/passwd
Une distribution Linux peut être livrée avec des politiques prédéfinies pour la totalité du système (mode strict), ou une partie des services / applications (mode ciblé ou targeted). Le réglage d'un certain nombre de variables booléennes prédéfinies, permet de personnaliser le comportement des applications correspondantes.
Notes et références
Voir aussi
Articles connexes
Liens externes
Catégorie :- Sécurité du système d'exploitation
Wikimedia Foundation. 2010.