From: daw@cs.berkeley.edu (David Wagner)
To: linux-kernel@vger.kernel.org
Subject: Re: A basic question about the security_* hooks
Date: Sun, 27 Dec 2009 20:28:23 +0000 (UTC) [thread overview]
Message-ID: <hh8g17$qlu$1@taverner.cs.berkeley.edu> (raw)
In-Reply-To: 22669.1261911374@localhost
>Sure, it's *possible* to create a system where you've loaded 2 security systems
>and have it work. But the general consensus is that if you're running one
>system and want to run a second, it's easier to ask yourself *why* you want to
>run the second, and see if there's some way to get the added functionality
>supported in the first system.
Read the thread, where you can find the answer *why*. The question has
already been answered. As far as I can tell, the answer is not what you
are presuming. As far as I can tell, the answer is, the original poster
wants a simple, fairly high-assurance, easy-to-configure way to disable
network access for certain processes, to facilitate privilege-separated
software architectures. That's a great goal. It's a goal that is not
easily supported by, say, SELinux.
So now suppose you are starting with a system that's running SELinux,
and you want to add functionality to meet the original poster's goals.
What do you do? You've basically got two choices: (a) hardcode it in,
ignoring the LSM hooks; or (b) build a little LSM that enforces this
using the LSM hooks.
If you go with approach (a), Alan Cox gives you a hard time and says
"this ought to be done with a LSM".
If you go with approach (b), you're dead in the water: because people
have a kneejerk reaction against ever allowing composition of LSMs,
there's no way to use your own little LSM on your system (without
turning off SELinux or whatever LSM was already installed -- and
this cure is arguably worse than the disease).
It's a catch-22. What are you supposed to do? The poster has asked for
your advice about the best way to accomplish his goals, and is open to
any approach that meets these goals. So far all I have heard is "No".
I think folks could be more constructive.
I think people have committed a logical fallacy here: they've reasoned
that in the general case, composition is hard to reason about, therefore
all composition must be bad. The "therefore" does not follow.
>The basic problem is that large complete MAC systems like TOMOYO, SELinux,
>Smack, or AppArmor are complicated. In addition, they are unable to look at
>each other's policies to detect potential conflicts. As a result, although
>it's probably *possible* to create a system that loads both a TOMOYO and
>an SELinux policy, it's hazardous:
But that's irrelevant. Re-read the thread. The poster doesn't want
to compose TOMOYO+SELinux. He wants to compose SELinux+his little LSM.
Or AppArmor+his little LSM. Or (whatever LSM was already installed)+his
little LSM. TOMOYO+SELinux is a strawman.
The fact that composing TOMOYO+SELinux is hazardous says little or nothing
about the merits of composing SELinux+his little LSM. His little LSM
is, well, little, and as a result likely to be noticeably easier to
reason about. Sure, there may be tricky corner cases. Sure, there
could be subtle hazards lurking here. But don't jump immediately to
the worst case when the worst case isn't what's at issue here.
Yes, composition is hard. Look, software is hard. We suck it up
and deal with it. We make the best of it. We choose architectures
that minimize the likelihood of breakage. (And in many ways that is
the kind of thing the original poster has done, and is open to doing.)
But we don't give up and say, oh forget about this software stuff,
it's too hard, let's go to the beach instead.
next prev parent reply other threads:[~2009-12-27 20:28 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-24 2:29 A basic question about the security_* hooks Michael Stone
2009-12-24 4:50 ` Casey Schaufler
2009-12-24 12:53 ` Eric W. Biederman
2009-12-24 21:55 ` Tetsuo Handa
2009-12-25 0:05 ` Serge E. Hallyn
2009-12-31 17:50 ` David P. Quigley
2010-01-04 2:12 ` Paul Moore
2009-12-24 7:36 ` Evgeniy Polyakov
2009-12-24 18:57 ` Samir Bellabes
2009-12-25 0:14 ` Serge E. Hallyn
2009-12-25 1:11 ` Michael Stone
2009-12-25 5:50 ` Serge E. Hallyn
2009-12-26 19:50 ` Michael Stone
2009-12-27 3:16 ` Serge E. Hallyn
2009-12-27 4:02 ` Tetsuo Handa
2009-12-27 10:56 ` Valdis.Kletnieks
2009-12-27 14:54 ` Serge E. Hallyn
2009-12-27 20:28 ` David Wagner [this message]
2009-12-28 2:08 ` Valdis.Kletnieks
2009-12-28 11:51 ` Tetsuo Handa
2009-12-28 14:45 ` Valdis.Kletnieks
2009-12-28 14:51 ` Valdis.Kletnieks
2009-12-29 13:01 ` Label based MAC + Name based MAC (was Re: A basic question about the security_* hooks) Tetsuo Handa
2010-01-02 13:56 ` A basic question about the security_* hooks Pavel Machek
2009-12-28 15:24 ` Kyle Moffett
2009-12-29 1:43 ` Casey Schaufler
2009-12-29 19:02 ` Kyle Moffett
2009-12-30 19:49 ` Casey Schaufler
2009-12-27 0:33 ` Mimi Zohar
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='hh8g17$qlu$1@taverner.cs.berkeley.edu' \
--to=daw@cs.berkeley.edu \
--cc=daw-news@taverner.cs.berkeley.edu \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox