web-dev-qa-db-fra.com

Comparaison entre AppArmor et Selinux

J'examinais plusieurs comparaisons différentes d'AppArmor et de SELinux, notamment:

De ces articles, je conclus que AppArmor est meilleur que SELinux basé sur AppArmor est beaucoup moins complexe et la courbe d'apprentissage beaucoup plus courte. Ainsi, la majorité des comparaisons sont en faveur d'AppArmor mais comment dire que AppArmor est plus sécurisé que SELinux?

66
Ali Ahmad

Ces systèmes de sécurité fournissent des outils pour isoler les applications les unes des autres ... et à leur tour isoler un attaquant du reste du système lorsqu'une application est compromise.

Les ensembles de règles SELinux sont incroyablement complexes, mais avec cette complexité, vous avez plus de contrôle sur la façon dont les processus sont isolés. Générer ces politiques peut être automatisé . Une grève contre ce système de sécurité est qu'il est très difficile de le vérifier indépendamment.

AppArmor (et SMACK) est très simple. Les profils peuvent être écrits à la main par des humains ou générés à l'aide de aa-logprof. AppArmor utilise un contrôle basé sur le chemin d'accès, ce qui rend le système plus transparent afin qu'il puisse être vérifié indépendamment.

44
rook

la folie lien est à mon site Web. Je voudrais juste justifier mon opinion ici :)

Si vous regardez SELinux et Apparmor, ils sont à la fois forts et faibles de la même manière. SELinux est "plus fort" en ce sens qu'il peut obtenir un accès encore plus fin aux fichiers, mais qu'est-ce que cela fait gagner à un attaquant par rapport à son profil d'apparmeur? Vous êtes déjà considérablement restreint dans un profil d'apparmeur. Alors, gagnez-vous vraiment beaucoup plus avec SELinux?

Ce que vous gagnez avec SELinux (en particulier pour la création de politiques, bien plus que l'audit - bien que l'audit à autoriser soit aussi douloureux) est une complexité supplémentaire. Beaucoup.

Le chemin de moindre résistance dans un sandbox Linux, comme SELinux ou Apparmor, est le noyau . SELinux ne fait rien plus qu'Apparmor pour sécuriser le noyau.

Donc, si un attaquant veut emprunter la voie stupide pour résoudre des problèmes de conception dans Apparmor/SELinux, SELinux est potentiellement plus sûr - mais cela suppose que les profils sont bien construit, et, puisque SELinux est si complexe, nous avons effectivement vu des vulnérabilités introduites avec lui.

Si un attaquant est intelligent, il optera pour le noyau, en contournant les deux.

Ils sont donc tous les deux faibles de la même manière, tous deux forts à tous points de vue, et l'un d'eux est BEAUCOUP plus simple.

Voila.

La métaphore du couteau à beurre ne fonctionne pas, cela devrait être évident.

26
IBit

AppArmor est plus sécurisé grâce à sa simplicité qui facilite la révision et la validation des politiques. Les erreurs sont moins susceptibles de se produire, plus faciles à repérer et une tentative de porte dérobée est plus difficile à dissimuler.

8
evanxsummers

SELinux est sûrement un outil de sécurité plus complet et ambitieux que AppArmor. SELinux est un vaste univers, il imprègne tout, il étiquette potentiellement chaque objet du système et élève conceptuellement le système à une infrastructure de sécurité plus sophistiquée, il vous permet de mettre en œuvre tous les principaux paradigmes de sécurité dans la théorie du contrôle d'accès; même

les organisations militaires et gouvernementales peuvent l'utiliser pour leurs besoins de sécurité stricts. Avec SELinux, il est possible d'implémenter MAC ("Mandatory Access Control"), MLS ("Multi-Level Security", avec les modèles Bell-La Padula et Biba), MCS ("Multi-Category Security"), RBAC ("Role Based Contrôle d'accès ”), TE (“ Type Enforcement ”). De plus, SELinux est basé sur le principe de refus par défaut.

AppArmor, d'autre part, vous permet simplement de définir ce qu'une seule application peut et ne peut pas faire, selon le principe du moindre privilège mais sans la mise en œuvre de paradigmes de sécurité complets.

5
bryn1u

En général, vous ne pouvez pas dire qu'appArmor est meilleur que SELinux. En effet, cela dépend beaucoup de ce que vous assurez et contre quoi vous vous assurez ainsi que des compétences et préférences individuelles de la ou des personnes responsables de la maintenance du système.

SELinux a un meilleur contrôle des grains fins. Dans certaines situations, cela le rendrait plus approprié que AppArmor. D'un autre côté, AppArmor est susceptible d'être suffisamment puissant pour la majorité des utilisateurs de Linux. En outre, beaucoup indiquent qu'il est plus facile à comprendre et à utiliser, ce qui signifie qu'il est moins probable que des erreurs de configuration provoquent des trous dangereux qui sont difficiles à trouver. D'un autre côté, faire en sorte que quelqu'un qui soit à l'aise et familier avec SELinux utilise AppArmor pourrait facilement entraîner des erreurs de configuration simplement parce que ce n'est pas le système qu'il connaît.

Le fait est que vous devez évaluer en fonction de la situation spécifique et des ensembles de compétences/préférences des personnes impliquées. Les deux sont de bons systèmes - c'est le choix du bon outil pour la bonne situation qui compte, pas celui qui est meilleur que l'autre.

4
Tim X

D'après mon expérience personnelle avec SElinux, je dirais que cela n'ajoutait aucune complexité à GNU + Linux, la seule chose qu'il a fait et je considère que c'est un avantage de nous apporter la complexité déjà inhérente au système d'exploitation, qu'il déroute beaucoup d'entre nous n'a rien à voir avec son paradigme de conception ou sa mise en œuvre. En comparaison avec AppArmor (AA), SElinux a un point de vue plus hollistique et abstrait sur ce que devrait être un système sécurisé où AA a un état d'esprit de conteneur dans la réflexion sur les applications dans la mesure où dans les profils AA, des chemins pour les ressources autorisées sont spécifiés ce qui n'est pas très abstrait. oui, il peut être plus simple d'écrire un profil pour chaque application mais vous perdez la vue holistique du système. Maintenant, SElinux fonctionne mieux avec Fedora et RHEL car il est livré pré-expédié tandis que AA fonctionne mieux sur Ubuntu et SUSE, ce qui signifie qu'il serait préférable d'apprendre à utiliser SElinux sur les anciennes distributions que de passer par le tracas de faire fonctionner AA sur eux et vice inversement.

3
sami

Le point entier du contrôle d'accès obligatoire est de permettre une configuration à grain fin. La simplicité est complètement hors de propos à moins que les deux ne soient égaux à tous les autres égards. Parfois, la complexité est ce qu'il faut pour faire le travail.

En fait, SELinux a une bien meilleure granularité, est plus mature, plus largement déployé et à mon avis subjectif, mieux conçu. Votre conclusion ressemble plus à la culture pop qu'à une véritable évaluation.

(Je conclus qu'un couteau à beurre est meilleur qu'une tronçonneuse, basé sur un couteau à beurre est beaucoup moins complexe et moins dangereux)

2
Craig

J'affirme hardiment que AppArmor est supérieur à SELinux dans tout environnement dans lequel NFS est utilisé, car SELinux ne peut pas le sécuriser. AppArmor est également plus facile à utiliser, mais il s'agit d'une différenciation objective claire entre eux.

0
Gaius