public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: LSM conversion to static interface
@ 2007-10-25 11:33 Jan Engelhardt
  2007-10-26 10:40 ` Samir Bellabes
  0 siblings, 1 reply; 140+ messages in thread
From: Jan Engelhardt @ 2007-10-25 11:33 UTC (permalink / raw)
  To: Linux Kernel Mailing List
  Cc: Adrian Bunk, Alan Cox, Andreas Gruenbacher, Bernd Petrovitsch,
	Casey Schaufler, Chris Wright, Crispin Cowan, Giacomo Catenazzi,
	James Morris, Jeremy Fitzhardinge, Linus Torvalds,
	linux-security-module, Ray Lee, Simon Arlott, Thomas Fricaccia



As I read through LWN today, I noted the following comment, 
http://lwn.net/Articles/255832/ :

	Personally, I think it's absolutely essential to be able to 
	build a kernel with dynamic LSM. Whether we like it or not, 
	people do want to add in runtime loadable security modules for 
	things like virus scanners, and until upstream offers these 
	folks a viable alternative to LSM...well, they'll use it.

Which reminded me of the TuxGuardian LSM[1] - another of the real-world 
uses to meet Linus's criteria? ("had examples of their real-world use to 
step forward and explain their use")

In this specific project, LSM is used to collect up calls to bind() and 
connect() and pass them to userspace, e.g. do it ZoneAlarm-style and 
display a dialog window. Its codebase is probably not too up-to-date 
(website says last change last April - but I guess that's a no-brainer 
to update it).

[1] http://tuxguardian.sf.net/

^ permalink raw reply	[flat|nested] 140+ messages in thread
* Re: LSM conversion to static interface
@ 2007-10-22 17:00 Thomas Fricaccia
  2007-10-22 17:12 ` Alan Cox
                   ` (2 more replies)
  0 siblings, 3 replies; 140+ messages in thread
From: Thomas Fricaccia @ 2007-10-22 17:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: Alan Cox, Linus Torvalds, Greg KH, LSM ML, Crispin Cowan

Some well-respected contributors have taken exception my amplification
of Crispin Cowan's point about the patch that closes LSM.

Crispin Cowan <crispin@crispincowan.com> wrote:
>     * It prevents enterprise users, and in fact anyone who isn't
>       comfortable compiling their own kernel, from ever trying out any
>       security module that their distro vendor of choice did not ship.

I extended this point by observing that regulatory laws make it difficult
for enterprise customers to compile their own kernels, mentioning one
of the more invasive statutes, Sarbanes-Oxley.

In reply, "Alan Cox" <alan@lxorguk.ukuu.org.uk> writes:
> Crispin at least is providing genuine discussion points. Sarbox has
> nothing to say on "using vendor linux kernels".

And just previously, "Greg KH" <greg@kroah.com> had written:
> Since when does Sarbanes-Oxley decree that a company must use a
> "standard kernel"?  And just exactly what defines such "standard
> kernel"?  Can you point out where in that bill it requires such a
> thing?

I was actually talking about the *effects* of regulatory law, rather
than the wording in the text of the statutes.  The misunderstanding
could be partially my fault, as my exact words were 

   As Sarbanes-Oxley and other regulatory laws require these
   customers to use "standard kernels" ....

which may not have been as unambiguously clear as I intended.

But as long as we're here, let me elaborate on the point I tried to make.

SOX and other laws require enterprise customers to keep specified
controls on their internal processing procedures, and keep documentation
that can be audited to prove compliance.  The auditing requirements
are extensive and detailed, and certainly include the kernel of an
operating system used to process business and/or financial transactions.

It is within this framework that enterprise customers conclude something
like (and this is vernacular, not the language within the statutes) "if
we use any kernel other than that supplied by our distributor, the
SOX auditing paperwork will be a nightmare."  (I've actually heard
statements similar to this, and so believe that it is an accurate
portrayal of the perception of the effects of regulatory law.  I'm not
a lawyer.)

As I said at the beginning, I meant to amplify Crispin's observation
that enterprise customers are reluctant to compile their own kernels
with the additional observation that the complexities of regulatory
law create obstacles that are significant contributors to that reluctance.

I'll not belabor the unfortunate non sequitur further.  You can find
plenty of documentation of auditing requirements with by Googling
combinations of "Sarbanes-Oxley," "operating system integrity", etc.
This is a big-business topic of wide concern.

 =========

So where were we before that detour?  Oh yes, 

The point of contention:  closing LSM significantly reduces the freedom
of an important class of Linux users, the commercial enterprises, to
use whatever security framework they desire.  Greg and Alan didn't
address this, and neither has anyone else.  Crispin's concluding remark
on the patch closing LSM to modules has also not been addressed:

> So I don't think I am being self-serving in arguing against this
> patch. I just think it is bad for Linux.

Yes.  Why indeed should Linux, justly famous for being configurable
to many disparate purposes, close down an important subsystem so that
only a few types of security frameworks are possible?

Why can't a CONFIG_ system be developed that can give everyone pretty
much what he wants?  It should be possible to develop a system
permitting much flexibility wrt security frameworks:
 1.  a kernel configured with statically-linked hooks into exactly
      one framework.
                     --- OR ---
 2.  a kernel configured with an in-tree framework, but which uses
      an LSM "security_operations" table.  (This is what we pretty much
      have in 2.6.23).  In addition, a new boot parameter could let the
      end user name the framework to use, which would completely
      replace the in-tree default framework at boot time.


To possibly save bandwidth, I'll also respond to another of Greg's points:

"Greg KH" <greg@kroah.com> wrote:
> Any "customer" using a security model other than provided by their Linux
> distributor instantly voided all support from that distro by doing that.

This isn't necessarily true.  In fact, I don't think it's even _remotely_
likely to be typical.

Security is big business, as is compliance with regulatory law.  Large
enterprise customers are NOT going to either void their system support
contracts, or place themselves in jeopardy of failing a SOX audit.
Much more likely would be negotiated collaboration between some Linux
distributors and security software firms that will permit enterprise
customers to purchase, in a bundle, the security software products
they require, along with the documentation needed to prove compliance
with regulatory law.

At least, this seems to be what the market demands, or is beginning to
demand.  Will there be a supply?  Probably, as there is money ready to buy
it.  Can closure of the LSM stop it?  Probably not, but I think that closing
LSM to out-of-tree security modules substantially reduces the viability
of Linux technology, as it fails to address the the needs of an important
class of Linux user, the commercial enterprises.  As I said previously,
I think it will irritate them quite a lot.

Is this really a good idea?  Why is it a good idea to strip important
freedoms from _any_ end user?  Much less a whole class of commercially
important end users?

Furthermore, I don't think it's **necessary** to do an absolute closure in
order to meet the stringent needs of those who demand a single, hard-wired
security framework, such as has been proposed by James Morris.  The KBuild
system seems aptly suited to address the different needs of different users.

 ==========

This just in.  On the issue of making LSM much less available (please
forgive me if I've inaccurately summarized), Crispin just now wrote:

> That is not a catastrophe, it is just tedious. It does not kill baby
> seals, and it does not make Linux utterly useless. OTOH, I think it is
> strictly negative: it takes away user choice in 2 dimensions, and adds
> zero value. So apply it if you must to bake the kernel developer's lives
> easier, but it really is a net loss in Linux kernel capability.

I think that's a pretty good formulation of my points:  user choice is
taken away, leaving a net loss in the capability of Linux, and that
it's not at all necessary.

In the same note, he agreed with Alan that "SarBox is not really the issue
here."  Well, I'm pretty certain that regulatory law strongly shapes
market forces and enterprise needs.  In particular, I've heard several
times that enterprises users  really want to just BUY all their security
products, and that these products must be accompanied by documentation for
any audits.  So, I'm pretty sure that if it is "not ... the issue", it
strongly influences the issue.

Thanks for your consideration,

Tommy F.


^ permalink raw reply	[flat|nested] 140+ messages in thread
* Re: LSM conversion to static interface
@ 2007-10-22  2:24 Thomas Fricaccia
  2007-10-22  3:59 ` Greg KH
  2007-10-22 10:07 ` Alan Cox
  0 siblings, 2 replies; 140+ messages in thread
From: Thomas Fricaccia @ 2007-10-22  2:24 UTC (permalink / raw)
  To: Crispin Cowan; +Cc: linux-kernel, LSM ML, Linus Torvalds

Yes, I think Crispin has succinctly summed it up:  irrevocably closing
the LSM prevents commercial customers from using security modules other
than that provided by their Linux distributor.  As Sarbanes-Oxley and
other regulatory laws require these customers to use "standard
kernels", the result is a rather dreary form of vendor lock-in, where the
security framework is coupled to the distribution.

Though it would require a somewhat undesirable complexity of CONFIG_
flags, it should be possible to construct flexibility enough for everyone
to get what he wants.  For example, it should be possible to configure
kernels with a single security framework hard-linked, AND it should
also be possible to configure kernels such that the default security
framework could be completely replaced at boot time by another, be it
out-of-tree module, or other.

I agree entirely that preserving this form of freedom for the end user
makes Linux a much stronger technology than not.  For one thing, the
consequences of closing LSM are fairly certain to irritate enterprise
commercial customers, which is probably a sign that the technology has
taken a wrong turn.

Tommy F.


Crispin Cowan <crispin@crispincowan.com> wrote:

> So the net impact of this patch is:
> 
>    * It takes a deployment practice (static compiled-in security) that
>      is arguably good in many circumstances and makes it mandatory at
>      all times.
>    * It takes a development practice that is very convenient and
>      slightly risky, and forces you into the pessimal inconvenient
>      development practice at all times.
>    * It prevents enterprise users, and in fact anyone who isn't
>      comfortable compiling their own kernel, from ever trying out any
>      security module that their distro vendor of choice did not ship.
>
> This strikes me as a rather anti-choice position to take. It says that
> because candy is bad for you, you only ever get to eat vegetables. I
> don't understand why Linux would want to do this to its users.
>
> It doesn't hurt me or AppArmor. Since AppArmor is now shipping with
> SUSE, Ubuntu, and Mandriva, what this does is make it harder for newer
> modules like TOMOYO, Multi-Admin, etc, to get exposure to enterprise
> users. So I don't think I am being self-serving in arguing against this
> patch. I just think it is bad for Linux.
>
> Crispin
>
> -- 
> Crispin Cowan, Ph.D.               http://crispincowan.com/~crispin/
>         Itanium. Vista. GPLv3. Complexity at work


^ permalink raw reply	[flat|nested] 140+ messages in thread
* LSM conversion to static interface
@ 2007-10-18  1:34 Thomas Fricaccia
  2007-10-18  2:03 ` Casey Schaufler
  2007-10-18  3:06 ` Arjan van de Ven
  0 siblings, 2 replies; 140+ messages in thread
From: Thomas Fricaccia @ 2007-10-18  1:34 UTC (permalink / raw)
  To: linux-kernel; +Cc: Linus Torvalds

Like many of us who earn a good living with Linux (for over a decade now) and follow the kernel developer discussions with waxing and waning interest depending on topic, I noticed James Morris' proposal to eliminate the LSM in favor of ordaining SELinux as THE security framework forever and amen, followed by the definitive decision by Linus that LSM would remain.

Well, good, I thought.  Linux should continue to represent freedom for anyone to use basic technology in any way he sees fit.  I turned my attention back to my prosaic day-to-day concerns, thinking that the choice of which security framework to deploy would remain in the hands of the user, regardless of which distributor he chose.

But then I noticed that, while the LSM would remain in existence, it was being closed to out-of-tree security frameworks.  Yikes!  Since then, I've been following the rush to put SMACK, TOMOYO and AppArmor "in-tree". 

Since I know that the people behind these security frameworks are serious and worthy folk of general good repute, I've reluctantly come to the tentative conclusion that the fix is in.  There seem to be powers at work that want LSM closed, and they don't want much public discussion about it.

I think this is bad technology.  I've done due diligence by reviewing the LKML discussion behind closing LSM (and there isn't much).  The technical arguments seem to be (1) some people use the LSM interface for "non-security" purposes, which is frowned upon, (2) it's difficult to properly secure a system with an open-ended interface like LSM, and (3) my security framework should be all any fair-minded person would ever want, so we won't let you use something else.

Exactly. 

Well, any system that permits loading code into "ring 0" can't be made completely secure, so argument 2 reduces to argument 3, which is transparently self-serving (and invalid).

I submit for discussion the idea that a free and open operating system should preserve as much freedom for the end user as possible.  To this end, the kernel should cleanly permit and support the deployment of ANY security framework the end user desires, whether "in-tree" or "out-of-tree".  I agree that any out-of-tree LSM module should be licensed under the GPL (if for no other reason than many current commercial support contracts require non-tainted kernels).

But restricting security frameworks to "in-tree" only is bad technology.

"Freedom" includes the power to do bad things to yourself by, for example, making poor choices in security frameworks.  This possible and permitted end result shouldn't be the concern of kernel developers.  Making configuration and installation of user-chosen frameworks as clean and safe as possible should be.

In my opinion.

Though not sure why, I expect to be scorched by this.  Try not to patronize or condescend.  Give me technical arguments backed by real data.  Show me why a home user or 10,000 node commercial enterprise shouldn't be able to choose what he wants for security without having to jump through your hoops.  Show me why you shouldn't make his use of technology up to him, and as safely and conveniently as you can contrive.

Thanks for a really great operating system, I really love it,

 Tommy F.


^ permalink raw reply	[flat|nested] 140+ messages in thread

end of thread, other threads:[~2007-11-26 20:52 UTC | newest]

Thread overview: 140+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <167451.96128.qm@web38607.mail.mud.yahoo.com>
2007-10-18  2:18 ` LSM conversion to static interface Linus Torvalds
2007-10-19 20:26   ` Andreas Gruenbacher
2007-10-19 20:40     ` Linus Torvalds
2007-10-20 11:05       ` Jan Engelhardt
2007-10-20 22:57         ` James Morris
2007-10-21 22:59           ` Adrian Bunk
2007-10-23  4:09           ` LSM conversion to static interface [revert patch] Arjan van de Ven
2007-10-23  4:56             ` James Morris
2007-10-23  4:57               ` Arjan van de Ven
2007-10-23  5:16             ` Chris Wright
2007-10-23  9:10               ` Jan Engelhardt
2007-10-23  9:13                 ` Chris Wright
2007-10-23  9:14                   ` Jan Engelhardt
2007-10-24  0:31               ` Jeremy Fitzhardinge
2007-10-24  0:32                 ` Chris Wright
2007-10-24  5:06                 ` Arjan van de Ven
2007-10-24 11:50                   ` Linux Security *Module* Framework (Was: LSM conversion to static interface Simon Arlott
2007-10-24 12:55                     ` Adrian Bunk
2007-10-24 18:11                       ` Linux Security *Module* Framework (Was: LSM conversion to static interface) Simon Arlott
2007-10-24 18:51                         ` Jan Engelhardt
2007-10-24 18:59                           ` Simon Arlott
2007-10-24 19:04                             ` Jan Engelhardt
2007-10-24 21:02                               ` David P. Quigley
2007-10-24 21:37                                 ` Serge E. Hallyn
2007-10-24 21:51                                   ` Jan Engelhardt
2007-10-24 22:02                                     ` David P. Quigley
2007-10-24 23:13                                       ` Jan Engelhardt
2007-10-25  1:50                                   ` david
2007-10-25  3:50                                   ` Kyle Moffett
2007-10-24 21:42                                 ` Jan Engelhardt
2007-10-24 21:58                                 ` Casey Schaufler
2007-10-24 22:04                                   ` David P. Quigley
2007-10-25 11:38                                 ` Simon Arlott
2007-10-24 20:18                           ` Crispin Cowan
2007-10-24 20:46                             ` Jan Engelhardt
2007-10-24 21:29                               ` Casey Schaufler
2007-10-24 22:31                         ` Adrian Bunk
2007-10-24 22:58                           ` Casey Schaufler
2007-10-24 23:32                             ` Adrian Bunk
2007-10-24 23:42                               ` Linus Torvalds
2007-10-25  0:41                                 ` Chris Wright
2007-10-25  2:19                                   ` Arjan van de Ven
2007-10-30  3:37                                   ` Toshiharu Harada
2007-10-25  1:03                                 ` Casey Schaufler
2007-10-25  0:23                             ` Chris Wright
2007-10-25  0:35                               ` Ray Lee
2007-10-25  1:26                                 ` Peter Dolding
2007-10-25  1:41                                 ` Alan Cox
2007-10-25  2:11                                   ` david
2007-10-25 18:17                                   ` Ray Lee
2007-10-25 22:21                                     ` Alan Cox
2007-10-26  3:45                                       ` david
2007-10-26  5:44                                         ` Peter Dolding
2007-10-27 18:29                                     ` Pavel Machek
2007-10-28 18:48                                       ` Hua Zhong
2007-10-28 19:05                                       ` Hua Zhong
2007-10-28 22:08                                   ` Crispin Cowan
2007-10-28 22:50                                     ` Alan Cox
2007-11-26 20:42                                       ` serge
2007-10-28 23:55                                     ` Peter Dolding
2007-10-29  5:12                                     ` Arjan van de Ven
2007-10-25  9:19                                 ` Bernd Petrovitsch
2007-10-25 16:04                                   ` Ray Lee
2007-10-25 17:10                                     ` Arjan van de Ven
2007-10-30  9:41                                     ` Bernd Petrovitsch
2007-10-25  1:42                               ` Casey Schaufler
2007-10-27 18:22                                 ` Pavel Machek
2007-10-28 19:42                                   ` Linux Security *Module* Framework Tilman Schmidt
2007-10-28 20:46                                     ` Jan Engelhardt
2007-10-30  3:23                                 ` Linux Security *Module* Framework (Was: LSM conversion to static interface) Toshiharu Harada
2007-10-30  8:40                                   ` Jan Engelhardt
2007-10-30  8:50                                     ` Crispin Cowan
2007-10-30  9:27                                       ` Jan Engelhardt
2007-10-30  9:21                                     ` Toshiharu Harada
2007-10-25 11:44                           ` Simon Arlott
2007-10-25 23:09                           ` Tilman Schmidt
2007-10-26  2:56                             ` Greg KH
2007-10-26  7:09                               ` Jan Engelhardt
2007-10-26 15:54                                 ` Greg KH
2007-10-26  9:46                               ` Tilman Schmidt
2007-10-26 15:58                                 ` Greg KH
2007-10-26 16:32                                   ` Simon Arlott
2007-10-27 14:07                                   ` eradicating out of tree modules (was: Linux Security *Module* Framework) Tilman Schmidt
2007-10-28  1:21                                     ` Adrian Bunk
2007-10-26 23:26                                 ` Linux Security *Module* Framework (Was: LSM conversion to static interface) Adrian Bunk
2007-10-27 14:47                                   ` eradicating out of tree modules (was: : Linux Security *Module* Framework) Tilman Schmidt
2007-10-27 17:31                                     ` eradicating out of tree modules Stefan Richter
2007-10-28  0:55                                     ` eradicating out of tree modules (was: : Linux Security *Module* Framework) Adrian Bunk
2007-10-28  9:25                                       ` eradicating out of tree modules Stefan Richter
2007-10-28 12:01                                         ` Tilman Schmidt
2007-10-28 14:37                                           ` Stefan Richter
2007-10-28 14:59                                             ` Simon Arlott
2007-10-28 16:55                                             ` Tilman Schmidt
2007-10-28 18:51                                       ` Tilman Schmidt
2007-10-28 19:25                                         ` Adrian Bunk
2007-10-30  0:29                                           ` Tilman Schmidt
2007-10-30 13:11                                             ` linux-os (Dick Johnson)
2007-10-30 13:19                                               ` Xavier Bestel
2007-10-30 15:30                                               ` Greg KH
2007-10-29 23:51                               ` Out-of-tree modules [was: Linux Security *Module* Framework] Jan Engelhardt
2007-10-30  0:46                                 ` Lee Revell
2007-10-30  1:19                                   ` Jan Engelhardt
2007-10-27 14:08                     ` Linux Security *Module* Framework (Was: LSM conversion to static interface Tetsuo Handa
2007-11-05  6:42                       ` Crispin Cowan
2007-10-23  9:13           ` Jan Engelhardt
2007-10-23  5:44         ` Giacomo Catenazzi
2007-10-23  8:55           ` Jan Engelhardt
2007-10-23  9:14             ` Giacomo A. Catenazzi
2007-10-23  9:18               ` Jan Engelhardt
2007-10-23 15:20             ` Serge E. Hallyn
2007-10-23 15:28               ` Jan Engelhardt
2007-10-23 15:34                 ` Serge E. Hallyn
2007-10-25 10:23                   ` Valdis.Kletnieks
2007-10-19 21:07     ` James Morris
2007-10-22  1:12   ` Crispin Cowan
2007-10-25 11:33 Jan Engelhardt
2007-10-26 10:40 ` Samir Bellabes
  -- strict thread matches above, loose matches on Subject: below --
2007-10-22 17:00 Thomas Fricaccia
2007-10-22 17:12 ` Alan Cox
2007-10-22 17:13 ` Greg KH
2007-10-23  5:14   ` Crispin Cowan
2007-10-23  5:32     ` david
2007-10-23 11:38   ` Simon Arlott
2007-10-23  5:53 ` Giacomo Catenazzi
2007-10-23  7:12   ` Crispin Cowan
2007-10-23  8:17     ` Giacomo A. Catenazzi
2007-10-24  3:41     ` Greg KH
2007-10-22  2:24 Thomas Fricaccia
2007-10-22  3:59 ` Greg KH
2007-10-22 17:47   ` Avi Kivity
2007-10-23 16:05     ` Adrian Bunk
2007-10-23 16:52   ` Geert Uytterhoeven
2007-10-22 10:07 ` Alan Cox
2007-10-22 16:10   ` Crispin Cowan
2007-10-22 16:50     ` Alan Cox
2007-10-22 16:56       ` Greg KH
2007-10-18  1:34 Thomas Fricaccia
2007-10-18  2:03 ` Casey Schaufler
2007-10-18  2:21   ` Linus Torvalds
2007-10-18  3:06 ` Arjan van de Ven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox