All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dennis Sherrell <sherrellconsulting@gmail.com>
To: Stephen Smalley <sds@tycho.nsa.gov>,
	Nick Kralevich <nnk@google.com>, SELinux <Selinux@tycho.nsa.gov>
Subject: Re: MLS directory label inheritance rules
Date: Fri, 07 Apr 2017 20:15:11 +0000	[thread overview]
Message-ID: <CAN1YQdEfpw-D2fTSVKK2VHOCRuB=k7QLzhpK0vvaYXvD8B++XQ@mail.gmail.com> (raw)
In-Reply-To: <1491595109.20167.6.camel@tycho.nsa.gov>

[-- Attachment #1: Type: text/plain, Size: 5472 bytes --]

In a thread ending with Nick Kravelich's contact infirmation, it was
written:

"
If you write top secret data it should stay top secret even if you're
writing to a folder that is normally reserved for secret data, or perhaps
mixed data. Iirc it uses the MLS of the process when creating the file
entry."

I disagree. Top Secret data shoud not be written to a folder which was not
provisioned for such. Allowing persons or processess of lower
classification access to "containers" with higher clearance requirements
could cause a data spill. Any thoughts as to active handling of such?

Dennis Sherrell
Sherrell Consulting
Bakersfield, California Company #136601
Counter-Terrorism
Cybernetic Countermeasure Developer

On Fri, Apr 7, 2017, 12:55 PM Stephen Smalley <sds@tycho.nsa.gov> wrote:

> On Fri, 2017-04-07 at 15:41 -0400, Stephen Smalley wrote:
> > On Fri, 2017-04-07 at 11:39 -0700, Nick Kralevich wrote:
> > > When a file is created in a directory, the default label for the
> > > file
> > > is based on the label of the enclosing directory (unless something
> > > like setfscreatecon is used). For example:
> > >
> > > bullhead:/ # cd /data/misc/zoneinfo/
> > >
> > > bullhead:/data/misc/zoneinfo # ls -ladZ .
> > > drwxrwxr-x 2 system system u:object_r:zoneinfo_data_file:s0 4096
> > > 1971-06-19 17:07 .
> > > bullhead:/data/misc/zoneinfo # touch asdf
> > > bullhead:/data/misc/zoneinfo # ls -ladZ . asdf
> > >
> > > drwxrwxr-x 2 system system u:object_r:zoneinfo_data_file:s0 4096
> > > 2017-04-07 18:32 .
> > > -rw-rw-rw- 1 root   root   u:object_r:zoneinfo_data_file:s0    0
> > > 2017-04-07 18:32 asdf
> > >
> > > note how the label of the "asdf" file matches the label of the
> > > enclosing directory.
> > >
> > > However, that's not true when the directory uses categories. In
> > > that
> > > case, the newly created file inherits the label, but not the
> > > categories. For example:
> > >
> > > bullhead:/data/data # cd /data/data/com.android.chrome
> > > bullhead:/data/data/com.android.chrome # ls -ladZ .
> > > drwx------ 6 u0_a60 u0_a60 u:object_r:app_data_file:s0:c512,c768
> > > 4096
> > > 1971-07-15 15:31 .
> > > bullhead:/data/data/com.android.chrome # touch asdf
> > > bullhead:/data/data/com.android.chrome # ls -laZd . asdf
> > > drwx------ 6 u0_a60 u0_a60 u:object_r:app_data_file:s0:c512,c768
> > > 4096
> > > 2017-04-07 18:35 .
> > > -rw-rw-rw- 1
> > > root   root   u:object_r:app_data_file:s0              0
> > > 2017-04-07 18:35 asdf
> > >
> > > Note how the label is maintained, but the "c512,c768" portion is
> > > not
> > > maintained. While this example occurs when I'm running in a
> > > permissive
> > > domain, it also occurs in an enforcing domain.
> > >
> > > The inconsistency seems weird, and I'm sure there's a good reason
> > > why
> > > this occurs that I'm not familiar with. Can someone help me
> > > understand
> > > if this is expected, and if so, why?
> >
> > First, the good news is that you get to specify which behavior you
> > want
> > for each context field and object class through policy (as long as
> > your
> > kernel and policy version supports it), see:
> > https://selinuxproject.org/page/DefaultRules
> >
> > Second, there are different defaults for each of the fields of the
> > security contexts based on what is most normative for that particular
> > security model.  The user identity defaults to that of the creating
> > process since we typically do not allow a process to create files
> > with
> > a different user identity and want the file to reflect its creator
> > (this is defined through constraints on user identity in policies
> > that
> > define more than one, unlike Android). The role defaults to the fixed
> > object_r role because originally we didn't envision a use case for
> > roles on files.  The MLS range defaults to the low/current level of
> > the
> > process because a process is typically not allowed to create files at
> > a
> > different level and we want the file to reflect the sensitivity of
> > the
> > data which originated from the process. The type defaults to a
> > related
> > object type (in this case that of the parent directory) because
> > process
> > domains and object types are separate (aside from overlapping use for
> > /proc/pid) and the relationships among them are explicit through the
> > TE
> > rules / access matrix rather than through implicit rules.
> >
> > Of course, in addition to being able to globally configure the
> > default
> > behavior, you can also customize specific cases through the
> > role/type/range_transition rules.
> >
> > With your example above, you wanted the file to inherit the level of
> > the directory, but consider the situation where a process with
> > categories (:s0:c512,c768) creates a file in some shared
> > (mlstrustedobject) directory that is just :s0.  Do you want that file
> > to end up as just :s0?  In the MLS world, that would be a downgrade /
> > info leak.
>
> I guess that's not a great example since then the file would also end
> up with the same type by default and thus would be a mlstrustedobject
> and accessible regardless of its level.  So you'd want a type
> transition to a derived type for files created in that directory to
> avoid that.
>
> _______________________________________________
> Selinux mailing list
> Selinux@tycho.nsa.gov
> To unsubscribe, send email to Selinux-leave@tycho.nsa.gov.
> To get help, send an email containing "help" to
> Selinux-request@tycho.nsa.gov.

[-- Attachment #2: Type: text/html, Size: 8975 bytes --]

  reply	other threads:[~2017-04-07 20:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07 18:39 MLS directory label inheritance rules Nick Kralevich
2017-04-07 18:51 ` William Roberts
2017-04-07 19:01 ` Dominick Grift
2017-04-07 19:41 ` Stephen Smalley
2017-04-07 19:58   ` Stephen Smalley
2017-04-07 20:15     ` Dennis Sherrell [this message]
2017-04-07 20:19       ` Joshua Brindle
2017-04-07 20:53       ` Casey Schaufler
2017-04-07 21:31       ` William Roberts

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='CAN1YQdEfpw-D2fTSVKK2VHOCRuB=k7QLzhpK0vvaYXvD8B++XQ@mail.gmail.com' \
    --to=sherrellconsulting@gmail.com \
    --cc=Selinux@tycho.nsa.gov \
    --cc=nnk@google.com \
    --cc=sds@tycho.nsa.gov \
    /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.