Re: Not quite MLS.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2009-08-17 at 17:38 -0400, rob myers wrote:
> On Mon, 2009-08-17 at 07:40 -0400, Stephen Smalley wrote:
> > On Fri, 2009-08-14 at 17:30 -0400, rob myers wrote:
> > > I would like to create a login that has access to one category at the
> > > highest sensitivity level, but in another category only has access at a
> > > lower sensitivity level.  For example, on a system where SystemHigh is
> > > s0-s3:c0.c3, one login could be defined as something similar to:
> > > s0-s1:c0.c3, s2:c2.c3, s3:c3, while another login could be defined as
> > > s0-s2:c0.c3, s3:c0.c2 .
> > > 
> > > Am I correct that MLS policy cannot support this scenario?
> > > 
> > > Is this possible under any old, current, or developmental SELinux
> > > policy?
> > > 
> > > Would it be possible to write such a policy with the existing SELinux
> > > user/kernel land?
> > > 
> > > Thanks for any pointers,
> > 
> > I'm not clear on what you are trying to achieve
> 
> Let me try and be more clear, or at least state things in a different
> way.
> 
> I want to build a system that stores category 0 (c0) data at each
> sensitivity level (s0-s3).  The system also stores category 1 (c1),
> category 2 (c2), and category 3 (c3) data at each sensitivity level
> (s0-s3).  Therefore the data on the system falls into the s0-s3:c0.c3
> range.
> 
> Next, I want to add users to this system.  UserA has access to all
> categories at the s0 and s1 levels.  At the s2 level UserA has access to
> categories 2 and 3.  At the s3 level UserA has access to category 3
> data.  UserA's access to data could be thought of as this set of
> { s0-s1:c0.c3, s2:c2.c3, s3:c3 } ranges.  As you can see, UserA should
> not be able to read category 0 or 1 data at the s2 level even though
> UserA can read category 3 data at the s3 range.
> 
> Similarly UserB has access to all categories at the s0, s1 and s2
> sensitivity levels.  At the s3 level UserB has access to categories 0,
> 1, and 2.  UserB's access to data could be thought of as this set of
> { s0-s2:c0.c3, s3:c0.c2 } ranges.  As you can see, UserB should not be
> able to read category 3 data at the s3 level even though UserB has
> access to category 3 data at lower sensitivity levels and has access to
> other sensitivity level 3 data.
> 
> Perhaps a better way to express this is on a per category per user
> basis:
> 
> UserA's access matrix:
> 
> category, sl0, sl1, sl2, sl3
>        0, yes, yes, no , no 
>        1, yes, yes, no , no 
>        2, yes, yes, yes, no 
>        3, yes, yes, yes, yes 
> 
> UserB's access matrix:
> 
> category, sl0, sl1, sl2, sl3
>        0, yes, yes, yes, yes
>        1, yes, yes, yes, yes
>        2, yes, yes, yes, yes
>        3, yes, yes, yes, no 
> 
> 
> I believe the difference between SELinux with MLS policy and what I am
> trying to build is that I want higher sensitivity levels to dominate
> lower sensitivity levels only on a per category basis.
> 
> For example, it is my understanding that under MLS UserB must have
> sensitivity level 3 access to category 3 because UserB has access to
> sensitivity level 3 access to other categories.  Another possibility
> under MLS would be to remove UserB's access to category 3 for all
> sensitivities.  Neither of these is what I want the system to do.
> 
> Is that more clear about what my goals are?
> 
> > At present, the kernel policy configuration specifies a default level
> > and a (single) range for each SELinux user identity defined in the
> > policy.  It also defines what categories can be associated with what
> > sensitivities, so that you could specify that e.g. c3 can only ever be
> > associated with s3, although the current refpolicy merely automatically
> > generates a list of all categories for each sensitivity.
> 
> Ok, thanks for pointing that out.
> 
> > The userland configuration specifies a SELinux user and a (single) range
> > for each Linux user / login.  That range has to be a subset of the one
> > authorized for the SELinux user.  That lets you specify subranges for
> > individual Linux users without having to define each of them within the
> > kernel policy.
> 
> Perhaps what I'm describing is multiple ranges for each user / login.
> Could that be achieved with user space modifications only?
> 
> Thanks for reading this far,

You could certainly modify the seusers configuration to support a list
of ranges per Linux user rather than only a single range.  That would
require changes to libsemanage and semanage (to add such entries) and to
libselinux and pam_selinux (to read and use such entries).

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux