Bonjour à tous! Surtout pour les étudiants du cours Linux Security, nous avons préparé une traduction de la FAQ officielle SELinux. Il nous semble que cette traduction peut être utile non seulement aux étudiants, nous la partageons donc avec vous.

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 .
Revue
Revue
- Qu'est-ce que Linux avec une sécurité renforcée?
Linux avec sécurité avancée (SELinux - Linux sécurisé) est l'implémentation de référence de l'architecture de sécurité de Flask pour un contrôle d'accès forcé flexible. Il a été créé pour démontrer l'utilité de mécanismes de contrôle d'accès forcé 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 un support général pour l'application de nombreux types de politiques de contrôle d'accès forcé, y compris celles basées sur les concepts de mise en application de type, de contrôle d'accès basé sur les rôles et de sécurité à plusieurs niveaux. - Qu'est-ce qui donne à Linux une sécurité améliorée ce que Linux standard ne peut pas offrir?
Le noyau Linux avec une sécurité renforcée met en place des politiques de contrôle d'accès forcé qui limitent les programmes utilisateur et les serveurs système à l'ensemble minimum de privilèges dont ils ont besoin pour faire leur travail. Avec cette limitation, la capacité de ces programmes utilisateur et démons système à nuire en cas de compromis (par exemple, en raison d'un débordement de tampon ou d'une configuration incorrecte) est réduite ou supprimée. Ce mécanisme de restriction fonctionne indépendamment des mécanismes de contrôle d'accès Linux traditionnels. Il n'a pas le concept de superutilisateur root et ne partage pas les lacunes bien connues des mécanismes de protection 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 chaque configuration. Un problème dans l'un de ces domaines peut conduire à un compromis de l'ensemble du système. Au contraire, la sécurité d'un système modifié basé sur le noyau Linux avec une sécurité améliorée dépend, tout d'abord, de l'exactitude du noyau et de la configuration de sa politique de sécurité. Bien que les problèmes d'exactitude ou de configuration des applications puissent permettre un compromis limité des programmes utilisateur individuels et des démons système, ils ne posent pas de risque pour la sécurité des autres programmes utilisateur et des démons système ou pour la sécurité du système dans son ensemble. - À quoi ça sert?
Les nouvelles fonctionnalités Linux avec une sécurité renforcée sont conçues pour fournir un partage d'informations basé sur des exigences de confidentialité et d'intégrité. Ils sont conçus pour empêcher les processus de lecture des données et des programmes, de truquer les données et les programmes, de contourner les mécanismes de sécurité des applications, d'exécuter des programmes non approuvés ou d'interférer avec d'autres processus en violation de la politique de sécurité du système. Ils aident également à limiter les dommages potentiels qui peuvent être causés par des logiciels malveillants ou des programmes incorrects. Ils devraient également être utiles pour garantir que les utilisateurs avec des 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 préjudice de ces exigences. - Comment obtenir une copie?
De nombreuses distributions Linux incluent le support SELinux, déjà intégré en tant que fonctionnalité par défaut ou en tant que module complémentaire. Le code principal SELinux d'Userland est disponible sur GitHub . Les utilisateurs finaux devraient généralement utiliser les packages fournis par leur distribution. - Qu'est-ce qui est inclus dans votre version?
La version NSA SELinux inclut le code de base SELinux userland. Le support SELinux est déjà inclus dans le noyau Linux 2.6 principal, disponible sur kernel.org. Le code principal de l'espace utilisateur SELinux comprend une bibliothèque pour manipuler des politiques binaires (libsepol), un compilateur de politiques (checkpolicy), une bibliothèque pour les applications de sécurité (libselinux), une bibliothèque pour les outils de gestion des politiques (libsemanage) et plusieurs utilitaires liés aux politiques (policycoreutils).
En plus du noyau compatible SELinux et du code principal de l'espace utilisateur, vous aurez besoin d'une stratégie et de certains packages d'espace utilisateur fixés pour que SELinux utilise SELinux. La politique peut être obtenue auprès du projet de politique de référence SELinux . - Puis-je installer Linux avec une protection renforcée sur un système Linux existant?
Oui, vous pouvez uniquement installer des modifications SELinux sur votre système Linux existant, ou vous pouvez installer une distribution Linux qui inclut déjà la prise en charge SELinux. SELinux se compose d'un noyau Linux avec prise en charge SELinux, d'un ensemble central de bibliothèques et d'utilitaires, de certains packages personnalisés modifiés et d'une configuration de stratégie. Pour l'installer sur un système Linux existant qui ne prend pas en charge SELinux, vous devez être en mesure de compiler le logiciel, ainsi que d'avoir d'autres packages système nécessaires. Si votre distribution Linux inclut déjà le support SELinux, vous n'avez pas besoin de construire ou d'installer la version NSA SELinux. - Dans quelle mesure Linux est-il compatible avec une sécurité renforcée avec Linux non modifié?
Linux à sécurité renforcée offre une compatibilité binaire avec les applications Linux existantes et avec les modules de noyau Linux existants, mais certains modules de noyau peuvent nécessiter des modifications pour fonctionner correctement avec SELinux. Ces deux catégories de compatibilité sont décrites 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 les applications et nous n'avons pas modifié l'interface des appels système existants, de sorte que les applications existantes peuvent fonctionner sans modifications si la stratégie de sécurité les autorise à fonctionner. - Compatibilité du module du noyau
Initialement, SELinux ne fournissait la compatibilité initiale que pour les modules du noyau existants; il était nécessaire de recompiler ces modules en fonction des en-têtes du noyau modifiés afin d'attraper les nouveaux champs de protection ajoutés aux structures de données du noyau. Étant donné que LSM et SELinux sont désormais intégrés dans le noyau Linux 2.6 principal, SELinux fournit désormais une compatibilité binaire avec les modules du noyau existants. Cependant, certains modules du noyau peuvent ne pas interagir correctement avec SELinux. Par exemple, si un module du noyau alloue et installe directement un objet du noyau sans utiliser les fonctions d'initialisation habituelles, l'objet du noyau peut ne pas disposer des 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 exécuteront également des vérifications d'autorisation SELinux, mais des contrôles plus détaillés ou supplémentaires peuvent être nécessaires pour appliquer les politiques MAC.
Linux avec une sécurité renforcée ne devrait pas créer de problèmes d'interopérabilité avec les systèmes Linux classiques si toutes les opérations nécessaires sont autorisées par la configuration de la politique de sécurité.
- 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 forcé et de fournir un système de travail simple avec un minimum de changements dans les applications. À un niveau inférieur, une politique a un certain nombre d'objectifs décrits dans la documentation de la politique. Ces objectifs incluent la gestion de l'accès aux données brutes, la protection de l'intégrité du noyau, des logiciels système, des informations de configuration du système et des journaux système, la limitation des dommages potentiels qui pourraient ê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 code malveillant, protéger le rôle de l'administrateur et du domaine de la connexion sans authentification de l'utilisateur, empêchant l'interférence des processus utilisateur ordinaires dans le processus système les processus ou processus de l'administrateur, ainsi que la protection des utilisateurs et des administrateurs contre l'exploitation des vulnérabilités de leur navigateur avec du code mobile malveillant. - 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 occasion de démontrer que cette fonctionnalité peut réussir dans le système d'exploitation principal et, en même temps, contribuer à la sécurité du système largement utilisé. La plate-forme Linux offre également une excellente occasion pour ce travail d'obtenir la vue d'ensemble la plus large possible et, peut-être, servira de base à des recherches supplémentaires sur la sécurité par d'autres passionnés. - Pourquoi as-tu fait ce travail?
Le Laboratoire national de recherche sur la sécurité de l'information de la National Security Agency est responsable de la recherche et du développement des technologies avancées nécessaires à la NSA pour fournir des solutions, des produits et des services de sécurité de l'information pour les infrastructures d'information essentielles aux intérêts de la 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 critique. Notre objectif est de créer une architecture efficace qui fournit le support nécessaire à la sécurité; l'exécution des programmes est largement transparente pour l'utilisateur et attrayante pour les fournisseurs. Nous pensons qu'une étape importante dans la réalisation de cet objectif est de démontrer comment les mécanismes de contrôle d'accès forcé peuvent être intégrés avec succès dans le système d'exploitation principal. - Quel est le lien avec les recherches antérieures de la NSA?
Des chercheurs du National Security Information Laboratory de la NSA, en collaboration avec Secure Computing Corporation (SCC), ont développé une architecture puissante et flexible pour le contrôle d'accès forcé basée sur Type Enforcement, un mécanisme développé initialement pour le système LOCK. NSA et SCC ont développé deux prototypes de l'architecture basée sur Mach: DTMach et DTOS ( http://www.cs.utah.edu/flux/dtos/ ). La NSA et le SCC ont ensuite travaillé avec l'équipe 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 offrir une meilleure prise en charge des politiques de sécurité dynamiques. Cette architecture améliorée a été nommée Flask ( http://www.cs.utah.edu/flux/flask/ ). La NSA a maintenant intégré l'architecture Flask dans le système d'exploitation Linux pour transférer cette technologie à une communauté plus large de développeurs et d'utilisateurs. - Linux avec sécurité renforcée est-il un système d'exploitation fiable?
L'expression «système d'exploitation approuvé», en règle générale, fait référence à un système d'exploitation qui fournit un support suffisant pour la protection et la validation à plusieurs niveaux pour répondre à un ensemble spécifique d'exigences gouvernementales. Linux avec une sécurité renforcée comprend des idées utiles de ces systèmes, mais se concentre sur le contrôle d'accès forcé. La tâche initiale de développer Linux avec une sécurité renforcée était de créer des fonctionnalités utiles qui offrent des avantages de sécurité tangibles dans un large éventail d'environnements réels pour démontrer cette technologie. SELinux lui-même n'est pas un système d'exploitation de confiance, mais il fournit une fonctionnalité de sécurité critique - contrôle d'accès forcé - nécessaire pour un système d'exploitation de confiance. SELinux a été intégré dans des distributions Linux qui ont été évaluées selon le profil de protection de sécurité étiqueté. Des informations sur les produits testés et vérifiés sont disponibles sur http://niap-ccevs.org/ . - Est-elle vraiment protégée?
Le concept d'un système sécurisé comprend de nombreux attributs (par exemple, la sécurité physique, la sécurité du personnel, etc.), et Linux avec une sécurité accrue ne traite qu'un ensemble très restreint de ces attributs (c'est-à -dire les contrôles d'accès forcé dans le système d'exploitation). En d'autres termes, «système sécurisé» signifie suffisamment sécurisé pour protéger certaines informations dans le monde réel contre un véritable adversaire, dont le propriétaire et / ou l'utilisateur des informations est averti. Linux avec une sécurité renforcée est uniquement destiné à démontrer les contrôles essentiels dans un système d'exploitation moderne tel que Linux, et par conséquent, en soi, il est peu probable qu'il réponde à une définition intéressante d'un système sécurisé. Nous pensons que la technologie démontrée sous Linux avec une sécurité améliorée sera utile aux personnes qui créent des systèmes sécurisés. - Qu'avez-vous fait pour augmenter votre garantie?
L'objectif de ce projet était d'ajouter des contrôles d'accès forcé en apportant des modifications minimales à Linux. Ce dernier objectif limite sévèrement ce qui peut être fait pour augmenter la garantie, il n'y a donc pas eu de travail pour augmenter la garantie Linux. Les améliorations, d'autre part, sont basées sur des travaux antérieurs sur le développement d'une architecture de sécurité hautement fiable, et la plupart de ces principes de conception ont été portés sur Linux avec une sécurité améliorée. - CCEVS évaluera-t-il Linux avec une sécurité renforcée?
Linux lui-même avec une sécurité renforcée n'est pas conçu pour répondre à l'ensemble des problèmes de sécurité représentés par le profil de sécurité. Bien qu'il soit possible d'évaluer uniquement sa fonctionnalité actuelle, nous pensons qu'une telle évaluation aura une valeur limitée. Cependant, nous avons travaillé avec d'autres pour incorporer cette technologie dans les distributions Linux qui ont été évaluées et les distributions qui sont en cours d'évaluation. Des informations sur les produits testés et vérifiés sont disponibles sur http://niap-ccevs.org/ . - Avez-vous essayé de corriger des vulnérabilités?
Non, nous n'avons pas cherché et n'avons trouvé aucune vulnérabilité au cours de notre travail. Nous n'avons fait qu'un minimum pour ajouter nos nouveaux mécanismes. - Ce système est-il approuvé pour une utilisation gouvernementale?
Linux à sécurité renforcée n'a pas d'approbation spéciale ou supplémentaire pour une utilisation gouvernementale sur toute autre version de Linux. Linux avec une sécurité renforcée n'a pas d'autorisation spéciale ou supplémentaire pour une utilisation gouvernementale sur toute autre version de Linux. - En quoi est-ce différent des autres initiatives?
Linux avec une sécurité renforcée a une architecture bien définie pour un contrôle d'accès forcé flexible, qui a été expérimentalement testée en utilisant 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 sur http://www.cs.utah.edu/flux/dtos/ et http://www.cs.utah.edu/flux/flask/ .
L'architecture fournit un contrôle détaillé 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 à sécurité renforcée sont:
- Séparation nette de la politique et des droits d'application
- Interfaces de politique clairement définies
- Indépendance vis-à -vis de politiques et de langages de politique 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 solutions d'accès pour plus d'efficacité
- Prise en charge du changement de politique
- Surveillance de l'initialisation du processus et de l'héritage et de l'exécution du programme
- Gestion des systèmes de fichiers, des répertoires, des fichiers et des descriptions de fichiers ouverts
- Gestion des sockets, des messages et des interfaces réseau
- Contrôle de l'utilisation des "opportunités"
- Quelles sont les restrictions de licence pour ce système?
Tout le code source trouvé sur https://www.nsa.gov est distribué dans les mêmes conditions que le code source d'origine. Par exemple, les correctifs pour le noyau Linux et les correctifs pour de nombreux utilitaires existants disponibles ici sont publiés sous les termes de la GNU General Public License (GPL) . - Existe-t-il un contrôle des exportations?
Pour Linux avec une sécurité renforcée, il n'y a pas de contrôles d'exportation supplémentaires par rapport à toute autre version de Linux. - La NSA prévoit-elle de l'utiliser au niveau national?
Pour des raisons évidentes, la NSA ne commente pas l'utilisation opérationnelle. - La déclaration de garantie du 26 juillet 2002 de Secure Computing Corporation modifie-t-elle la position de la NSA selon laquelle SELinux a été accordé 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. Voir le communiqué de presse de la NSA du 2 janvier 2001 . - La NSA prend-elle en charge les logiciels open source?
Les initiatives de sécurité logicielle de la NSA couvrent 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. Les efforts de la NSA pour améliorer la sécurité des logiciels sont motivés par une simple considération: utiliser nos ressources aussi efficacement que possible pour fournir aux clients de la NSA les meilleures options de sécurité possibles dans leurs produits les plus utilisés. Le programme de recherche de la NSA a pour objectif de développer des avancées technologiques qui peuvent être partagées avec la communauté du développement logiciel à travers différents mécanismes de transfert. La NSA ne prend en charge ni ne promeut aucun produit logiciel ou modèle commercial spécifique. Au contraire, la NSA améliore la sécurité. - La NSA prend-elle en charge Linux?
Comme indiqué ci-dessus, la NSA ne prend en charge ni ne promeut aucun produit ou plate-forme logiciel particulier; La NSA ne contribue qu'à accroître 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, y compris 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 à une large gamme de systèmes et d'environnements.
Collaboration
- Comment prévoyons-nous d'interagir avec la communauté Linux?
Nous avons un ensemble de pages Web sur NSA.gov qui servira de principal moyen de publier des informations Linux avec une sécurité renforcée. Si vous êtes intéressé par Linux avec une sécurité renforcée, nous vous recommandons de rejoindre la liste de diffusion des développeurs, d'afficher le code source et de fournir vos commentaires (ou code). Pour rejoindre la liste de diffusion des développeurs, consultez la page Liste de diffusion des développeurs SELinux . - Qui peut aider?
SELinux est désormais pris en charge et développé par la communauté de développement de logiciels Linux open source. - La NSA finance-t-elle des travaux de suivi?
Actuellement, la NSA n'envisage pas de propositions de travaux supplémentaires. - Quel type d'assistance est disponible?
Nous avons l'intention de résoudre les problèmes via la liste de diffusion selinux@tycho.nsa.gov, mais nous ne serons pas en mesure de répondre à toutes les questions liées à un site particulier. - Qui a aidé Qu'ont-ils fait?
Le prototype Linux à sécurité renforcée a été développé par la NSA en collaboration avec des partenaires de recherche de NAI Labs, Secure Computing Corporation (SCC) et MITER Corporation. Après la publication initiale, de nombreux autres documents ont suivi. Voir la liste des participants . - Comment puis-je en savoir plus?
Nous vous recommandons de visiter nos pages Web, de lire la documentation et les recherches antérieures et de participer à notre liste de diffusion selinux@vger.kernel.org
Trouvez-vous la traduction utile? Écrivez des commentaires!