From: Bill Laut <wlsel@verizon.net>
To: Eamon Walsh <ewalsh@epoch.ncsc.mil>
Cc: SELinux Mailing List <selinux@tycho.nsa.gov>
Subject: Re: Emacs major mode for policy editing
Date: Fri, 26 Sep 2003 22:09:36 -0400 [thread overview]
Message-ID: <200309262209.36797.wlsel@verizon.net> (raw)
In-Reply-To: <1064614177.5342.7.camel@moss-tarheels.epoch.ncsc.mil>
On Friday 26 September 2003 06:09 pm, you wrote:
> On Fri, 2003-09-26 at 17:43, Bill Laut wrote:
> > On Thursday 25 September 2003 11:36 am, Eamon Walsh wrote:
> > > My name is Eamon Walsh; I recently joined the NSA selinux team.
> > > I will be working on putting policy enforcement into XFree86.
> >
> > When do you anticipate having security-enhanced X completed?
> >
> > Bill
>
> I just came on board and have been studying the problem; no definite
> implementation strategy exists yet.
>
I've been looking at it off and on for a few months. I used to heavily hack X
about 10 to 13 years ago, so this is largely "old stomping grounds" for me.
Bringing myself up to speed on the internals of SELinux is the bigger
challenge to me.
>
> We talked with an experienced X person who claims he can solve the
> problem (which consists of two parts: policy enforcement in the X server
> and "labeling" of windows by the window manager) in six months. This
> person might get hired as well as myself. I will be working on this for
> 8 months or so.
>
An estimate of six months strikes me as "contingency planning" and which is
certainly acceptable. My personal implementation schedule, however, will be
considerably more aggressive.
Of course, I'm not under contract to NSA and therefore you cannot depend on me
hitting my time estimate. If I'm successful, great! My stuff will get
released under the GPL for all to benefit. If not, well, you have eight
months to get it working.
>
> I have been looking at the X Security extension and trying to figure out
> if this code could be used as a starting point. It seems pretty good so
> far, but I'm concerned about how other extensions interact with it
> (notably Xag and XTrap).
>
I think you're going too far up the tree. You want to be closer to the root.
X has a well-defined protocol interfacing the client's Xlib and the XServer
via a "Transport Layer" that implements the Event and Request Queues. In
fact, with some implementations (such as DECWindows under VMS) there is a
bona fide formal Transport Layer in which you can implement your own
Transports to handle whatever abstraction you want to speak X over.
Everything going into and out of the XServer (with the obvious exception of
the monitor, keyboard, and mouse, etc.) goes through those Queues via that
Transport layer. Therefore, it makes more sense to install the "gatehouse"
at the XServer's main dispatcher because (1) we can enforce policy on ALL
Requests and Events to/from ALL Xclients, local and remote; and (2) in so
doing minimize the changes needed to XFree86.
As an "extra homework assignment," this could also be a good excuse to go
through the code to hunt down potential buffer overruns and nail them in the
Gatehouse, but that could be for another topic.
Of course, there will undoubtedly be some things that won't fit this paradigm
and will have to be handled within their own modules. However, the majority
of tasks will fit within the "gatehouse" and so it makes sense to "kill as
many birds with one stone" as is possible.
>
> I think the hardest part will be cut & paste, which seems to be a big hack
> in X overall.
>
I'm suspecting it will depend on how "messy" you want to get with it.
Personally, for now, I don't think it will be a major issue.
The scenario I consider a paradox is how to enforce policy on remote clients.
To wit, where all the clients are local on the same box with the XServer, it
is trivial to independently authenticate each client via the kernel. Kind of
like Kerberos' use of the "trusted third-party" model, but where our
third-party is the kernel itself. Piece of cake: The XServer doesn't use
anything the client could possibly say about itself to decide whether or not
to allow a given Request to be accepted, because the authenticating data was
never within the client's reach to possibly taint.
On the other hand, what do we do with remote clients connecting via the
network? Anything more than a summary policy decision will require
authentication data not stored on the XServer's box. How do we protect
ourselves from being spoofed?
Furthermore, this requirement, in turn, could conceivably lead into
discussions of crypto (to protect the TCP stream) that NSA employees may or
may not be allowed to discuss within a mailing list. This may be a point
that an appropriate echelon should investigate and mention for our benefit at
this project's outset, so that we don't violate any rules.
>
> Did you post to the list earlier this month and say you were also
> working on this problem? Someone did and I lost the e-mail.
> Once the project gets rolling there will be more list traffic, for sure.
>
> --Eamon
Yes, I had posted to the list that I was working on Security-Enhanced X (or
"s-ex," as Russell puckishly termed it) some time ago.
I have one other committment that I'm finishing this week, and then I can
devote more time to s-ex. In my last posting to the list I committed myself
to delivering a first draft of an implementation strategy by mid-October, and
I'm still shooting for that target.
The purpose of the document is to give everyone on the mailing list a chance
to review it and identify errors, omissions. Shoot arrows at it. That sort
of thing. All contributions, ideas, suggestions are welcomed. Then, once
everything is identified I want to get started implementing the controls
within X.
Bill
--
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.
next prev parent reply other threads:[~2003-09-27 2:07 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-25 15:36 Emacs major mode for policy editing Eamon Walsh
2003-09-25 18:38 ` Chris PeBenito
2003-09-26 21:43 ` Bill Laut
[not found] ` <1064614177.5342.7.camel@moss-tarheels.epoch.ncsc.mil>
2003-09-27 2:09 ` Bill Laut [this message]
2003-09-27 10:24 ` Russell Coker
2003-09-27 20:24 ` Bill Laut
2003-09-28 3:43 ` Russell Coker
2003-09-28 17:25 ` Bill Laut
2003-09-29 1:33 ` Bill Laut
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=200309262209.36797.wlsel@verizon.net \
--to=wlsel@verizon.net \
--cc=ewalsh@epoch.ncsc.mil \
--cc=selinux@tycho.nsa.gov \
/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.