LWN.net Logo

Homeopathic Doses of Novelty

Homeopathic Doses of Novelty

Posted Feb 16, 2008 16:33 UTC (Sat) by AnswerGuy (subscriber, #1256)
In reply to: Clark-Wilson Triple and the Confused Deputy by tv
Parent article: Role-based access control in SELinux (developerWorks)

I can't help but point out that quite alot of academic work is not intended to clump together
large "doses of novelty."

In fact, the nature of most academic research and publication is to focus on one particular
subject or perhaps a novel combination of otherwise well-known topics and perform and in-depth
analysis of that.  Naturally such things are "boring" to most people and only relevant to very
narrow groups (usually other researchers in the same niche of the same field and occasionally
in other fields which are affected by the topic at hand.

My earlier point was that sometimes there are facets of a body of knowledge which become
"terms of art" in their field.  On the one hand one can argue that a requirement to use the
terms of art is elitist (who cares of he knows about the Clark-Wilson work if he describes the
concept adequately).

But my point was that the omission does have some downsides.  In particular a reference to
such a fundamental term gives the reader the basis for finding out quite a bit more
information with very little additional effort.  It's omission would make it very difficult to
find this related work (no other simple terms or phrases are sufficiently unique to the
discussion to readily lead to it using search engines ... for example).

Also on the other hand, the proper use of these obscure "terms of art" allows one to more
succinctly base one's work on those concepts and allows those readers familiar with the
terminology to get to the point more quickly.  (Yes, this can be at the expensive of broader
readership which might be forced to chase a hyperlink or read a side bar or whatever to "catch
up").

In the case of these "Clark-Wilson triples" the concept is recurring (for example using
traditional UNIX set group ID (SGID) it's possible for me to "deputize" a program so that it
has access to data (such as a game's score file, or a mail spool) while preventing direct
access thereto (using arbitrary tools such as an editor).  Unfortunately the problem of the
confused deputy is also recurrent.

(There are also some odd issues in the traditional UNIX model: for example if I want to make a
certain SGID program only accessible to members of a different group then I have to use
permissions on one or more parent directories to the program's links to express that policy.
Example: I might have a cash register file which I want to be modified only by certain
accounting programs while also restricting access such that those accounting programs can only
be accessed by a certain group of users -- cashiers, for example.  Normally programmers and
admins immediately reach for SUID in that situation.  But that carries even higher risks (the
confused deputy can chmod "his" files and thereby completely expose them).  A different
technique is to put the accounting programs into a directory which is associated with the
target user group (chgrp cashiers ./acctbin) and which is not world executable (chmod 07450
./acctbin).  Now the acctbin/* executables can be marked SGID to the acctdata group.  Result:
only members of the cashiers group can execute the programs which are deputized to modify the
accouting data.  Despite this wrinkle it is far less complicated and plausibly about as
effective as the SELinux model described in the original article.  (Incidentally one can
express logical OR and logical AND relationships using hard links into other parent
directories and multiple levels of directory.  I'll leave that as an exercise to the reader).

Now I will also grant that referring to these as "Clark-Wilson triples" may be misleading.
They describe a set of relationships among user, program and data which is similar to those
detailed by the "Clark-Wilson integrity model" but the system as a whole doesn't conform to
their design.  (Remember the little constraint about who the creator/maintainer of these
triples must not have direct execute permissions on the programs in question).  However I
think that giving this particular relationship a name is useful for discussing systems
administration topics more succinctly.  When I say I have "deputized" a program it would be
nice if that was as readily understood as when I might way that I've "wrapped" it with a
script.  (And, in fact, one could then talk about deputizing a wrapper in a meaningful way
without getting bogged down by the details).

I remain unconvinced that SELinux gives us enough real additional functionality to justify
it's horrendous complexity.  I still advocate more widespread use of systrace which is simple
enough to explain in a page and to more or less fully document in a few pages (with the
pre-requisite that the reader understands UNIX/Linux system call usage) and which is analagous
to an ubiquitous networking security model.  So I can tell any sysadmin that systrace is like
a firewall or set of packet filters between user space and the system call interface to the
kernel and I've summarized the entirety of the systrace model in a single sentence.  Anyone
who has dealt with packet filtering will then already have a ready frame of reference into
which to feed the usage details.  They will probably "get it" immediately.  I have seen almost
zero traction on the SELinux model.  It's so convoluted and so disjoint from the rest of the
UNIX/Linux permissions and access/control model that the vast majority of sysadmins prefer to
disable it wherever possible.

We could argue that those sysadmins are just a bunch of old-fogeys who are unwilling to
embrace change and who are impeding progress.  I've seen SELinux proponents come just short of
calling all of the rest of us a bunch of Luddites.  (If we were truly "Luddites" then SELinux
should be welcomed as it's complexity will surely guarantee those of us who can learn it
paying work for the rest of our careers).

Anyway, I hope this is entertaining and perhaps a bit informative because, at this point I
realize I'm just rambling.  Time to get that first cup of coffee. :)

JimD


(Log in to post comments)

Homeopathic Doses of Novelty

Posted Feb 21, 2008 13:58 UTC (Thu) by smitty_one_each (subscriber, #28989) [Link]

>My earlier point was that sometimes there are facets of a body of knowledge which become
"terms of art" in their field.  On the one hand one can argue that a requirement to use the
terms of art is elitist (who cares of he knows about the Clark-Wilson work if he describes the
concept adequately).

>But my point was that the omission does have some downsides.  In particular a reference to
such a fundamental term gives the reader the basis for finding out quite a bit more
information with very little additional effort.  It's omission would make it very difficult to
find this related work (no other simple terms or phrases are sufficiently unique to the
discussion to readily lead to it using search engines ... for example).

"terms of art" are pointers on the cognitive stack to vastly bigger amounts of information out
there on the research heap.
The indirection speeds up the process of absorbing new material if you're along the learning
curve already, but the complexity hurts the New Guy.
Tradeoffs: always, the tradeoffs.

The other point is that affixing one's name as the symbol identifying an idea is one form of
immortality for all the Gilgamesh characters out there.
Matt Mackall's  sig on the LKML: "Mathematics is the supreme nostalgia of our time."

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.