Qu'est-ce qu'apparmor?

92

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

  • Qu'est-ce qu'apparmor?
  • Comment fonctionne apparmor?
posée Alvar 05.01.2013 - 03:09
la source

3 réponses

89

Qu'est-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 d'application appliquent les règles de ce profil et signalent les tentatives de violation dans syslog ou 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 vous en trouverez 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 is a security framework that prevents applications from turning evil. For example: If I run Firefox and visit a bad site that tries to install malware that will delete my home folder, Apparmor has limits on Firefox though preventing it from doing anything I don't want (like accessing my music, documents, etc). This way even if your application is compromised, no harm can be done.

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.

Voici 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 respecté, de tous les profils en mode réclamation, des processus définis dans le respect / réclamation, etc.

  • Pour mettre un profil en mode plaindre , utilisez sudo aa-complain /path/to/bin , où /path/to/bin correspond au dossier des programmes bin . 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 programmes.

  • Vous pouvez charger tous les profils dans les modes de réclamation / application avec respectivement sudo aa-complain /etc/apparmor.d/* et sudo aa-enforce.d/* .

Pour charger un profil dans le noyau, utilisez 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 effectivement 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, associez-le à /etc/apparmor.d/disable/ en utilisant ln comme 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 pas apparmor_parser -r avec apparmor_parser -R ils ne sont pas identiques!

  • 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.name cat /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 sont nommés d'après le chemin d'accès complet à l'exécutable qu'ils profilent, en remplaçant "/" par ".". Par exemple, /etc/apparmor.d/bin.ping est le profil de ping dans /bin .

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

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

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

Regardons le profil de 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 global dans le répertoire tunables , cela permet de placer des instructions relatives à plusieurs applications dans un fichier commun.

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

capability net_raw autorise l'application à accéder à la fonctionnalité 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 r donne à l'application les privilèges en lecture pour /etc/modules.conf

REMARQUE: Une fois que vous avez créé / modifié un profil, vous devez le recharger pour que les modifications prennent effet.

Voici une liste des autorisations que vous pouvez utiliser:

  • r - lecture

  • w - écrivez

  • 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) d'appels

  • l - lien

SOURCES:

lien

lien

lien

lien

    
réponse donnée Seth 05.01.2013 - 04:17
la source
6

AppArmor is a Mandatory Access Control (MAC) system which is a kernel (LSM) enhancement to confine programs to a limited set of resources. AppArmor's security model is to bind access control attributes to programs rather than to users. AppArmor confinement is provided via profiles loaded into the kernel, typically on boot. AppArmor profiles can be in one of two modes: enforcement and complain. Profiles loaded in enforcement mode will result in enforcement of the policy defined in the profile as well as reporting policy violation attempts (either via syslog or auditd). Profiles in complain mode will not enforce policy but instead report policy violation attempts.

AppArmor is different from some other MAC systems on Linux in that it is path-based, allows for mixing of enforcement and complain mode profiles, uses include files to ease development and has a far lower barrier to entry than other popular MAC systems.

AppArmor is an established technology first seen in Immunix, and later integrated into Ubuntu, Novell/SUSE, and Mandriva. Core AppArmor functionality is in the mainline Linux kernel from 2.6.36 onwards; work is ongoing by AppArmor, Ubuntu and other developers to merge additional AppArmor functionality into the mainline kernel.

J'ai quelques liens plus utiles vers vous: Wiki.Ubuntu.com Ubuntuforums.org

Guides Apparmor pour Ubuntu 12.04 & Ubuntu 12.10

J'espère que cela vous aidera.

    
réponse donnée Ten-Coin 05.01.2013 - 04:13
la source
3

Voici une citation du wiki Apparmor :

AppArmor is an effective and easy-to-use Linux application security system. AppArmor proactively protects the operating system and applications from external or internal threats, even zero-day attacks, by enforcing good behavior and preventing even unknown application flaws from being exploited. AppArmor security policies completely define what system resources individual applications can access, and with what privileges. A number of default policies are included with AppArmor, and using a combination of advanced static analysis and learning-based tools, AppArmor policies for even very complex applications can be deployed successfully in a matter of hours.

    
réponse donnée Adeline Dale 09.01.2013 - 08:09
la source

Lire d'autres questions sur les étiquettes