From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1508255091.3129.27.camel@HansenPartnership.com> Subject: Re: RFC(v2): Audit Kernel Container IDs From: James Bottomley To: Simo Sorce , Casey Schaufler , Steve Grubb , linux-audit@redhat.com Cc: mszeredi@redhat.com, trondmy@primarydata.com, jlayton@redhat.com, Linux API , Linux Containers , Linux Kernel , David Howells , Carlos O'Donell , cgroups@vger.kernel.org, "Eric W. Biederman" , Andy Lutomirski , Linux Network Development , Linux FS Devel , Eric Paris , Al Viro Date: Tue, 17 Oct 2017 08:44:51 -0700 In-Reply-To: <1508254120.6230.34.camel@redhat.com> References: <20171012141359.saqdtnodwmbz33b2@madcap2.tricolour.ca> <75b7d6a6-42ba-2dff-1836-1091c7c024e7@schaufler-ca.com> <20171017003340.whjdkqmkw4lydwy7@madcap2.tricolour.ca> <2319693.5l3M4ZINGd@x2> <1508243469.6230.24.camel@redhat.com> <1508254120.6230.34.camel@redhat.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org List-ID: On Tue, 2017-10-17 at 11:28 -0400, Simo Sorce wrote: > > Without a *kernel* policy on containerIDs you can't say what > > security policy is being exempted. > > The policy has been basically stated earlier. > > A way to track a set of processes from a specific point in time > forward. The name used is "container id", but it could be anything. > This marker is mostly used by user space to track process hierarchies > without races, these processes can be very privileged, and must not > be allowed to change the marker themselves when granted the current > common capabilities. > > Is this a good enough description ? If not can you clarify your > expectations ? I think you mean you want to be able to apply a label to a process which is inherited across forks.  The label should only be susceptible to modification by something possessing a capability (which one TBD).  The idea is that processes spawned into a container would be labelled by the container orchestration system.  It's unclear what should happen to processes using nsenter after the fact, but policy for that should be up to the orchestration system. The label will be used as a tag for audit information. I think you were missing label inheritance above. The security implications are that anything that can change the label could also hide itself and its doings from the audit system and thus would be used as a means to evade detection.  I actually think this means the label should be write once (once you've set it, you can't change it) and orchestration systems should begin as unlabelled processes allowing them to do arbitrary forks. For nested containers, I actually think the label should be hierarchical, so you can add a label for the new nested container but it still also contains its parents label as well. James