Re: rbacsep: collapsing xserver

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

 



On Wed, May 28, 2008 at 1:59 PM, Eamon Walsh <ewalsh@xxxxxxxxxxxxx> wrote:
> Christopher J. PeBenito wrote:
>>
>> On Wed, 2008-05-28 at 11:42 -0500, Joe Nall wrote:
>>
>>>
>>> On Wed, May 28, 2008 at 11:02 AM, Christopher J. PeBenito
>>> <cpebenito@xxxxxxxxxx> wrote:
>>>
>>>>
>>>> On Wed, 2008-05-28 at 10:16 -0500, Joe Nall wrote:
>>>>
>>>>>
>>>>> On Wed, May 28, 2008 at 9:38 AM, Christopher J. PeBenito
>>>>> <cpebenito@xxxxxxxxxx> wrote:
>>>>>
>>>>>>
>>>>>> I've got to the point where I am collapsing the derived types in the
>>>>>> xserver module.  It would be nice to collapse all of the X server
>>>>>> domains into xserver_t, but we have xdm_xserver_t which has
>>>>>> permissions
>>>>>> greater than user_xserver_t, staff_server_t, etc.  However, just about
>>>>>> everyone runs their xserver in xdm_xserver_t due to logging in via
>>>>>> xdm.
>>>>>> Thoughts on collapsing all of the xservers anyway?
>>>>>>
>>>>>
>>>>> Why is the way the xserver gets launched important once it is running?
>>>>>
>>>>
>>>> If you log into the console and run startx, your xserver is
>>>> user_xserver_t, staff_xserver_t, etc.  If you log in via a display
>>>> manager, your xserver is xdm_xserver_t, since the server is started by
>>>> xdm before a user logs in.  So you lose separation if you log in via
>>>> xdm.
>>>>
>>>
>>> Understood.
>>>
>>>
>>>>
>>>> There have been suggestions about either restarting the xserver or
>>>> dyntransitioning it to the correct context after logging in, but nothing
>>>> materialized on that.
>>>>
>>>>
>>>>>
>>>>> Does that change when X is an object manager?
>>>>>
>>>>
>>>> No.
>>>>
>>>
>>> Poorly worded question. _Should_ that change when X is a object manager?
>>>
>>
>> We would certainly prefer that each role always has their derived type
>> xserver (or role is set on xserver, if rbacsep succeeds), regardless if
>> its an object manager or not.
>>
>
> I have always disliked xdm_xserver_t and its associated policy shenanigans
> (what if someone creates a role named "xdm"?)
>
> The problem has always been the display manager behavior described above.
>  However this can be solved in at least three ways: 1) Restart the X server
> after the user logs in.  2) Have the X server setcon itself to the new
> context.  3) Multi-user switching where xdm stays up all the time and users
> get new X servers on different consoles.
>
> The easiest solution for me to work on is 2) because I don't have to touch
> the GDM code.  I'd like to see rbacsep succeed though.
>
>>
>>>
>>> What is the driver for the derived types? User preference files in
>>> their home directory?
>>>
>
>
> There's some argument to be made that the X server is part of the user's
> session.  For example, in mulit-user switching there is more than one server
> running, one for each user.
>
> If rbacsep succeeds then the derived types will go away regardless.
>
>>>
>>>>>
>>>>> On a related topic, what is the type enforcement strategy for window
>>>>> managers?
>>>>>
>>>>
>>>> They currently run in the user's context.  The basic templates in the
>>>> policy should still allow for separations.  The policy for X objects is
>>>> still immature, so I'm definitely open to suggestions.
>>>>
>>>
>>> I did some brief experiments with the X server in MLS enforcing mode a
>>> while back and it looked like a separate type would be required to
>>> avoid giving the user silly levels of privilege. I'll try to get back
>>> to those experiments next week.
>>>
>
> The window manager must have full access to all windows on the screens that
> it's managing.  In non-MLS this means at least full privileges on the role
> and probably for other roles too, if you're going to be popping up sysadm
> windows.  In MLS this means access across all levels, there's really no way
> around this.
>
>
>>> Any opinions on spitting the display manager (gdm/xdm) policy out of
>>> the xserver policy? The current xserver policy is quite a bit bigger
>>> than apache and several times the average policy size (te + if).
>>>
>>
>> You can blame me for that.  The xdm policy used to be separate before
>> refpolicy, but it was so intertwined with the xserver policy that there
>> wasn't a sane way to write the policies separately and still keep the
>> refpolicy encapsulation.  If we collapse all xservers into xserver_t, it
>> may be possible to separate xdm again.  If not, xdm will be put into a
>> tunable when we get real tunable support in the compiler.
>>
>
>
> --
> Eamon Walsh <ewalsh@xxxxxxxxxxxxx>
> 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.
>

>From http://www.gnome.org/projects/gdm/docs/2.20/overview.html:

"On Solaris, GDM (since version 2.8.0.3) uses the SDTLOGIN interface
after user authentication to tell the X server to be restarted as the
user instead of as root for added security. When the user's session
exits, the GDM daemon will run the PostSession script as root."

Couldn't we utilize the same functionality on Fedora?


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