J'entends beaucoup parler d’apparmor, je veux savoir ce qui suit:
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 syslog
ou auditd
name__. 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
home
name__, 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é.
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/
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ù /path/to/bin
correspond au dossier programmes bin
name__. 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 programme.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
.
cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -a
, qui imprime efficacement le contenu de profile.name
dans l'analyseur d'Apparmor.-r
, comme suit: cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -r
Sudo service apparmor reload
Pour désactiver un profil, vous link le vers /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
.
Note: Ne confondez pas apparmor_parser -r
avec apparmor_parser -R
ILS NE SONT PAS LA MÊME OBJET!
/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
Sudo service apparmor stop
et supprimer le module du noyau à l'aide de Sudo update-rc.d -f apparmor defaults
.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 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 ping
in /bin
.
Il existe deux principaux types d'entrées utilisées dans les profils:
Path Entries détermine les fichiers auxquels une application peut accéder.
Capability Les entrées déterminent les privilèges qu'un processus peut utiliser.
Regardons le profil pour ping
name__, 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
name__, 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 r
donne à 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
- readw
- writeux
- Exécuter sans contrainteUx
- Exécuter sans contrainte - Nettoyer l'environnementpx
- Exécution du profil discretPx
- Exécution du profil discret - Nettoyage de l'environnementix
- Exécuter l'héritagem
- autorise PROT_EXEC
avec mmap(2)
l
- linkAppArmor 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.
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.