All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: Djalal Harouni <tixxdz@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andy Lutomirski <luto@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	serge@hallyn.com, kernel-hardening@lists.openwall.com,
	linux-security-module@vger.kernel.org
Cc: Linux API <linux-api@vger.kernel.org>,
	Dongsu Park <dpark@posteo.net>,
	Casey Schaufler <casey@schaufler-ca.com>,
	James Morris <james.l.morris@oracle.com>,
	Paul Moore <paul@paul-moore.com>,
	Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Corbet <corbet@lwn.net>, Jessica Yu <jeyu@redhat.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	zendyani@gmail.com, Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH v3 1/2] modules:capabilities: automatic module loading restriction
Date: Thu, 20 Apr 2017 03:22:22 +0100	[thread overview]
Message-ID: <1492654942.31767.21.camel@decadent.org.uk> (raw)
In-Reply-To: <1492640420-27345-2-git-send-email-tixxdz@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1630 bytes --]

On Thu, 2017-04-20 at 00:20 +0200, Djalal Harouni wrote:
[...] 
> +modules_autoload:
> +
> +A sysctl to control if modules auto-load feature is allowed or not.
> +This sysctl complements "modules_disabled" which is for all module
> +operations where this flag applies only to automatic module loading.
> +Automatic module loading happens when programs request a kernel feature
> +that is implemented by an unloaded module, the kernel automatically
> +runs the program pointed by "modprobe" sysctl in order to load the
> +corresponding module.
> +
> +When modules_autoload is set to (0), the default, there are no
> +restrictions.
> +
> +When modules_autoload is set to (1), processes must have CAP_SYS_MODULE
> +to be able to trigger a module auto-load operation, or CAP_NET_ADMIN
> +for modules with a 'netdev-%s' alias.
> +
> +When modules_autoload is set to (2), automatic module loading is
> +disabled for all. Once set, this value can not be changed.

I would expect a parameter 'modules_autoload' to be a boolean, so this
behaviour would be surprising.

What is the point of mode 2?  Why would someone want to set
modules_disabled=0 and modules_autoload=2?

[...]
> --- a/kernel/module.c
> +++ b/kernel/module.c
[...]
> +static int modules_autoload_privileged_access(const char *name)
> +{
> +	if (capable(CAP_SYS_MODULE))
> +		return 0;
> +	else if (name && strstr(name, "netdev-") && capable(CAP_NET_ADMIN))
[...]

We want a prefix match, so use strncmp() not strstr().

Ben.

-- 
Ben Hutchings
It is easier to change the specification to fit the program than vice
versa.


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: ben@decadent.org.uk (Ben Hutchings)
To: linux-security-module@vger.kernel.org
Subject: [PATCH v3 1/2] modules:capabilities: automatic module loading restriction
Date: Thu, 20 Apr 2017 03:22:22 +0100	[thread overview]
Message-ID: <1492654942.31767.21.camel@decadent.org.uk> (raw)
In-Reply-To: <1492640420-27345-2-git-send-email-tixxdz@gmail.com>

On Thu, 2017-04-20 at 00:20 +0200, Djalal Harouni wrote:
[...]?
> +modules_autoload:
> +
> +A sysctl to control if modules auto-load feature is allowed or not.
> +This sysctl complements "modules_disabled" which is for all module
> +operations where this flag applies only to automatic module loading.
> +Automatic module loading happens when programs request a kernel feature
> +that is implemented by an unloaded module, the kernel automatically
> +runs the program pointed by "modprobe" sysctl in order to load the
> +corresponding module.
> +
> +When modules_autoload is set to (0), the default, there are no
> +restrictions.
> +
> +When modules_autoload is set to (1), processes must have CAP_SYS_MODULE
> +to be able to trigger a module auto-load operation, or CAP_NET_ADMIN
> +for modules with a 'netdev-%s' alias.
> +
> +When modules_autoload is set to (2), automatic module loading is
> +disabled for all. Once set, this value can not be changed.

I would expect a parameter 'modules_autoload' to be a boolean, so this
behaviour would be surprising.

What is the point of mode 2?  Why would someone want to set
modules_disabled=0 and modules_autoload=2?

[...]
> --- a/kernel/module.c
> +++ b/kernel/module.c
[...]
> +static int modules_autoload_privileged_access(const char *name)
> +{
> +	if (capable(CAP_SYS_MODULE))
> +		return 0;
> +	else if (name && strstr(name, "netdev-") && capable(CAP_NET_ADMIN))
[...]

We want a prefix match, so use strncmp() not strstr().

Ben.

-- 
Ben Hutchings
It is easier to change the specification to fit the program than vice
versa.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://kernsec.org/pipermail/linux-security-module-archive/attachments/20170420/f08fdf80/attachment.sig>

WARNING: multiple messages have this Message-ID (diff)
From: Ben Hutchings <ben@decadent.org.uk>
To: Djalal Harouni <tixxdz@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andy Lutomirski <luto@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	serge@hallyn.com, kernel-hardening@lists.openwall.com,
	linux-security-module@vger.kernel.org
Cc: Linux API <linux-api@vger.kernel.org>,
	Dongsu Park <dpark@posteo.net>,
	Casey Schaufler <casey@schaufler-ca.com>,
	James Morris <james.l.morris@oracle.com>,
	Paul Moore <paul@paul-moore.com>,
	Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Corbet <corbet@lwn.net>, Jessica Yu <jeyu@redhat.com>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	zendyani@gmail.com, Peter Zijlstra <peterz@infradead.org>
Subject: [kernel-hardening] Re: [PATCH v3 1/2] modules:capabilities: automatic module loading restriction
Date: Thu, 20 Apr 2017 03:22:22 +0100	[thread overview]
Message-ID: <1492654942.31767.21.camel@decadent.org.uk> (raw)
In-Reply-To: <1492640420-27345-2-git-send-email-tixxdz@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1630 bytes --]

On Thu, 2017-04-20 at 00:20 +0200, Djalal Harouni wrote:
[...] 
> +modules_autoload:
> +
> +A sysctl to control if modules auto-load feature is allowed or not.
> +This sysctl complements "modules_disabled" which is for all module
> +operations where this flag applies only to automatic module loading.
> +Automatic module loading happens when programs request a kernel feature
> +that is implemented by an unloaded module, the kernel automatically
> +runs the program pointed by "modprobe" sysctl in order to load the
> +corresponding module.
> +
> +When modules_autoload is set to (0), the default, there are no
> +restrictions.
> +
> +When modules_autoload is set to (1), processes must have CAP_SYS_MODULE
> +to be able to trigger a module auto-load operation, or CAP_NET_ADMIN
> +for modules with a 'netdev-%s' alias.
> +
> +When modules_autoload is set to (2), automatic module loading is
> +disabled for all. Once set, this value can not be changed.

I would expect a parameter 'modules_autoload' to be a boolean, so this
behaviour would be surprising.

What is the point of mode 2?  Why would someone want to set
modules_disabled=0 and modules_autoload=2?

[...]
> --- a/kernel/module.c
> +++ b/kernel/module.c
[...]
> +static int modules_autoload_privileged_access(const char *name)
> +{
> +	if (capable(CAP_SYS_MODULE))
> +		return 0;
> +	else if (name && strstr(name, "netdev-") && capable(CAP_NET_ADMIN))
[...]

We want a prefix match, so use strncmp() not strstr().

Ben.

-- 
Ben Hutchings
It is easier to change the specification to fit the program than vice
versa.


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2017-04-20  2:22 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-19 22:20 [PATCH v3 0/2] modules:capabilities: automatic module loading restrictions Djalal Harouni
2017-04-19 22:20 ` [kernel-hardening] " Djalal Harouni
2017-04-19 22:20 ` Djalal Harouni
2017-04-19 22:20 ` Djalal Harouni
2017-04-19 22:20 ` [PATCH v3 1/2] modules:capabilities: automatic module loading restriction Djalal Harouni
2017-04-19 22:20   ` [kernel-hardening] " Djalal Harouni
2017-04-19 22:20   ` Djalal Harouni
2017-04-19 22:20   ` Djalal Harouni
2017-04-19 23:16   ` Andy Lutomirski
2017-04-19 23:16     ` [kernel-hardening] " Andy Lutomirski
2017-04-19 23:16     ` Andy Lutomirski
2017-04-19 23:16     ` Andy Lutomirski
2017-04-20  2:22   ` Ben Hutchings [this message]
2017-04-20  2:22     ` [kernel-hardening] " Ben Hutchings
2017-04-20  2:22     ` Ben Hutchings
2017-04-20 12:44     ` [kernel-hardening] " Djalal Harouni
2017-04-20 12:44       ` Djalal Harouni
2017-04-20 12:44       ` Djalal Harouni
2017-04-20 15:02       ` Ben Hutchings
2017-04-20 15:02         ` Ben Hutchings
2017-04-20 15:02         ` Ben Hutchings
2017-04-20 20:39         ` [kernel-hardening] " Djalal Harouni
2017-04-20 20:39           ` Djalal Harouni
2017-04-20 20:39           ` Djalal Harouni
2017-04-20 21:28           ` Kees Cook
2017-04-20 21:28             ` Kees Cook
2017-04-20 21:28             ` Kees Cook
2017-04-20 21:28             ` Kees Cook
2017-04-19 22:20 ` [PATCH v3 2/2] modules:capabilities: add a per-task modules autoload restriction Djalal Harouni
2017-04-19 22:20   ` [kernel-hardening] " Djalal Harouni
2017-04-19 22:20   ` Djalal Harouni
2017-04-19 22:20   ` Djalal Harouni
2017-04-19 22:38   ` Djalal Harouni
2017-04-19 22:38     ` [kernel-hardening] " Djalal Harouni
2017-04-19 22:38     ` Djalal Harouni
2017-04-19 22:38     ` Djalal Harouni
2017-04-19 23:15   ` Andy Lutomirski
2017-04-19 23:15     ` [kernel-hardening] " Andy Lutomirski
2017-04-19 23:15     ` Andy Lutomirski
2017-04-19 23:15     ` Andy Lutomirski
2017-04-19 23:43     ` Kees Cook
2017-04-19 23:43       ` [kernel-hardening] " Kees Cook
2017-04-19 23:43       ` Kees Cook
2017-04-19 23:43       ` Kees Cook
2017-04-20  2:41       ` Andy Lutomirski
2017-04-20  2:41         ` [kernel-hardening] " Andy Lutomirski
2017-04-20  2:41         ` Andy Lutomirski
2017-04-20  2:41         ` Andy Lutomirski
2017-04-21 23:19         ` Kees Cook
2017-04-21 23:19           ` [kernel-hardening] " Kees Cook
2017-04-21 23:19           ` Kees Cook
2017-04-21 23:19           ` Kees Cook
2017-04-21 23:28           ` Andy Lutomirski
2017-04-21 23:28             ` [kernel-hardening] " Andy Lutomirski
2017-04-21 23:28             ` Andy Lutomirski
2017-04-21 23:28             ` Andy Lutomirski
2017-04-21 23:40             ` Kees Cook
2017-04-21 23:40               ` [kernel-hardening] " Kees Cook
2017-04-21 23:40               ` Kees Cook
2017-04-21 23:40               ` Kees Cook
2017-04-21 23:51               ` Andy Lutomirski
2017-04-21 23:51                 ` [kernel-hardening] " Andy Lutomirski
2017-04-21 23:51                 ` Andy Lutomirski
2017-04-21 23:51                 ` Andy Lutomirski
2017-04-22  0:12                 ` Djalal Harouni
2017-04-22  0:12                   ` [kernel-hardening] " Djalal Harouni
2017-04-22  0:12                   ` Djalal Harouni
2017-04-22  0:12                   ` Djalal Harouni
2017-04-22  1:19                   ` Djalal Harouni
2017-04-22  1:19                     ` [kernel-hardening] " Djalal Harouni
2017-04-22  1:19                     ` Djalal Harouni
2017-04-22  1:19                     ` Djalal Harouni
2017-04-22  6:51                   ` Andy Lutomirski
2017-04-22  6:51                     ` [kernel-hardening] " Andy Lutomirski
2017-04-22  6:51                     ` Andy Lutomirski
2017-04-22  6:51                     ` Andy Lutomirski
2017-04-22 19:29                     ` Kees Cook
2017-04-22 19:29                       ` [kernel-hardening] " Kees Cook
2017-04-22 19:29                       ` Kees Cook
2017-04-22 19:29                       ` Kees Cook
2017-04-24 14:25                       ` Djalal Harouni
2017-04-24 14:25                         ` [kernel-hardening] " Djalal Harouni
2017-04-24 14:25                         ` Djalal Harouni
2017-04-24 14:25                         ` Djalal Harouni
2017-04-24 18:02                         ` Kees Cook
2017-04-24 18:02                           ` [kernel-hardening] " Kees Cook
2017-04-24 18:02                           ` Kees Cook
2017-04-24 18:02                           ` Kees Cook
2017-04-24 18:35                           ` Djalal Harouni
2017-04-24 18:35                             ` [kernel-hardening] " Djalal Harouni
2017-04-24 18:35                             ` Djalal Harouni
2017-04-24 18:35                             ` Djalal Harouni
2017-04-21 23:52             ` Casey Schaufler
2017-04-21 23:52               ` [kernel-hardening] " Casey Schaufler
2017-04-21 23:52               ` Casey Schaufler
2017-04-21 23:52               ` Casey Schaufler
2017-04-22  0:00               ` Andy Lutomirski
2017-04-22  0:00                 ` [kernel-hardening] " Andy Lutomirski
2017-04-22  0:00                 ` Andy Lutomirski
2017-04-22  0:00                 ` Andy Lutomirski
2017-04-22  0:13                 ` Casey Schaufler
2017-04-22  0:13                   ` [kernel-hardening] " Casey Schaufler
2017-04-22  0:13                   ` Casey Schaufler
2017-04-22  0:13                   ` Casey Schaufler
2017-04-22  6:45                   ` Andy Lutomirski
2017-04-22  6:45                     ` [kernel-hardening] " Andy Lutomirski
2017-04-22  6:45                     ` Andy Lutomirski
2017-04-22  6:45                     ` Andy Lutomirski
2017-04-22 12:17             ` Djalal Harouni
2017-04-22 12:17               ` [kernel-hardening] " Djalal Harouni
2017-04-22 12:17               ` Djalal Harouni
2017-04-22 12:17               ` Djalal Harouni
2017-05-04 13:07               ` Djalal Harouni
2017-05-04 13:07                 ` [kernel-hardening] " Djalal Harouni
2017-05-04 13:07                 ` Djalal Harouni
2017-05-04 13:07                 ` Djalal Harouni
2017-05-04 14:58                 ` Serge E. Hallyn
2017-05-04 14:58                   ` [kernel-hardening] " Serge E. Hallyn
2017-05-04 14:58                   ` Serge E. Hallyn
2017-05-04 14:58                   ` Serge E. Hallyn
2017-05-05 13:06                   ` Djalal Harouni
2017-05-05 13:06                     ` [kernel-hardening] " Djalal Harouni
2017-05-05 13:06                     ` Djalal Harouni
2017-05-05 13:06                     ` Djalal Harouni
2017-05-05 16:18                 ` Andy Lutomirski
2017-05-05 16:18                   ` [kernel-hardening] " Andy Lutomirski
2017-05-05 16:18                   ` Andy Lutomirski
2017-05-05 16:18                   ` Andy Lutomirski
2017-04-20  1:57   ` kbuild test robot
2017-04-20  1:57     ` [kernel-hardening] " kbuild test robot
2017-04-20  1:57     ` kbuild test robot
2017-04-20  1:57     ` kbuild test robot
2017-04-24  4:29   ` Rusty Russell
2017-04-24  4:29     ` [kernel-hardening] " Rusty Russell
2017-04-24  4:29     ` Rusty Russell
2017-04-24  4:29     ` Rusty Russell
2017-04-26  9:06     ` Djalal Harouni
2017-04-26  9:06       ` [kernel-hardening] " Djalal Harouni
2017-04-26  9:06       ` Djalal Harouni
2017-04-27  2:07       ` Rusty Russell
2017-04-27  2:07         ` [kernel-hardening] " Rusty Russell
2017-04-27  2:07         ` Rusty Russell
2017-04-27  2:07         ` Rusty Russell
2017-04-27 13:16         ` Djalal Harouni
2017-04-27 13:16           ` [kernel-hardening] " Djalal Harouni
2017-04-27 13:16           ` Djalal Harouni
2017-04-27 13:16           ` Djalal Harouni

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=1492654942.31767.21.camel@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=acme@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=casey@schaufler-ca.com \
    --cc=corbet@lwn.net \
    --cc=dpark@posteo.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=james.l.morris@oracle.com \
    --cc=jeyu@redhat.com \
    --cc=keescook@chromium.org \
    --cc=kernel-hardening@lists.openwall.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mingo@kernel.org \
    --cc=paul@paul-moore.com \
    --cc=penguin-kernel@I-love.SAKURA.ne.jp \
    --cc=peterz@infradead.org \
    --cc=rusty@rustcorp.com.au \
    --cc=serge@hallyn.com \
    --cc=tixxdz@gmail.com \
    --cc=zendyani@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.