From: Pavel Emelyanov <xemul@openvz.org>
To: Greg KH <greg@kroah.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, menage@google.com,
sukadev@us.ibm.com, serue@us.ibm.com,
Al Viro <viro@zeniv.linux.org.uk>
Subject: Re: [PATCH 5/9] Make use of permissions, returned by kobj_lookup
Date: Tue, 11 Mar 2008 12:57:55 +0300 [thread overview]
Message-ID: <47D657A3.5080801@openvz.org> (raw)
In-Reply-To: <20080307170104.GA24746@kroah.com>
[snip]
>> I have basically three objections against LSM.
>>
>> 1. LSM is not stackable, so loading this tiny module with devices
>> access rights will block other security modules;
>
> Do you really want to run other LSMs within a containerd kernel? Is
> that a requirement? It would seem to run counter to the main goal of
> containers to me.
_I_ do not want to run LSM with containers, but this was a requirement
from some people when we decided which approach to chose - LSM of mine.
Nevertheless, this is not very important, indeed.
>> 2. Turning CONFIG_SECURITY on immediately causes all the other hooks
>> to get called. This affects performance on critical paths, like
>> process creation/destruction, network flow and so on. This impact
>> is small, but noticeable;
>
> The last time this was brought up, it was not noticable, except for some
> network paths. And even then, the number was lost in the noise from
> what I saw. I think with a containered machine, you have bigger things
> to be worried about :)
The namespace-based virtualization implies no performance overhead for
a container, actually. This is not xen or vmware where performance
loss is OK.
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.
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?
>> 3. With LSM turned on we'll have to "virtualize" it, i.e. make its
>> work safe in a container. I don't presume to judge how much work
>> will have to be done in this area, so the result patch would be
>> even larger and maybe will duplicate functionality, which is currently
>> in cgroups. OTOH, cgroups already provide the ways to correctly
>> delegate proper rights to containers.
>
> No, your lsm would be your "virtualize" policy. I don't think you would
> have to do any additional work here, but could be wrong. Would like to
> see the code to prove it.
>
>>> Opening a dev node is not on any "fast path" that you need to be
>>> concerned about a few extra calls within the kernel.
>>>
>>> And, I think in the end your patch would be much smaller and easier to
>>> understand and review and maintain overall.
>> Hardly - the largest part of my patch is cgroup manipulations. The part
>> that makes the char and block layers switch to new map ac check the
>> permissions is 10-20 lines of new code.
>>
>> But with LSM I will still need this API.
>
> Yes, but your LSM hooks will be smaller than the code modifications to
> the map logic :)
>
> Again, I object to this as you are driving a new security policy
> infrastructure into the device node logic where it does not belong as we
> already have this functionality in the LSM interface today. Please use
> that one instead and don't clutter up the kernel with "one-off" security
> changes like this one.
>
> Please try the LSM interface and see what happens. If, after you have
> created a patch, you still have objections, please post it for review
> and I will be glad to revisit my opinion at that time.
>
> thanks,
>
> greg k-h
>
next prev parent reply other threads:[~2008-03-11 10:19 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-05 17:23 [PATCH 0/9] Devices accessibility control group (v4) Pavel Emelyanov
2008-03-05 17:25 ` [PATCH 1/9] Avoid magic constants in drivers/base/map.c Pavel Emelyanov
2008-03-05 17:28 ` [PATCH 2/9] Cleanup the get_gendisk() a bit Pavel Emelyanov
2008-03-05 17:32 ` [PATCH 3/9] Add a mode on the struct probe Pavel Emelyanov
2008-03-05 17:34 ` [PATCH 4/9] Make kobj_lookup() return the mapping's permissions Pavel Emelyanov
2008-03-05 17:37 ` [PATCH 5/9] Make use of permissions, returned by kobj_lookup Pavel Emelyanov
2008-03-06 1:13 ` Andrew Morton
2008-03-06 8:48 ` Pavel Emelyanov
2008-03-07 9:22 ` Pavel Emelyanov
2008-03-07 9:35 ` Andrew Morton
2008-03-07 9:52 ` Pavel Emelyanov
2008-03-07 15:59 ` Greg KH
2008-03-07 16:38 ` Pavel Emelyanov
2008-03-07 17:01 ` Greg KH
2008-03-07 17:08 ` Al Viro
2008-03-07 17:35 ` Serge E. Hallyn
2008-03-07 17:57 ` Casey Schaufler
2008-03-07 18:30 ` Serge E. Hallyn
2008-03-07 19:46 ` Stephen Smalley
2008-03-07 20:57 ` Casey Schaufler
2008-03-07 21:32 ` Serge E. Hallyn
2008-03-07 18:14 ` Greg KH
2008-03-07 18:50 ` Serge E. Hallyn
2008-03-08 6:04 ` Greg KH
2008-03-08 21:47 ` Serge E. Hallyn
2008-03-09 3:15 ` Greg KH
2008-03-10 20:35 ` Serge E. Hallyn
2008-03-11 9:57 ` Pavel Emelyanov [this message]
2008-03-11 17:36 ` Greg KH
2008-03-12 8:26 ` Pavel Emelyanov
2008-03-12 13:09 ` Serge E. Hallyn
2008-03-12 13:18 ` Stephen Smalley
2008-03-12 13:27 ` Stephen Smalley
2008-03-12 14:18 ` Serge E. Hallyn
2008-03-12 14:15 ` Serge E. Hallyn
2008-03-12 16:21 ` Casey Schaufler
2008-03-12 13:36 ` Pavel Emelyanov
2008-03-05 17:40 ` [PATCH 6/9] Extend the drivers/base/map.c functionality Pavel Emelyanov
2008-03-05 17:43 ` [PATCH 7/9] Provide functions to manipulate char device mappings Pavel Emelyanov
2008-03-05 17:46 ` [PATCH 8/9] Provide functions to manipulate block " Pavel Emelyanov
2008-03-05 17:47 ` [PATCH 9/9] Devices accessibility control group itself Pavel Emelyanov
2008-03-06 2:02 ` Greg KH
2008-03-06 1:55 ` [PATCH 0/9] Devices accessibility control group (v4) Greg KH
2008-03-06 3:15 ` Serge E. Hallyn
2008-03-06 4:34 ` Greg KH
2008-03-06 8:36 ` Pavel Emelyanov
2008-03-07 4:58 ` Greg KH
2008-03-07 8:42 ` Pavel Machek
2008-03-07 8:54 ` Pavel Emelyanov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47D657A3.5080801@openvz.org \
--to=xemul@openvz.org \
--cc=akpm@linux-foundation.org \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=serue@us.ibm.com \
--cc=sukadev@us.ibm.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox