selinux: restrict kernel module loading
authorJeff Vander Stoep <jeffv@google.com>
Tue, 5 Apr 2016 20:06:27 +0000 (13:06 -0700)
committerPaul Moore <paul@paul-moore.com>
Tue, 5 Apr 2016 20:11:56 +0000 (16:11 -0400)
commit61d612ea731e57dc510472fb746b55cdc017f371
treeb44c2c0228284fffaa2f7a09de7bae85da0a3d72
parent0c6181cb301fd04a5800920ba423be753b0a4a01
selinux: restrict kernel module loading

Utilize existing kernel_read_file hook on kernel module load.
Add module_load permission to the system class.

Enforces restrictions on kernel module origin when calling the
finit_module syscall. The hook checks that source type has
permission module_load for the target type.
Example for finit_module:

allow foo bar_file:system module_load;

Similarly restrictions are enforced on kernel module loading when
calling the init_module syscall. The hook checks that source
type has permission module_load with itself as the target object
because the kernel module is sourced from the calling process.
Example for init_module:

allow foo foo:system module_load;

Signed-off-by: Jeff Vander Stoep <jeffv@google.com>
[PM: fixed return value of selinux_kernel_read_file()]
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/hooks.c
security/selinux/include/classmap.h