Foire aux questions (FAQ) sur SELinux

Salut tout le monde! Surtout pour les étudiants du cours "Sécurité Linux" Nous avons préparé une traduction de la FAQ officielle du projet SELinux. Il nous semble que cette traduction peut être utile non seulement aux étudiants, c'est pourquoi nous la partageons avec vous.

Foire aux questions (FAQ) sur SELinux

Nous avons essayé de répondre à certaines des questions les plus fréquemment posées sur le projet SELinux. Actuellement, les questions sont divisées en deux catégories principales. Toutes les questions et réponses sont données sur la page FAQ.

vue d'ensemble

vue d'ensemble

  1. Qu’est-ce que Linux à sécurité améliorée ?
    Linux à sécurité améliorée (SELinux) est une implémentation de référence de l'architecture de sécurité Flask pour un contrôle d'accès flexible et renforcé. Il a été créé pour démontrer l'utilité des mécanismes de contrôle d'accès flexibles et comment ces mécanismes peuvent être ajoutés au système d'exploitation. L'architecture Flask a ensuite été intégrée à Linux et portée sur plusieurs autres systèmes, notamment le système d'exploitation Solaris, le système d'exploitation FreeBSD et le noyau Darwin, donnant lieu à un large éventail de travaux connexes. L'architecture Flask fournit une prise en charge générale pour l'application de nombreux types de politiques de contrôle d'accès appliqué, y compris celles basées sur les concepts d'application de type, de contrôle d'accès basé sur les rôles et de sécurité à plusieurs niveaux.
  2. Qu'est-ce que Linux à sécurité renforcée offre que Linux standard ne peut pas offrir ?
    Le noyau Linux, doté d'une sécurité renforcée, définit des politiques de contrôle d'accès appliquées qui limitent les programmes utilisateur et les serveurs système à l'ensemble minimum de privilèges dont ils ont besoin pour effectuer leur travail. Avec cette limitation, la capacité de ces programmes utilisateur et démons système à causer des dommages s'ils sont compromis (par exemple, par un débordement de tampon ou une mauvaise configuration) est réduite ou éliminée. Ce mécanisme de restriction fonctionne indépendamment des mécanismes traditionnels de contrôle d'accès Linux. Il n'a pas le concept de superutilisateur « root » et ne partage pas les défauts bien connus des mécanismes de sécurité Linux traditionnels (par exemple, la dépendance aux binaires setuid/setgid).
    La sécurité d'un système Linux non modifié dépend de l'exactitude du noyau, de toutes les applications privilégiées et de chacune de leurs configurations. Un problème dans l’un de ces domaines peut compromettre l’ensemble du système. En revanche, la sécurité d'un système modifié basé sur un noyau Linux à sécurité renforcée dépend principalement de l'exactitude du noyau et de la configuration de sa politique de sécurité. Bien que l'exactitude des applications ou les problèmes de configuration puissent permettre une compromission limitée des programmes utilisateur individuels et des démons système, ils ne présentent pas de risque de sécurité pour les autres programmes utilisateur et démons système ou pour la sécurité du système dans son ensemble.
  3. À quoi ça sert?
    Les nouvelles fonctionnalités Linux avec une sécurité améliorée sont conçues pour garantir la séparation des informations sur la base des exigences de confidentialité et d'intégrité. Ils sont conçus pour empêcher les processus de lire des données et des programmes, de falsifier des données et des programmes, de contourner les mécanismes de sécurité des applications, d'exécuter des programmes non fiables ou d'interférer avec d'autres processus en violation des politiques de sécurité du système. Ils permettent également de limiter les dommages potentiels qui peuvent être causés par des logiciels malveillants ou des logiciels malveillants. Ils devraient également être utiles pour garantir que les utilisateurs disposant d'autorisations de sécurité différentes peuvent utiliser le même système pour accéder à différents types d'informations avec des exigences de sécurité différentes sans compromettre ces exigences.
  4. Comment puis-je en obtenir une copie ?
    De nombreuses distributions Linux incluent la prise en charge de SELinux, soit intégrée en tant que fonctionnalité par défaut, soit en tant que package facultatif. Le code principal de l'espace utilisateur SELinux est disponible sur GitHub. Les utilisateurs finaux doivent généralement utiliser les packages fournis par leur distribution.
  5. Qu'est-ce qui est inclus dans votre version ?
    La version NSA SELinux inclut le code utilisateur principal de SELinux. La prise en charge de SELinux est déjà incluse dans le noyau Linux 2.6 principal, disponible sur kernel.org. Le code utilisateur principal de SELinux se compose d'une bibliothèque pour manipuler les politiques binaires (libsepol), d'un compilateur de politiques (checkpolicy), d'une bibliothèque pour les applications de sécurité (libselinux), d'une bibliothèque pour les outils de gestion des politiques (libsemanage) et de plusieurs utilitaires liés aux politiques ( Policycoreutils).
    En plus du noyau compatible SELinux et du code utilisateur de base, vous aurez besoin d'une politique et de certains packages d'espace utilisateur corrigés par SELinux pour utiliser SELinux. La police peut être obtenue auprès de Projet de politique de référence SELinux.
  6. Puis-je installer Hardened Linux sur un système Linux existant ?
    Oui, vous pouvez installer uniquement les modifications SELinux sur un système Linux existant, ou vous pouvez installer une distribution Linux qui inclut déjà la prise en charge de SELinux. SELinux se compose d'un noyau Linux avec prise en charge de SELinux, d'un ensemble principal de bibliothèques et d'utilitaires, de packages utilisateur modifiés et d'une configuration de politique. Pour l'installer sur un système Linux existant qui ne prend pas en charge SELinux, vous devez être capable de compiler le logiciel et également disposer des autres packages système requis. Si votre distribution Linux inclut déjà la prise en charge de SELinux, vous n'avez pas besoin de créer ou d'installer la version NSA de SELinux.
  7. Dans quelle mesure Linux à sécurité améliorée est-il compatible avec Linux non modifié ?
    Security Enhanced Linux offre une compatibilité binaire avec les applications Linux existantes et avec les modules du noyau Linux existants, mais certains modules du noyau peuvent nécessiter des modifications pour interagir correctement avec SELinux. Ces deux catégories de compatibilité sont discutées en détail ci-dessous :

    • Compatibilité des applications
      SELinux offre une compatibilité binaire avec les applications existantes. Nous avons étendu les structures de données du noyau pour inclure de nouveaux attributs de sécurité et ajouté de nouveaux appels API pour les applications de sécurité. Cependant, nous n'avons modifié aucune structure de données visible par l'application ni modifié l'interface des appels système existants, de sorte que les applications existantes peuvent s'exécuter sans modification si la politique de sécurité le permet.
    • Compatibilité des modules du noyau
      Initialement, SELinux offrait une compatibilité native uniquement pour les modules de noyau existants ; il était nécessaire de recompiler ces modules avec les en-têtes modifiés du noyau afin de récupérer les nouveaux champs de sécurité ajoutés aux structures de données du noyau. Puisque LSM et SELinux sont désormais intégrés au noyau principal Linux 2.6, SELinux offre désormais une compatibilité binaire avec les modules du noyau existants. Cependant, certains modules du noyau peuvent ne pas interagir correctement avec SELinux sans modification. Par exemple, si un module du noyau alloue et définit directement un objet du noyau sans utiliser les fonctions d'initialisation normales, alors l'objet du noyau peut manquer d'informations de sécurité appropriées. Certains modules du noyau peuvent également manquer de contrôles de sécurité appropriés pour leurs opérations ; Tous les appels existants aux fonctions du noyau ou aux fonctions d'autorisation déclencheront également des vérifications d'autorisation SELinux, mais des contrôles plus granulaires ou supplémentaires peuvent être nécessaires pour appliquer les politiques MAC.
      Linux à sécurité renforcée ne devrait pas causer de problèmes d'interopérabilité avec les systèmes Linux classiques tant que toutes les opérations nécessaires sont autorisées par la configuration de la politique de sécurité.
  8. Quels sont les objectifs de l’exemple de configuration de politique de sécurité ?
    À un niveau élevé, l'objectif est de démontrer la flexibilité et la sécurité des contrôles d'accès appliqués et de fournir un système de travail simple avec un minimum de modifications des applications. À un niveau inférieur, une politique a un certain nombre d’objectifs décrits dans la documentation politique. Ces objectifs incluent le contrôle de l'accès aux données brutes, la protection de l'intégrité du noyau, du logiciel système, des informations de configuration du système et des journaux système, la limitation des dommages potentiels pouvant être causés par l'exploitation d'une vulnérabilité dans un processus nécessitant des privilèges, la protection des processus privilégiés contre l'exécution de programmes malveillants. code, protégeant le rôle d'administrateur et le domaine des connexions sans authentification de l'utilisateur, empêchant les processus utilisateur normaux d'interférer avec les processus système ou administratifs et protégeant les utilisateurs et les administrateurs contre l'exploitation des vulnérabilités de leur navigateur par un code mobile malveillant.
  9. Pourquoi Linux a-t-il été choisi comme plate-forme de base ?
    Linux a été choisi comme plate-forme pour l'implémentation de référence initiale de ce travail en raison de son succès croissant et de son environnement de développement ouvert. Linux offre une excellente opportunité de démontrer que cette fonctionnalité peut être efficace sur un système d'exploitation hôte et, en même temps, contribuer à la sécurité d'un système largement utilisé. La plate-forme Linux offre également une excellente opportunité pour ce travail d'obtenir une vue d'ensemble la plus large possible et peut servir de base à des recherches supplémentaires sur la sécurité par d'autres passionnés.
  10. Pourquoi avez-vous fait ce travail ?
    Laboratoire national de recherche sur la sécurité de l'information La National Security Agency est responsable de la recherche et du développement avancé des technologies nécessaires pour permettre à la NSA de fournir des solutions, produits et services de sécurité de l'information pour les infrastructures d'information essentielles aux intérêts de sécurité nationale des États-Unis.
    La création d’un système d’exploitation viable et sécurisé reste un défi de recherche crucial. Notre objectif est de créer une architecture efficace qui fournit le support de sécurité nécessaire, exécute les programmes d'une manière hautement transparente pour l'utilisateur et attrayante pour les fournisseurs. Nous pensons qu'une étape importante pour atteindre cet objectif consiste à démontrer comment des mécanismes de contrôle d'accès forcés peuvent être intégrés avec succès dans le système d'exploitation sous-jacent.
  11. Quel est le rapport avec les recherches précédentes de la NSA sur le système d’exploitation ?
    Des chercheurs du National Information Assurance Research Laboratory de la NSA et de Secure Computing Corporation (SCC) ont développé une architecture de contrôle d'accès puissante et flexible basée sur le Type Enforcement, un mécanisme initialement développé pour le système LOCK. La NSA et le SCC ont développé deux prototypes d'architectures basées sur Mach : DTMach et DTOS (http://www.cs.utah.edu/flux/dtos/). La NSA et le SCC ont ensuite travaillé avec le groupe de recherche Flux de l'Université de l'Utah pour porter l'architecture sur le système d'exploitation de recherche Fluke. Au cours de cette migration, l'architecture a été affinée pour mieux prendre en charge les politiques de sécurité dynamiques. Cette architecture améliorée s'appelait Flask (http://www.cs.utah.edu/flux/flask/). La NSA a désormais intégré l'architecture Flask dans le système d'exploitation Linux pour apporter la technologie à la communauté plus large des développeurs et des utilisateurs.
  12. Linux à sécurité renforcée est-il un système d'exploitation fiable ?
    L'expression « système d'exploitation de confiance » fait généralement référence à un système d'exploitation qui fournit une prise en charge suffisante pour plusieurs niveaux de sécurité et une preuve de concept pour répondre à un ensemble spécifique d'exigences gouvernementales. Linux amélioré par la sécurité intègre des idées utiles de ces systèmes, mais se concentre sur l'application du contrôle d'accès. L'objectif initial du développement de Linux à sécurité renforcée était de créer des fonctionnalités utiles offrant des avantages tangibles en matière de sécurité dans un large éventail d'environnements réels afin de démontrer la technologie. SELinux en lui-même n'est pas un système d'exploitation fiable, mais il fournit une fonctionnalité de sécurité essentielle (un contrôle d'accès renforcé) nécessaire à un système d'exploitation fiable. SELinux a été intégré aux distributions Linux qui ont été évaluées selon le profil de protection de sécurité labellisé. Des informations sur les produits testés et vérifiés peuvent être trouvées sur http://niap-ccevs.org/.
  13. Est-elle vraiment protégée ?
    Le concept de système sécurisé inclut de nombreux attributs (par exemple, la sécurité physique, la sécurité du personnel, etc.), et Linux avec une sécurité améliorée ne couvre qu'un ensemble très restreint de ces attributs (c'est-à-dire l'application des contrôles d'accès dans le système d'exploitation). . En d’autres termes, un « système sécurisé » signifie suffisamment sécurisé pour protéger certaines informations du monde réel contre un adversaire réel contre lequel le propriétaire et/ou l’utilisateur de l’information est averti. Security Enhanced Linux est destiné uniquement à démontrer les contrôles requis dans un système d'exploitation moderne tel que Linux, et il est donc peu probable qu'il réponde à une définition intéressante d'un système sécurisé à lui seul. Nous pensons que la technologie démontrée dans Linux à sécurité renforcée sera utile aux personnes qui construisent des systèmes sécurisés.
  14. Qu'avez-vous fait pour améliorer la garantie ?
    L'objectif de ce projet était d'ajouter des contrôles d'application avec des modifications minimes à Linux. Ce dernier objectif limite considérablement ce qui peut être fait pour améliorer l'assurance, c'est pourquoi aucun travail n'a été mené pour améliorer l'assurance Linux. D'un autre côté, les améliorations s'appuient sur des travaux antérieurs sur la conception d'architectures de sécurité à haute assurance, et la plupart de ces principes de conception sont transposés sous Linux avec une sécurité améliorée.
  15. Le CCEVS évaluera-t-il Linux avec une sécurité améliorée ?
    Linux à sécurité améliorée en lui-même n'est pas conçu pour résoudre l'ensemble des problèmes de sécurité présentés par le profil de sécurité. Même s'il serait possible d'évaluer uniquement sa fonctionnalité actuelle, nous pensons qu'une telle évaluation aurait une valeur limitée. Cependant, nous avons travaillé avec d'autres pour inclure cette technologie dans les distributions Linux qui ont été évaluées et dans les distributions en cours d'évaluation. Des informations sur les produits testés et vérifiés peuvent être trouvées sur http://niap-ccevs.org/.
  16. Avez-vous essayé de corriger des vulnérabilités ?
    Non, nous n’avons ni recherché ni trouvé de vulnérabilités au cours de notre travail. Nous n'avons fait que le strict minimum pour ajouter nos nouveaux mécanismes.
  17. Ce système est-il approuvé pour une utilisation gouvernementale ?
    Linux à sécurité renforcée n'a aucune approbation spéciale ou supplémentaire pour une utilisation gouvernementale par rapport à toute autre version de Linux.
  18. En quoi est-ce différent des autres initiatives ?
    Linux à sécurité améliorée possède une architecture bien définie pour une application flexible du contrôle d'accès, qui a été validée expérimentalement à l'aide de plusieurs systèmes prototypes (DTMach, DTOS, Flask). Des études détaillées ont été réalisées sur la capacité de l'architecture à prendre en charge un large éventail de politiques de sécurité et sont disponibles dans http://www.cs.utah.edu/flux/dtos/ и http://www.cs.utah.edu/flux/flask/.
    L'architecture offre un contrôle précis sur de nombreuses abstractions et services du noyau qui ne sont pas contrôlés par d'autres systèmes. Certaines des caractéristiques distinctives d'un système Linux avec une sécurité améliorée sont :

    • Séparation nette entre la politique et les droits d'application
    • Interfaces de politiques bien définies
    • Indépendance à l’égard de politiques et de langages politiques spécifiques
    • Indépendance des formats et contenus spécifiques des étiquettes de sécurité
    • Étiquettes et contrôles séparés pour les objets et services du noyau
    • Mise en cache des décisions d'accès pour plus d'efficacité
    • Soutien aux changements de politique
    • Contrôle de l'initialisation des processus ainsi que de l'héritage et de l'exécution du programme
    • Gérer les systèmes de fichiers, les répertoires, les fichiers et les descriptions de fichiers ouverts
    • Gestion des sockets, des messages et des interfaces réseau
    • Contrôle de l’utilisation des « Opportunités »
  19. Quelles sont les restrictions de licence pour ce système ?
    Tout le code source trouvé sur le site https://www.nsa.gov, distribué dans les mêmes conditions que le code source original. Par exemple, les correctifs pour le noyau Linux et les correctifs pour de nombreux utilitaires existants disponibles ici sont publiés selon les termes de GNU General Public License (GPL).
  20. Y a-t-il des contrôles à l'exportation ?
    Linux avec sécurité améliorée n'a aucun contrôle d'exportation supplémentaire par rapport à toute autre version de Linux.
  21. La NSA envisage-t-elle de l’utiliser au niveau national ?
    Pour des raisons évidentes, la NSA ne commente pas l'utilisation opérationnelle.
  22. La déclaration d'assurance du 26 juillet 2002 de Secure Computing Corporation change-t-elle la position de la NSA selon laquelle SELinux était fourni sous la licence publique générale GNU ?
    La position de la NSA n'a pas changé. La NSA continue de croire que les termes et conditions de la licence publique générale GNU régissent l'utilisation, la copie, la distribution et la modification de SELinux. Cm. Communiqué de presse de la NSA du 2 janvier 2001.
  23. La NSA prend-elle en charge les logiciels open source ?
    Les initiatives de sécurité logicielle de la NSA couvrent à la fois les logiciels propriétaires et open source, et nous avons utilisé avec succès des modèles propriétaires et open source dans nos activités de recherche. Le travail de la NSA visant à améliorer la sécurité des logiciels est motivé par une considération simple : exploiter nos ressources pour fournir aux clients de la NSA les meilleures options de sécurité possibles dans leurs produits les plus utilisés. L'objectif du programme de recherche de la NSA est de développer des avancées technologiques pouvant être partagées avec la communauté du développement de logiciels via divers mécanismes de livraison. La NSA n’approuve ni ne promeut aucun produit logiciel ou modèle commercial spécifique. La NSA promeut plutôt la sécurité.
  24. La NSA prend-elle en charge Linux ?
    Comme indiqué ci-dessus, la NSA n'approuve ni ne promeut aucun produit logiciel ou plate-forme spécifique ; La NSA ne fait qu’améliorer la sécurité. L'architecture Flask démontrée dans l'implémentation de référence SELinux a été portée sur plusieurs autres systèmes d'exploitation, notamment Solaris, FreeBSD et Darwin, portée sur l'hyperviseur Xen et appliquée à des applications telles que le système X Window, GConf, D-BUS et PostgreSQL. Les concepts d'architecture Flask sont largement applicables à un large éventail de systèmes et d'environnements.

Coopération

  1. Comment envisageons-nous d’interagir avec la communauté Linux ?
    Nous avons ensemble de pages Web sur NSA.gov, qui constituera notre principal moyen de publier des informations sur Linux avec une sécurité améliorée. Si vous êtes intéressé par Linux à sécurité renforcée, nous vous encourageons à rejoindre la liste de diffusion des développeurs, à consulter le code source et à fournir vos commentaires (ou votre code). Pour rejoindre la liste de diffusion des développeurs, voir Page de liste de diffusion des développeurs SELinux.
  2. Qui peut aider?
    SELinux est désormais pris en charge et développé par la communauté des logiciels open source Linux.
  3. La NSA finance-t-elle des travaux de suivi ?
    La NSA n’envisage pas actuellement de propositions de travaux supplémentaires.
  4. Quel type de support est disponible ?
    Nous avons l'intention de résoudre les problèmes via la liste de diffusion [email protected], mais nous ne serons peut-être pas en mesure de répondre à toutes les questions liées à un site particulier.
  5. Qui a aidé? Qu'ont-ils fait?
    Le prototype Linux à sécurité renforcée a été développé par la NSA avec les partenaires de recherche NAI Labs, Secure Computing Corporation (SCC) et MITRE Corporation. Après la première diffusion publique, de nombreux autres documents ont suivi. Voir la liste des participants.
  6. Comment puis-je en savoir plus ?
    Nous vous encourageons à visiter nos pages Web, à lire la documentation et les articles de recherche antérieurs, et à participer à notre liste de diffusion. [email protected]

Trouvez-vous la traduction utile ? Écrivez des commentaires !

Source: habr.com

Ajouter un commentaire