web-dev-qa-db-fra.com

Qu'est-ce que apparmor?

J'entends beaucoup parler d’apparmor, je veux savoir ce qui suit:

  • Qu'est-ce que apparmor?
  • Comment fonctionne apparmor?
93
Alvar

Ce que c'est

Apparmor est un système de contrôle d'accès obligatoire (ou MAC). Il utilise les améliorations du noyau LSM pour limiter les programmes à certaines ressources. AppArmor le fait avec les profils chargés dans le noyau au démarrage du système. Apparmor a deux types de modes de profil, application et plainte. Profils en mode de mise en application enforce les règles de ce profil et les tentatives de violation signalées dans syslogou auditdname__. Les profils en mode réclamation n'appliquent aucune règle de profil, il suffit de consigner les tentatives de violation.

Dans Ubuntu, Apparmor est installé par défaut. Il limite les applications aux profils pour déterminer les fichiers et les autorisations auxquels un programme doit accéder. Certaines applications auront leurs propres propriétés et vous pouvez en trouver d’autres dans le package apparmor-profiles.

Vous pouvez installer apparmor-profiles en exécutant Sudo apt-get install apparmor-profiles.

J'ai trouvé un bon exemple d'Apparmor sur les forums Ubuntu que j'ai réécrit pour cet article.

Apparmor est un cadre de sécurité qui empêche les applications de faire le mal. Par exemple: si j'exécute Firefox et que je visite un mauvais site qui tente d'installer un logiciel malveillant qui va supprimer mon dossier homename__, Apparmor impose des limites à Firefox, tout en l'empêchant de faire quoi que ce soit que je ne souhaite pas (comme accéder à ma musique, mes documents, etc.). . De cette manière, même si votre application est compromise, aucun préjudice ne peut être causé.

Comment ça marche

Le package apparmor-utils contient des outils de ligne de commande permettant de configurer Apparmor. En l'utilisant, vous pouvez changer le mode d'exécution d'Apparmor, trouver le statut d'un profil, créer de nouveaux profils, etc.

Ce sont les commandes les plus courantes:

Note: Les profils sont stockés dans /etc/apparmor.d/

  • Vous pouvez vérifier le statut d'Apparmor avec Sudo apparmor_status. Vous obtiendrez une liste de tous les profils * chargés, de tous les profils en mode imposé, de tous les profils en mode réclamation, des processus définis dans imposition/plainte, etc.
  • Pour mettre un profil en mode plainte ==, utilisez Sudo aa-complain /path/to/bin, où /path/to/bin correspond au dossier programmes binname__. Par exemple, exécuter: Sudo aa-complain /usr/bin/firefox mettra Firefox en mode réclamation.
  • Vous utilisez Sudo aa-enforce /path/to/bin pour appliquer un profil de programme.
  • Vous pouvez charger all les profils dans les modes de réclamation/application avec Sudo aa-complain /etc/apparmor.d/* et Sudo aa-enforce.d/* respectivement.

Pour charger un profil dans le noyau, vous utiliseriez apparmor_parser. Vous pouvez recharger des profils à l'aide du paramètre -r.

  • Pour charger un profil, utilisez: cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -a, qui imprime efficacement le contenu de profile.name dans l'analyseur d'Apparmor.
  • Pour recharger un profil, utilisez le paramètre -r, comme suit: cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -r
  • Pour recharger tous les profils d'Apparmor, utilisez: Sudo service apparmor reload

Pour désactiver un profil, vous link le vers /etc/apparmor.d/disable/ en utilisant lncomme ceci: Sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ puis exécutez: Sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Note: Ne confondez pas apparmor_parser -r avec apparmor_parser -R ILS NE SONT PAS LA MÊME OBJET!

  • Pour réactiver un profil, supprimez son lien symbolique dans /etc/apparmor.d/disable/ puis chargez-le à l'aide du paramètre -a. Sudo rm /etc/apparmor.d/disable/profile.namecat /etc/apparmor.d/profile.name | Sudo apparmor_parser -a
  • Vous pouvez désactiver Apparmor avec Sudo service apparmor stop et supprimer le module du noyau à l'aide de Sudo update-rc.d -f apparmor defaults.
  • Démarrez Apparmor avec Sudo service apparmor start et chargez les modules du noyau avec Sudo update-rc.d apparmor defaults.

Profils

Les profils sont stockés dans /etc/apparmor.d/ et portent le nom du chemin complet de l’exécutable qu’ils profilent, en remplaçant "/" par ".". Par exemple, /etc/apparmor.d/bin.ping est le profil de pingin /bin.

Il existe deux principaux types d'entrées utilisées dans les profils:

  1. Path Entries détermine les fichiers auxquels une application peut accéder.

  2. Capability Les entrées déterminent les privilèges qu'un processus peut utiliser.

Regardons le profil pour pingname__, situé dans etc/apparmor.d/bin.ping, à titre d'exemple.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global> Inclut le fichier globaldans le répertoire tunablesname__, ce qui permet de placer les instructions relatives à plusieurs applications dans un fichier commun.

/bin/ping flags=(complain)set le chemin d'accès au programme profilé et définit le mode pour se plaindre.

capability net_raw permet à l'application d'accéder à la capacité CAP_NET_RAW Posix.1e.

/bin/ping mixr permet à l'application de lire et d'exécuter l'accès au fichier.

/etc/modules.conf r, Le rdonne à l'application read les privilèges pour /etc/modules.conf

Remarque: Après la création/la modification d'un profil, vous devez le recharger pour que les modifications prennent effet.

Voici une liste des autorisations que vous pouvez utiliser:

  • r- read
  • w- write
  • ux- Exécuter sans contrainte
  • Ux- Exécuter sans contrainte - Nettoyer l'environnement
  • px- Exécution du profil discret
  • Px- Exécution du profil discret - Nettoyage de l'environnement
  • ix- Exécuter l'héritage
  • m- autorise PROT_EXEC avec mmap(2)
  • l- link

Sources

92
Seth

AppArmor est un système de contrôle d'accès obligatoire (MAC) qui est une amélioration du noyau (LSM) permettant de limiter les programmes à un ensemble limité de ressources. Le modèle de sécurité d'AppArmor consiste à lier les attributs de contrôle d'accès aux programmes plutôt qu'aux utilisateurs. Le confinement AppArmor est fourni via des profils chargés dans le noyau, généralement au démarrage. Les profils AppArmor peuvent être dans l’un des deux modes suivants: application et plainte. Les profils chargés en mode de mise en application entraînent l'application de la stratégie définie dans le profil ainsi que des tentatives de violation de la stratégie de génération de rapports (via syslog ou auditd). Les profils en mode réclamation n'appliqueront pas la stratégie, mais signaleront les tentatives de violation de la stratégie.

AppArmor est différent de certains autres systèmes MAC sur Linux en ce qu'il repose sur des chemins, qu'il permet de mélanger des profils d'application et de mode réclamation, qu'il utilise des fichiers include pour faciliter le développement et qu'il présente une barrière d'accès beaucoup plus basse que les autres systèmes MAC courants.

AppArmor est une technologie éprouvée apparue pour la première fois dans Immunix, puis intégrée dans Ubuntu, Novell/SUSE et Mandriva. La fonctionnalité Core AppArmor est présente dans le noyau Linux principal à partir de la version 2.6.36; AppArmor, Ubuntu et d’autres développeurs travaillent actuellement au regroupement de fonctionnalités AppArmor supplémentaires dans le noyau principal.

J'ai quelques liens plus utiles pour vous: Wiki.Ubuntu.combuntuforums.org

Guides Apparmor pour buntu 12.04 & buntu 12.1

J'espère que cela vous aidera.

6
rɑːdʒɑ

Voici une citation de Apparmor wiki :

AppArmor est un système de sécurité des applications Linux efficace et facile à utiliser. AppArmor protège de manière proactive le système d'exploitation et les applications contre les menaces internes ou externes, même les attaques "zero-day", en appliquant un comportement correct et en empêchant l'exploitation de vulnérabilités d'applications même inconnues. Les stratégies de sécurité AppArmor définissent complètement les ressources système auxquelles chaque application peut accéder et avec quels privilèges. Un certain nombre de stratégies par défaut sont incluses avec AppArmor. En combinant une analyse statique avancée et des outils basés sur l'apprentissage, les stratégies AppArmor pour les applications les plus complexes peuvent être déployées avec succès en quelques heures.

3
Adeline Dale