[PATCH] lsm: drop LSM_ID_IMA

Casey Schaufler casey at schaufler-ca.com
Mon Oct 23 15:48:13 UTC 2023


On 10/23/2023 8:20 AM, Roberto Sassu wrote:
> On 10/20/2023 11:56 PM, Casey Schaufler wrote:
>> On 10/19/2023 1:08 AM, Roberto Sassu wrote:
>>> On Wed, 2023-10-18 at 17:50 -0400, Paul Moore wrote:
>>>> When IMA becomes a proper LSM we will reintroduce an appropriate
>>>> LSM ID, but drop it from the userspace API for now in an effort
>>>> to put an end to debates around the naming of the LSM ID macro.
>>>>
>>>> Signed-off-by: Paul Moore <paul at paul-moore.com>
>>> Reviewed-by: Roberto Sassu <roberto.sassu at huawei.com>
>>>
>>> This makes sense according to the new goal of making 'ima' and 'evm' as
>>> standalone LSMs.
>>>
>>> Otherwise, if we took existing LSMs, we should have defined
>>> LSM_ID_INTEGRITY, associated to DEFINE_LSM(integrity).
>>>
>>> If we proceed with the new direction, I will add the new LSM IDs as
>>> soon as IMA and EVM become LSMs.
>>
>> This seems right to me. Thank You.
>
> Perfect! Is it fine to assign an LSM ID to 'ima' and 'evm' and keep
> the 'integrity' LSM to reserve space in the security blob without LSM
> ID (as long as it does not register any hook)?

That will work, although it makes me wonder if all the data in the 'integrity' blob
is used by both IMA and EVM. If these are going to be separate LSMs they should probably
have their own security blobs. If there is data in common then an 'integrity' blob can
still makes sense.

>
> Thanks
>
> Roberto
>
>>> Roberto
>>>
>>>> ---
>>>>   include/uapi/linux/lsm.h | 15 +++++++--------
>>>>   1 file changed, 7 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/include/uapi/linux/lsm.h b/include/uapi/linux/lsm.h
>>>> index eeda59a77c02..f0386880a78e 100644
>>>> --- a/include/uapi/linux/lsm.h
>>>> +++ b/include/uapi/linux/lsm.h
>>>> @@ -54,14 +54,13 @@ struct lsm_ctx {
>>>>   #define LSM_ID_SELINUX        101
>>>>   #define LSM_ID_SMACK        102
>>>>   #define LSM_ID_TOMOYO        103
>>>> -#define LSM_ID_IMA        104
>>>> -#define LSM_ID_APPARMOR        105
>>>> -#define LSM_ID_YAMA        106
>>>> -#define LSM_ID_LOADPIN        107
>>>> -#define LSM_ID_SAFESETID    108
>>>> -#define LSM_ID_LOCKDOWN        109
>>>> -#define LSM_ID_BPF        110
>>>> -#define LSM_ID_LANDLOCK        111
>>>> +#define LSM_ID_APPARMOR        104
>>>> +#define LSM_ID_YAMA        105
>>>> +#define LSM_ID_LOADPIN        106
>>>> +#define LSM_ID_SAFESETID    107
>>>> +#define LSM_ID_LOCKDOWN        108
>>>> +#define LSM_ID_BPF        109
>>>> +#define LSM_ID_LANDLOCK        110
>>>>     /*
>>>>    * LSM_ATTR_XXX definitions identify different LSM attributes
>



More information about the Linux-security-module-archive mailing list