J'entends beaucoup parler d’apparmor, je veux savoir ce qui suit:
- Qu'est-ce qu'apparmor?
- Comment fonctionne apparmor?
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.
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
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:
Les entrées de chemin déterminent les fichiers auxquels une application peut accéder.
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
lien
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.
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.