J'entends beaucoup parler d’apparmor, je veux savoir ce qui suit:
- Qu'est-ce que 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 exécution 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 d’autres peuvent être trouvées dans le apparmor-profiles
paquet.
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 susceptible de supprimer mon
home
dossier, 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é.
Le apparmor-utils
paquet 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/
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. sudo aa-complain /path/to/bin
, où se /path/to/bin
trouve le bin
dossier programmes . Par exemple, exécuter: sudo aa-complain /usr/bin/firefox
mettra Firefox en mode réclamation.sudo aa-enforce /path/to/bin
pour appliquer un profil de programmes. 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 -r
paramètre.
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
qui imprime efficacement le contenu de profile.name
dans l'analyseur d'Apparmor.-r
paramètre, comme suit:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
Pour désactiver un profil lien à l' /etc/apparmor.d/disable/
aide 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 pasapparmor_parser -r
avec, ilsapparmor_parser -R
ne sont pas la même chose!
/etc/apparmor.d/disable/
est associé puis chargez-le à l'aide du -a
paramètre.sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
et supprimer le module du noyau en utilisantsudo update-rc.d -f apparmor defaults
sudo service apparmor start
et chargez les modules du noyau avecsudo update-rc.d apparmor defaults
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.ping
le profil de ping
dans /bin
.
Il existe deux principaux types d'entrées utilisées dans les profils:
Les entrées de chemin déterminent les fichiers auxquels une application peut accéder.
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 global
dans 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_raw
permet à l'application d'accéder à la CAP_NET_RAW Posix.1e
capacité.
/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 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_EXEC
avec des mmap(2)
appels l
- lien
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.
la source
Voici une citation du wiki Apparmor :
la source