Re: [PATCH] LSM: Convert security_hook_heads into explicit array of struct list_head

From: James Morris
Date: Tue May 30 2017 - 19:07:13 EST


On Tue, 30 May 2017, Alan Cox wrote:

> On Tue, 30 May 2017 23:29:10 +0900
> Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote:
>
> > James Morris wrote:
> > > On Sun, 28 May 2017, Tetsuo Handa wrote:
> > >
> > > > can afford enabling". And we know that we cannot merge all security modules
> > > > into mainline. Thus, allowing LKM-based LSM modules is inevitable.
> > >
> > > Nope, it's not inevitable. The LSM API only caters to in-tree users.
> > >
> > > I'm not sure why you persist against this.
> >
> > Then, we are willing to accept LSM modules with users less than 10, aren't we?
>
> Why not if they are properly written and maintained. Historically we've
> supported an entire architecture that had one machine ever built. We
> supported a strange subclass of x86 machines for many years because James
> Bottomley cared enough to do the work. We still support M68K, PA-RISC and
> other stuff as well as plenty of hardware which probably has few users -
> providing it doesn't cause maintenance problems.

This is what we as a community came up with in 2008:

"Essentially, any new security projectânot limited to LSMsâshould be
accompanied by a clear and concise document outlining its requirements
and expected uses. This is to allow both security and regular folk to
perform review of the code in terms of how it meets the specified
requirements, and to avoid getting bogged down in unresolvable
discussions about the projectâs security model."

>From https://blog.namei.org/2008/12/11/the-arjan-protocol/

(Not sure if the original document at Kernel Trap still exists, alas).

So what we need is clear design documentation that the code can be
reviewed against. There is nothing about the number of users. If the
code is simply using the existing API and meets its design goals, it's
pretty straightforward. If changes to the API or core kernel are also
required, then more discussion and review will be needed.




- James
--
James Morris
<jmorris@xxxxxxxxx>