* Not quite MLS. @ 2009-08-14 21:30 rob myers 2009-08-17 11:40 ` Stephen Smalley 0 siblings, 1 reply; 8+ messages in thread From: rob myers @ 2009-08-14 21:30 UTC (permalink / raw) To: selinux 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, rob. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-14 21:30 Not quite MLS rob myers @ 2009-08-17 11:40 ` Stephen Smalley 2009-08-17 21:38 ` rob myers 0 siblings, 1 reply; 8+ messages in thread From: Stephen Smalley @ 2009-08-17 11:40 UTC (permalink / raw) To: rob myers; +Cc: selinux 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, but I think the answer is that you would have to modify at least the userland and possibly the kernel logic for what you describe. 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. 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. -- 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@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-17 11:40 ` Stephen Smalley @ 2009-08-17 21:38 ` rob myers 2009-08-18 0:40 ` Glenn Faden 2009-08-18 14:34 ` Stephen Smalley 0 siblings, 2 replies; 8+ messages in thread From: rob myers @ 2009-08-17 21:38 UTC (permalink / raw) To: Stephen Smalley; +Cc: selinux@tycho.nsa.gov 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, rob. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-17 21:38 ` rob myers @ 2009-08-18 0:40 ` Glenn Faden 2009-08-18 14:19 ` rob myers 2009-08-18 16:15 ` Paul McNabb 2009-08-18 14:34 ` Stephen Smalley 1 sibling, 2 replies; 8+ messages in thread From: Glenn Faden @ 2009-08-18 0:40 UTC (permalink / raw) To: rob myers; +Cc: selinux@tycho.nsa.gov rob myers wrote: > > 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. > For MLS systems based on the Mitre/DIA label encodings format it is possible to exclude specific categories on a per sensitivity label basis from the User Accreditation Range. For an example, see: http://docs.sun.com/app/docs/doc/819-0874/sec6-2?a=view In your example, you could define specify the valid categories for each of the four classifications (levels). 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 you could specify classification= s10; all compartment combinations valid; classification= s11; all compartment combinations valid; classification= s12; all compartment combinations valid except: c0 c1 classification= s13; only valid compartment combinations: c3 So it is possible to specify a User Accreditation Range conforming to either the UserA or UserB matrix. However, the format only provides for a single User Accreditiation Range that would apply to all users. In MLS systems I'm familiar with, there is no facility to exclude categories from the kernel dominance checks. --Glenn -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-18 0:40 ` Glenn Faden @ 2009-08-18 14:19 ` rob myers 2009-08-18 16:15 ` Paul McNabb 1 sibling, 0 replies; 8+ messages in thread From: rob myers @ 2009-08-18 14:19 UTC (permalink / raw) To: Glenn Faden; +Cc: selinux@tycho.nsa.gov On Mon, 2009-08-17 at 20:40 -0400, Glenn Faden wrote: > rob myers wrote: > > > > 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. > > > For MLS systems based on the Mitre/DIA label encodings format it is > possible to exclude specific categories on a per sensitivity label basis > from the User Accreditation Range. For an example, see: > > http://docs.sun.com/app/docs/doc/819-0874/sec6-2?a=view > > In your example, you could define specify the valid categories for each > of the four classifications (levels). > > 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 > > > you could specify > > classification= s10; all compartment combinations valid; > classification= s11; all compartment combinations valid; > classification= s12; all compartment combinations valid except: > c0 > c1 > classification= s13; only valid compartment combinations: > c3 > > > So it is possible to specify a User Accreditation Range conforming to > either the UserA or UserB matrix. However, the format only provides for > a single User Accreditiation Range that would apply to all users. In MLS > systems I'm familiar with, there is no facility to exclude categories > from the kernel dominance checks. Thank you for the useful information. Unfortunately, specifying different accreditation ranges for different users is exactly what I'm trying to achieve. Thanks, rob. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-18 0:40 ` Glenn Faden 2009-08-18 14:19 ` rob myers @ 2009-08-18 16:15 ` Paul McNabb 2009-08-19 21:53 ` Casey Schaufler 1 sibling, 1 reply; 8+ messages in thread From: Paul McNabb @ 2009-08-18 16:15 UTC (permalink / raw) To: selinux [-- Attachment #1: Type: text/plain, Size: 2056 bytes --] Glenn is right that the Mitre LEF can only work on a per-system rather than a per-user basis for disallowing certain classification and compartment/category constraints. The only MLS system that I know of that did what you are asking for is the old Addamax B1st system. That MLS system had user clearances as a set of labels and label ranges that allowed a specific user clearance to be something like: { unc - ts:1,2,3; unc:4 - sec:4 ; con:5 } which would allow the user to be cleared from unc to ts in categories 1, 2, and 3 but have only a unc to sec clearance in category 4 and only con for category 5. Strictly speaking, a system can be "fully MLS" regardless of the clearance functionality. Some MLS systems have been built (and bought) without any notion of a user clearance at all, particularly some MLS systems built to the first generation of TCSEC requirements. paul Glenn Faden wrote: > rob myers wrote: >> >> 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. >> > For MLS systems based on the Mitre/DIA label encodings format it is > possible to exclude specific categories on a per sensitivity label > basis from the User Accreditation Range. For an example, see: > > > So it is possible to specify a User Accreditation Range conforming to > either the UserA or UserB matrix. However, the format only provides > for a single User Accreditiation Range that would apply to all users. > In MLS systems I'm familiar with, there is no facility to exclude > categories from the kernel dominance checks. > > --Glenn [-- Attachment #2: mcnabb.vcf --] [-- Type: text/x-vcard, Size: 317 bytes --] begin:vcard fn:Paul McNabb n:McNabb;Paul org:Argus Systems Group adr:;;1809 Woodfield Drive;Savoy;IL;61874-9505;USA email;internet:mcnabb@argus-systems.com title:Chief Security Architect tel;work:+1 217-355-6308 tel;fax:+1 217-355-1433 tel;cell:+1 217-493-3818 url:http://www.argus-systems.com version:2.1 end:vcard ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-18 16:15 ` Paul McNabb @ 2009-08-19 21:53 ` Casey Schaufler 0 siblings, 0 replies; 8+ messages in thread From: Casey Schaufler @ 2009-08-19 21:53 UTC (permalink / raw) To: Paul McNabb; +Cc: selinux Paul McNabb wrote: > Glenn is right that the Mitre LEF can only work on a per-system rather > than a per-user basis for disallowing certain classification and > compartment/category constraints. The only MLS system that I know of > that did what you are asking for is the old Addamax B1st system. That > MLS system had user clearances as a set of labels and label ranges > that allowed a specific user clearance to be something like: > > { unc - ts:1,2,3; unc:4 - sec:4 ; con:5 } Trusted Irix also allows ( allowed? :-( ) a list of ranges of labels. Trix uses something like: user:label1:label1 label2 label3...label127 label200 label300...label400 to say that user would get label1 if he didn't specify a login label and that he could ask for label1, label2, label200, any label that dominated label3 that was also dominated by label127 or any label that was dominated by label300 that was also dominated by label400. The internal structure of Trix labels is sufficiently complicated that no one ever spelled them out, they always used aliases. > > which would allow the user to be cleared from unc to ts in categories > 1, 2, and 3 but have only a unc to sec clearance in category 4 and > only con for category 5. > > Strictly speaking, a system can be "fully MLS" regardless of the > clearance functionality. Some MLS systems have been built (and > bought) without any notion of a user clearance at all, particularly > some MLS systems built to the first generation of TCSEC requirements. The Trix kernel never had a notion of clearance. All clearance processing was done in user space. Trix did get a B1 and an LSPP. Sold pretty well, too. Never did use the Mitre/DIA encodings, either. At first Mitre wouldn't let us have it, then we figured out we could live better without it. Not having it may have cost a deal or two, but we certainly made up for it with simpler interfaces. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Not quite MLS. 2009-08-17 21:38 ` rob myers 2009-08-18 0:40 ` Glenn Faden @ 2009-08-18 14:34 ` Stephen Smalley 1 sibling, 0 replies; 8+ messages in thread From: Stephen Smalley @ 2009-08-18 14:34 UTC (permalink / raw) To: rob myers; +Cc: selinux@tycho.nsa.gov 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@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-08-19 21:54 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-08-14 21:30 Not quite MLS rob myers 2009-08-17 11:40 ` Stephen Smalley 2009-08-17 21:38 ` rob myers 2009-08-18 0:40 ` Glenn Faden 2009-08-18 14:19 ` rob myers 2009-08-18 16:15 ` Paul McNabb 2009-08-19 21:53 ` Casey Schaufler 2009-08-18 14:34 ` Stephen Smalley
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.