O perfil do AppArmor Firefox permite ler e gravar em qualquer lugar do HOME, a menos que o uso explícito seja usado

2

Estou usando o perfil padrão do AppArmor Firefox, que supostamente permite que os downloads sejam salvos em ~ / Downloads. No entanto, ainda posso fazer o download para qualquer local dentro do meu diretório pessoal. Eu verifiquei que tudo foi carregado e aplicado. Para fins de teste, adicionei uma negação explícita deny @{HOME}/Dropbox/** w e recarregada. Isso funcionou, eu não posso mais salvar nada em qualquer lugar dentro do diretório do Dropbox. Removi o teste negado e comentei a seção "Perfil padrão permite downloads para ... e uploads de ..." para ver o que acontece:

#owner @{HOME}/ r,
#owner @{HOME}/Public/ r,
#owner @{HOME}/Public/* r,
#owner @{HOME}/Downloads/ r,
#owner @{HOME}/Downloads/* rw,

Como se suspeitava, nada mudou. Eu percebi que deve haver alguma permissão acidental no diretório inicial. Eu redefini minhas alterações e tentei encontrar todas as linhas com HOME relacionadas ao perfil do Firefox:

grep 'HOME' $(grep include usr.bin.firefox | sed 's/^.*<\(.*\)>.*//g') usr.bin.firefox

abstractions/audio:owner @{HOME}/.esd_auth r,
abstractions/audio:owner @{HOME}/.asoundrc r,
abstractions/audio:owner @{HOME}/.cache/event-sound-cache.* rwk,
abstractions/audio:owner @{HOME}/.pulse-cookie rwk,
abstractions/audio:owner @{HOME}/.pulse/ rw,
abstractions/audio:owner @{HOME}/.pulse/* rwk,
abstractions/audio:owner @{HOME}/.config/pulse/cookie rwk,
abstractions/audio:owner @{HOME}/.alsoftrc r,
abstractions/cups-client:  owner @{HOME}/.cups/client.conf r,
abstractions/cups-client:  owner @{HOME}/.cups/lpoptions r,
abstractions/gnome:  owner @{HOME}/.gnome/Gnome            r,
abstractions/gnome:  owner @{HOME}/.gtk                    r,
abstractions/gnome:  owner @{HOME}/.gtkrc                  r,
abstractions/gnome:  owner @{HOME}/.gtkrc-2.0              r,
abstractions/gnome:  owner @{HOME}/.gtk-bookmarks          r,
abstractions/gnome:  owner @{HOME}/.themes/                r,
abstractions/gnome:  owner @{HOME}/.themes/**              r,
abstractions/gnome:  owner @{HOME}/.config/gtk-2.0/**                  r,
abstractions/gnome:  owner @{HOME}/.config/gtk-2.0/gtkfilechooser.ini* rw,
abstractions/gnome:  owner @{HOME}/.gconfd/lock/*                      r,
abstractions/gnome:  owner @{HOME}/.gnome/application-info             r,
abstractions/gnome:  owner @{HOME}/.fonts.cache-*    rwl,
abstractions/ibus:  owner @{HOME}/.config/ibus/ r,
abstractions/ibus:  owner @{HOME}/.config/ibus/bus/ rw,
abstractions/ibus:  owner @{HOME}/.config/ibus/bus/* rw,
usr.bin.firefox:  owner @{HOME}/.local/share/applications/defaults.list r,
usr.bin.firefox:  owner @{HOME}/.local/share/applications/mimeapps.list r,
usr.bin.firefox:  owner @{HOME}/.local/share/applications/mimeinfo.cache r,
usr.bin.firefox:  deny @{HOME}/.local/share/recently-used.xbel r,
usr.bin.firefox:  owner @{HOME}/.thumbnails/*/*.png r,
usr.bin.firefox:  owner @{HOME}/ r,
usr.bin.firefox:  owner @{HOME}/Public/ r,
usr.bin.firefox:  owner @{HOME}/Public/* r,
usr.bin.firefox:  owner @{HOME}/Downloads/ r,
usr.bin.firefox:  owner @{HOME}/Downloads/* rw,
usr.bin.firefox:  owner @{HOME}/.{firefox,mozilla}/ rw,
usr.bin.firefox:  owner @{HOME}/.{firefox,mozilla}/** rw,
usr.bin.firefox:  owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k,
usr.bin.firefox:  owner @{HOME}/.{firefox,mozilla}/plugins/** rm,
usr.bin.firefox:  owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm,
usr.bin.firefox:  owner @{HOME}/.gnome2/firefox*-bin-* rw,
usr.bin.firefox:  owner @{HOME}/.cache/mozilla/{,firefox/} rw,
usr.bin.firefox:  owner @{HOME}/.cache/mozilla/firefox/** rw,
usr.bin.firefox:  owner @{HOME}/.cache/mozilla/firefox/**/*.sqlite k,
usr.bin.firefox:  owner @{HOME}/.mozilla/**/extensions/** mixr,

Eu não vejo nada que permita ao firefox escrever em qualquer lugar do HOME. Alguma idéia?

Informação técnica:

$ uname -r
3.16.0-38-generic

Linux Mint 17.2 with XFCE

Outras notas:

No meu laptop, eu tenho o Debian Jessie com o Gnome e o AppArmor parece se comportar melhor. Embora eu não tenha usado o perfil firefox padrão nessa máquina, fiz um que é bem parecido para o firefox-esr / iceweasel. Funciona como esperado.

Perfil: link

    
por Paul Nordin 06.09.2016 / 00:05

1 resposta

2

Então, minha primeira faixa de inclusões não cobriu tudo ... Eu não percebi que algumas das abstrações também tinham suas próprias inclusões. Eu abri abstractions/ubuntu-browsers.d/firefox e notei um suspeito incluir abstractions/ubuntu-browsers.d/user-files . Eu abri arquivos de usuário e contém uma linha problemática owner @{HOME}/** w . O arquivo inteiro foi muito permissivo para o meu gosto, então eu removi o user-files da abstração firefox , recarregado e voila!

Tornar tudo em HOME gravável em uma abstração (especialmente aquele usado por outras abstrações) soa como uma ideia horrível. Eu só posso concluir que o perfil padrão do Firefox fornecido pelo Ubuntu é bastante inútil, fornecendo apenas uma falsa sensação de segurança.

A moral da história? Teste seus perfis do AppArmor completamente, tenha cuidado com abstrações, e escreva seus próprios perfis ou verifique realmente qualquer perfil fornecido por terceiros.

    
por 06.09.2016 / 01:43