Re: limitations of CONTEXT__CONTAINS interface

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

 



On Mon, Jan 5, 2009 at 7:18 AM, Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
> On Fri, 2008-12-19 at 15:27 -0600, Xavier Toth wrote:
>> On Mon, Dec 8, 2008 at 8:22 AM, Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
>> > On Fri, 2008-12-05 at 19:46 -0500, Eamon Walsh wrote:
>> >> The attached C code uses the CONTEXT__CONTAINS permission check to check
>> >> dominance, and produces the following output on my mls box:
>> >>
>> >> staff_u:staff_r:staff_t:s15:c0.c255 dominates staff_u:staff_r:staff_t:s0
>> >>
>> >> system_u:object_r:etc_t:s15:c0.c255 does not dominate system_u:object_r:etc_t:s0
>> >>
>> >>
>> >> Why doesn't this check work in the second case?
>> >
>> > Likely due to a TE denial.  The existing policy likely only has:
>> > allow domain self:context contains;
>> > as the original use case for this check was to apply a check between two
>> > subject contexts.
>> >
>> > If you want to use it for object contexts, you'll have to allow it for
>> > those types as well.
>> >
>> >> My color translation code has a config file that may contain lines such
>> >> as (paraphrasing):
>> >> range s0 = green
>> >> range s1 = yellow
>> >> range s1:c1 = blue
>> >> range s15:c0.c255 = red
>> >>
>> >> and so forth, which are matched with incoming contexts using a dominance
>> >> check.  The observed behavior above is causing this not to work.
>> >
>> > --
>> > 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.
>> >
>>
>> Can anyone help me understand the results I'm getting here? I wrote
>> this python script (compute_av.py) to test the dominance check:
>>
>> import selinux
>> SECCLASS_CONTEXT = selinux.string_to_security_class("context")
>> CONTEXT__CONTAINS = 2
>>
>> rc, con = selinux.getcon()
>> con_array = con.split(":")
>>
>> avd = selinux.av_decision()
>> con_array[3] = "s0:c0.c255"
>> ctx = ':'.join(con_array)
>> con_array[3] = "s0"
>> raw = ':'.join(con_array)
>> rc = selinux.security_compute_av_raw(ctx, raw, SECCLASS_CONTEXT,
>> CONTEXT__CONTAINS, avd)
>> print ctx, raw, avd.allowed
>>
>>
>> [tedx@comms ~]$ runcon system_u:system_r:initrc_t:s0-s15:c0.c1023
>> python compute_av.py
>> system_u:system_r:initrc_t:s0:c0.c255 system_u:system_r:initrc_t:s0 0
>> [tedx@comms ~]$ python compute_av.py
>> user_u:user_r:user_t:s0:c0.c255 user_u:user_r:user_t:s0 2
>>
>>
>> I ran these test in permissive mode. Why doesn't
>> system_u:system_r:initrc_t:s0:c0.c255 dominate
>> system_u:system_r:initrc_t:s0?
>
> Existing policy likely only allows context contains permission for the
> user domains, as that was the only original use case for it (for
> checking whether a specified user context is contained by another).
>
> --
> Stephen Smalley
> National Security Agency
>
>

I posted a refpolicy patch to allow setrans_t this premission because
the mcstrans color patch requires it.

Ted

--
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