commit: c4d506d919d9584fb61e3ebfce7ee718eb866b27
Author: Chris PeBenito <pebenito <AT> ieee <DOT> org>
AuthorDate: Fri Mar 19 19:50:06 2021 +0000
Commit: Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Fri Apr 2 18:54:58 2021 +0000
URL:
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=c4d506d9
kernel: Add dontaudits when secure_mode_insmod is enabled.
Signed-off-by: Chris PeBenito <pebenito <AT> ieee.org>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>
policy/modules/kernel/files.if | 19 +++++++++++++++++++
policy/modules/kernel/kernel.te | 15 ++++++++++++++-
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/policy/modules/kernel/files.if b/policy/modules/kernel/files.if
index 0687a435..349b8696 100644
--- a/policy/modules/kernel/files.if
+++ b/policy/modules/kernel/files.if
@@ -4369,6 +4369,25 @@ interface(`files_load_kernel_modules',`
allow $1 modules_object_t:system module_load;
')
+########################################
+## <summary>
+## Load kernel module files.
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain allowed access.
+## </summary>
+## </param>
+#
+interface(`files_dontaudit_load_kernel_modules',`
+ gen_require(`
+ type modules_object_t;
+ ')
+
+ dontaudit $1 modules_object_t:file read_file_perms;
+ dontaudit $1 modules_object_t:system module_load;
+')
+
########################################
## <summary>
## List world-readable directories.
diff --git a/policy/modules/kernel/kernel.te b/policy/modules/kernel/kernel.te
index c44f49ed..2bd3f924 100644
--- a/policy/modules/kernel/kernel.te
+++ b/policy/modules/kernel/kernel.te
@@ -497,7 +497,20 @@ optional_policy(`
# Kernel module loading policy
#
-if( ! secure_mode_insmod ) {
+if(secure_mode_insmod) {
+ dontaudit can_load_kernmodule self:capability sys_module;
+ dontaudit can_load_kernmodule self:system module_load;
+
+ files_dontaudit_load_kernel_modules(can_load_kernmodule)
+
+ # load_module() calls stop_machine() which
+ # calls sched_setscheduler()
+ # gt: there seems to be no trace of the above, at
+ # least in kernel versions greater than 2.6.37...
+ dontaudit can_load_kernmodule self:capability sys_nice;
+ dontaudit can_load_kernmodule kernel_t:process setsched;
+ dontaudit can_load_kernmodule kernel_t:key search;
+} else {
allow can_load_kernmodule self:capability sys_module;
allow can_load_kernmodule self:system module_load;