tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kernel module loading vs securelevel



On Oct 16, 2010, at 4:49 57PM, John Nemeth wrote:

> On Mar 8,  9:44am, Thor Lancelot Simon wrote:
> } On Sun, Oct 17, 2010 at 03:51:52AM +0900, Izumi Tsutsui wrote:
> } > 
> } > I'm just asking if "options INSECURE is mandaory to use autoloading,"
> } > not module/autoloading is secure/silly/boo or not.
> } 
> } No.  As far as I can tell, there's a bug in the relevant kauth listener,
> } at least in terms of the original intent of the author of the autoloading
> } code; the system scope kauth listener should return DEFER, not DENY.
> 
>     module_listener_cb() was added to kern_module.c in revision 1.51
> by elad.  The kauth_authorize_system() calls were added to
> kern_module.c by ad, but the respective commit log messages doesn't say
> anything about them, so the original intent of the author of the
> autoloading code (ad) is unclear.
> 
> } However, I think it's a troublesome question whether this is really
> } the right policy to apply.  Unless the directory from which modules are
> } loaded is required to be immutable (flags schg) at boot time, this really
> } does introduce a major security regression: now it is possible to override
> } the whole security policy by placing a new kernel module in the existing
> } directory, when the system is running at securelevel > 0.
> } 
> } I really only see two ways to keep the convenient behavior you and I both
> } seem to want (autoload of modules when filesystems, syscalls, etc. are
> } used) and the safe behavior I and others building (for example) embedded
> } systems with tight security policies want: either we need to rely on
> } the existing securelevel machinery and require that the directory from
> } which autoload occurs is immutable at kernel boot time (elsewise disabling
> } autoload), or we need to use something like veriexec, when we're still at
> } securelevel < 0, to ensure that the modules placed there don't change in
> } any way.
> 
>     I would have to agree.  Having modules loaded at securelevel > 0
> when you can't be absolutely sure of what's in them, completely defeats
> the purpose of running at securelevel > 0.
> 
Strong agreement.

The issue with modules is that they permit user-level operations to change a 
running kernel.  That's true if if a "trusted" directory is used.

I have a friend who runs some server complexes using FreeBSD.  He doesn't 
include bpf in his kernels, to fend off wiretapping attackers.  Sure, they 
could install a custom kernel, but reboots are externally noticeable events.


                --Steve Bellovin, http://www.cs.columbia.edu/~smb







Home | Main Index | Thread Index | Old Index