Re: [PATCH 08/28] SECURITY: Allow kernel services to override LSM settings for task actions [try #2]

From: Casey Schaufler
Date: Mon Jan 14 2008 - 09:52:21 EST



--- David Howells <dhowells@xxxxxxxxxx> wrote:

>
> Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
>
> > > avc_has_perm(daemon_tsec->sid, nominated_sid,
> > > SECCLASS_CACHE, CACHE__USE_AS_OVERRIDE, NULL);
> > >
> > > And I assume this doesn't care if one, the other or both of the two SIDs
> > > mentioned are of SECCLASS_PROCESS rather than of SECCLASS_CACHE.
> >
> > Right, the latter is reasonable.
>
> Okay... It looks like I want four security operations/hooks for cachefiles:
>
> (1) Check that a daemon can nominate a secid for use by the kernel to
> override
> the process subjective secid.
>
> (2) Set the secid mentioned in (1).
>
> (3) Check that the kernel may create files as a particular secid (this could
> be specified indirectly by specifying an inode, which would hide the
> secid
> inside the LSM).
>
> (4) Set the fscreate secid mentioned in (3).
>
> Now, it's possible to condense (1) and (2) into a single op,

Yes, and I would recommend doing so to avoid permission races.
You're going to have to deal with the case where step (2) fails
even if you have step (1), so the "test and set" mindset seems
prudent to me.

> and condense (3) and (4) into a single op. That, however, might make
> the ops unusable by nfsd,
> which may well want to bypass the checks or do them elsewhere.

Again, I don't think you're doing yourself any favors with a separate
test operation.

On (4) are you suggesting a third attribute value? There's the secid
of the task originally, the secid you're going to use to do the access
checks, and the secid you're going to set the file to on creation.

> Any thoughts?

Let me see if I understand your current scheme.

You want a (object) secid that is used to access the task.
You want a (subject) secid that the task uses to accesses objects.
You want a (newobject) secid that an object gets on creation.
And you want them all to be distinct and settable.
Did I get that right?

Thank you.


Casey Schaufler
casey@xxxxxxxxxxxxxxxx
--
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/