From: "Serge E. Hallyn" <serge@hallyn.com>
To: "Mahesh Bandewar (महेश बंडेवार)" <maheshb@google.com>
Cc: "Serge E. Hallyn" <serge@hallyn.com>,
James Morris <james.l.morris@oracle.com>,
LKML <linux-kernel@vger.kernel.org>,
Netdev <netdev@vger.kernel.org>,
Kernel-hardening <kernel-hardening@lists.openwall.com>,
Linux API <linux-api@vger.kernel.org>,
Kees Cook <keescook@chromium.org>,
"Eric W . Biederman" <ebiederm@xmission.com>,
Eric Dumazet <edumazet@google.com>,
David Miller <davem@davemloft.net>,
Mahesh Bandewar <mahesh@bandewar.net>
Subject: Re: [PATCHv3 0/2] capability controlled user-namespaces
Date: Tue, 9 Jan 2018 16:28:59 -0600 [thread overview]
Message-ID: <20180109222859.GA25956@mail.hallyn.com> (raw)
In-Reply-To: <CAF2d9jjws=jEbybHs18J_xkduAWB+bh6BA_CkD5oYRWz7PwjZA@mail.gmail.com>
Quoting Mahesh Bandewar (महेश बंडेवार) (maheshb@google.com):
> On Mon, Jan 8, 2018 at 10:36 AM, Serge E. Hallyn <serge@hallyn.com> wrote:
> > Quoting Mahesh Bandewar (महेश बंडेवार) (maheshb@google.com):
> >> On Mon, Jan 8, 2018 at 10:11 AM, Serge E. Hallyn <serge@hallyn.com> wrote:
> >> > Quoting Mahesh Bandewar (महेश बंडेवार) (maheshb@google.com):
> >> >> On Mon, Jan 8, 2018 at 7:47 AM, Serge E. Hallyn <serge@hallyn.com> wrote:
> >> >> > Quoting James Morris (james.l.morris@oracle.com):
> >> >> >> On Mon, 8 Jan 2018, Serge E. Hallyn wrote:
> >> >> >> I meant in terms of "marking" a user ns as "controlled" type -- it's
> >> >> >> unnecessary jargon from an end user point of view.
> >> >> >
> >> >> > Ah, yes, that was my point in
> >> >> >
> >> >> > http://lkml.iu.edu/hypermail/linux/kernel/1711.1/01845.html
> >> >> > and
> >> >> > http://lkml.iu.edu/hypermail/linux/kernel/1711.1/02276.html
> >> >> >
> >> >> >> This may happen internally but don't make it a special case with a
> >> >> >> different name and don't bother users with internal concepts: simply
> >> >> >> implement capability whitelists with the default having equivalent
> >> >
> >> > So the challenge is to have unprivileged users be contained, while
> >> > allowing trusted workloads in containers created by a root user to
> >> > bypass the restriction.
> >> >
> >> > Now, the current proposal actually doesn't support a root user starting
> >> > an application that it doesn't quite trust in such a way that it *is*
> >> > subject to the whitelist.
> >>
> >> Well, this is not hard since root process can spawn another process
> >> and loose privileges before creating user-ns to be controlled by the
> >> whitelist.
> >
> > It would have to drop cap_sys_admin for the container to be marked as
> > "controlled", which may prevent the container runtime from properly starting
> > the container.
> >
> Yes, but that's a conflict of trusted operations (that requires
> SYS_ADMIN) and untrusted processes it may spawn.
Not sure I understand what you're saying, but
I guess that in any case the task which is doing unshare(CLONE_NEWNS)
can drop cap_sys_admin first. Though that is harder if using clone,
and it is awkward because it's not the container manager, but the user,
who will judge whether the container workload should be restricted.
So the container driver will add a flag like "run-controlled", and
the driver will convert that to dropping a capability; which again
is weird. It would seem nicer to introduce a userns flag, 'caps-controlled'
For an unprivileged userns, it is always set to 1, and root cannot
change it. For a root-created userns, it stays 0, but root can set it
to 1 (using /proc file?). In this way a either container runtime or just an
admin script can say "no wait I want this container to still be controlled".
Or we could instead add a second sysctl to decide whether all or only
'controlled' user namespaces should be controlled. That's not pretty though.
next prev parent reply other threads:[~2018-01-09 22:28 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-05 22:30 [PATCHv3 0/2] capability controlled user-namespaces Mahesh Bandewar
[not found] ` <20171205223052.12687-1-mahesh-bmGAjcP2qsnk1uMJSBkQmQ@public.gmane.org>
2017-12-27 17:09 ` Mahesh Bandewar (महेश बंडेवार)
2017-12-27 20:23 ` Michael Kerrisk (man-pages)
2017-12-28 0:45 ` Mahesh Bandewar (महेश बंडेवार)
[not found] ` <CAF2d9jjCJxu+oiCCSa1zN8OxfdiCMQb4dx7Mc0YdNgJuMNkOzw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-12-30 8:50 ` Michael Kerrisk (man-pages)
2018-01-03 1:35 ` Mahesh Bandewar (महेश बंडेवार)
2017-12-30 8:31 ` James Morris
2018-01-03 1:30 ` Mahesh Bandewar (महेश बंडेवार)
2018-01-08 0:35 ` James Morris
2018-01-08 6:24 ` Serge E. Hallyn
2018-01-08 9:51 ` James Morris
2018-01-08 15:47 ` Serge E. Hallyn
2018-01-08 17:21 ` Mahesh Bandewar (महेश बंडेवार)
[not found] ` <CAF2d9jgVJpuAH+jgK0v7sQ9Pr75xy=GSnqKDdpeE7d97O0EbcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-08 18:11 ` Serge E. Hallyn
2018-01-08 18:24 ` Mahesh Bandewar (महेश बंडेवार)
2018-01-08 18:36 ` Serge E. Hallyn
2018-01-08 18:55 ` Mahesh Bandewar (महेश बंडेवार)
2018-01-09 22:28 ` Serge E. Hallyn [this message]
[not found] ` <20180109222859.GA25956-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2018-01-10 2:08 ` Mahesh Bandewar (महेश बंडेवार)
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=20180109222859.GA25956@mail.hallyn.com \
--to=serge@hallyn.com \
--cc=davem@davemloft.net \
--cc=ebiederm@xmission.com \
--cc=edumazet@google.com \
--cc=james.l.morris@oracle.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mahesh@bandewar.net \
--cc=maheshb@google.com \
--cc=netdev@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).