update apparmor profiles

Co-authored-by: Mikhail Morfikov <mmorfikov@gmail.com>
Signed-off-by: Alexandre Pujol <alexandre@pujol.io>
This commit is contained in:
Alexandre Pujol 2022-02-27 01:22:35 +00:00
parent b0690c0e55
commit d701e39939
No known key found for this signature in database
GPG key ID: C5469996F0DF68EC
201 changed files with 540 additions and 608 deletions

View file

@ -24,19 +24,10 @@ profile brave @{exec_path} {
include <abstractions/user-download-strict>
include <abstractions/nameservice-strict>
include <abstractions/thumbnails-cache-read>
include <abstractions/deny-dconf>
include <abstractions/deny-root-dir-access>
include <abstractions/chromium-common>
capability sys_ptrace,
# The following rules are needed only when the kernel.unprivileged_userns_clone option is set
# to "1".
capability sys_admin,
capability sys_chroot,
owner @{PROC}/@{pid}/setgroups w,
owner @{PROC}/@{pid}/gid_map w,
owner @{PROC}/@{pid}/uid_map w,
ptrace (read),
@{exec_path} mrix,
@ -78,14 +69,6 @@ profile brave @{exec_path} {
/usr/share/chromium/extensions/ r,
# To remove the following error:
# Error initializing NSS with a persistent database
owner @{HOME}/.pki/ rw,
owner @{HOME}/.pki/nssdb/ rw,
owner @{HOME}/.pki/nssdb/pkcs11.txt rw,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db rwk,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db-journal rw,
owner @{HOME}/ r,
owner @{user_config_dirs}/BraveSoftware/ w,
owner @{BRAVE_HOMEDIR}/ rw,
@ -122,6 +105,10 @@ profile brave @{exec_path} {
/etc/fstab r,
include <abstractions/dconf>
owner @{run}/user/@{uid}/dconf/ rw,
owner @{run}/user/@{uid}/dconf/user rw,
/usr/share/glib-2.0/schemas/gschemas.compiled r,
# Needed or Brave crash with the following error:
@ -148,14 +135,10 @@ profile brave @{exec_path} {
@{PROC}/sys/fs/inotify/max_user_watches r,
deny @{PROC}filesystems r,
owner /dev/shm/.org.chromium.Chromium.* rw,
owner /dev/shm/org.chromium.Chromium.shmem.[A-F0-9]*._service_shmem rw,
/dev/bus/usb/[0-9]*/[0-9]* rw,
# For downloading files
owner @{user_share_dirs}/.org.chromium.Chromium.* rw,
/var/lib/dbus/machine-id r,
/etc/machine-id r,
@ -179,22 +162,12 @@ profile brave @{exec_path} {
@{sys}/devices/system/cpu/cpufreq/policy[0-9]/cpuinfo_max_freq r,
/var/tmp/ r,
/tmp/ r,
owner /tmp/.org.chromium.Chromium.* rw,
owner /tmp/.org.chromium.Chromium.*/{,**} rw,
# For installing/updating/removing extensions
owner /tmp/scoped_dir*/{,**} rw,
owner /tmp/tmp.* rw,
# For brave://net-export/
owner /tmp/net-export/ rw,
# Silencer
deny @{BRAVE_INSTALLDIR}/** w,
# file_inherit
owner @{HOME}/.xsession-errors w,
profile open {
include <abstractions/base>

View file

@ -14,7 +14,6 @@ include <tunables/global>
profile brave-browser @{exec_path} {
include <abstractions/base>
include <abstractions/consoles>
include <abstractions/deny-root-dir-access>
@{exec_path} r,
/{usr/,}bin/{,ba,da}sh rix,

View file

@ -13,7 +13,6 @@ include <tunables/global>
@{exec_path} = @{BRAVE_INSTALLDIR}/{brave,chrome}-sandbox
profile brave-sandbox @{exec_path} {
include <abstractions/base>
include <abstractions/deny-root-dir-access>
# For kernel unprivileged user namespaces
capability sys_admin,

View file

@ -14,7 +14,6 @@ include <tunables/global>
profile chromium @{exec_path} flags=(attach_disconnected) {
include <abstractions/base>
include <abstractions/freedesktop.org>
include <abstractions/deny-root-dir-access>
@{exec_path} r,

View file

@ -0,0 +1,36 @@
# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2022 Mikhail Morfikov
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/3.0>,
include <tunables/global>
@{CHROMIUM_INSTALLDIR} = /{usr/,}lib/chromium
@{CHROMIUM_HOMEDIR} = @{HOME}/.config/chromium
@{CHROMIUM_CACHEDIR} = @{HOME}/.cache/chromium
@{exec_path} = @{CHROMIUM_INSTALLDIR}/chrome_crashpad_handler
profile chromium-chrome-crashpad-handler @{exec_path} flags=(complain) {
include <abstractions/base>
capability sys_ptrace,
ptrace peer=chromium-chromium,
signal (send) peer=chromium-chromium,
@{exec_path} mrix,
owner "@{HOME}/.config/chromium/Crash Reports/**" rwk,
owner @{PROC}/@{pid}/fd/ r,
owner @{PROC}/@{pids}/mem r,
owner @{PROC}/@{pids}/stat r,
owner @{PROC}/@{pids}/task/ r,
@{PROC}/sys/kernel/yama/ptrace_scope r,
@{sys}/devices/system/cpu/cpufreq/policy[0-9]*/scaling_cur_freq r,
@{sys}/devices/system/cpu/cpufreq/policy[0-9]*/scaling_max_freq r,
include if exists <local/chromium-chrome-crashpad-handler>
}

View file

@ -14,7 +14,6 @@ include <tunables/global>
profile chromium-chrome-sandbox @{exec_path} {
include <abstractions/base>
include <abstractions/deny-root-dir-access>
# For kernel unprivileged user namespaces
capability sys_admin,

View file

@ -28,7 +28,6 @@ profile chromium-chromium @{exec_path} flags=(attach_disconnected) {
include <abstractions/thumbnails-cache-read>
include <abstractions/nameservice-strict>
include <abstractions/ssl_certs>
include <abstractions/deny-root-dir-access>
ptrace (read) peer=chrome-gnome-shell,
@ -46,6 +45,7 @@ profile chromium-chromium @{exec_path} flags=(attach_disconnected) {
ptrace (read) peer=lsb_release,
signal (send) set=(term, kill) peer=keepassxc-proxy,
signal (receive) peer=chromium-chrome-crashpad-handler,
network inet dgram,
network inet6 dgram,
@ -55,9 +55,9 @@ profile chromium-chromium @{exec_path} flags=(attach_disconnected) {
@{exec_path} mrix,
/{usr/,}bin/chrome-gnome-shell rPx,
@{CHROMIUM_INSTALLDIR}/chrome-sandbox rPx,
@{CHROMIUM_INSTALLDIR}/crashpad_handler rPx,
/{usr/,}bin/chrome-gnome-shell rPx,
@{CHROMIUM_INSTALLDIR}/chrome-sandbox rPx,
@{CHROMIUM_INSTALLDIR}/chrome_crashpad_handler rPx,
# For storing passwords externally
/{usr/,}bin/keepassxc-proxy rPUx,
@ -70,14 +70,6 @@ profile chromium-chromium @{exec_path} flags=(attach_disconnected) {
/{usr/,}bin/xdg-desktop-menu rPx,
/{usr/,}bin/xdg-icon-resource rPx,
# To remove the following error:
# Error initializing NSS with a persistent database
owner @{HOME}/.pki/ rw,
owner @{HOME}/.pki/nssdb/ rw,
owner @{HOME}/.pki/nssdb/pkcs11.txt rw,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db rwk,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db-journal rw,
# Chromium files
/usr/share/chromium/{,**} r,
@ -121,36 +113,39 @@ profile chromium-chromium @{exec_path} flags=(attach_disconnected) {
/etc/fstab r,
include <abstractions/dconf>
owner @{run}/user/@{uid}/dconf/ rw,
owner @{run}/user/@{uid}/dconf/user rw,
/usr/share/glib-2.0/schemas/gschemas.compiled r,
# Needed or chromium gets crash with the following error:
# FATAL:sandbox_linux.cc(172)] Check failed: proc_fd_ >= 0 (-1 vs. 0)
@{PROC}/ r,
#
deny @{PROC}/vmstat r,
@{PROC}/vmstat r,
@{PROC}/sys/kernel/yama/ptrace_scope r,
@{PROC}/@{pid}/fd/ r,
deny @{PROC}/@{pids}/stat r,
deny @{PROC}/@{pids}/statm r,
@{PROC}/@{pids}/stat r,
@{PROC}/@{pids}/statm r,
# To remove the following error:
# Failed to adjust OOM score of renderer with pid : Permission denied
deny owner @{PROC}/@{pid}/oom_{,score_}adj rw,
owner @{PROC}/@{pid}/oom_{,score_}adj rw,
#
deny @{PROC}/@{pids}/cmdline r,
deny owner @{PROC}/@{pids}/environ r,
owner @{PROC}/@{pids}/environ r,
owner @{PROC}/@{pids}/task/ r,
deny @{PROC}/@{pids}/task/@{tid}/stat r,
@{PROC}/@{pids}/task/@{tid}/stat r,
@{PROC}/@{pids}/task/@{tid}/status r,
deny owner @{PROC}/@{pid}/limits r,
deny owner @{PROC}/@{pid}/mem r,
owner @{PROC}/@{pid}/limits r,
owner @{PROC}/@{pid}/mem r,
owner @{PROC}/@{pid}/mountinfo r,
owner @{PROC}/@{pid}/mounts r,
# To remove the following error:
# file_path_watcher_linux.cc(71)] Failed to read /proc/sys/fs/inotify/max_user_watches
@{PROC}/sys/fs/inotify/max_user_watches r,
deny /dev/shm/ r,
owner /dev/shm/.org.chromium.Chromium.* rw,
#
owner @{PROC}/@{pids}/clear_refs w,
/var/lib/dbus/machine-id r,
/etc/machine-id r,
@ -174,19 +169,10 @@ profile chromium-chromium @{exec_path} flags=(attach_disconnected) {
@{sys}/devices/virtual/dmi/id/product_name r,
@{sys}/devices/virtual/dmi/id/sys_vendor r,
/var/tmp/ r,
/tmp/ r,
owner /tmp/.org.chromium.Chromium.* rw,
owner /tmp/.org.chromium.Chromium.*/{,**} rw,
# For the temp profile
owner /tmp/tmp.*/ rw,
owner /tmp/tmp.*/** rwk,
# For installing/updating extensions
owner /tmp/scoped_dir*/ rw,
owner /tmp/scoped_dir*/** rw,
# Silencer
deny @{CHROMIUM_INSTALLDIR}/** w,

View file

@ -14,7 +14,6 @@ include <tunables/global>
profile chromium-crashpad_handler @{exec_path} flags=(complain) {
include <abstractions/base>
include <abstractions/deny-root-dir-access>
@{exec_path} mrix,

View file

@ -17,7 +17,6 @@ profile firefox @{exec_path} flags=(attach_disconnected) {
include <abstractions/base>
include <abstractions/audio>
include <abstractions/dconf>
include <abstractions/deny-root-dir-access>
include <abstractions/enchant>
include <abstractions/fontconfig-cache-read>
include <abstractions/fonts>

View file

@ -20,8 +20,6 @@ profile firefox-crashreporter @{exec_path} flags=(attach_disconnected) {
include <abstractions/fonts>
include <abstractions/fontconfig-cache-read>
include <abstractions/openssl>
include <abstractions/deny-root-dir-access>
include <abstractions/deny-dconf>
signal (receive) set=(term, kill) peer=firefox,
@ -55,6 +53,10 @@ profile firefox-crashreporter @{exec_path} flags=(attach_disconnected) {
owner /dev/shm/org.mozilla.ipc.[0-9]*.[0-9]* r,
include <abstractions/dconf>
owner @{run}/user/@{uid}/dconf/ rw,
owner @{run}/user/@{uid}/dconf/user rw,
/usr/share/glib-2.0/schemas/gschemas.compiled r,
/usr/share/X11/xkb/** r,
@ -62,8 +64,6 @@ profile firefox-crashreporter @{exec_path} flags=(attach_disconnected) {
# file_inherit
owner @{MOZ_CACHEDIR}/firefox/*.*/** r,
owner @{MOZ_HOMEDIR}/firefox/*.*/extensions/*.xpi r,
owner @{MOZ_HOMEDIR}/firefox/*.*/.parentlock rw,
owner @{HOME}/.xsession-errors w,
/dev/dri/renderD128 rw,
/dev/dri/card[0-9]* rw,

View file

@ -13,7 +13,6 @@ include <tunables/global>
@{exec_path} = /{usr/,}lib/firefox/minidump-analyzer
profile firefox-minidump-analyzer @{exec_path} {
include <abstractions/base>
include <abstractions/deny-root-dir-access>
signal (receive) set=(term, kill) peer=firefox,

View file

@ -16,7 +16,6 @@ profile firefox-pingsender @{exec_path} {
include <abstractions/nameservice-strict>
include <abstractions/openssl>
include <abstractions/ssl_certs>
include <abstractions/deny-root-dir-access>
signal (receive) set=(term, kill) peer=firefox,

View file

@ -24,15 +24,7 @@ profile google-chrome-chrome @{exec_path} {
include <abstractions/thumbnails-cache-read>
include <abstractions/nameservice-strict>
include <abstractions/ssl_certs>
include <abstractions/deny-root-dir-access>
# The following rules are needed only when the kernel.unprivileged_userns_clone option is set
# to "1".
capability sys_admin,
capability sys_chroot,
owner @{PROC}/@{pid}/setgroups w,
owner @{PROC}/@{pid}/gid_map w,
owner @{PROC}/@{pid}/uid_map w,
include <abstractions/chromium-common>
ptrace (trace) peer=@{profile_name},
@ -69,20 +61,10 @@ profile google-chrome-chrome @{exec_path} {
/{usr/,}bin/xdg-mime rPx,
/{usr/,}bin/xdg-settings rPx,
# To remove the following error:
# Error initializing NSS with a persistent database
owner @{HOME}/.pki/ rw,
owner @{HOME}/.pki/nssdb/ rw,
owner @{HOME}/.pki/nssdb/pkcs11.txt rw,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db rwk,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db-journal rw,
# Google Chrome home files
owner @{HOME}/ r,
owner @{CHROME_HOMEDIR}/ rw,
owner @{CHROME_HOMEDIR}/** rwk,
# Flashplayer
owner @{CHROME_HOMEDIR}/PepperFlash/**/libpepflashplayer.so mr,
owner @{user_share_dirs}/.com.google.Chrome.* rw,
@ -141,8 +123,6 @@ profile google-chrome-chrome @{exec_path} {
owner @{PROC}/@{pid}/mounts r,
deny @{PROC}/diskstats r,
owner /dev/shm/.com.google.Chrome.* rw,
# To play DRM media (protected content)
@{CHROME_INSTALLDIR}/libwidevinecdm.so mr,
@{CHROME_INSTALLDIR}/libwidevinecdmadapter.so mr,
@ -168,13 +148,6 @@ profile google-chrome-chrome @{exec_path} {
# The irq file is needed to render pages.
@{sys}/devices/pci[0-9]*/**/irq r,
/var/tmp/ r,
/tmp/ r,
owner /tmp/.com.google.Chrome.* rw,
owner /tmp/.com.google.Chrome.*/{,**} rw,
# For installing/updating extensions
owner /tmp/scoped_dir*/{,**} rw,
# Silencer
deny @{CHROME_INSTALLDIR}/** w,

View file

@ -13,7 +13,6 @@ include <tunables/global>
@{exec_path} = @{CHROME_INSTALLDIR}/chrome-sandbox
profile google-chrome-chrome-sandbox @{exec_path} {
include <abstractions/base>
include <abstractions/deny-root-dir-access>
# For kernel unprivileged user namespaces
capability sys_admin,

View file

@ -14,7 +14,6 @@ include <tunables/global>
profile google-chrome-google-chrome @{exec_path} {
include <abstractions/base>
include <abstractions/consoles>
include <abstractions/deny-root-dir-access>
@{exec_path} r,
/{usr/,}bin/{,ba,da}sh rix,

View file

@ -25,16 +25,7 @@ profile opera @{exec_path} {
include <abstractions/nameservice-strict>
include <abstractions/openssl>
include <abstractions/ssl_certs>
include <abstractions/deny-dconf>
include <abstractions/deny-root-dir-access>
# The following rules are needed only when the kernel.unprivileged_userns_clone option is set
# to "1".
capability sys_admin,
capability sys_chroot,
owner @{PROC}/@{pid}/setgroups w,
owner @{PROC}/@{pid}/gid_map w,
owner @{PROC}/@{pid}/uid_map w,
include <abstractions/chromium-common>
ptrace (trace) peer=@{profile_name},
@ -62,21 +53,11 @@ profile opera @{exec_path} {
/{usr/,}bin/xdg-desktop-menu rPx,
/{usr/,}bin/xdg-icon-resource rPx,
# To remove the following error:
# Error initializing NSS with a persistent database
owner @{HOME}/.pki/ rw,
owner @{HOME}/.pki/nssdb/ rw,
owner @{HOME}/.pki/nssdb/pkcs11.txt rw,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db rwk,
owner @{HOME}/.pki/nssdb/{cert9,key4}.db-journal rw,
# Opera home files
owner @{HOME}/ r,
owner @{OPERA_HOMEDIR}/ rw,
owner @{OPERA_HOMEDIR}/** rwk,
owner @{user_share_dirs}/.org.chromium.Chromium.* rw,
# Cache files
owner @{user_cache_dirs}/ rw,
owner @{OPERA_CACHEDIR}/{,**/} rw,
@ -100,13 +81,12 @@ profile opera @{exec_path} {
owner @{user_config_dirs}/chromium/*/ r,
owner @{user_config_dirs}/chromium/*/{History,Cookies,Favicons,Bookmarks} rwk,
# Flashplayer
owner @{user_config_dirs}/google-chrome{,-beta,-unstable}/PepperFlash/**/manifest.json r,
owner @{user_config_dirs}/google-chrome{,-beta,-unstable}/PepperFlash/latest-component-updated-flash r,
owner @{user_config_dirs}/google-chrome{,-beta,-unstable}/PepperFlash/**/libpepflashplayer.so mr,
/etc/fstab r,
include <abstractions/dconf>
owner @{run}/user/@{uid}/dconf/ rw,
owner @{run}/user/@{uid}/dconf/user rw,
/usr/share/glib-2.0/schemas/gschemas.compiled r,
# Needed or opera crashes with the following error:
@ -133,8 +113,6 @@ profile opera @{exec_path} {
owner @{PROC}/@{pid}/mounts r,
@{PROC}/sys/fs/inotify/max_user_watches r,
owner /dev/shm/.org.chromium.Chromium.* rw,
# To play DRM media (protected content)
/opt/google/chrome{,-beta,-unstable}/libwidevinecdm.so mr,
/opt/google/chrome{,-beta,-unstable}/libwidevinecdmadapter.so mr,
@ -159,14 +137,6 @@ profile opera @{exec_path} {
# The irq file is needed to render pages.
@{sys}/devices/pci[0-9]*/**/irq r,
/var/tmp/ r,
/tmp/ r,
owner /tmp/.org.chromium.Chromium.* rw,
owner /tmp/.org.chromium.Chromium.*/{,*} rw,
# For installing/updating extensions
owner /tmp/scoped_dir*/{,**} rw,
# For crashreporter
owner /tmp/opera-crashlog-[0-9]*-[0-9]*.txt rw,

View file

@ -19,7 +19,6 @@ profile opera-crashreporter @{exec_path} {
include <abstractions/freedesktop.org>
include <abstractions/openssl>
include <abstractions/ssl_certs>
include <abstractions/deny-root-dir-access>
ptrace (trace, read) peer=opera,

View file

@ -15,7 +15,6 @@ profile opera-sandbox @{exec_path} {
include <abstractions/base>
include <abstractions/fonts>
include <abstractions/fontconfig-cache-read>
include <abstractions/deny-root-dir-access>
# For kernel unprivileged user namespaces
capability sys_admin,