Qu'est-ce que apparmor?


93

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

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

Réponses:


92

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. Les profils en mode exécution appliquent les règles de ce profil et signalent les tentatives de violation dans syslogou auditd. 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 d’autres peuvent être trouvées dans le apparmor-profilespaquet.

Vous pouvez installer apparmor-profilesen 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 susceptible de supprimer mon homedossier, Apparmor a des limites sur Firefox, tout en l'empêchant de faire tout ce 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 fonctionne

Le apparmor-utilspaquet contient des outils de ligne de commande pour 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:

Remarque: 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 de réclamation que vous utilisez sudo aa-complain /path/to/bin, où se /path/to/bintrouve le bindossier programmes . Par exemple, exécuter: sudo aa-complain /usr/bin/firefoxmettra Firefox en mode réclamation.
  • Vous utilisez sudo aa-enforce /path/to/binpour appliquer un profil de programmes.
  • Vous pouvez charger tous 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 -rparamètre.

  • Pour charger un profil, utilisez :, cat /etc/apparmor.d/profile.name | sudo apparmor_parser -aqui imprime efficacement le contenu de profile.namedans l'analyseur d'Apparmor.
  • Pour recharger un profil, vous utilisez le -rparamètre, 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 lien à l' /etc/apparmor.d/disable/aide 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.

Remarque: Ne confondez pasapparmor_parser -ravec, ilsapparmor_parser -R ne sont pas la même chose!

  • Pour réactiver un profil, supprimez le lien symbolique qui lui /etc/apparmor.d/disable/est associé puis chargez-le à l'aide du -aparamètre.sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
  • Vous pouvez désactiver Apparmor avec sudo service apparmor stopet supprimer le module du noyau en utilisantsudo update-rc.d -f apparmor defaults
  • Démarrez Apparmor avec sudo service apparmor startet chargez les modules du noyau avecsudo update-rc.d apparmor defaults

Profils

Les profils sont stockés dans /etc/apparmor.d/et sont nommés d'après le chemin complet de l'exécutable qu'ils profilent, en remplaçant '/' par '.'. Par exemple, /etc/apparmor.d/bin.pingle profil de pingdans /bin.

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

  1. Les entrées de chemin déterminent les fichiers auxquels une application peut accéder.

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

Regardons le profil pour ping, 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 tunables, cela permet aux instructions relatives à plusieurs applications d'être placées dans un fichier commun.

/bin/ping flags=(complain)définit le chemin d'accès au programme profilé et définit le mode de réclamation.

capability net_rawpermet à l'application d'accéder à la CAP_NET_RAW Posix.1ecapacité.

/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 des privilèges de lecture pour/etc/modules.conf

Remarque: après avoir créé / modifié un profil, vous devez le recharger pour que les modifications prennent effet.

Voici une liste des autorisations que vous pouvez utiliser:

  • r - lis
  • w - écrire
  • ux - Exécuter sans contrainte
  • Ux - Exécuter sans contrainte - Nettoyer l'environnement
  • px - Exécution de profil discret
  • Px - Exécution de profil discret - nettoyage de l'environnement
  • ix - Hériter exécuter
  • m - permettre PROT_EXECavec des mmap(2)appels
  • l - lien

Sources


Donc, c'est un peu comme un programme agissant en tant qu'utilisateur et ne disposant pas des autorisations nécessaires pour modifier la plupart des fichiers du système?
Izkata

Oui et non. Vous configurez un profil qui définit ce que certaines applications peuvent faire. Vous ajoutez ensuite des programmes à ce profil, ce qui limite ce qu’ils sont autorisés à faire. Cela ressemble donc à un utilisateur, car il ne peut accéder qu'à ce que l'administrateur (vous) dit pouvoir joindre dans son profil.
Seth

Ah, les profils sont comme des groupes d'utilisateurs pour les programmes;)
Izkata

Oui beaucoup comme ça;)
Seth

Pensez-vous qu'apparmor pourrait être utilisé pour bloquer toutes les connexions Internet et indiquer qui tente d'y accéder? et sur la base de ce journal, nous créons des autorisations pour chaque application? L'idée est de le faire fonctionner comme Zonalarm sur la fenêtre $, et comme les anciens "pare-feu par application" sur Linux tels que LeopardFlower et ProgramGuard (ceux-ci ne semblent plus compilables), et il y en a aussi un nouveau, Douane, qui utilise un module de noyau pour faire fonctionner les choses.
Aquarius Power

6

AppArmor est un système de contrôle d'accès obligatoire (MAC) qui constitue 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, permet de mélanger des profils en mode application et plainte, utilise des fichiers d’inclusion pour faciliter le développement et offre une barrière à l’entrée nettement inférieure à celle des 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 vers vous: Wiki.Ubuntu.com Ubuntuforums.org

Guides Apparmor pour Ubuntu 12.04 et Ubuntu 12.10

J'espère que cela vous aidera.


3

Voici une citation du wiki Apparmor :

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 failles 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, même pour des applications très complexes, peuvent être déployées avec succès en quelques heures à peine.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.