Re: [PATCH] disallow modular capabilities

From: David Meybohm
Date: Sun Jan 02 2005 - 19:28:51 EST


On Mon, Jan 03, 2005 at 12:30:39AM +0100, Andi Kleen wrote:
>
> A kernel module is by definition a security hole. It can do everything,
> including setting the uids of all processes to 0.

Yes, but allowing the administrator to easily unintentionally create
security holes in loading a security module defeats the whole purpose of
having modular security.

> > the new security module that is being loaded has no idea what state all
> > processes are in when the module gets loaded?
>
> This can still be fine if you don't care about the security of
> everything that runs before (e.g. because it is controlled early
> startup code). If you care about their security don't do it when
> it hurts.

But this also means every security module has to handle the case of
being loaded after this time in the boot process interactively by
administrators. That's very complex and race-prone.

> > What do you think about only allowing init to load LSM modules i.e.
> > check in {mod,}register_security that current->pid == 1.
>
> I think it's a bad idea. Such policy should be left to user space.

Well, by excluding some policy you have to put more code in the kernel
in the LSM modules to handle being loaded at any time. So, I don't
think the dogma of "no policy in the kernel" is a good one to follow
here: it ignores the problem and creates new ones.

Dave
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/