Re: [PATCH 5/9] Make use of permissions, returned by kobj_lookup

Serge E. Hallyn
2008-03-12T14:18:56Z

Quoting Stephen Smalley (sds@tycho.nsa.gov):
>
> On Wed, 2008-03-12 at 09:18 -0400, Stephen Smalley wrote:
> > On Wed, 2008-03-12 at 08:09 -0500, Serge E. Hallyn wrote:
> > > Quoting Pavel Emelyanov (xemul@openvz.org):
> > > > Greg KH wrote:
> > > > > On Tue, Mar 11, 2008 at 12:57:55PM +0300, Pavel Emelyanov wrote:
> > > > >> Besides, I've measured some things - the lat_syscall test for open from
> > > > >> lmbench test suite and the nptl perf test. Here are the results:
> > > > >>
> > > > >> sec nosec
> > > > >> open 3.0980s 3.0709s
> > > > >> nptl 2.7746s 2.7710s
> > > > >>
> > > > >> So we have 0.88% loss in open and ~0.15% with nptl. I know, this is not that
> > > > >> much, but it is noticeable. Besides, this is only two tests, digging deeper
> > > > >> may reveal more.
> > > > >
> > > > > I think that is in the noise of sampling if you run that test many more
> > > > > times.
> > > >
> > > > These numbers are average values of 20 runs of each test. I didn't
> > > > provide the measurement accuracy, but the abs(open.sec - open.nosec)
> > > > is greater than it.
> > > >
> > > > >> Let alone the fact that simply turning the CONFIG_SECURITY to 'y' puts +8Kb
> > > > >> to the vmlinux...
> > > > >>
> > > > >> I think, I finally agree with you and Al Viro, that the kobj mapper is
> > > > >> not the right place to put the filtering, but taking the above numbers
> > > > >> into account, can we put the "hooks" into the #else /* CONFIG_SECURITY */
> > > > >> versions of security_inode_permission/security_file_permission/etc?
> > > > >
> > > > > Ask the security module interface maintainers about this, not me :)
> > > >
> > > > OK :) Thanks for your time, Greg.
> > > >
> > > > So, Serge, since you already have a LSM-based version, maybe you can
> > > > change it with the proposed "fix" and send it to LSM maintainers for
> > > > review?
> > >
> > > To take the point of view of someone who neither wants containers nor
> > > LSM but just a fast box,
> > >
> > > you're asking me to introduce LSM hooks for the !SECURITY case? :)
> > >
> > > I can give it a shot, but I expect some complaints. Now at least the
> > > _mknod hook shouldn't be a hotpath, and I suppose I can add yet
> > > an #ifdef inside the !SECURITY version of security_inode_permission().
> > > I still expect some complaints though. I'll send something soon.
> >
> > Not sure I'm following the plot here, but please don't do anything that
> > will prohibit the use of containers/namespaces with security modules
> > like SELinux/Smack. Yes, that's a legitimate use case, and there will
> > be people who will want to do that - they serve different but
> > complementary purposes (containers are _not_ a substitute for MAC). We
> > don't want them to be exclusive of one another.
>
> Also, note that "real" device labeling and access control (i.e. bind a
> label to a device in the kernel irrespective of what device node is used
> to access it so that a process that can create any device nodes at all
> can't effectively bypass all device access controls just by creating an
> arbitrary node to any device in a type accessible to it) is already
> called out on our kernel todo list for SELinux, and contributions there
> would be welcome.

I'll take a look at the todo list (James' I assume). The dev_cgroup lsm
will have to come first, I'll see about doing the SELinux version as
well.

thanks,
-serge