LSM stacking in next for 6.1?

Casey Schaufler casey at schaufler-ca.com
Thu Sep 8 16:00:42 UTC 2022


On 9/8/2022 8:18 AM, Tetsuo Handa wrote:
> On 2022/08/03 9:01, Casey Schaufler wrote:
>> I would like very much to get v38 or v39 of the LSM stacking for Apparmor
>> patch set in the LSM next branch for 6.1. The audit changes have polished
>> up nicely and I believe that all comments on the integrity code have been
>> addressed. The interface_lsm mechanism has been beaten to a frothy peak.
>> There are serious binder changes, but I think they address issues beyond
>> the needs of stacking. Changes outside these areas are pretty well limited
>> to LSM interface improvements.
>>
> After ((SELinux xor Smack) and AppArmor) is made possible in next for 6.1, what
> comes next? Are you planning to make (SELinux and Smack and AppArmor) possible?

The stacking isn't going into 6.1. Paul's decision that LSM system calls are
a requirement will require additional work. With LSS-EU next week and a long
overdue trip on my part in early October I don't see 6.2 as at all likely, either.

The commitment I made to Paul some years ago now was that the stacking would
eventually include making all combinations possible. That is still my plan.
The issues beyond ((SELinux xor Smack) and AppArmor) are primarily network
related. Secmarks, netlabel and SO_PEERSEC in particular. I have posted
preliminary patches in the past, but they need to be revisited in light of
development that has occurred since then.

On the other hand, I'm getting the "when are you going to retire?" question
way way way too regularly these days. While I intend to complete the work as
promised, I don't expect to be working on much with significant importance
come 2030.

> My concern is, when loadable LSM modules becomes legal, for I'm refraining from
> again proposing CaitSith until LSM stacking completes.

I would not wait. There is no reason the efforts cannot progress in parallel.

> Linus Torvalds said
>
>   You security people are insane. I'm tired of this "only my version is correct" crap.

My favorite Linus quote of all time. I try to include it in every presentation I give.

> at https://lkml.kernel.org/r/alpine.LFD.0.999.0710010803280.3579@woody.linux-foundation.org .
>
> Many modules
>
>     SimpleFlow ( 2016/04/21 https://lwn.net/Articles/684825/>     HardChroot ( 2016/07/29 https://lwn.net/Articles/695984/>     Checmate ( 2016/08/04 https://lwn.net/Articles/696344/>     LandLock ( 2016/08/25 https://lwn.net/Articles/698226/>     PTAGS ( 2016/09/29 https://lwn.net/Articles/702639/>     CaitSith ( 2016/10/21 https://lwn.net/Articles/704262/>     SafeName ( 2016/05/03 https://lwn.net/Articles/686021/>     WhiteEgret ( 2017/05/30 https://lwn.net/Articles/724192/>     shebang ( 2017/06/09 https://lwn.net/Articles/725285/>     S.A.R.A. ( 2017/06/13 https://lwn.net/Articles/725230/>
> are proposed 5 or 6 years ago, but mostly became silent...

Yes. Unless a major distributor (Redhat, Canonical, ...) decides to
include it the upstream potential of an LSM is very limited.

> I still need byte-code analysis for finding the hook and code for making the hook
> writable in AKARI/CaitSith due to lack of EXPORT_SYMBOL_GPL(security_add_hooks).
> I wonder when I can stop questions like https://osdn.net/projects/tomoyo/lists/archive/users-en/2022-September/000740.html
> caused by https://patchwork.kernel.org/project/linux-security-module/patch/alpine.LRH.2.20.1702131631490.8914@namei.org/ .

The BPF people made noises about revamping the way LSM hooks get called
for performance reasons, but I have not seen a proposal from them. I have
assumed that they will get around to it eventually.

> Last 10 years, my involvement with Linux kernel is "fixing bugs" rather than
> "developing security mechanisms". Changes what I found in the past 10 years are:
>
>   As far as I'm aware, more than 99% of systems still disable SELinux. People use RHEL,
>   but the reason to choose RHEL is not because RHEL supports SELinux. The only thing
>   changed is that the way to disable SELinux changed from SELINUX=disabled in
>   /etc/selinux/config to selinux=0 on kernel command line options.



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