AppArmor: Incomum foi negada a mensagem “name = string”

1

Eu tenho um perfil personalizado do AppArmor para confinar o Syncthing. (Eu percebo que isso pode não ser uma questão específica do Ubuntu, mas eu só uso o Ubuntu, então eu não vi se isso afeta outras distribuições Linux).

Este é o perfil:

#include <tunables/global>

/usr/bin/syncthing {
  #include <abstractions/base>

  # Obviously needs Internet access to work.
  network raw,
  network inet,
  network inet6,

 # Access to execute binary
  /usr/bin/syncthing cx,

  # Wants read access to SOMAXCONN
  /proc/sys/net/core/somaxconn r,

  # Needs to be able to read these to work properly
  /run/resolvconf/resolv.conf r,
  /etc/hosts r,
  /etc/host.conf r,
  /etc/nsswitch.conf r,
  /etc/ssl/certs/** r,
  /etc/mime.types r,
  /etc/gai.conf r,

  # Allow access to synced folders.
  owner @{HOME}/Documents/ rw,
  owner @{HOME}/Documents/** rwk,
  owner @{HOME}/Pictures/ rw,
  owner @{HOME}/Pictures/** rwk,
  owner @{HOME}/Public/ rw,
  owner @{HOME}/Public/** rwk,
  owner @{HOME}/Music/ rw,
  owner @{HOME}/Music/** rwk,
  owner @{HOME}/Downloads/ rw,
  owner @{HOME}/Downloads/** rwk,
  owner @{HOME}/.keys/ rw,
  owner @{HOME}/.keys/** rwk,

  # Allow access to config files
  owner @{HOME}/.config/syncthing/ rw,
  owner @{HOME}/.config/syncthing/** rwk,

  # Silence warnings on things we don't want access to
  deny / r,
  deny /* r,
  deny @{HOME} r,

}

E esta é a mensagem do syslog que recebi recentemente:

Apr 16 11:07:05 supercomputer kernel: [ 1240.879568] audit: type=1400 audit(1460768825.434:31): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2277 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:16:28 supercomputer kernel: [ 1803.632950] audit: type=1400 audit(1460769388.508:32): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2266 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:26:13 supercomputer kernel: [ 2388.037482] audit: type=1400 audit(1460769973.246:33): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=1021 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Apr 16 11:36:56 supercomputer kernel: [ 3031.177125] audit: type=1400 audit(1460770616.751:34): apparmor="DENIED" operation="open" profile="/usr/bin/syncthing" name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F pid=2273 comm="syncthing" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000

Desde que eu criei o perfil, fiquei relativamente familiarizado com o AppArmor e os logs que ele produz - mas nunca vi essa mensagem name=2F686F6D652F7365616E2F566964656F732F43616D65726120566964656F732F antes. Ele não parece ser um caminho de arquivo, que é o que o AppArmor normalmente relata.

O que essa mensagem de erro significa? Como posso permitir ou negar no perfil?

    
por seanlano 16.04.2016 / 03:59

1 resposta

2

A string hexadecimal que segue "name=" é apenas uma string codificada hexadecimal do caminho do arquivo que você está procurando. Se você copiar sua string hexa no link na caixa "hexadecimal" (ou em muitos sites equivalentes) e clicar em converter para obter a string original costas. Não vou postar a string exata aqui para preservar sua privacidade - apenas no caso de isso ser importante.

Se você não quiser usar um site de terceiros, pode executar um shell do Python e fazer o seguinte:

x="2F.... (your string here)"
''.join(chr(int(x[i:i+2], 16)) for i in range(0, len(x), 2))

Eu também encontrei isso no Debian. Eu não sei porque isso acontece.

    
por bchurchill 04.05.2016 / 09:32