Aller au contenu

SELinux

Un article de Wikipédia, l'encyclopédie libre.

SELinux
Description de l'image SELinux logo.svg.
Description de l'image SELinux Administration screenshot.png.
Informations
Développé par Red HatVoir et modifier les données sur Wikidata
Dernière version 3.7 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/SELinuxProject/selinuxVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation GNU/LinuxVoir et modifier les données sur Wikidata
Type Module de sécurité du noyau Linux (d)Voir et modifier les données sur Wikidata
Licence Licence publique générale GNUVoir et modifier les données sur Wikidata
Site web selinuxproject.orgVoir et modifier les données sur Wikidata

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 issu de 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 fichiers, 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 (en) de contrôle de l'intégrité, développé par SCC (en). Il s'agit d'un logiciel libre, certaines parties étant sous licences GNU GPL et BSD[2].

La National Security Agency (ou NSA), service de renseignement des États-Unis, avait 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.

Stephen Smalley (en), afin de réduire les coûts, et de donner accès à ce type de logiciel au secteur privé (banques, services de santé, etc.) pour se protéger des pirates informatiques, a décidé de placer ce logiciel sous licence open source[3].[évasif] Il est parti des prototypes de recherche (prototypes DTMach, DTOS[4], projet FLASK[5]) réalisés avec SCC (en) et l'université d'Utah aux États-Unis[2] 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

[modifier | modifier le code]

En pratique, la base de l'innovation est de définir des attributs étendus dans le système de fichiers. 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 lesdits attributs étendus, soit :

ls -Z /etc/passwd

donne le résultat suivant:

-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

[modifier | modifier le code]
  1. « Release 3.7 », (consulté le )
  2. a et b (en) Présentation de SELinux sur le site de la NSA.
  3. (en) Historique de la libération de SELinux par la NSA.
  4. (en) Projet DTOS.
  5. (en) Projet FLASK.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]