-----Original Message-----My concern is that the base of namespacing the measurement lists is on the
From: Mimi Zohar [mailto:zohar@xxxxxxxxxxxxxxxxxx]
Sent: quinta-feira, 27 de julho de 2017 11:39
To: Magalhaes, Guilherme (Brazil R&D-CL)
<guilherme.magalhaes@xxxxxxx>; Serge E. Hallyn <serge@xxxxxxxxxx>
Cc: Mehmet Kayaalp <mkayaalp@xxxxxxxxxxxxxxxxx>; Yuqiong Sun
<sunyuqiong1988@xxxxxxxxx>; containers <containers@xxxxxxxxxxxx
foundation.org>; linux-kernel <linux-kernel@xxxxxxxxxxxxxxx>; David Safford
<david.safford@xxxxxx>; James Bottomley
<James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>; linux-security-module <linux-
security-module@xxxxxxxxxxxxxxx>; ima-devel <linux-ima-
devel@xxxxxxxxxxxxxxxxxxxxx>; Yuqiong Sun <suny@xxxxxxxxxx>
Subject: Re: [Linux-ima-devel] [RFC PATCH 1/5] ima: extend clone() with IMA
namespace support
On Thu, 2017-07-27 at 12:51 +0000, Magalhaes, Guilherme (Brazil R&D-
CL) wrote:
wrote:
On Tue, 2017-07-25 at 16:08 -0500, Serge E. Hallyn wrote:
On Tue, Jul 25, 2017 at 04:57:57PM -0400, Mimi Zohar wrote:
On Tue, 2017-07-25 at 15:46 -0500, Serge E. Hallyn wrote:
On Tue, Jul 25, 2017 at 04:11:29PM -0400, Stefan Berger wrote:
On 07/25/2017 03:48 PM, Mimi Zohar wrote:
On Tue, 2017-07-25 at 12:08 -0700, James Bottomley wrote:
On Tue, 2017-07-25 at 14:04 -0500, Serge E. Hallyn wrote:
On Tue, Jul 25, 2017 at 11:49:14AM -0700, James Bottomley
awrote:On Tue, 2017-07-25 at 12:53 -0500, Serge E. Hallyn wrote:
On Thu, Jul 20, 2017 at 06:50:29PM -0400, Mehmet Kayaalp
From: Yuqiong Sun <suny@xxxxxxxxxx>
Add new CONFIG_IMA_NS config option. Let clone() create
ima_nsnew IMA namespace upon CLONE_NEWNS flag. Add
flagdata
different aspects of IMA (eg.structure in nsproxy. ima_ns is allocated and freed upon
IMA namespace creation and exit. Currently, the ima_ns
contains no useful IMA data but only a dummy interface.
This patch creates the framework for namespacing the
IMA-audit, IMA-measurement, IMA-appraisal).
Signed-off-by: Yuqiong Sun <suny@xxxxxxxxxx>
Changelog:
* Use CLONE_NEWNS instead of a new CLONE_NEWIMA
aHi,
So this means that every mount namespace clone will clone
getsmall)?new IMA namespace. Is that really ok?Based on what: space concerns (struct ima_ns is reasonably
I could go with that, but what about the trigger beingor whether tying it to the mount namespace is the correctMostly the latter. The other would be not so much space
thing to do. On
concerns as time concerns. Many things use new mounts
namespaces, and we wouldn't want multiple IMA calls on all
file accesses by all of those.
the latter, it does seem that this should be a property ofI wonder whether we could use echo 1 >
either the mount or user ns rather than its own separate ns.
I could see a use where even a container might want multiple
ima keyrings within the container (say containerised apache
service with multiple tenants), so instinct tells me that
mount ns is the correct granularity for this.
/sys/kernel/security/ima/newns as the trigger for requesting
a new ima ns on the next clone(CLONE_NEWNS).
installing or updating the keyring? That's the only operation
that needs namespace separation, so on mount ns clone, you
namespacea pointer to the old ima_ns until you do something that
requires a new key, which then triggers the copy of the
addedand installing it?
based.It isn't just the keyrings that need to be namespaced, but the
measurement list and policy as well.
IMA-measurement, IMA-appraisal and IMA-audit are all policy
As soon as the namespace starts, measurements should be
list,The policy defines which files are measured. The namespace policyShouldn't it be both?to the namespace specific measurement list, not it's parent.
could be different than it's parent's policy, and the parent's
policy could be different than the native policy. Basically, file
measurements need to be added to the namespace measurement
Going forward we assume associated with each container will be a vTPM.This algorithm is potentially extending a PCR in TPM multiple timesappendedrecursively, up to the native measurement list.Yes, but if a task t1 is in namespace ns2 which is a child of
namespace ns1, and it accesses a file which ns1's policy says must be
measured, then will ns1's required measurement happen (and be
to the ns1 measurement list), whether or not ns2's policy requires it?Yes, as the file needs to be measured only in the ns1 policy, the
measurement would exist in the ns1 measurement list, but not in the
ns2 measurement list. The pseudo code snippet below might help.
for a single file event under a given namespace and duplicating
entries. Any concerns with performance and memory footprint?
The namespace measurements will extend a vTPM. As the container comes
and goes the associated measurement list, keyring, and vTPM will come
and go as well. For this reason, based on policy, the same file
measurement might appear in multiple measurement lists.
integration of containers with vTPM. Associating vTPM with containers as
they are today is not a simple integration since vTPM requires a VM and
containers do not.