O que o Firefox AppArmor restringe / permite?

6

Eu sei que os perfis do AppArmor residem em /etc/apparmor.d/ , mas não sei como interpretá-lo. Qualquer tradução seria esclarecedora.

    
por Oxwivi 09.05.2011 / 14:56

2 respostas

3

A única coisa que confunde são os códigos e você os interpreta assim:

'r'  read
'w'  write
'm'  memory map as executable
'k'  file locking
'l'  creation hard links
'ix' execute and inherit this profile
'Px' execute under another profile, after cleaning the environment
'Ux' execute unconfined, after cleaning the environment

O resto do arquivo são principalmente diretórios, arquivos e bibliotecas com algumas vezes alguns parâmetros na frente (como PROC e HOME que parecem fáceis de entender) e expressões regulares para torná-lo mais flexível e às vezes um 'negar' ou 'proprietário' em frente da linha (estes parecem ser auto-explicativos para mim: eles negam o acesso e limitam as ações no caso de ser o dono fazendo-as).

Em relação ao PROC:

Exemplo:

# for networking
  network inet stream,
  network inet6 stream,
  @{PROC}/[0-9]*/net/if_inet6 r,
  @{PROC}/[0-9]*/net/ipv6_route r,

e faça

cd /proc/
ls *

Veja todos os diretórios com dígitos? Estes correspondem a cada processo em execução. Se algum deles contiver um diretório net ( network ) e que contiver um arquivo if_net6 ou ipv6_route , eles serão considerados read .

    
por Rinzwind 27.06.2011 / 21:27
1

Veja Access Modes , Rule Qualifiers e #include mechanism na página man ...

man apparmor.d

A página do manual explica isso com bastante detalhes. Quanto à sua pergunta sobre @{PROC} , existem variáveis que podem ser definidas dentro dos arquivos include. Da página man do apparmor.d (5) ...

  

Algumas das abstrações dependem de variáveis que são definidas em arquivos   o diretório /etc/apparmor.d/tunables/ . Essas variáveis são atualmente    @{HOME} e @{HOMEDIRS} . Variáveis não podem ser definidas no escopo do perfil;   eles só podem ser definidos antes do perfil. Portanto, quaisquer perfis que   usar abstrações deve #include <tunables/global> ou caso contrário   certifique-se de que @{HOME} e @{HOMEDIRS} estejam definidos antes de iniciar o   definição de perfil. Os utilitários aa-autodep(8) e aa-genprof(8)   Emitir automaticamente #include <tunables/global> nos perfis gerados.

Se você procurar em /etc/apparmor.d/tunables/global , verá que há outro #include <tunables/proc> . O conteúdo desse arquivo é ....

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

Portanto, @{PROC} é simplesmente uma variável abstrata apontando para o proc (5) sistema de arquivos .

    
por Sam Gleske 22.04.2014 / 15:29