web-dev-qa-db-fra.com

Qu'est-ce que Firefox AppArmor restreint / autorise?

Je sais que les profils AppArmor résident dans /etc/apparmor.d/, mais je ne sais pas comment l’interpréter. Toute traduction serait éclairante.

6
Oxwivi

La seule chose qui dérange là-dedans sont les codes et vous les interprétez comme ceci:

'r' lit 
 'w' écrit 
 'm' mappe mémoire en tant qu'exécutable 
 'k' fichier bloquant 
 'l' créant des liens physiques 
 'ix' exécute et hérite de ce profil 
 'Px' s'exécute sous un autre profil, après nettoyage de l'environnement 
 'Ux' s'exécute sans confinement, après nettoyage de l'environnement 

Le reste du fichier est principalement constitué de répertoires, de fichiers et de bibliothèques avec parfois des paramètres devant (comme PROC et HOME qui semblent faciles à comprendre) et des expressions rationnelles pour le rendre plus flexible et parfois un "refus" ou un "propriétaire" devant le ligne (elles me paraissent aller de soi: elles refusent l’accès et limitent les actions dans le cas où c’est le propriétaire qui les effectue).

En ce qui concerne PROC:

Exemple:

# pour la mise en réseau 
 flux réseau inet, 
 flux réseau inet6, 
 @ {PROC}/[0-9] */net/if_inet6 r, 
 @ { PROC}/[0-9] */net/ipv6_route r, 

et fait

cd /proc/
ls * 

Voir tous les répertoires avec des chiffres? Ceux-ci correspondent à chaque processus en cours d'exécution. Si l'un d'entre eux contient un répertoire net (network) et qu'il contient un fichier if_net6 ou ipv6_route, ils sont considérés comme read.

3
Rinzwind

Voir Access Modes, Rule Qualifiers et #include mechanism dans la page de manuel ...

man apparmor.d

La page de manuel explique cela assez verbalement. En ce qui concerne votre question sur @{PROC}, certaines variables peuvent être définies dans les fichiers d’inclusion. Depuis la page de manuel apparmor.d (5) ...

Certaines abstractions reposent sur des variables définies dans les fichiers du répertoire /etc/apparmor.d/tunables/. Ces variables sont actuellement @{HOME} et @{HOMEDIRS}. Les variables ne peuvent pas être définies dans la portée du profil; ils peuvent uniquement être définis avant le profil. Par conséquent, tous les profils qui utilisent des abstractions doivent soit #include <tunables/global>, soit sinon, s'assurer que @{HOME} et @{HOMEDIRS} sont définis avant de commencer la définition du profil. Les utilitaires aa-autodep(8) et aa-genprof(8) émettent automatiquement #include <tunables/global> dans les profils générés.

Si vous regardez dans /etc/apparmor.d/tunables/global vous verrez qu'il y a un autre #include <tunables/proc>. Le contenu de ce fichier est ....

# Copyright (C) 2006 Novell/SUSE... GNU GPLv2... more license info...
# @{PROC} is the location where procfs is mounted.
@{PROC}=/proc/

Donc, @{PROC} est simplement une variable abstraite pointant vers le système de fichiers proc (5) .

1
Sam Gleske