linux-security-module.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Casey Schaufler <casey@schaufler-ca.com>
To: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Dmitry Vyukov <dvyukov@google.com>
Cc: Paul Moore <paul@paul-moore.com>,
	Stephen Smalley <sds@tycho.nsa.gov>,
	syzbot <syzbot+21016130b0580a9de3b5@syzkaller.appspotmail.com>,
	tyhicks@canonical.com,
	John Johansen <john.johansen@canonical.com>,
	James Morris <jmorris@namei.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-security-module@vger.kernel.org,
	Serge Hallyn <serge@hallyn.com>,
	syzkaller-bugs <syzkaller-bugs@googlegroups.com>,
	Jeffrey Vander Stoep <jeffv@google.com>,
	SELinux <selinux@tycho.nsa.gov>,
	Russell Coker <russell@coker.com.au>,
	Laurent Bigonville <bigon@debian.org>,
	syzkaller <syzkaller@googlegroups.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH] LSM: Allow syzbot to ignore security= parameter.
Date: Wed, 6 Feb 2019 09:03:06 -0800	[thread overview]
Message-ID: <0d23d1a5-d4af-debf-6b5f-aaaf698daaa8@schaufler-ca.com> (raw)
In-Reply-To: <8f48e1d0-c109-f8a9-ea94-9659b16cae49@i-love.sakura.ne.jp>

On 2/6/2019 2:23 AM, Tetsuo Handa wrote:
> On 2019/02/04 17:07, Dmitry Vyukov wrote:
>> On Fri, Feb 1, 2019 at 2:09 PM Tetsuo Handa
>> <penguin-kernel@i-love.sakura.ne.jp> wrote:
>>> On 2019/02/01 19:50, Dmitry Vyukov wrote:
>>>> On Fri, Feb 1, 2019 at 11:44 AM Tetsuo Handa
>>>> <penguin-kernel@i-love.sakura.ne.jp> wrote:
>>>>> On 2019/02/01 19:09, Dmitry Vyukov wrote:
>>>>>> Thanks for the explanations.
>>>>>>
>>>>>> Here is the change that I've come up with:
>>>>>> https://github.com/google/syzkaller/commit/aa53be276dc84aa8b3825b3416542447ff82b41a
>>>>> You are not going to apply this updated config to upstream kernels now, are you?
>>>>> Removing CONFIG_DEFAULT_SECURITY="apparmor" from configs used by upstream kernels
>>>>> will cause failing to enable AppArmor (unless security=apparmor is specified).
>>>>
>>>> We do use  security=apparmor, see:
>>>> https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-apparmor.cmdline
>>>> https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-selinux.cmdline
>>>> https://github.com/google/syzkaller/blob/master/dashboard/config/upstream-smack.cmdline
>>>>
>>> Oh, security= parameter is explicitly specified on all targets?
>>> Then, we can abuse CONFIG_DEBUG_AID_FOR_SYZBOT option. ;-)
>>>
>>> LSM folks, may we use this patch for linux-next.git ?
>>> CONFIG_DEBUG_AID_FOR_SYZBOT is a linux-next.git-only kernel config option used by syzbot.
>>
>> Then we also need this on syzbot side, right? Otherwise it seems that
>> all instances will default to a single security module.
>> https://github.com/google/syzkaller/commit/ffec3d1894ffd05966b50efa49ca19af76c9ea81
>>
> Right.
>
> But as I update the documentation ( https://tomoyo.osdn.jp/2.6/chapter-3.html.en#3.6 ),
> I came to think that we should ignore security= parameter when lsm= parameter is specified.
>
> Currently, it is possible to enable TOMOYO and only one of SELinux/Smack/AppArmor. Therefore,
> it is possible to disable only TOMOYO by specifying security=selinux when we want to enable
> only SELinux, by specifying security=smack when we want to enable only Smack, by specifying
> security=apparmor when we want to enable only AppArmor. That is, we can use security= parameter
> in order to specify the other LSM module which should not be disabled.
>
> But when it becomes possible to enable TOMOYO and more than one of SELinux/Smack/AppArmor,
> we will no longer be able to selectively disable one LSM module using security= parameter, for
> security= parameter is intended for specifying only one LSM module which should be enabled.
> That is, we will need to use lsm= parameter in order to selectively disable LSM modules.

Yes. That is correct. The existing behavior of security= is maintained.
The new behavior of lsm= is provided to allow general handling of a list
of security modules. It uses the same form of data as CONFIG_LSM.

> Then, I think that it is straightforward (and easier to manage) to ignore security= parameter
> when lsm= parameter is specified.

That reduces flexibility somewhat. If I am debugging security modules
I may want to use lsm= to specify the order while using security= to
identify a specific exclusive module. I could do that using lsm= by
itself, but habits die hard.

> Furthermore, we could even avoid introducing lsm= parameter
> by allowing security= parameter to specify multiple LSM modules.

security=yama would work differently than it does today.
There would be no way to specify an exclusive module but
no minor modules.

If I have Yama and SELinux built in I could never disable Yama.

	security=selinux - would not disable Yama

whereas

	lsm=selinux      - would disable Yama

> For example, security= parameter
> is interpreted as a list of all LSM modules which should be enabled when it contains a comma,
> and it is interpreted as one of LSM_FLAG_LEGACY_MAJOR modules which should be enabled otherwise.
> Then, specifying security=selinux or security=smack or security=tomoyo or security=apparmor or
> security=none will respectively enable SELinux, Smack, TOMOYO, AppArmor, none of
> SELinux/Smack/TOMOYO/AppArmor. And specifying e.g. security=, will disable all LSM modules.

We debated the possibility of making the comma an indication
that we had an explicit list. It comes down to the "trailing
comma" syntax, where "security=selinux" and "security=selinux,"
mean different things. Consensus was that this is too clever,
and everyone would hate it.


  reply	other threads:[~2019-02-06 17:03 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-30  2:17 WARNING in apparmor_secid_to_secctx syzbot
2018-08-30  2:21 ` Dmitry Vyukov
2018-08-31 16:03   ` Stephen Smalley
2018-08-31 16:07     ` Paul Moore
2018-08-31 16:16       ` Stephen Smalley
2018-08-31 16:17         ` Stephen Smalley
2018-08-31 22:38           ` Dmitry Vyukov
2018-09-04 12:57             ` Stephen Smalley
2018-09-04 13:16               ` Russell Coker
2018-09-04 14:53                 ` Dmitry Vyukov
2018-09-05 17:13                   ` Kees Cook
2018-09-04 15:02               ` Dmitry Vyukov
2018-09-04 15:28                 ` Stephen Smalley
2018-09-04 15:38                   ` Dmitry Vyukov
2018-09-04 17:02                     ` Stephen Smalley
2018-09-05  1:21                       ` Paul Moore
2018-09-05 11:08                         ` Dmitry Vyukov
2018-09-05 17:37                           ` Casey Schaufler
2018-09-06 10:59                             ` Dmitry Vyukov
2018-09-06 11:19                               ` Dmitry Vyukov
2018-09-06 19:35                                 ` Dmitry Vyukov
2019-01-29 11:32                               ` Tetsuo Handa
2019-01-30 14:45                                 ` Dmitry Vyukov
2019-01-30 16:30                                   ` Micah Morton
2019-01-31  0:22                                   ` Tetsuo Handa
2019-02-01 10:09                                     ` Dmitry Vyukov
2019-02-01 10:11                                       ` Dmitry Vyukov
2019-02-01 10:43                                       ` Tetsuo Handa
2019-02-01 10:50                                         ` Dmitry Vyukov
2019-02-01 13:09                                           ` [PATCH] LSM: Allow syzbot to ignore security= parameter Tetsuo Handa
2019-02-04  8:07                                             ` Dmitry Vyukov
2019-02-06 10:23                                               ` Tetsuo Handa
2019-02-06 17:03                                                 ` Casey Schaufler [this message]
2019-02-07  2:30                                                   ` Tetsuo Handa
2019-02-07 16:24                                                     ` Casey Schaufler
2019-02-08 10:52                                                       ` Tetsuo Handa
2019-02-08 16:23                                                         ` Casey Schaufler
2019-02-09  0:28                                                           ` Tetsuo Handa
2019-02-09  1:40                                                             ` Tetsuo Handa
2019-02-08 21:49                                                         ` Kees Cook
2019-02-08 21:33                                                       ` Kees Cook
2018-08-30  3:43 ` WARNING in apparmor_secid_to_secctx syzbot
2018-09-01  9:18 ` John Johansen
2018-09-02  4:33   ` Dmitry Vyukov
2018-09-02  4:52     ` John Johansen
2018-09-02  5:03       ` Dmitry Vyukov
2018-09-02  5:03         ` syzbot
2018-09-02  5:05           ` Dmitry Vyukov
2018-09-02  5:46             ` syzbot

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=0d23d1a5-d4af-debf-6b5f-aaaf698daaa8@schaufler-ca.com \
    --to=casey@schaufler-ca.com \
    --cc=akpm@linux-foundation.org \
    --cc=bigon@debian.org \
    --cc=dvyukov@google.com \
    --cc=jeffv@google.com \
    --cc=jmorris@namei.org \
    --cc=john.johansen@canonical.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=paul@paul-moore.com \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=russell@coker.com.au \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@tycho.nsa.gov \
    --cc=serge@hallyn.com \
    --cc=syzbot+21016130b0580a9de3b5@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.com \
    --cc=syzkaller@googlegroups.com \
    --cc=tyhicks@canonical.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;
as well as URLs for NNTP newsgroup(s).