O que significa “ptrace (trace) peer =” no perfil do AppArmor?

1

Eu tenho escrito alguns perfis do AppArmor e com cada novo perfil Eu encontro regras mais avançadas que eu não vi antes.

Neste caso, estou criando um perfil para o PulseAudio. Eu também tinha um perfil para o SMPlayer, mas quando criei o perfil do PulseAudio, o AppArmor disse algo assim para mim quando eu queria assistir a um filme no SMPlayer:

kernel: audit: type=1400 audit(1505370398.880:1005): apparmor="DENIED" operation="capable" profile="/usr/bin/smplayer" pid=40033 comm="pacmd" capability=19  capname="sys_ptrace"
Sep 14 08:26:38 morfikownia kernel: audit: type=1400 audit(1505370398.880:1006): apparmor="DENIED" operation="ptrace" profile="/usr/bin/smplayer" pid=40033 comm="pacmd" peer="/usr/bin/pulseaudio"

Isso pode ser corrigido adicionando o seguinte ao perfil do SMPlayer :

  capability sys_ptrace,
  ptrace (trace) peer=/usr/bin/pulseaudio,

Mas tenho duas perguntas sobre isso:

  1. Por que o SMPlayer precisa das regras agora? Eu tenho seu perfil por um tempo, e o SMPlayer nunca pediu as regras. Eu sei que é por causa da criação do perfil para o PulseAudio, mas alguém pode explicar por quê?

  2. O que as regras realmente significam? O que aconteceria quando eu não os adicionasse? O SMPlayer parece funcionar bem sem a regra CAP e ptrace .

por Mikhail Morfikov 14.09.2017 / 08:43

1 resposta

1

O AppArmor documenta regra ptrace em seu wiki. Lendo certos arquivos em /proc/<pid> podem causar a mensagem de negação de solicitação de rastreamento em seus registros.

De seu extrato de log, parece que o acesso a pulseaudio ( comm=pacmd , profile /usr/bin/pulseaudio ) é negado e a regra gerada permitiria o acesso (não estou familiarizado com detalhes pulseaudio para responder por que exatamente isso acontece). Se você ativou recentemente um perfil do AppArmor para pulseaudio, isso explicaria por que você não recebeu essa mensagem de auditoria antes.

Você não precisa permitir o acesso, caso não tenha (ou perceba) nenhum problema. Para impedir que o AppArmor preencha seus registros, você pode criar uma regra de negação . O acesso negado pelas regras de negação não gera mensagens no log:

deny ptrace (trace) peer=/usr/bin/pulseaudio,

No entanto, se você decidir permitir o acesso, primeiro verifique se a concessão de apenas ptrace (trace) peer=/usr/bin/pulseaudio é suficiente. Adicionar capability sys_ptrace adiciona uma regra de capacidade para o SMPlayer, o que provavelmente é não é necessário.

    
por 14.09.2017 / 09:49

Tags