Présentation
Les systèmes de contrôle d'accès obligatoire (MAC), comme AppArmor et SELinux, permettent aux administrateurs système d'accorder ou de refuser l'accès aux ressources et aux systèmes de contrôle intégrés au noyau Linux. Bien que les deux effectuent les mêmes tâches, ces systèmes fonctionnent différemment et offrent diverses fonctionnalités.
Cet article explique les différences entre AppArmor et SELinux et montre les principales fonctionnalités des deux systèmes.
AppArmor contre SELinux
SELinux et AppArmor fournissent tous deux des outils de sécurité qui isolent les applications et limitent l'accès à un attaquant qui a compromis une partie du système.
AppArmor fonctionne en accordant d'abord l'accès, puis en appliquant des restrictions. SELinux, cependant, restreint l'accès à toutes les applications par défaut et n'accorde l'accès qu'aux utilisateurs qui présentent les certifications appropriées.
Les deux systèmes ont de nombreuses fonctionnalités en commun mais aussi quelques différences :
Point de comparaison | AppArmor | SELinux |
---|---|---|
Contrôle d'accès | Utilise des profils de sécurité basés sur des chemins. | Utilise des politiques de sécurité basées sur les étiquettes de fichiers. |
Disponibilité | Disponible pour toutes les distributions, mais principalement utilisé sur SUSE et Ubuntu. | Disponible pour toutes les distributions mais principalement utilisé sur les systèmes RHEL/Fedora. |
Difficulté à apprendre | Une courbe d'apprentissage plus courte, plus facile à configurer et à administrer. | Plus complexe et moins intuitif. |
Vérification indépendante | Possibilité. | Impossible. |
Nécessite une configuration complexe | Non. | Oui. |
MLS/MCS | Non. | Oui. |
Impact sur les performances du système | Aucun, mais le temps de démarrage est plus long. | Aucun. |
Règles de politique | Manque de flexibilité. | Souple. |
Niveau de contrôle | Moyen. | Élevé. |
AppArmor
AppArmor est un module de sécurité Linux pratique qui est inclus par défaut avec Ubuntu depuis la version 7.10. Le module permet aux développeurs d'empêcher les applications d'utiliser des fichiers spécifiques. Par conséquent, AppArmor empêche tout dommage aux applications potentiellement vulnérables et protège les logiciels faciles à exploiter, comme les serveurs Web.
Le module utilise des profils de sécurité pour déterminer les autorisations requises par l'application. Les profils sont des fichiers texte chargés dans le noyau, généralement au démarrage.
AppArmor applique deux principaux types de règles dans les profils :
- Entrée de chemin . Ils déterminent les fichiers auxquels une application peut accéder.
- Entrée de capacité . Ces règles spécifient les privilèges qu'un processus confiné est autorisé à utiliser.
Les profils sont conçus pour confiner des applications spécifiques et fonctionnent selon deux modes. Dans le
- Mode réclamation . Dans ce mode, le système signale les tentatives de violation de politique mais n'applique pas les règles.
- Mode d'application . En mode Appliquer, le nouveau profil est inspecté et toutes les violations sont arrêtées.
AppArmor comprend les composants suivants :
- Analyseur de serveur . Analyse les ports et localise automatiquement les applications qui les écoutent. Il détecte également les applications sans profils et celles qu'AppArmor doit confiner.
- Générateur de profil . Processus statique qui analyse les candidatures et crée un modèle de profil.
- Optimiseur . Ce composant enregistre et rassemble les événements dans le profil de comportement normal.
Outre Ubuntu, AppArmor s'exécute par défaut sur Debian, SUSE Enterprise Server, les distributions OpenSUSE et d'autres distributions. Pour vérifier l'état du module, exécutez ce qui suit :
sudo apparmor_status
La sortie montre qu'AppArmor est actif sur le système. La commande imprime également la liste des profils installés et des processus confinés actifs.
Avantages d'AppArmor
Les principaux avantages d'AppArmor sont la simplicité et la courte courbe d'apprentissage. Ce module est beaucoup moins complexe que SELinux, ce qui le rend plus facile à configurer et à gérer.
L'outil fonctionne directement avec les profils (fichiers texte) pour le contrôle d'accès, et les opérations sur les fichiers sont plus simples. Cette fonctionnalité rend AppArmor plus convivial que SELinux avec ses politiques de sécurité.
Grâce à l'implémentation basée sur le chemin, AppArmor protège n'importe quel fichier sur le système et permet de spécifier des règles même pour les fichiers qui n'existent pas encore. Le mode d'apprentissage du programme rend AppArmor adaptable aux changements et applique le comportement d'application préféré.
Inconvénients d'AppArmor
Avec AppArmor, plusieurs chemins peuvent faire référence à la même application. Ces différents chemins vers le même exécutable créent plusieurs profils pour une application, ce qui constitue un problème de sécurité potentiel.
De plus, la plus grande force d'AppArmor, sa simplicité, est également la raison pour laquelle le programme est considéré comme moins sécurisé.
AppArmor n'a pas de sécurité à plusieurs niveaux (MLS) ni de sécurité à plusieurs catégories (MCS). L'absence de prise en charge de MCS rend AppArmor presque inefficace dans les environnements nécessitant MLS.
Un autre inconvénient est que le chargement de la stratégie prend également plus de temps, de sorte que le système démarre plus lentement.
SELinux
SELinux (Security Enhanced Linux) est un module de sécurité Linux intégré au noyau Linux. Le système donne aux administrateurs système plus de contrôle sur qui a accès aux ressources.
SELinux attribue des étiquettes aux fichiers, processus et ports du système. Type de libellé est vital pour les politiques ciblées, tandis que l'application du type est le deuxième concept le plus crucial dans SELinux.
L'étiquetage sert de mécanisme de regroupement qui attribue aux fichiers et traite différents types d'étiquettes. Le modèle de sécurité d'application de type aide SELinux à déterminer si un processus avec un type d'étiquette particulier a accès à un fichier avec un autre type d'étiquette.
Le système restreint l'accès par défaut (par opposition à AppArmor). Les utilisateurs doivent être correctement configurés pour accéder à n'importe quelle ressource.
SELinux encaisse les décisions précédentes dans le Access Vector Cache (AVC ), par exemple, autoriser ou restreindre l'accès. Les décisions d'encaissement accélèrent le processus de contrôle d'accès. Par exemple, si une application tente d'accéder à un fichier, SELinux vérifie l'AVC et autorise ou refuse l'accès en fonction de la décision précédente.
RHEL, CentOS et Fedora ont SELinux installé ou disponible par défaut. Pour connaître l'état actuel de SELinux, exécutez la commande suivante :
sudo sestatus
Remarque :Suivez nos guides pour activer SELinux sur CentOS ou pour désactiver SELinux sur CentOS.
Avantages de SELinux
Malgré (et à cause de) la complexité des politiques, SELinux est considéré comme l'option la plus sécurisée pour la sécurité Linux.
L'étiquetage et l'application du type permettent à SELinux d'accorder l'accès uniquement si une règle de politique le permet. Ce processus implémente un contrôle d'accès plus robuste et approfondi.
En étant compatible MLS, SELinux offre de meilleures fonctionnalités d'accès. Par exemple, l'un des principes de base du MLS est que les utilisateurs ne peuvent lire que les fichiers à leur niveau de sensibilité et inférieur. Cependant, avec SELinux, les administrateurs système peuvent lire et écrire des fichiers à leur propre niveau de sensibilité et à des niveaux de sensibilité inférieurs.
Par défaut, le système sépare les fichiers les uns des autres et de l'hôte et maintient la séparation. Par exemple, un fichier a différents ensembles d'autorisations pour :
- Le propriétaire (utilisateur).
- Un groupe contenant le fichier.
- Autres utilisateurs/groupes accédant au fichier.
Remarque :La mise en cache des décisions d'accès est également un avantage important, car le processus améliore l'efficacité.
Inconvénients de SELinux
SELinux fournit aux administrateurs système un outil de contrôle d'accès polyvalent. Cependant, ce module de sécurité présente quelques inconvénients.
SELinux est assez difficile à apprendre, à configurer et à gérer. Bien que le programme contrôle efficacement l'accès aux applications et aux fichiers, le dépannage des problèmes potentiels est difficile pour les débutants. Il n'est pas toujours facile de déterminer la signification réelle d'un message d'erreur et où rechercher le problème. Dans l'ensemble, SELinux n'est pas convivial et les administrateurs non expérimentés peuvent être confrontés à une courbe d'apprentissage abrupte.
Important :SELinux refuse souvent une action si les fichiers sont mal étiquetés.
Conclusion
Après avoir lu ce texte, vous connaissez les avantages et les inconvénients de SELinux et AppArmor. Les deux systèmes offrent différentes approches de la sécurité Linux et protègent les machines contre les accès non autorisés et la modification des ressources système.
Vous voudrez peut-être en savoir plus sur d'autres moyens de protéger votre système, comme l'utilisation de sauvegardes immuables pour lutter contre les ransomwares ou différentes procédures de protection de la base de données.