AppArmor/Changements AppArmor 2 1

Aller à : navigation, rechercher
Language.png Cette page n'est pas encore traduite (ou pas complètement)

Cet article a besoin d'être traduit. Merci de participer au travail si vous en avez le temps et la compétence.
Si vous cherchez quelque chose à faire, regardez les autres Pages à traduire.

Améliorations et changements dans AppArmor 2.1


Cette version ajoute des fonctionnalités à AppArmor 2.0.x Elle est distribuée avec openSUSE 10.3 et Ubuntu "Gutsy"

Profile Language Features/Changes


Médiation de Fermeture de Fichier

La médiation de verrouillage de fichier consultatif et obligatoire par des applications a été ajoutée avec cette sortie. Cette caractéristique introduit un nouveau caractère de permission "k" dans la langue de profil pour indiquer que l'on permet à la ressource indiquée d'exécuter l'opération de verrouillage appropriée.

File Append Mediation

Mediation of appending writes has been added. This feature introduces a new permission character "a" to indicated this operation is allowed.

The "a" permission is mutually exclusive to the "w" permission, i.e. the a given rule may include "w" or "a" but not both. The "a" permission is actually a subset of the "w" permission. Granting "w" permission implicitly allows O_APPEND writes, but granting "a" permission does not allow non-O_APPEND writes. If you've initially granted "a" permission in a profile and then discover that you need non-O_APPEND writes after all, you just need to upgrade the "a" to a "w" instead of adding both "a" and "w" in the same profile rule.

Médiation Réseau

Coarse grained network access control has been added to this release. This feature allows mediation of network access based on address type and family.


 syntax 
   'network' [[<domain>] [<type>] [<protocol>]] ','

The protocol specification is very limited and in the general case 'network <domain> <type>' will be emitted by the module in access denied messages, and output by the profile generation tools.


 <domain> = "inet", "ax25", "ipx", "appletalk", "netrom", "bridge", "atmpvc",
            "x25", "inet6", "rose", "netbeui", "security", "key", "packet",
            "ash", "econet", "atmsvc", "sna", "irda", "pppox", "wanpipe",
            "bluetooth",

The domains "llc", "iucv", "tipc" are currently mediated but can not be specified. Too allow them wide open networking must be used. ie the rule network, this will be fixed

 <type>   = "stream", "dgram", "seqpacket", "rdm", "raw", "packet"

Le type "dccp" nest actuellement pas permis, mais cela va se réparer

 <protocol> = "tcp", "udp", "icmp"
 eg.                                                                                                                          
 network,              # allow all networking              
 network inet,         # allow use of all inet networking
 network inet stream,  # allow tcp                    
 network inet tcp,     # dito                      
 network tcp,          # allow inet and inet6 tcp,

Note: The tools currently support family and type specification only. This however fully supports the feature as only type and family are emitted by the module and allows full generation of profiles to mediate network behavior supported by the module.

Modification de la gestion des répertoires

AppArmor 2.1 introduit une nouvelle syntaxe pour distinguer les répertoires des fichiers.

La précédente syntaxe ne permettait pas une gestion spécifique des répertoires. Le nouveau noyau permet l'accès aux répertoire uniquement par l'utilisation d'un '/' final à une règle qui indique un répertoire.

 Ancien comportement:
 /path/to/somewhere     r, # Donne accès en lecture au chemin
                           # que ce soit un fichier ou un répertoire
 /path/to/somewhere/*   r, # Donne accès en lecture à tous les fichiers et répertoires
                           # dans /path/to/somewhere
 /path/to/somewhere/**  r, # Donne accès en lecture à tous les fichiers et répertoires
                           # situés sous /path/to/somewhere


 Nouveau comportement:    
 /path/to/somewhere/*   r, # Donne accès en lecture aux fichiers du répertoire
 /path/to/somewhere/    r, # Donne accès en lecture à l'élément répertoire uniquement
 /path/**/              r, # Donne accès en lecture à tous les répertoires 
                           # situés sous /path
 /path/to/somewhere/**  r, # Donne accès en lecture à tous les fichiers et répertoires
                           # situés sous /path/to/somewhere

Changement du format des messages

Les messages générés par le noyau AppArmor ont été changés dans cette version. Ils sont plus cohérents avec le format standard utilisé dans Linux Audit Framework. Les nouveaux messages permettent une analyse plus simple des fichiers journaux. Le nouveau utilise les types de messages suivants :

 #define AUDIT_APPARMOR_AUDIT    1501    /* AppArmor audited grants */ 
 #define AUDIT_APPARMOR_ALLOWED  1502    /* Allowed Access for learning */
 #define AUDIT_APPARMOR_DENIED   1503 
 #define AUDIT_APPARMOR_HINT     1504    /* Process Tracking information */
 #define AUDIT_APPARMOR_STATUS   1505    /* Changement à la configuraiton */
 #define AUDIT_APPARMOR_ERROR    1506    /* Erreur internes de AppArmor */

D'autres données sont fournies dans le corps du message sous forme de paires de valeurs.

Le module AppArmor utilisera toujours par défaut la syslog si le Linux Audit Framework n'est pas installé.

Modification to change_hat

The reporting of change_hat related events and information has changed. The log messages and profile state (as available via /proc/<pid>/attr/current) are reported as:

   /profile//hat

This change should be transparent to most users from the last release.


Corrections mineures de syntaxe

Le caractère '^' peut maintenant être correctement utilisé dans les noms de chemins ainsi que dans les classes de caractères

 /foo[^b]   # used to be broken /foo[ and hat b] even if it was
            # in a file rule instead of specifying a profile now it is handled
            # correctly

Le caractère , n'est plus considéré comme un caractère valide pour un nom de fichier si c'est le dernier caractère avant un espace

 /foo,bar    #valide  
 /foobar,    #invalide

Changement de Caractéristique de Profil

une nouvelle spécification d'approche change_profile a été ajoutée. Change_profile est semblable à change_hat, mais permet de changer à n'importe quel profil (incluant hats), pas seulement hats. La restriction est que les profils qui peuvent être changés à doivent être spécifiés. Pour changer à un hat via change_profile au lieu de change_hat le nom de hat est spécifié en séparant le profil et hat_name par //

  syntax
  'change_profile' <profile> ','
  eg.
  change_profile /bin/foo,   #allow change_profile to /bin/foo
  change_profile /bin/foo//hat  # allow change_profile to ^hat in /bin/foo

Note: cette option n'est pas configurable par l'intermediaire des outils profiling.

Userspace Changes



AppArmor LAF dispatcher for DBUS

A dispatcher for the Linux Audit Framework that sends AppArmor events to consumer applications via DBUS message bus. This must be configured via the auditd.conf file in order to be registered as a dispatcher for audit events.


For more info:

 https://forgesvn1.novell.com/svn/apparmor/trunk/management/apparmor-dbus/README


AppArmor logparsing library

A library which provides an api to access AppArmor data from system log files. The library supports the Linux Audit Framework format and the standard syslog format.


Support for Network Repository for profile storage

The AppArmor profile tools now interact with local and remote repositories of profiles to supply the user with profiles when profiles are needed for applications and to allow central storage of AppArmor profiles across multiple machines.

Selecting profiles from a repository

The user is prompted to select a profile from one or more users in the network repository or from the local inactive profile repository (/etc/apparmor/profiles/extras).

Storing profiles in a repository

The user has the option of storing profiles in a remote repository. The user is required to supply a username, password, and email address to create/access an account on the repository server and then the new/changed profiles can be stored on the remote server.

AppArmor Desktop Applet for Gnome

A desktop applet for gnome that AppArmor events via dbus.