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

From: Casey Schaufler
Date: Thu Sep 20 2018 - 21:10:19 EST


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.
>
>> 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

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.