Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp398669imn; Wed, 3 Aug 2022 08:33:26 -0700 (PDT) X-Google-Smtp-Source: AA6agR4D86tsD22FWkONmP7FQQFXQZU2nhhv04EgjIRP8ezPv+TKvy9WIt75PkQHSwpwOzC8idaH X-Received: by 2002:a05:6402:27d2:b0:43e:3ff6:ad58 with SMTP id c18-20020a05640227d200b0043e3ff6ad58mr3514174ede.234.1659540805939; Wed, 03 Aug 2022 08:33:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659540805; cv=none; d=google.com; s=arc-20160816; b=S+IrrhQNX/5Cypj76pA+k1z2QmWvI5/9CKMjeRQkB6lcES/CdkSwq+oBL6zJvmxj66 kIIrpRZ6wDMvCJiPQSdorF36b32rh+vEs5GI0LvFLDOVHGw2PiBjRNVFPzEXLiFsJQxd RwoeLx77ZE7+yfWqSR+SKW26svFd0qbhrWQ+0d3XoVo4qTRvjuNNuoNHjIcJ2cuec+xB 3QaURlATNwyUYQrJNJr14vltTKypeRhCfe28NipiS+hCXy5bk8wKcT4RACybdqvEC6xq 3Q7DxqCvYjQm+bA32jT6jWrQARtolkE99VF9n59IpY+UdBYuIkV7caWXcifEWvWHK3I7 bXag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=RPqGFZtbNqgICpWV/6VvhSR6n3AOi6dZZb+5V7yogyQ=; b=gvbz6rlvCAsQgq2RZC9MWRIypU2P3gDg31N2njunX/+SDuWMTUV1FdrlzwAJ0il05b M0RlDBVc8NQQE5UggyLBPXepRZw3GjI2MdYYNz3F6luEirI6E/G/Wd7P4pbrkr3xvcNC sk+FgmLX6ETm3CWpr5KrhSzKYLbSpZLn3M/ZJopFcTM+jCDjsxe1DZ8inl8JWi9ku+I2 2uTKdeUqjiPqsmYZAgMCF+cFC493b1OKf+58QZ1t4Jsrx4POctB1KxUP8EhmtbZtNazs u5aTOxdH/DUxjuvukAFdeo2vLZCLvKFkzIvu0ohjKtO5wC0L2LOZcIoIGwNXOBIxVhGI TPVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cloudflare.com header.s=google header.b="eKxcY/wU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cloudflare.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oz44-20020a1709077dac00b0072b64f0c355si17877927ejc.171.2022.08.03.08.33.01; Wed, 03 Aug 2022 08:33:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@cloudflare.com header.s=google header.b="eKxcY/wU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cloudflare.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238040AbiHCPUm (ORCPT + 99 others); Wed, 3 Aug 2022 11:20:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238097AbiHCPUi (ORCPT ); Wed, 3 Aug 2022 11:20:38 -0400 Received: from mail-ot1-x32a.google.com (mail-ot1-x32a.google.com [IPv6:2607:f8b0:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E76431231 for ; Wed, 3 Aug 2022 08:20:35 -0700 (PDT) Received: by mail-ot1-x32a.google.com with SMTP id x1-20020a056830278100b00636774b0e54so2448643otu.4 for ; Wed, 03 Aug 2022 08:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudflare.com; s=google; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc; bh=RPqGFZtbNqgICpWV/6VvhSR6n3AOi6dZZb+5V7yogyQ=; b=eKxcY/wUV1t5iGFQOTkC3uUqXsNlO3wJPUXpinu2/pZFiIuEZDbShMVl1SWFB8VMKG dN33busgN2TumcApmrWbU9bmxspzUC3EobauqLvOHnBA8X1FgGKATmogtCPRFVJX7swX jnEljBTuf+JFh+gnVMEfcFQpvfPapnczKgq9A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc; bh=RPqGFZtbNqgICpWV/6VvhSR6n3AOi6dZZb+5V7yogyQ=; b=I5UBTZgdBufvX66Cl1EsEgdOdhQlXF+Pvrk3+WM9zb6n7K2CE8mi8FsGx4hgFkcJYV hWWVgJN7HW3m1EEegt+ZjCsAnPknfcZ6+fliOFccHaKZXCMfNv9uarY2k5T/Q9hRIEFU aNc8+epHDaeswwF2zQ7wDWdH1lAzYGXnHX1WEwc48Y9CG24Rga0/bHAUwFB4JdhxquHI 3XisqifcGwHpjBG3j06OgEolWQa3i/OEVjrkEkf8bGjTgVen5KGgtRKitJp0KzjMBuYv qH0vLKixm2+EK1jk2oCJ1jC7UAIsrmo4XLPHcJfvWUDdMTqhqM+vHYoI2uFOQ4OiVpCW SowQ== X-Gm-Message-State: AJIora+b3yfe3RRk/6u8J9g79ggh3LD60WIs1VPD/DgXtdfadcQqqO+D poH1K/VtddEKH7W8jgw/QtUe1Q== X-Received: by 2002:a9d:6007:0:b0:61c:ecd2:ac55 with SMTP id h7-20020a9d6007000000b0061cecd2ac55mr8737434otj.32.1659540034249; Wed, 03 Aug 2022 08:20:34 -0700 (PDT) Received: from [192.168.0.41] ([184.4.90.121]) by smtp.gmail.com with ESMTPSA id fo22-20020a0568709a1600b0010eaeee89a1sm3056992oab.46.2022.08.03.08.20.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 03 Aug 2022 08:20:33 -0700 (PDT) Message-ID: Date: Wed, 3 Aug 2022 10:20:32 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v3 0/4] Introduce security_create_user_ns() Content-Language: en-US To: "Eric W. Biederman" , Paul Moore Cc: Martin KaFai Lau , kpsingh@kernel.org, revest@chromium.org, jackmanb@chromium.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com, jmorris@namei.org, serge@hallyn.com, stephen.smalley.work@gmail.com, eparis@parisplace.org, shuah@kernel.org, brauner@kernel.org, casey@schaufler-ca.com, bpf@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, kernel-team@cloudflare.com, cgzones@googlemail.com, karl@bigbadwolfsecurity.com, tixxdz@gmail.com References: <20220721172808.585539-1-fred@cloudflare.com> <20220722061137.jahbjeucrljn2y45@kafai-mbp.dhcp.thefacebook.com> <18225d94bf0.28e3.85c95baa4474aabc7814e68940a78392@paul-moore.com> <87a68mcouk.fsf@email.froward.int.ebiederm.org> From: Frederick Lawler In-Reply-To: <87a68mcouk.fsf@email.froward.int.ebiederm.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/2/22 4:33 PM, Eric W. Biederman wrote: > Paul Moore writes: > >> On July 22, 2022 2:12:03 AM Martin KaFai Lau wrote: >> >>> On Thu, Jul 21, 2022 at 12:28:04PM -0500, Frederick Lawler wrote: >>>> While creating a LSM BPF MAC policy to block user namespace creation, we >>>> used the LSM cred_prepare hook because that is the closest hook to prevent >>>> a call to create_user_ns(). >>>> >>>> The calls look something like this: >>>> >>>> cred = prepare_creds() >>>> security_prepare_creds() >>>> call_int_hook(cred_prepare, ... >>>> if (cred) >>>> create_user_ns(cred) >>>> >>>> We noticed that error codes were not propagated from this hook and >>>> introduced a patch [1] to propagate those errors. >>>> >>>> The discussion notes that security_prepare_creds() >>>> is not appropriate for MAC policies, and instead the hook is >>>> meant for LSM authors to prepare credentials for mutation. [2] >>>> >>>> Ultimately, we concluded that a better course of action is to introduce >>>> a new security hook for LSM authors. [3] >>>> >>>> This patch set first introduces a new security_create_user_ns() function >>>> and userns_create LSM hook, then marks the hook as sleepable in BPF. >>> Patch 1 and 4 still need review from the lsm/security side. >> >> >> This patchset is in my review queue and assuming everything checks >> out, I expect to merge it after the upcoming merge window closes. > > It doesn't even address my issues with the last patchset. Are you referring to [1], and with regards to [2], is the issue that the wording could be improved for both the cover letter and patch 1/4? Ultimately, the goal of CF is to leverage and use user namespaces and block tasks whose meta information do not align with our allow list criteria. Yes, there is a higher goal of restricting our attack surface. Yes, people will find ways around security. The point is to have multiple levels of security, and this patch series allows people to add another level. Calling this hook a regression is not true since there's no actual regression in the code. What would constitute a perceived regression is an admin imposing such a SELinux or BPF restriction within their company, but developers in that company ideally would try to work with the admin to enable user namespaces for certain use cases, or alternatively do what you don't want given current tooling: always run code as root. That's where this hook comes in: let people observe and enforce how they see fit. The average enthusiasts would see no impact. I was requested to add _some_ test to BPF and to add a SELinux implementation. The low hanging fruit for a test to prove that the hook is capable of doing _something_ was to simply just block outright, and provide _some example_ of use. It doesn't make sense for us to write a test that outlines specifically what CF or others are doing because that would put too much emphasis on an implementation detail that doesn't matter to prove that the hook works. Without Djalal's comment, I can't defend an observability use case that we're not currently leveraging. We have it now, so therefore I'll defend it per KP's suggestion[3] in v5. By not responding to the email discussions, we can't accurately gauge what should or should not be in the descriptions. No one here necessarily disagrees with some of the points you made, and others have appropriately responded. As others have also wrote, you're not proposing alternatives. How do you expect us to work with that? Please, let us know which bits and pieces ought to be included in the descriptions, and let us know what things we should call out caveats to that would satisfy your concerns. Links: 1. https://lore.kernel.org/all/01368386-521f-230b-1d49-de19377c27d1@cloudflare.com/ 2. https://lore.kernel.org/all/877d45kri4.fsf@email.froward.int.ebiederm.org/#t 3. https://lore.kernel.org/all/CACYkzJ4x90DamdN4dRCn1gZuAHLqJNy4MoP=qTX+44Bqx1uxSQ@mail.gmail.com/ 4. https://lore.kernel.org/all/CAEiveUdPhEPAk7Y0ZXjPsD=Vb5hn453CHzS9aG-tkyRa8bf_eg@mail.gmail.com/#t > > So it has my NACK. > > Eric