SELinux vs AppArmor : Quelles sont les différences et lequel devriez-vous utiliser ?

Selinux Vs Apparmor

SELinux (abréviation de Security Enhanced Linux) est un module de sécurité du noyau Linux utilisé pour renforcer la sécurité des distributions Linux en restreignant l’accès aux fichiers et aux processus. Un autre module de sécurité du noyau Linux similaire utilisé à cet effet est AppArmor. Il y a beaucoup d’intérêt pour ces deux modules en raison de leurs rôles chevauchants dans le contrôle d’accès pour les systèmes d’exploitation Linux. Cet article aborde les différences entre SELinux et AppArmor, permettant aux utilisateurs de déterminer lequel de ces modules est le mieux adapté à leurs besoins à travers une comparaison des fonctionnalités et de la facilité d’utilisation.

Table des matières

  • Qu’est-ce que SELinux ?
  • Opérations et commandes SELinux
  • Qu’est-ce qu’AppArmor ?
  • Facilité d’utilisation entre SELinux et AppArmor
  • Questions fréquemment posées

À lire aussi : 5 meilleures distributions Linux-Libre pour une meilleure sécurité

Qu’est-ce que SELinux ?

Sécuriser des serveurs avec SELinux élimine la dépendance au style d’accès DAC basé sur de véritables utilisateurs et rôles système. Au lieu de cela, il introduit un système de contexte à trois chaînes pour chaque processus ou utilisateur système. Les trois chaînes, à savoir nom d’utilisateur, rôle et domaine, permettent plus de flexibilité et de contrôle sur l’accès au système.

Un processus ne peut être autorisé dans un domaine spécifique qu’à travers une configuration de politique dans SELinux. La seule exception est lorsqu’un processus est lancé dans un contexte explicitement défini via la commande runcon. Cependant, si des politiques conflictuelles existent déjà pour un tel processus dans la configuration, SELinux peut refuser une telle transition vers un autre contexte. Cela garantit que SELinux fonctionne sur le principe de refuser par défaut. Tout processus ou utilisateur doit avoir une configuration d’accès explicite pour un fichier ou une ressource système avant d’y accéder.

Opérations et commandes SELinux

En tant qu’extension des commandes utilitaires courantes dans le terminal, SELinux fournit l’option -Z, qui permet d’afficher le contexte de sécurité des fichiers et des processus. Des commandes telles que ps et ls bénéficient de cette option pour déboguer rapidement ou identifier des erreurs dans la configuration. Ci-dessous, une capture d’écran de la commande ls est présentée.

ls-Z

Selinux Vs Apparmor 1 1

La première partie de chaque ligne de sortie est le domaine, la seconde est le type d’objet, et la troisième est le nom d’utilisateur dans la configuration SELinux. De cette manière, SELinux peut fournir un contrôle total sur l’accès à chaque fichier et processus. Les commandes suivantes sont utilisées pour manipuler le contexte des fichiers et des répertoires.

CommandeUtilisation
chcon -tChanger le contexte d’un fichier cible
chcon -RChanger le contexte d’un répertoire cible (ce changement est récursif)
restorecon -vRestaurer le contexte d’un fichier à la valeur par défaut
restorecon -v -RRestaurer le contexte d’un répertoire à la valeur par défaut (ce changement est récursif)
semanage fcontext -a -tDéfinir le contexte par défaut d’un répertoire selon ce que REGEX évalue

Par exemple, s’il est nécessaire de changer le contexte de tous les fichiers dans le répertoire “/srv/web” à “httpd_sys_content_t”, la commande suivante peut être utilisée :

sudo semanage fcontext -a-t httpd_sys_content_t “/srv/web(/.*)”

Selinux Vs Apparmor 2 1

Étant donné que ce contexte visible dans la capture d’écran est déjà défini pour le répertoire “/srv/web” de manière récursive, SELinux affiche un message pour informer l’utilisateur. S’il n’est pas défini, une opération semanage réussie ne montre aucune sortie.

Les administrateurs système et les utilisateurs peuvent activer, désactiver ou rendre SELinux permissif grâce à la commande setenforce. De même, pour vérifier quel est le statut d’application en ce moment, les utilisateurs peuvent utiliser la commande getenforce comme montré dans la capture d’écran ci-dessous.

Selinux Vs Apparmor 3

À lire aussi : Comment transférer des fichiers en toute sécurité dans Linux en utilisant SCP

Qu’est-ce qu’AppArmor ?

AppArmor est soutenu dans le développement par Canonical, la société mère qui développe la distribution Ubuntu de Linux. AppArmor vise à être plus simple et plus facile à utiliser que SELinux et ses profils sont créés dans le répertoire “/etc/apparmor.d/”. Un profil AppArmor pour le processus “/usr/bin/man” est montré dans la capture d’écran ci-dessous.

Selinux Vs Apparmor 4

Opérations et commandes AppArmor

Pour voir l’état d’AppArmor, la commande aa-status est utilisée. Un échantillon de sortie de cette commande est montré ci-dessous.

Selinux Vs Apparmor 5

Les profils AppArmor peuvent être listés par le contenu du répertoire de “/etc/apparmor.d/”, comme montré ci-dessous.

Selinux Vs Apparmor 6

Parmi la liste ci-dessus de profils, si un utilisateur souhaite désactiver le profil usr.bin.man, il peut utiliser la commande suivante :

sudo aa-complain /usr/bin/man

Notez qu’un profil désactivé se trouve dans le sous-répertoire désactivé du répertoire principal des profils AppArmor. Pour réactiver un profil qui a été désactivé, la commande suivante est utilisée :

sudo aa-enforce /usr/bin/man

Facilité d’utilisation entre SELinux et AppArmor

AppArmor fonctionne avec des chemins de fichiers dans le système de fichiers au lieu de travailler avec des chaînes pour chaque fichier comme le fait SELinux. Un avantage d’AppArmor est que les opérations de lecture, d’écriture, de verrouillage et d’autres opérations de fichiers sont plus faciles à configurer que dans SELinux. D’autre part, bien que SELinux offre plus de fonctionnalités pour le contrôle d’accès aux fichiers, ces fonctionnalités sont mises en œuvre à un niveau beaucoup plus bas dans le système.

Par conséquent, les utilisateurs doivent apprendre à utiliser mknod, les sockets réseau et d’autres opérations système pour travailler avec SELinux. Pour tous ceux qui ne sont pas administrateurs système, il est beaucoup plus facile d’apprendre à utiliser AppArmor.

AppArmor propose également un mode d’apprentissage qui est utilisé pour consigner les violations du contrôle d’accès. Ce mode ne restreint ni ne prévient l’accès en cas de violation, mais collecte plutôt des données au fil du temps pour permettre la création d’un profil AppArmor distinct basé sur le comportement des programmes pour chaque infraction d’accès enregistrée. Il n’y a pas de mode similaire disponible dans SELinux.

À lire aussi : Comment sécuriser un serveur Linux à domicile

Questions fréquemment posées

Quelles distributions Linux sont préinstallées avec SELinux et AppArmor ?

Toutes les distributions Linux sous l’égide de RedHat sont préinstallées avec ou offrent une configuration de SELinux, y compris RHEL, CentOS et Fedora. AppArmor est préinstallé sur Debian, Ubuntu, leurs distributions dérivées, SUSE Enterprise Server et les distributions OpenSUSE.

Quel module de sécurité est le meilleur pour un nouvel utilisateur de Linux ?

La plupart des grandes distributions Linux sont livrées avec l’un ou l’autre des modules de sécurité installés par défaut. Par conséquent, il est peu probable qu’un nouvel utilisateur de Linux n’ait pas de module de sécurité dès le départ. La comparaison des fonctionnalités et de la facilité d’utilisation entre SELinux et AppArmor montre que pour les utilisateurs avancés ou les administrateurs système qui souhaitent un contrôle plus précis sur leur système d’exploitation, SELinux est le meilleur choix, mais pour tout le monde, AppArmor est le meilleur choix.

SELinux et AppArmor sont-ils des alternatives aux pare-feu, aux antivirus et à d’autres logiciels de sécurité des utilisateurs ou des données ?

SELinux et AppArmor ne sont pas des alternatives aux antivirus ou aux pare-feu bien configurés pour la sécurité du système et l’intégrité des données. Par conséquent, il est recommandé de compléter votre système avec un programme antivirus pour une meilleure protection des données.

Crédits image : Page Wiki d’AppArmor et Page Wiki de SELinux. Toutes les captures d’écran par Zeeman Memon.