[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1197401823.28006.74.camel@moss-spartans.epoch.ncsc.mil>
Date: Tue, 11 Dec 2007 14:37:03 -0500
From: Stephen Smalley <sds@...ho.nsa.gov>
To: David Howells <dhowells@...hat.com>
Cc: Karl MacMillan <kmacmill@...hat.com>, viro@....linux.org.uk,
hch@...radead.org, Trond.Myklebust@...app.com,
casey@...aufler-ca.com, linux-kernel@...r.kernel.org,
selinux@...ho.nsa.gov, linux-security-module@...r.kernel.org
Subject: Re: [PATCH 08/28] SECURITY: Allow kernel services to override LSM
settings for task actions [try #2]
On Mon, 2007-12-10 at 23:36 +0000, David Howells wrote:
> Stephen Smalley <sds@...ho.nsa.gov> wrote:
>
> > From a config file whose pathname would be provided by libselinux (ala
> > the way in which dbusd imports contexts), or directly as a context
> > returned by a libselinux function.
>
> That sounds too SELinux specific. How do I do it so that it works for any
> LSM?
You can't. There is no LSM for userspace; LSM specifically disavowed
any common userspace API, and that was one of our original
objections/concerns about it.
> Is linking against libselinux is a viable option if it's not available under
> all LSM models? Is it available under all LSM models? Perhaps Casey can
> answer this one.
Nope, they would all have their own libraries, if they have a library at
all. But that isn't your problem - your kernel interface should be
generic, and your LSM hooks should be generic, but your userspace isn't
required to be. Have a look at how many programs in the distribution
currently link against libselinux, whether directly or by dlopen'ing it.
> > > I use to do that, but someone objected... Possibly Karl MacMillan.
> >
> > Yes, but I think I disagreed then too.
>
> So, who's right?
Karl isn't a maintainer of the SELinux kernel code. And I had thought
that even he had reconsidered this idea after further discussion.
> > It doesn't fit with how other users of security_kernel_act_as() will
> > likely want to work (they will want to just set the context to a
> > specified value, whether one obtained from the client or from some local
> > source), nor with how type transitions normally work (exec, with the
> > program type as the second type field). I think it will just cause
> > confusion and subtle breakage.
>
> It's causing me lots of confusion as it is. I have been / am being told by
> different people to do different things just in dealing with SELinux, and
> various people are raising extra requirements or restrictions beyond that.
> There doesn't seem to be a consensus.
>
> It sounds like the best option is just to have the kernel nick the userspace
> daemon's security context and use that as is, and junk all the restrictions on
> what the daemon can do so that the kernel isn't too restricted.
Well, you could do that, if that meets your needs, but it doesn't sound
very optimal either. Why are you opposed to having userspace determine
the context and write it to a cachefiles interface, and just have the
kernel authorize it (invoke a hook to check permissions between the
daemon's context and the specified label), and make it the acting
context when appropriate (invoke a different hook to set it as the
acting context)?
--
Stephen Smalley
National Security Agency
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists