All of lore.kernel.org
 help / color / mirror / Atom feed
From: john.johansen@canonical.com (John Johansen)
To: linux-security-module@vger.kernel.org
Subject: The secmark "one user" policy
Date: Thu, 22 Jun 2017 11:49:15 -0700	[thread overview]
Message-ID: <3baf4aae-6268-356b-8545-30655f561192@canonical.com> (raw)
In-Reply-To: <alpine.LRH.2.20.1706221937410.20196@namei.org>

On 06/22/2017 02:54 AM, James Morris wrote:
> On Wed, 21 Jun 2017, Casey Schaufler wrote:
> 
>> Ideally there would be a separate secmark for each security
>> module that wants to use the mechanism. Mechanism would be
>> provided* so that user-space can identify which security
>> module it is referring to when interacting with the kernel.
>> My understanding is that we're unlikely to get an expanded
>> secmark, so I have concentrated elsewhere.
> 
> I don't see us getting an expanded secmark, either.
> 
>>
>> A "clever" secid mapping takes the secids from all the
>> security modules and gently manipulates them until they
>> fit into a single u32. This might be an index into a list
>> of secid sets, but if you have two modules using secids
>> you can give each half of the secmark and accommodate
>> many configurations, including Fedora. Again, you need
>> mechanism* for user-space. This option would require changes
>> to the xt_SECMARK implementation, which goes out of it's
>> way to ensure all secmarks come from the same security
>> module. One option is to add a SECMARK_MODE_COMPOUND, but
>> that isn't any more helpful then removing the restriction.
> 
> This sounds very ugly, and each user may assume it has 32 bits of secmark.
> 
>> As for configuration options, SELinux only uses secmarks
>> when user-space introduces them. If netfilter doesn't have
>> any security rules that add secmarks, none are used. Smack
>> can be configured to set secmarks on all packets, with the
>> potential for change by user-space, but can also be set up
>> without any use of secmarks. There doesn't need to be any
>> significant change to xt_SECMARK if it is important to
>> maintain the "one user" model. Requiring that the user-space
>> use of netfilter be sane for the multiple security module
>> case (e.g. don't use SELinux firewall if Smack has the
>> secmark) seems somewhat reasonable.
> 
> Reasonable?  I don't think so.  
> 
> Trying to stack major LSMs arbitrarily and exposing that to userland is an 
> architectural mess, which is what these kinds of problems are really 
> telling us.
> 

The use case I keep seeing is not exposing multiple LSMs to the user
space. Its the container where the container wants a different LSM
than the system is running.

Stacking 2 LSMs in that case and only exposing one to user space isn't
so unreasonable.

> How can a user be expected to reason about a system which is running 
> multiple independent MAC security models simultaneously?  It's a terrible 
> idea.
> 

At a generic system MAC level I agree, but not all LSMs that need
state are MACs and in the more limited container case it isn't so
unreasonable.  Arguably virtualization is a better solution for the
container that wants a different MAC but then that forces you to
choose virtualization from the start and not just use the existing pre
built container that you want to pull in and use.

--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2017-06-22 18:49 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-21  0:41 The secmark "one user" policy Casey Schaufler
2017-06-21  7:13 ` James Morris
2017-06-21 15:23   ` Casey Schaufler
2017-06-21 23:07     ` John Johansen
2017-06-21 23:45       ` Casey Schaufler
2017-06-22  0:48         ` John Johansen
2017-06-22  9:54     ` James Morris
2017-06-22 16:17       ` Casey Schaufler
2017-06-23  3:12         ` James Morris
2017-06-23 15:26           ` Casey Schaufler
2017-06-25  9:41             ` James Morris
2017-06-25 18:05               ` Casey Schaufler
2017-06-26  7:54                 ` José Bollo
2017-06-26 15:10                   ` Casey Schaufler
2017-06-27 10:51                     ` José Bollo
2017-06-27 11:58                       ` Paul Moore
2017-06-22 18:49       ` John Johansen [this message]
2017-06-23  3:02         ` James Morris
2017-06-23  4:32           ` John Johansen
2017-06-29  9:10             ` James Morris
2017-06-29 16:46               ` John Johansen
2017-06-22 22:24     ` Paul Moore
2017-06-22 23:20       ` Casey Schaufler
2017-06-23 20:47         ` Paul Moore

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=3baf4aae-6268-356b-8545-30655f561192@canonical.com \
    --to=john.johansen@canonical.com \
    --cc=linux-security-module@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 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.