All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Moore <paul@paul-moore.com>
To: Richard Guy Briggs <rgb@redhat.com>
Cc: "Serge E. Hallyn" <serge@hallyn.com>,
	Tycho Andersen <tycho@tycho.ws>,
	containers@lists.linux-foundation.org, linux-api@vger.kernel.org,
	Linux-Audit Mailing List <linux-audit@redhat.com>,
	linux-fsdevel@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>,
	netdev@vger.kernel.org, netfilter-devel@vger.kernel.org,
	sgrubb@redhat.com, omosnace@redhat.com, dhowells@redhat.com,
	simo@redhat.com, Eric Paris <eparis@parisplace.org>,
	ebiederm@xmission.com, nhorman@tuxdriver.com
Subject: Re: [PATCH ghak90 V6 02/10] audit: add container id
Date: Tue, 16 Jul 2019 19:30:15 -0400	[thread overview]
Message-ID: <CAHC9VhScHizB2r5q3T5s0P3jkYdvzBPPudDksosYFp_TO7W9-Q@mail.gmail.com> (raw)
In-Reply-To: <20190716220320.sotbfqplgdructg7@madcap2.tricolour.ca>

On Tue, Jul 16, 2019 at 6:03 PM Richard Guy Briggs <rgb@redhat.com> wrote:
> On 2019-07-15 17:04, Paul Moore wrote:
> > On Mon, Jul 8, 2019 at 2:06 PM Richard Guy Briggs <rgb@redhat.com> wrote:

...

> > > If we can't trust ns_capable() then why are we passing on
> > > CAP_AUDIT_CONTROL?  It is being passed down and not stripped purposely
> > > by the orchestrator/engine.  If ns_capable() isn't inherited how is it
> > > gained otherwise?  Can it be inserted by cotainer image?  I think the
> > > answer is "no".  Either we trust ns_capable() or we have audit
> > > namespaces (recommend based on user namespace) (or both).
> >
> > My thinking is that since ns_capable() checks the credentials with
> > respect to the current user namespace we can't rely on it to control
> > access since it would be possible for a privileged process running
> > inside an unprivileged container to manipulate the audit container ID
> > (containerized process has CAP_AUDIT_CONTROL, e.g. running as root in
> > the container, while the container itself does not).
>
> What makes an unprivileged container unprivileged?  "root", or "CAP_*"?

My understanding is that when most people refer to an unprivileged
container they are referring to a container run without capabilities
or a container run by a user other than root.  I'm sure there are
better definitions out there, by folks much smarter than me on these
things, but that's my working definition.

> If CAP_AUDIT_CONTROL is granted, does "root" matter?

Our discussions here have been about capabilities, not UIDs.  The only
reason root might matter is that it generally has the full capability
set.

> Does it matter what user namespace it is in?

What likely matters is what check is called: capable() or
ns_capable().  Those can yield very different results.

> I understand that root is *gained* in an
> unprivileged user namespace, but capabilities are inherited or permitted
> and that process either has it or it doesn't and an unprivileged user
> namespace can't gain a capability that has been rescinded.  Different
> subsystems use the userid or capabilities or both to determine
> privileges.

Once again, I believe the important thing to focus on here is
capable() vs ns_capable().  We can't safely rely on ns_capable() for
the audit container ID policy since that is easily met inside the
container regardless of the process' creds which started the
container.

> In this case, is the userid relevant?

We don't do UID checks, we do capability checks, so yes, the UID is irrelevant.

> > > At this point I would say we are at an impasse unless we trust
> > > ns_capable() or we implement audit namespaces.
> >
> > I'm not sure how we can trust ns_capable(), but if you can think of a
> > way I would love to hear it.  I'm also not sure how namespacing audit
> > is helpful (see my above comments), but if you think it is please
> > explain.
>
> So if we are not namespacing, why do we not trust capabilities?

We can trust capable(CAP_AUDIT_CONTROL) for enforcing audit container
ID policy, we can not trust ns_capable(CAP_AUDIT_CONTROL).

-- 
paul moore
www.paul-moore.com

  reply	other threads:[~2019-07-16 23:30 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-09  3:39 [PATCH ghak90 V6 00/10] audit: implement container identifier Richard Guy Briggs
2019-04-09  3:39 ` [PATCH ghak90 V6 01/10] audit: collect audit task parameters Richard Guy Briggs
2019-04-09  3:39 ` [PATCH ghak90 V6 02/10] audit: add container id Richard Guy Briggs
2019-05-29 14:57   ` Tycho Andersen
2019-05-29 15:29     ` Paul Moore
2019-05-29 15:29       ` Paul Moore
2019-05-29 15:34       ` Tycho Andersen
2019-05-29 16:03         ` Paul Moore
2019-05-29 22:28           ` Tycho Andersen
2019-05-29 22:39             ` Paul Moore
2019-05-30 17:09               ` Serge E. Hallyn
2019-05-30 19:29                 ` Paul Moore
2019-05-30 21:29                   ` Tycho Andersen
2019-05-30 21:29                     ` Tycho Andersen
2019-05-30 23:26                     ` Paul Moore
2019-05-31  0:20                       ` Richard Guy Briggs
2019-05-31 12:44                         ` Paul Moore
2019-06-03 20:24                           ` Steve Grubb
2019-06-18 22:12                             ` Paul Moore
2019-06-18 22:12                               ` Paul Moore
2019-06-18 22:46                               ` Richard Guy Briggs
2019-07-08 18:12                       ` Richard Guy Briggs
2019-07-08 20:43                         ` Paul Moore
2019-07-08 20:43                           ` Paul Moore
2019-07-15 21:09                         ` Paul Moore
2019-07-16 15:37                           ` Richard Guy Briggs
2019-07-16 16:08                             ` Paul Moore
2019-07-16 16:26                               ` Richard Guy Briggs
2019-07-16 16:26                                 ` Richard Guy Briggs
2019-07-08 18:05                   ` Richard Guy Briggs
2019-07-15 21:04                     ` Paul Moore
2019-07-15 21:04                       ` Paul Moore
2019-07-16 22:03                       ` Richard Guy Briggs
2019-07-16 23:30                         ` Paul Moore [this message]
2019-07-18  0:51                           ` Richard Guy Briggs
2019-07-18  0:51                             ` Richard Guy Briggs
2019-07-18 21:52                             ` Paul Moore
2019-07-19 16:00                               ` Eric W. Biederman
2019-07-19 22:41                                 ` Burn Alting
2019-07-20  2:19                                 ` James Bottomley
2019-07-19 15:32                             ` Eric W. Biederman
2019-07-08 17:51       ` Richard Guy Briggs
2019-07-15 20:38         ` Paul Moore
2019-07-16 19:38           ` Richard Guy Briggs
2019-07-16 21:39             ` Paul Moore
2019-07-19 16:07   ` Eric W. Biederman
2019-04-09  3:39 ` [PATCH ghak90 V6 03/10] audit: read container ID of a process Richard Guy Briggs
2019-07-19 16:03   ` Eric W. Biederman
2019-07-19 17:05     ` Richard Guy Briggs
2019-07-19 17:05       ` Richard Guy Briggs
2019-04-09  3:39 ` [PATCH ghak90 V6 04/10] audit: log container info of syscalls Richard Guy Briggs
2019-05-29 22:15   ` Paul Moore
2019-05-29 22:15     ` Paul Moore
2019-05-30 13:08     ` Ondrej Mosnacek
2019-05-30 14:08       ` Richard Guy Briggs
2019-05-30 14:34         ` Paul Moore
2019-04-09  3:39 ` [PATCH ghak90 V6 05/10] audit: add contid support for signalling the audit daemon Richard Guy Briggs
2019-04-09 12:57   ` Ondrej Mosnacek
2019-04-09 13:40     ` Paul Moore
2019-04-09 13:48       ` Neil Horman
2019-04-09 14:00         ` Ondrej Mosnacek
2019-04-09 14:07         ` Paul Moore
2019-04-09 13:53       ` Richard Guy Briggs
2019-04-09 14:08         ` Paul Moore
2019-04-09 13:46     ` Neil Horman
2019-04-09  3:39 ` [PATCH ghak90 V6 06/10] audit: add support for non-syscall auxiliary records Richard Guy Briggs
2019-04-09  3:39   ` Richard Guy Briggs
2019-04-09  3:39 ` [PATCH ghak90 V6 07/10] audit: add containerid support for user records Richard Guy Briggs
2019-04-09  3:39 ` [PATCH ghak90 V6 08/10] audit: add containerid filtering Richard Guy Briggs
2019-05-29 22:16   ` Paul Moore
2019-05-30 14:19     ` Richard Guy Briggs
2019-05-30 14:34       ` Paul Moore
2019-05-30 20:37         ` Richard Guy Briggs
2019-05-30 20:45           ` Paul Moore
2019-05-30 20:45             ` Paul Moore
2019-05-30 21:10             ` Richard Guy Briggs
2019-05-30 21:10               ` Richard Guy Briggs
2019-04-09  3:39 ` [PATCH ghak90 V6 09/10] audit: add support for containerid to network namespaces Richard Guy Briggs
2019-04-09  3:39   ` Richard Guy Briggs
2019-05-29 22:17   ` Paul Moore
2019-05-29 22:17     ` Paul Moore
2019-05-30 14:15     ` Richard Guy Briggs
2019-05-30 14:32       ` Paul Moore
2019-04-09  3:39 ` [PATCH ghak90 V6 10/10] audit: NETFILTER_PKT: record each container ID associated with a netNS Richard Guy Briggs
2019-04-11 11:31 ` [PATCH ghak90 V6 00/10] audit: implement container identifier Richard Guy Briggs
2019-04-22 11:38 ` Neil Horman
2019-04-22 13:49   ` Paul Moore
2019-04-23 10:28     ` Neil Horman
2019-05-28 21:53     ` Daniel Walsh
2019-05-28 22:25       ` Richard Guy Briggs
2019-05-28 22:26       ` Paul Moore
2019-05-28 23:00         ` Steve Grubb
2019-05-29  0:43           ` Richard Guy Briggs
2019-05-29 12:02             ` Daniel Walsh
2019-05-29 13:17               ` Paul Moore
2019-05-29 14:07                 ` Daniel Walsh
2019-05-29 14:33                   ` Paul Moore
2019-05-29 13:14             ` Paul Moore
2019-05-29 22:26     ` Paul Moore
2019-05-30 13:08       ` Steve Grubb
2019-05-30 13:35         ` Paul Moore
2019-05-30 14:08           ` Richard Guy Briggs

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=CAHC9VhScHizB2r5q3T5s0P3jkYdvzBPPudDksosYFp_TO7W9-Q@mail.gmail.com \
    --to=paul@paul-moore.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=eparis@parisplace.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-audit@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=nhorman@tuxdriver.com \
    --cc=omosnace@redhat.com \
    --cc=rgb@redhat.com \
    --cc=serge@hallyn.com \
    --cc=sgrubb@redhat.com \
    --cc=simo@redhat.com \
    --cc=tycho@tycho.ws \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.