linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Moore <paul@paul-moore.com>
To: Stephen Smalley <sds@tycho.nsa.gov>,
	Steven Moreland <smoreland@google.com>,
	Colin Cross <ccross@android.com>,
	"Connor O'Brien" <connoro@google.com>,
	kernel-team@android.com
Cc: Eric Paris <eparis@parisplace.org>,
	keescook@chromium.org, anton@enomsg.org, tony.luck@intel.com,
	selinux@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] security: selinux: allow per-file labeling for bpffs
Date: Tue, 11 Feb 2020 22:17:16 -0500	[thread overview]
Message-ID: <CAHC9VhQVcgQ7ZKXi+Umm51WNgfNSzNX7Zoe=MyaLo1rRm-uUtA@mail.gmail.com> (raw)
In-Reply-To: <a8321785-902d-9186-fcf5-ee12a362a207@tycho.nsa.gov>

On Thu, Feb 6, 2020 at 1:12 PM Stephen Smalley <sds@tycho.nsa.gov> wrote:
> On 2/6/20 12:41 PM, Steven Moreland wrote:
> > On Thu, Feb 6, 2020 at 9:35 AM Stephen Smalley <sds@tycho.nsa.gov> wrote:
> >>
> >> On 2/6/20 12:21 PM, Stephen Smalley wrote:
> >>> On 2/6/20 11:55 AM, Steven Moreland wrote:
> >>>> From: Connor O'Brien <connoro@google.com>
> >>>>
> >>>> Add support for genfscon per-file labeling of bpffs files. This allows
> >>>> for separate permissions for different pinned bpf objects, which may
> >>>> be completely unrelated to each other.
> >>>
> >>> Do you want bpf fs to also support userspace labeling of files via
> >>> setxattr()?  If so, you'll want to also add it to
> >>> selinux_is_genfs_special_handling() as well.
> >>>
> >
> > Android doesn't currently have this use case.
> >
> >>> The only caveat I would note here is that it appears that bpf fs
> >>> supports rename, link, unlink, rmdir etc by userspace, which means that
> >>> name-based labeling via genfscon isn't necessarily safe/stable.  See
> >>> https://github.com/SELinuxProject/selinux-kernel/issues/2
> >>>
> >
> > Android restricts ownership of these files to a single process (bpfloader) and
> > so this isn't a concern in our architecture. Is it a concern in general?
>
> I guess if the inodes are pinned in memory, then only the original name
> under which the file is created will be relevant to determining the
> label and subsequent rename/link operations won't have any effect. So as
> long as the bpfloader creates the files with the same names being
> specified in policy, that should line up and be stable for the lifecycle
> of the inode.
>
> The alternative model is to have bpfloader look up a context from the
> userspace file_contexts configuration via selabel_lookup(3) and friends,
> and set it on the file explicitly.  That's what e.g. ueventd does for
> device nodes.  However, one difference here is that you could currently
> only do this via setxattr()/setfilecon() after creating the file so that
> the file would temporarily exist in the default label for bpf fs, if
> that matters.  ueventd can instead use setfscreatecon(3) before creating
> the file so that it is originally created in the right label but that
> requires the filesystem to call security_inode_init_security() from its
> function that originally creates the inode, which tmpfs/devtmpfs does
> but bpf does not.  So you'd have to add that to the bpf filesystem code
> if you wanted to support setfscreatecon(3) on it.

Considering the relative maturity of bpf, and bpffs, I think it's okay
to take this small step right now, with the understanding that more
work may need to be done, depending on how this is generally adopted
by distros and users (for those of you not following the other thread,
I've merged the v3 draft of this patch).

However, I've been noticing a trend from the Android folks of tossing
patches over the wall without much thought beyond the Android use
case.  I understand the Android devs have a job to do, and products to
focus on, but I would strongly encourage them to think a bit longer
about more general use cases before submitting patches upstream.

-- 
paul moore
www.paul-moore.com

  reply	other threads:[~2020-02-12  3:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06 16:55 [PATCH] security: selinux: allow per-file labeling for bpffs Steven Moreland
2020-02-06 17:21 ` Stephen Smalley
2020-02-06 17:35   ` Stephen Smalley
2020-02-06 17:41     ` Steven Moreland
2020-02-06 18:12       ` Stephen Smalley
2020-02-12  3:17         ` Paul Moore [this message]
2020-02-12 17:46           ` Steven Moreland
2020-02-12 18:09             ` Stephen Smalley

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='CAHC9VhQVcgQ7ZKXi+Umm51WNgfNSzNX7Zoe=MyaLo1rRm-uUtA@mail.gmail.com' \
    --to=paul@paul-moore.com \
    --cc=anton@enomsg.org \
    --cc=ccross@android.com \
    --cc=connoro@google.com \
    --cc=eparis@parisplace.org \
    --cc=keescook@chromium.org \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@vger.kernel.org \
    --cc=smoreland@google.com \
    --cc=tony.luck@intel.com \
    /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).