Re: [PATCH security-next v2 26/26] LSM: Add all exclusive LSMs to ordered initialization

From: John Johansen
Date: Thu Sep 20 2018 - 21:39:38 EST


On 09/20/2018 06:10 PM, Casey Schaufler wrote:
> On 9/20/2018 5:45 PM, Kees Cook wrote:
>> On Thu, Sep 20, 2018 at 5:25 PM, Casey Schaufler <casey@xxxxxxxxxxxxxxxx> wrote:
>>> On 9/20/2018 9:23 AM, Kees Cook wrote:
>>>> config LSM_ORDER
>>>> string "Default initialization order of builtin LSMs"
>>>> - default "yama,loadpin,integrity"
>>>> + default "yama,loadpin,integrity,selinux,smack,tomoyo,apparmor"
>>> If I want to compile all the major modules into my kernel and use
>>> AppArmor by default would I use
>>>
>>> default "yama,loadpin,integrity,apparmor,selinux,smack,tomoyo"
>>>
>>> or
>>>
>>> default "yama,loadpin,integrity,apparmor"
>> I was expecting the former, but the latter will have the same result.

t find having the two be equivalent violates expectations. At least
when considering the end goal of full/extreme stacking, its trivially
the same with current major lsms being exclusive

>>
>>> When we have "blob-sharing" how could I compile in tomoyo,
>>> but exclude it without a boot line option?
>> Ooh, yes, this series has no way to do that. Perhaps
>> CONFIG_LSM_DISABLE in the same form as CONFIG_LSM_ORDER? I would
>> totally remove LoadPin's CONFIG for this in favor it.
>
> I would generally prefer an optional CONFIG_LSM_ENABLE to
> CONFIG_LSM_DISABLE, but I understand the logic behind your
> approach. I would be looking for something like
>
+1 on the CONFIG_LSM_ENABLE ove DISABLE

> CONFIG LSM_ENABLE
> string "Default set of enabled LSMs"
> default ""
>
> as opposed to
>
> CONFIG LSM_DISABLE
> string "Default set of disabled LSMs"
> default ""
>
> where an empty string is interpreted as "use 'em all"
> in either case.
>
>>> When we have full stacking, how could I compile in selinux
>>> but exclude it?
>> Yup, same problem. Same suggested solution?
>>
>> Should lsm.enable/disable= also become a comma-separated list, or
>> should I leave it as a multi-instance thing like I have it?
>
> I prefer the multi-instance
> lsm.disable=selinux lsm.disable=yama
> to the list
> lsm.disable=selinux,yama
>
> but at this point I don't really care all that much.
>

the comma separated list however is consistent with what is being
done for default order