From: Chris PeBenito <pebenito@ieee.org>
To: Russell Coker <russell@coker.com.au>, selinux-refpolicy@vger.kernel.org
Subject: Re: another chromium patch
Date: Tue, 14 Apr 2020 10:40:05 -0400 [thread overview]
Message-ID: <8f77b264-331a-4485-3238-2f0f21fe07ec@ieee.org> (raw)
In-Reply-To: <20200410062034.GA61188@xev>
On 4/10/20 2:20 AM, Russell Coker wrote:
> I removed all the controversion stuff so I think this is ready for inclusion.
>
> Signed-off-by: Russell Coker <russell@coker.com.au>
>
> Chromium policy tweaks and DRI policy
>
> Index: refpolicy-2.20200410/policy/modules/apps/chromium.te
> ===================================================================
> --- refpolicy-2.20200410.orig/policy/modules/apps/chromium.te
> +++ refpolicy-2.20200410/policy/modules/apps/chromium.te
> @@ -63,6 +63,9 @@ type chromium_tmpfs_t;
> userdom_user_tmpfs_file(chromium_tmpfs_t)
> optional_policy(`
> pulseaudio_tmpfs_content(chromium_tmpfs_t)
> + pulseaudio_rw_tmpfs_files(chromium_t)
> + pulseaudio_stream_connect(chromium_t)
> + pulseaudio_use_fds(chromium_t)
> ')
>
> type chromium_xdg_config_t;
> @@ -96,6 +99,7 @@ allow chromium_t chromium_renderer_t:uni
>
> allow chromium_t chromium_sandbox_t:unix_dgram_socket { getattr read write };
> allow chromium_t chromium_sandbox_t:unix_stream_socket { getattr read write };
> +allow chromium_t chromium_sandbox_t:file read_file_perms;
>
> allow chromium_t chromium_naclhelper_t:process { share };
>
> @@ -108,6 +112,9 @@ manage_sock_files_pattern(chromium_t, ch
> manage_fifo_files_pattern(chromium_t, chromium_tmp_t, chromium_tmp_t)
> files_tmp_filetrans(chromium_t, chromium_tmp_t, { file dir sock_file })
>
> +# for /run/user/$UID
> +userdom_user_runtime_filetrans(chromium_t, chromium_tmp_t, { file sock_file })
> +
> manage_files_pattern(chromium_t, chromium_tmpfs_t, chromium_tmpfs_t)
> allow chromium_t chromium_tmpfs_t:file map;
> fs_tmpfs_filetrans(chromium_t, chromium_tmpfs_t, file)
> @@ -129,6 +136,8 @@ domtrans_pattern(chromium_t, chromium_sa
> domtrans_pattern(chromium_t, chromium_naclhelper_exec_t, chromium_naclhelper_t)
>
> kernel_list_proc(chromium_t)
> +kernel_read_fs_sysctls(chromium_t)
> +kernel_read_kernel_sysctls(chromium_t)
> kernel_read_net_sysctls(chromium_t)
>
> corecmd_exec_bin(chromium_t)
> @@ -145,6 +154,9 @@ dev_read_sound(chromium_t)
> dev_write_sound(chromium_t)
> dev_read_urand(chromium_t)
> dev_read_rand(chromium_t)
> +tunable_policy(`xserver_allow_dri', `
> + dev_rw_dri(chromium_t)
> +')
Seems that this would be a chromium tunable. It should also move down with the
other tunables, in order of the tunable name.
> dev_rw_xserver_misc(chromium_t)
> dev_map_xserver_misc(chromium_t)
>
> @@ -187,6 +199,9 @@ xdg_read_config_files(chromium_t)
> xdg_read_data_files(chromium_t)
>
> xserver_user_x_domain_template(chromium, chromium_t, chromium_tmpfs_t)
> +xserver_stream_connect_xdm(chromium_t)
> +
> +xserver_manage_mesa_shader_cache(chromium_t)
>
> tunable_policy(`chromium_bind_tcp_unreserved_ports',`
> corenet_tcp_bind_generic_node(chromium_t)
> @@ -230,6 +245,10 @@ optional_policy(`
> ')
>
> optional_policy(`
> + networkmanager_dbus_chat(chromium_t)
> +')
Should move down after the dpkg optional.
> +optional_policy(`
> dbus_all_session_bus_client(chromium_t)
> dbus_system_bus_client(chromium_t)
>
> @@ -242,8 +261,13 @@ optional_policy(`
> ')
>
> optional_policy(`
> + devicekit_dbus_chat_disk(chromium_t)
> devicekit_dbus_chat_power(chromium_t)
> ')
> +
> + optional_policy(`
> + systemd_dbus_chat_hostnamed(chromium_t)
> + ')
> ')
>
> optional_policy(`
> @@ -253,6 +277,10 @@ optional_policy(`
> dpkg_read_db(chromium_t)
> ')
>
> +optional_policy(`
> + ssh_dontaudit_agent_tmp(chromium_t)
> +')
> +
> ifdef(`use_alsa',`
> optional_policy(`
> alsa_domain(chromium_t, chromium_tmpfs_t)
> @@ -260,6 +288,7 @@ ifdef(`use_alsa',`
>
> optional_policy(`
> pulseaudio_domtrans(chromium_t)
> + pulseaudio_read_home(chromium_t)
> ')
> ')
> @@ -361,3 +390,6 @@ tunable_policy(`chromium_read_system_inf
>
> dev_read_sysfs(chromium_naclhelper_t)
> dev_read_urand(chromium_naclhelper_t)
> +kernel_list_proc(chromium_naclhelper_t)
> +
> +miscfiles_read_localization(chromium_naclhelper_t)
> Index: refpolicy-2.20200410/policy/modules/services/xserver.te
> ===================================================================
> --- refpolicy-2.20200410.orig/policy/modules/services/xserver.te
> +++ refpolicy-2.20200410/policy/modules/services/xserver.te
> @@ -55,6 +55,13 @@ gen_tunable(xserver_gnome_xdm, false)
> ## </desc>
> gen_tunable(xserver_object_manager, false)
>
> +## <desc>
> +## <p>
> +## Allow DRI access
> +## </p>
> +## </desc>
> +gen_tunable(xserver_allow_dri, false)
> +
> attribute x_domain;
>
> # X Events
> Index: refpolicy-2.20200410/policy/modules/services/xserver.if
> ===================================================================
> --- refpolicy-2.20200410.orig/policy/modules/services/xserver.if
> +++ refpolicy-2.20200410/policy/modules/services/xserver.if
> @@ -48,8 +48,9 @@ interface(`xserver_restricted_role',`
> files_search_tmp($2)
>
> # Communicate via System V shared memory.
> + allow $2 xserver_t:fd use;
> allow $2 xserver_t:shm r_shm_perms;
> - allow $2 xserver_tmpfs_t:file read_file_perms;
> + allow $2 xserver_tmpfs_t:file { map read_file_perms };
>
> # allow ps to show iceauth
> ps_process_pattern($2, iceauth_t)
> @@ -75,10 +76,6 @@ interface(`xserver_restricted_role',`
> allow $2 xdm_tmp_t:sock_file { read write };
> dontaudit $2 xdm_t:tcp_socket { read write };
>
> - # Client read xserver shm
> - allow $2 xserver_t:fd use;
> - allow $2 xserver_tmpfs_t:file read_file_perms;
When did this need drop from xorg?
> # Read /tmp/.X0-lock
> allow $2 xserver_tmp_t:file { getattr read };
>
> @@ -91,6 +88,9 @@ interface(`xserver_restricted_role',`
> # open office is looking for the following
> dev_getattr_agp_dev($2)
> dev_dontaudit_rw_dri($2)
> + tunable_policy(`xserver_allow_dri',`
> + dev_rw_dri($2)
> + ')
Should go at the bottom of the interface.
> # GNOME checks for usb and other devices:
> dev_rw_usbfs($2)
>
> @@ -1670,6 +1670,26 @@ interface(`xserver_rw_mesa_shader_cache'
>
> rw_dirs_pattern($1, mesa_shader_cache_t, mesa_shader_cache_t)
> rw_files_pattern($1, mesa_shader_cache_t, mesa_shader_cache_t)
> + xdg_search_cache_dirs($1)
> +')
> +
> +########################################
> +## <summary>
> +## Manage the mesa shader cache.
> +## </summary>
> +## <param name="domain">
> +## <summary>
> +## Domain allowed access.
> +## </summary>
> +## </param>
> +#
> +interface(`xserver_manage_mesa_shader_cache',`
> + gen_require(`
> + type mesa_shader_cache_t;
> + ')
> +
> + manage_dirs_pattern($1, mesa_shader_cache_t, mesa_shader_cache_t)
> + manage_files_pattern($1, mesa_shader_cache_t, mesa_shader_cache_t)
> allow $1 mesa_shader_cache_t:file map;
>
> xdg_search_cache_dirs($1)
> Index: refpolicy-2.20200410/policy/modules/apps/chromium.if
> ===================================================================
> --- refpolicy-2.20200410.orig/policy/modules/apps/chromium.if
> +++ refpolicy-2.20200410/policy/modules/apps/chromium.if
> @@ -38,7 +38,15 @@ interface(`chromium_role',`
>
> allow $2 chromium_t:process signal_perms;
> allow $2 chromium_renderer_t:process signal_perms;
> + allow $2 chromium_sandbox_t:process signal_perms;
> allow $2 chromium_naclhelper_t:process signal_perms;
> + allow chromium_t $2:process { signull signal };
> + allow $2 chromium_t:file manage_file_perms;
> +
> + allow $2 chromium_t:unix_stream_socket connectto;
> +
> + # for /tmp/.ICE-unix/* sockets
> + allow chromium_t $2:unix_stream_socket connectto;
>
> allow chromium_sandbox_t $2:fd use;
> allow chromium_naclhelper_t $2:fd use;
> @@ -109,6 +117,7 @@ interface(`chromium_domtrans',`
> gen_require(`
> type chromium_t;
> type chromium_exec_t;
> + class dbus send_msg;
> ')
>
> corecmd_search_bin($1)
> Index: refpolicy-2.20200410/policy/modules/services/ssh.if
> ===================================================================
> --- refpolicy-2.20200410.orig/policy/modules/services/ssh.if
> +++ refpolicy-2.20200410/policy/modules/services/ssh.if
> @@ -772,3 +772,21 @@ interface(`ssh_delete_tmp',`
> files_search_tmp($1)
> delete_files_pattern($1, sshd_tmp_t, sshd_tmp_t)
> ')
> +
> +#######################################
> +## <summary>
> +## dontaudit access to ssh agent tmp dirs
> +## </summary>
> +## <param name="domain">
> +## <summary>
> +## Domain not to audit.
> +## </summary>
> +## </param>
> +#
> +interface(`ssh_dontaudit_agent_tmp',`
> + gen_require(`
> + type ssh_agent_tmp_t;
> + ')
> +
> + dontaudit $1 ssh_agent_tmp_t:dir list_dir_perms;
> +')
>
--
Chris PeBenito
prev parent reply other threads:[~2020-04-14 15:06 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-10 6:20 another chromium patch Russell Coker
2020-04-14 14:40 ` Chris PeBenito [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8f77b264-331a-4485-3238-2f0f21fe07ec@ieee.org \
--to=pebenito@ieee.org \
--cc=russell@coker.com.au \
--cc=selinux-refpolicy@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).