AppArmor: São possíveis vários perfis por aplicativo (Firefox, Thunderbird)? Sintaxe?

3

Existe uma maneira de criar um perfil do AppArmor para cada perfil do Firefox, ao executar vários perfis em uma única instalação do Firefox? Ou, mais geralmente, para qualquer aplicativo que suporte vários perfis, Thunderbird, etc. Geralmente, todos os perfis do AppArmor que localizo para esses aplicativos contêm apenas o aplicativo inteiro, a menos que eu tenha perdido algo.

Normalmente, você inicia um Firefox ou Thunderbird com um argumento de linha de comando para especificar um perfil diferente. No entanto, não consigo encontrar nada na sintaxe do perfil do AppArmor para corresponder aos argumentos do aplicativo.

Eu sei que o libvirt faz isso de alguma forma criando um perfil do AppArmor para cada máquina virtual, então deve haver alguma maneira.

    
por stereoclawmarks 12.06.2015 / 19:15

3 respostas

2

O AppArmor funciona por executável. Não é possível descobrir que o Firefox carregou um perfil diferente e, portanto, deve usar um perfil diferente do AppArmor.

O AppArmor suporta regras de alteração , que permitem que um aplicativo seja altere qual perfil se aplica a ele . O caso de uso pretendido é precisamente permitir que um aplicativo mude para um perfil mais restritivo depois que ele for inicializado e descoberto o que ele precisa acessar nessa instância específica. Portanto, se o Firefox fosse compatível com o AppArmor, seria possível atribuir a regra change_profile e fazer com que ela se aplicasse à transição assim que fosse determinado qual perfil executar. Tanto quanto sei, isso não foi feito.

O que você pode fazer sem programar é fazer várias cópias ou hard links do executável firefox-bin , e definir perfis diferentes para cada um deles (o AppArmor é baseado no caminho para o executável, portanto hard links diferentes não precisam usar o mesmo perfil, ao contrário do SELinux que é baseado em inodes). Isso requer raiz e não é tão conveniente, e é por isso que o recurso de mudança de perfil foi adicionado ao AppArmor.

    
por 14.06.2015 / 19:28
1

Não tenho certeza, mas, pelo que entendi, acho que: não.

Apparmor poderia fazer distinção entre diferentes

  • aplicativo
  • caminho do sistema de arquivos
  • usuário / grupo

Por ter um comportamento diferente de apparmor contra diferentes perfis de aplicativos, você tem que criar usuários diferentes para cada comportamento de apparmor.

Como o Android faz para sandboxing todos os aplicativos em diferentes '' usuário ''.

    
por 14.06.2015 / 08:55
0

Muito fácil, meu amigo. Crie um link físico chamado firefox- (putProfileNameHere):

cd /data/usr/lib/firefox/
sudo ln firefox /usr/bin/firefox-default
sudo ln firefox /usr/bin/firefox-1b58iygj
#etc etc etc

Crie vários perfis da Armadura de aplicativos:

cd /etc/apparmor.d
cp usr.bin.firefox usr.bin.firefox-default
cp usr.bin.firefox usr.bin.firefox-1b58iygj
#etc etc etc

Modifique cada perfil como desejar.

Crie diferentes arquivos .desktop em / usr // share / applications (ou use um gerenciador de menu como o Alacarte ou o KDE ?? ) para iniciar os binários personalizados + o perfil relevante:

firefox-default 
firefox-1b58iygj --profile /home/<yourUserID>/.mozilla/firefox/1b58iygj
#etc etc etc

Divirta-se.

    
por 01.11.2018 / 07:01