[ovs-dev] [PATCH 0/4] selinux: introduce a transition domain for loading kmods

Timothy Redaelli tredaelli at redhat.com
Wed Mar 21 16:23:00 UTC 2018


On Tue, 20 Mar 2018 17:05:14 -0400
Aaron Conole <aconole at redhat.com> wrote:

> On linux systems, the initial start of openvswitch attempts to load
> the openvswitch.ko kernel module.  This module allows openvswitch to
> utilize the kernel datapath.
> 
> Some of these linux systems, notably Fedora and RHEL, use selinux to
> enforce additional restrictions on various processes by way of
> allowing or disallowing access from a specific selinux domain to a
> particular operation on an selinux type.  On these systems, the
> openvswitch initialization will be run from the 'openvswitch_t'
> selinux domain. Attempts by a process in the 'openvswitch_t' selinux
> domain to load a kernel module will be denied.
> 
> One solution would be to simply allow 'openvswitch_t' to load a kernel
> directly.  This essentially means that 'openvswitch_t' would really be
> 'unconfined_t' - since an attacker that can control the code can issue
> a kernel load.
> 
> The solution implemented here uses a labeled file in the openvswitch
> scripts directory, which is writable only by root.  That file will
> force a domain transition to the 'openvswitch_load_module_t' domain.
> The 'openvswitch_load_module_t' domain will then be granted
> permissions to load a kernel module.
> 
> Please vet the new permissions in 2/4 *carefully*.  I've tried to keep
> it as restricted as possible.  If there are any useful selinux
> interfaces that would simplify the permission grants needed for the
> new domain, I'm happy to spin a v2.
> 
> Aaron Conole (4):
>   ovs-kmod-ctl: introduce a kernel module load script
>   selinux: create a transition type for module loading
>   selinux: introduce domain transitioned kmod helper
>   rhel: selinux-policy to invoke proper label macros
> 
>  debian/openvswitch-switch.install  |   1 +
>  debian/openvswitch-switch.manpages |   1 +
>  rhel/openvswitch-fedora.spec.in    |  12 +-
>  rhel/openvswitch.spec.in           |   2 +
>  selinux/.gitignore                 |   4 +
>  selinux/automake.mk                |   3 +-
>  selinux/openvswitch-custom.fc.in   |   1 +
>  selinux/openvswitch-custom.te.in   |  79 ++++++++++++-
>  utilities/.gitignore               |   1 +
>  utilities/automake.mk              |   5 +
>  utilities/ovs-ctl.in               |  32 +-----
>  utilities/ovs-kmod-ctl.8           | 103 +++++++++++++++++
>  utilities/ovs-kmod-ctl.in          | 228
> +++++++++++++++++++++++++++++++++++++
> utilities/ovs-lib.in               |  12 +- 14 files changed, 439
> insertions(+), 45 deletions(-) create mode 100644
> selinux/openvswitch-custom.fc.in create mode 100644
> utilities/ovs-kmod-ctl.8 create mode 100644 utilities/ovs-kmod-ctl.in
> 

Series
Acked-By: Timothy Redaelli <tredaelli at redhat.com>


More information about the dev mailing list