All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org (Eric W. Biederman)
To: Kees Cook <keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: Colin Walters <walters-gPq2gbYjIk8dnm+yROfE0A@public.gmane.org>,
	Network Development
	<netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Linux Containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Andy Lutomirski <luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org>,
	Seth Forshee
	<seth.forshee-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>,
	Nikolay Borisov <kernel-6AxghH7DbtA@public.gmane.org>,
	Linux API <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Jann Horn <jann-XZ1E9jl8jIdeoWH0uzbU5w@public.gmane.org>
Subject: Re: [PATCH v2 00/10] userns: sysctl limits for namespaces
Date: Fri, 22 Jul 2016 21:11:05 -0500	[thread overview]
Message-ID: <87h9bhqf2e.fsf__11194.1298739568$1469240674$gmane$org@x220.int.ebiederm.org> (raw)
In-Reply-To: <CAGXu5j+X7eWggkwpBpABsFe4hqK5LN1mYJ2TH91qj3iSe6rtcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> (Kees Cook's message of "Fri, 22 Jul 2016 14:46:52 -0700")

Kees Cook <keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> writes:

> On Fri, Jul 22, 2016 at 11:45 AM, Eric W. Biederman
> <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> wrote:
>> Colin Walters <walters-gPq2gbYjIk8dnm+yROfE0A@public.gmane.org> writes:
>>
>>> On Thu, Jul 21, 2016, at 12:39 PM, Eric W. Biederman wrote:
>>>>
>>>> This patchset addresses two use cases:
>>>> - Implement a sane upper bound on the number of namespaces.
>>>> - Provide a way for sandboxes to limit the attack surface from
>>>>   namespaces.
>>>
>>> Perhaps this is obvious, but since you didn't quite explicitly state it;
>>> do you see this as obsoleting the existing downstream patches
>>> mentioned in:
>>> https://lwn.net/Articles/673597/
>>> It seems conceptually similar to Kees' original approach, right?
>>
>> Similar yes, and I expect it fills the need.  My primary difference is
>> that I believe this approach makes sense from a perspective of assuming
>> that user namespaces or other namespaces are not any buggier than any
>> other piece of kernel code and that people will use them.
>>
>> I don't see these limits making sense from a perspective that user
>> namespaces are flawed and distro kernels should not have enabled them in
>> the first place.  That was my perception right or wrong of Kees patches
>> and the related patches that landed in Ubuntu and Debian.
>>
>> With Kees approach I could not see how to handle the case where some
>> applications on the system wanted user namespaces and others don't.
>> Which made it very nasty for future evolution and more deployment of
>> user namespaces.  Being per user namespace these limits can be used to
>> sandbox applications without affecting the rest of the system.
>
> While it certainly works for my use-case (init ns
> max_usernamespaces=0), I don't see how this helps the case of "let
> user foobar open 1 userns, but everyone else is 0", which is likely
> the middle ground between "just turn it off" and "everyone gets to
> create usernamespaces". I'm personally not interested in that level of
> granularity, but in earlier discussions it sounded like this was
> something you wanted?

So the case I really care about is when there is limited use, so people
don't have to redesign their applications.  In this case if you want to
disable things in a sandbox like way you just create a user namespace
and set the count to 0 in that user namespace.

A whole system disable I tend to think is a stupid configuration for a
new system.  It gets into people negotiating for what they need, and I
don't see that as sustainable.  I prefer good usable defaults.

I would have loved to have done something with per user limits so it
could be disabled for a selection of users, but it turns out the kernel
doesn't have appropriate data structures for to hold limits for users
that have not logged in.

And in practice I don't care the case where 1 user is allowed but not
the others, I care about disallow this user/program that is in a
sandbox.  I also seem to recall people have problems with using seccomp
to disable things.  All of that said a per user policy is easily
implemented in pam by setting the size count for a specific user to 0.

I do think a limit to catch applications that go crazy is very sane, and
that is primarily what is implemented here.

Eric

  parent reply	other threads:[~2016-07-23  2:11 UTC|newest]

Thread overview: 113+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-20  1:13 [PATCH 0/10] userns: sysctl limits for namespaces Eric W. Biederman
     [not found] ` <8737n5dscy.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-20  1:21   ` [PATCH 01/10] sysctl: Stop implicitly passing current into sysctl_table_root.lookup Eric W. Biederman
     [not found]     ` <20160720012138.7894-1-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-20  1:21       ` [PATCH 02/10] userns: Add per user namespace sysctls Eric W. Biederman
     [not found]         ` <20160720012138.7894-2-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-20  5:12           ` Serge E. Hallyn
     [not found]             ` <20160720051226.GC16885-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-07-20 15:55               ` Eric W. Biederman
     [not found]                 ` <87shv49ud0.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-20 16:43                   ` Serge E. Hallyn
     [not found]                     ` <20160720164347.GA24378-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-07-21 14:41                       ` Eric W. Biederman
     [not found]                         ` <87invz9hpz.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-21 15:07                           ` Serge E. Hallyn
2016-07-20  6:28           ` Nikolay Borisov
     [not found]             ` <578F1A00.6030701-6AxghH7DbtA@public.gmane.org>
2016-07-21 15:37               ` Eric W. Biederman
2016-07-20  1:21       ` [PATCH 03/10] userns: Add a limit on the number of user namespaces Eric W. Biederman
     [not found]         ` <20160720012138.7894-3-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-20  7:03           ` Nikolay Borisov
     [not found]             ` <578F2233.2040708-6AxghH7DbtA@public.gmane.org>
2016-07-21 15:23               ` Eric W. Biederman
2016-07-20  1:21       ` [PATCH 04/10] userns: Generalize the user namespace count into ucount Eric W. Biederman
2016-07-20  1:21       ` [PATCH 05/10] pidns: Add a limit on the number of pid namespaces Eric W. Biederman
2016-07-20  1:21       ` [PATCH 06/10] utsns: Add a limit on the number of uts namespaces Eric W. Biederman
2016-07-20  1:21       ` [PATCH 07/10] ipcns: Add a limit on the number of ipc namespaces Eric W. Biederman
2016-07-20  1:21       ` [PATCH 08/10] cgroupns: Add a limit on the number of cgroup namespaces Eric W. Biederman
2016-07-20  1:21       ` [PATCH 09/10] netns: Add a limit on the number of net namespaces Eric W. Biederman
2016-07-20  1:21       ` [PATCH 10/10] mntns: Add a limit on the number of mount namespaces Eric W. Biederman
2016-07-20  1:58       ` [PATCH 01/10] sysctl: Stop implicitly passing current into sysctl_table_root.lookup Eric W. Biederman
2016-07-20  5:06       ` Serge E. Hallyn
2016-07-20  4:02   ` [PATCH 0/10] userns: sysctl limits for namespaces Kees Cook
     [not found]     ` <CAGXu5jKWjHKxtPSGuogjR+XE+SbNWiUp2bOxugpD+hUex9QeZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-21 14:49       ` Eric W. Biederman
2016-07-21 16:58       ` Eric W. Biederman
     [not found]         ` <871t2n53o5.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-21 18:46           ` Kees Cook
2016-07-21 16:39   ` [PATCH v2 00/10] " Eric W. Biederman
2016-07-21 16:39     ` Eric W. Biederman
2016-07-22 13:33     ` Colin Walters
     [not found]       ` <1469194399.3817016.673814953.7581706C-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
2016-07-22 18:45         ` Eric W. Biederman
2016-07-22 18:45           ` Eric W. Biederman
2016-07-22 21:46           ` Kees Cook
2016-07-23  2:11             ` Eric W. Biederman
2016-07-23  2:11               ` Eric W. Biederman
2016-07-23  2:11               ` Eric W. Biederman
     [not found]             ` <CAGXu5j+X7eWggkwpBpABsFe4hqK5LN1mYJ2TH91qj3iSe6rtcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-23  2:11               ` Eric W. Biederman [this message]
     [not found]           ` <87poq5y0jw.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-22 21:46             ` Kees Cook
     [not found]     ` <87d1m754jc.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-21 16:40       ` [PATCH v2 01/10] sysctl: Stop implicitly passing current into sysctl_table_root.lookup Eric W. Biederman
2016-07-21 16:40         ` Eric W. Biederman
2016-07-21 16:40         ` [PATCH v2 04/10] userns: Generalize the user namespace count into ucount Eric W. Biederman
     [not found]           ` <20160721164014.17534-4-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:09             ` Serge E. Hallyn
2016-07-25 23:09           ` Serge E. Hallyn
2016-07-25 23:09             ` Serge E. Hallyn
2016-07-21 16:40         ` [PATCH v2 06/10] utsns: Add a limit on the number of uts namespaces Eric W. Biederman
     [not found]           ` <20160721164014.17534-6-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:09             ` Serge E. Hallyn
2016-07-25 23:09               ` Serge E. Hallyn
     [not found]         ` <20160721164014.17534-1-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-21 16:40           ` [PATCH v2 02/10] userns: Add per user namespace sysctls Eric W. Biederman
2016-07-21 16:40             ` Eric W. Biederman
     [not found]             ` <20160721164014.17534-2-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-26  0:02               ` Eric W. Biederman
2016-07-26  0:02                 ` Eric W. Biederman
     [not found]                 ` <878twp6zd2.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-26  0:24                   ` David Miller
2016-07-26  0:24                     ` David Miller
     [not found]                     ` <20160725.172406.352408511647766870.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2016-07-26  0:44                       ` Eric W. Biederman
2016-07-26  0:44                         ` Eric W. Biederman
     [not found]                         ` <87k2g95it9.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-26  2:58                           ` David Miller
2016-07-26  2:58                             ` David Miller
     [not found]                             ` <20160725.195836.1881375122073635224.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2016-07-26  4:00                               ` Eric W. Biederman
2016-07-26  4:00                             ` Eric W. Biederman
2016-07-26  4:00                               ` Eric W. Biederman
2016-07-21 16:40           ` [PATCH v2 03/10] userns: Add a limit on the number of user namespaces Eric W. Biederman
2016-07-21 16:40             ` Eric W. Biederman
     [not found]             ` <20160721164014.17534-3-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:05               ` Serge E. Hallyn
2016-07-25 23:05             ` Serge E. Hallyn
2016-07-21 16:40           ` [PATCH v2 04/10] userns: Generalize the user namespace count into ucount Eric W. Biederman
2016-07-21 16:40           ` [PATCH v2 05/10] pidns: Add a limit on the number of pid namespaces Eric W. Biederman
2016-07-21 16:40             ` Eric W. Biederman
     [not found]             ` <20160721164014.17534-5-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:09               ` Serge E. Hallyn
2016-07-25 23:09                 ` Serge E. Hallyn
2016-07-21 16:40           ` [PATCH v2 06/10] utsns: Add a limit on the number of uts namespaces Eric W. Biederman
2016-07-21 16:40           ` [PATCH v2 07/10] ipcns: Add a limit on the number of ipc namespaces Eric W. Biederman
2016-07-21 16:40             ` Eric W. Biederman
2016-07-25 23:10             ` Serge E. Hallyn
     [not found]             ` <20160721164014.17534-7-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:10               ` Serge E. Hallyn
2016-07-21 16:40           ` [PATCH v2 08/10] cgroupns: Add a limit on the number of cgroup namespaces Eric W. Biederman
2016-07-21 16:40             ` Eric W. Biederman
2016-07-25 23:12             ` Serge E. Hallyn
2016-07-25 23:12               ` Serge E. Hallyn
     [not found]             ` <20160721164014.17534-8-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:12               ` Serge E. Hallyn
2016-07-21 16:40           ` [PATCH v2 09/10] netns: Add a limit on the number of net namespaces Eric W. Biederman
2016-07-21 16:40             ` Eric W. Biederman
2016-07-25 23:13             ` Serge E. Hallyn
     [not found]             ` <20160721164014.17534-9-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:13               ` Serge E. Hallyn
2016-07-26  6:01               ` Andrei Vagin
2016-07-26  6:01                 ` Andrei Vagin
     [not found]                 ` <CANaxB-zfkvu9XYkuYB47tYFGLeVnWBhpgEUaSrGD4+-O8ThcNw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-26 20:00                   ` Eric W. Biederman
2016-07-26 20:00                     ` Eric W. Biederman
2016-07-21 16:40           ` [PATCH v2 10/10] mntns: Add a limit on the number of mount namespaces Eric W. Biederman
2016-07-21 16:40         ` Eric W. Biederman
     [not found]           ` <20160721164014.17534-10-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2016-07-25 23:15             ` Serge E. Hallyn
2016-07-25 23:15               ` Serge E. Hallyn
2016-07-22 13:33       ` [PATCH v2 00/10] userns: sysctl limits for namespaces Colin Walters
2016-07-26 10:27       ` Michael Kerrisk (man-pages)
2016-07-26 10:27         ` Michael Kerrisk (man-pages)
     [not found]         ` <94b608ae-1d06-5c41-cbd5-94e663a2163a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-07-26 15:14           ` Eric W. Biederman
2016-07-26 15:14             ` Eric W. Biederman
2016-07-26 15:14             ` Eric W. Biederman
2016-07-26 10:30       ` Michael Kerrisk (man-pages)
2016-07-26 10:30         ` Michael Kerrisk (man-pages)
     [not found]         ` <6be70177-a81d-7ed8-d2c9-a596d4d6a165-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-07-26 15:06           ` Eric W. Biederman
2016-07-26 15:06         ` Eric W. Biederman
2016-07-26 15:06           ` Eric W. Biederman
2016-07-26 15:06           ` Eric W. Biederman
2016-07-26 16:52           ` Kees Cook
2016-07-26 16:52             ` Kees Cook
     [not found]             ` <CAGXu5j+ZtZAFpW0ajnnBTRZk17ez6XYF=meEJY_rF7wwgyZB5Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-26 17:29               ` Michael Kerrisk (man-pages)
2016-07-26 17:29             ` Michael Kerrisk (man-pages)
2016-07-26 17:29               ` Michael Kerrisk (man-pages)
     [not found]               ` <CAKgNAkhCvb-WkBbwebbBw6cfhg0FJ-SSbvK=aS1WK+BQ55eO5Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-07-26 20:44                 ` Kees Cook
2016-07-26 20:44               ` Kees Cook
     [not found]           ` <87shuwtp4c.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-07-26 16:52             ` Kees Cook
2016-08-08 21:16       ` Eric W. Biederman
2016-08-08 21:16         ` Eric W. Biederman
2016-08-08 21:16         ` Eric W. Biederman

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='87h9bhqf2e.fsf__11194.1298739568$1469240674$gmane$org@x220.int.ebiederm.org' \
    --to=ebiederm-as9lmozglivwk0htik3j/w@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=jann-XZ1E9jl8jIdeoWH0uzbU5w@public.gmane.org \
    --cc=keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=kernel-6AxghH7DbtA@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=seth.forshee-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org \
    --cc=walters-gPq2gbYjIk8dnm+yROfE0A@public.gmane.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 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.