From: Djalal Harouni <tixxdz@gmail.com>
To: linux-kernel@vger.kernel.org,
kernel-hardening@lists.openwall.com,
linux-security-module@vger.kernel.org,
Kees Cook <keescook@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Lafcadio Wluiki <wluikil@gmail.com>,
Djalal Harouni <tixxdz@gmail.com>,
Dongsu Park <dongsu@endocode.com>,
Andy Lutomirski <luto@kernel.org>,
James Morris <james.l.morris@oracle.com>, <serge@hallyn.com>,
Al Viro <viro@zeniv.linux.org.uk>,
Daniel Mack <daniel@zonque.org>, Jann Horn <jann@thejh.net>,
Elena Reshetova <elena.reshetova@intel.com>
Subject: [RFC/PATCH 3/3] doc: add Timgad LSM documentation
Date: Thu, 2 Feb 2017 18:04:54 +0100 [thread overview]
Message-ID: <1486055094-4532-4-git-send-email-djalal@gmail.com> (raw)
In-Reply-To: <1486055094-4532-1-git-send-email-djalal@gmail.com>
From: Djalal Harouni <tixxdz@gmail.com>
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: Djalal Harouni <tixxdz@gmail.com>
---
Documentation/security/Timgad.txt | 61 +++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 Documentation/security/Timgad.txt
diff --git a/Documentation/security/Timgad.txt b/Documentation/security/Timgad.txt
new file mode 100644
index 0000000..1ae1e7c
--- /dev/null
+++ b/Documentation/security/Timgad.txt
@@ -0,0 +1,61 @@
+Timgad is a Linux Security Module that collects per process and
+system-wide security protections that are not handled by the core kernel
+itself.
+
+This is selectable at build-time with CONFIG_SECURITY_TIMGAD, and can be
+controlled at run-time through sysctls in /proc/sys/kernel/timgad:
+or prctl() interface.
+
+
+- module_restrict
+
+==============================================================
+
+Linux containers need robust settings to control if modules are allowed to
+be loaded or unloaded globally or per process/container policy.
+Automatic loading of kernel modules using the "auto-load" feature is also
+covered.
+
+This adds global sysctl settings to indicate if modules are allowed
+to be loaded or unloaded, at same time it also supports a
+per-process/container settings based on prctl(2) interface. The prctl(2)
+settings are inherited by children created by fork(2) and clone(2), and
+preserved across execve(2).
+
+
+*) The per-process prctl() settings are:
+ prctl(PR_TIMGAD_OPTS, PR_TIGMAD_SET_MOD_RESTRICT, value, 0, 0)
+
+ Where value means:
+
+0 - Classic module load and unload permissions, nothing changes.
+
+1 - The current process must have CAP_SYS_MODULE to be able to load and
+ unload modules. CAP_NET_ADMIN should allow the current process to
+ load and unload only netdev aliased modules.
+
+2 - Current process can not loaded nor unloaded modules.
+
+
+*) The sysctl settings (writable only with CAP_SYS_MODULE) are:
+ /proc/sys/kernel/timgad/module_restrict
+
+0 - Classic module load and unload permissions, nothing changes.
+
+1 - Only processes with CAP_SYS_MODULE should be able to load and
+ unload modules. Processes with CAP_NET_ADMIN should be able to
+ load and unload only netdev aliased modules.
+
+2 - Modules can not be loaded nor unloaded. Once set, this sysctl value
+ cannot be changed.
+
+
+Rules:
+First the prctl() settings are checked, if the access is not denied
+then the global sysctl settings are checked.
+
+
+The original idea and inspiration is from grsecurity
+'GRKERNSEC_MODHARDEN'
+
+==============================================================
--
2.5.5
prev parent reply other threads:[~2017-02-02 17:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-02 17:04 [RFC/PATCH 0/3] introduce Timgad LSM Djalal Harouni
2017-02-02 17:04 ` [RFC/PATCH 1/3] security: add the security_task_copy() hook Djalal Harouni
2017-02-06 10:49 ` Tetsuo Handa
2017-02-06 12:40 ` Djalal Harouni
2017-02-06 13:10 ` Djalal Harouni
2017-02-02 17:04 ` [RFC/PATCH 2/3] security: Add the Timgad module Djalal Harouni
2017-02-03 1:02 ` James Morris
2017-02-06 12:19 ` Djalal Harouni
2017-02-11 0:33 ` Kees Cook
2017-02-14 12:19 ` Djalal Harouni
2017-02-02 17:04 ` Djalal Harouni [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=1486055094-4532-4-git-send-email-djalal@gmail.com \
--to=tixxdz@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=daniel@zonque.org \
--cc=dongsu@endocode.com \
--cc=elena.reshetova@intel.com \
--cc=james.l.morris@oracle.com \
--cc=jann@thejh.net \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=luto@kernel.org \
--cc=serge@hallyn.com \
--cc=viro@zeniv.linux.org.uk \
--cc=wluikil@gmail.com \
/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