linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Crispin Cowan <crispin@novell.com>
To: Yuichi Nakamura <ynakam@gwu.edu>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>,
	Kurt Garloff <garloff@suse.de>,
	Christoph Hellwig <hch@infradead.org>,
	Gerrit Huizenga <gh@us.ibm.com>, James Morris <jmorris@namei.org>,
	Stephen Smalley <sds@tycho.nsa.gov>,
	casey@schaufler-ca.com, linux-security-module@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	fireflier-devel@lists.sourceforge.net
Subject: Re: [RESEND][RFC][PATCH 2/7] implementation of LSM hooks
Date: Wed, 19 Apr 2006 14:10:39 -0700	[thread overview]
Message-ID: <4446A74F.5010100@novell.com> (raw)
In-Reply-To: <e133c9da8fcba.8fcbae133c9da@gwu.edu>

Yuichi Nakamura wrote:
> "Serge E. Hallyn" wrote:
>   
>> Have you ever tried, at 4pm some afternoon, sitting in a room with 
>> somepaper and implementing the AA user interface on top of selinux?
>>     
> We've implemented AppArmor like configuration on top of SELinux.
> SELinux Policy Editor(http://seedit.sourceforge.net/) does this.
>   
This is a fascinating piece of work. A compiler to compile
(approximately) AppArmor policies into SELinux policies.

> Above is converted into SELinux Policy language.
> Types, allow rules,domain transision rules are generated.
>   
Does it label the file system as well? If not, then the path names you
can specify with different access rights would be very limited. If so,
then any change to the policy requires a relabellings.

> It works, and can also restrict IPC and privilege other than POSIX
> capability(because it is based on SELinux).
>   
We have plans to enhance AppArmor to mediate IPC and network access.
Some of these plans are constrained by the limits of LSM, and once
AppArmor is in-tree, we hope to propose some LSM enhancements to make
that work better.

> However, path-name based configuration can not be achieved on SELinux in
> following cases.
> 1) Files on file system that does not support xattr(such as sysfs)
>    SELinux policy editor handles all files as same on such file systems.
>   
More than just sysfs. All network attached storage (NFS mounted file
systems) cannot support xattr. One could imagine supporting xattr for
Linux-based NFS servers, but that just won't work for non-linux storage
servers.

As a consequence, SELinux policies can only grant all-or-nothing access
to the entire NFS-mounted file system. This is a big deal for larger
data centers, where everything is in network attached storage, and Linux
is fighting its way in. Pathname based access control gives you much
finer granularity of access control on which NFS mounted files an
application can access.

Note that the insecurity of NFS due to lack of authentication is
irrelevant here. Access controls on an NFS server would be insecure
because the clients are spoofable. However, what AppArmor does is
constrain an application on the NFS client with respect to which
*imported* files it can access.

> 2) Files that are dynamically created/deleted(inode number is not fixed).
>    Example is files on /tmp and /etc/mtab. SELinux Policy Editor is
> using file type transition to configure access control for them.
>   
This also is an important distinction. AppArmor can specify policy for
files that don't exist yet. SELinux can specify policy for files that
don't exist yet, but only in so far as you can write TE rules for labels
that do exist, and will be applied to the files when they are created.

Suppose we want to write a profile for fingerd. In AppArmor, the rule
would be "/home/*/.plan r" to grant read access to everyone's .plan
file. Some people don't have a .plan file, but they do create them ad
hoc as time goes on. What does seedit do in that case?

A more problematic case in classic SELinux is personal public_html
directories
http://fedora.redhat.com/docs/selinux-apache-fc3/sn-simple-setup.html

The goal is to allow Apache to access everyone's public_html directory,
but not the rest of their homedir files. The problem is that each file
can only have a *single* label on it, and so what label to put on
public_html directories and their contents?

    * If you choose user_homedir_t then either
          o Apache cannot access public_html directories at all, or
          o Apache gets access to all user homedir contents, including
            potentially nasty secrets. Not so nice to have your personal
            secrets leaked out through the web server.
    * If you choose httpd_sys_content_t then either
          o Users cannot access their own public_html directories, which
            is useless, or
          o Users can write to the system web pages, which means any
            user can change the system home page.

None of the above alternatives are pretty. To solve this problem in a
labeled system, you would have to have some way of attaching more than
one label to a single file. You can fake that by creating a software MUX
that encodes multiple labels into a single label, but that creates an
explosion in the number of labels. You have to have a new MUX for every
system daemon that needs to access homedir contents. There is also the
problem that the public_html directory might be removed and re-created
by the user, resulting in it automatically inheriting the user_homedir_t
label.

This page http://fedora.redhat.com/docs/selinux-faq-fc5/#id2978458
solves the problem by labeling public_html with httpd_user_content_t.
This eliminates the need for a MUX by applying the same label to all
user public_html directories. But it is unclear which applications can
author httpd_user_content_t content -- and i'm not sure if users are
allowed to relabel their files.

Or you can use an AppArmor rule of "/home/*/public_html/** r".

Crispin
-- 
Crispin Cowan, Ph.D.                      http://crispincowan.com/~crispin/
Director of Software Engineering, Novell  http://novell.com


  parent reply	other threads:[~2006-04-19 21:11 UTC|newest]

Thread overview: 253+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-02  9:40 [RFC] packet/socket owner match (fireflier) using skfilter Török Edwin
2006-04-03 15:18 ` James Morris
2006-04-03 15:39   ` Török Edwin
2006-04-05 15:06     ` Stephen Smalley
2006-04-07 17:34       ` Török Edwin
2006-04-07 18:24         ` [RFC][PATCH 0/7] fireflier LSM for labeling sockets based on its creator (owner) Török Edwin
2006-04-07 18:27           ` [RFC][PATCH 1/7] " Török Edwin
2006-04-12 19:11             ` Stephen Smalley
2006-04-14 20:02               ` Török Edwin
2006-04-07 18:38           ` [RFC][PATCH 2/7] implementation of LSM hooks Török Edwin
2006-04-12 17:42             ` Stephen Smalley
2006-04-14 20:01               ` [RESEND][RFC][PATCH " Török Edwin
2006-04-17 16:06                 ` Stephen Smalley
2006-04-17 16:23                   ` Christoph Hellwig
2006-04-17 17:03                     ` Stephen Smalley
2006-04-17 17:08                       ` Arjan van de Ven
2006-04-17 17:33                       ` Christoph Hellwig
2006-04-17 18:02                         ` Casey Schaufler
2006-04-17 18:15                           ` Stephen Smalley
2006-04-17 19:26                             ` Serge E. Hallyn
2006-04-17 19:31                               ` James Morris
2006-04-17 19:47                                 ` Serge E. Hallyn
2006-04-17 20:02                                   ` Stephen Smalley
2006-04-19 14:52                                     ` David Safford
2006-04-19 15:26                                       ` Stephen Smalley
2006-04-19 17:57                                         ` Emily Ratliff
2006-04-19 18:33                                           ` Stephen Smalley
2006-04-20 12:27                                             ` Stephen Smalley
2006-04-19 15:47                                       ` Stephen Smalley
2006-04-17 22:15                                 ` Gerrit Huizenga
2006-04-17 22:48                                   ` Alan Cox
2006-04-17 22:58                                     ` James Morris
2006-04-18  2:00                                     ` Crispin Cowan
2006-04-17 22:55                                   ` Christoph Hellwig
2006-04-18  1:44                                     ` Gerrit Huizenga
2006-04-18 11:58                                       ` Christoph Hellwig
2006-04-18 16:50                                         ` Gerrit Huizenga
2006-04-18 17:27                                           ` Karl MacMillan
2006-04-18 19:31                                             ` Crispin Cowan
2006-04-18 19:50                                               ` Arjan van de Ven
2006-04-18 20:13                                                 ` [Fireflier-devel] " Török Edwin
2006-04-18 20:31                                                   ` Alan Cox
2006-04-18 19:33                                                     ` [Fireflier-devel] Re: [RESEND][RFC][PATCH 2/7] implementationof " David Lang
2006-04-18 20:42                                                   ` [Fireflier-devel] Re: [RESEND][RFC][PATCH 2/7] implementation of " Serge E. Hallyn
2006-04-18 20:23                                                 ` Serge E. Hallyn
2006-04-19 18:32                                                 ` Crispin Cowan
2006-04-19 18:48                                                   ` Arjan van de Ven
2006-04-19 19:50                                                     ` Jan Engelhardt
2006-04-19 18:50                                                   ` Valdis.Kletnieks
2006-04-19 23:24                                                     ` Tony Jones
2006-04-18 20:14                                               ` Stephen Smalley
2006-04-18 20:35                                                 ` Crispin Cowan
2006-04-18 21:07                                                   ` Greg KH
2006-04-19 12:22                                                   ` Stephen Smalley
2006-04-18 20:26                                               ` Alan Cox
2006-04-18 20:57                                                 ` Crispin Cowan
2006-04-18 21:36                                                   ` James Morris
2006-04-18 23:09                                                     ` Crispin Cowan
2006-04-18 23:27                                                       ` Chris Wright
2006-04-18 23:57                                                       ` James Morris
2006-04-19  1:48                                                         ` Casey Schaufler
2006-04-19  6:40                                                           ` Kyle Moffett
2006-04-19  6:56                                                             ` Valdis.Kletnieks
2006-04-19 11:41                                                               ` Serge E. Hallyn
2006-04-19 15:51                                                                 ` Valdis.Kletnieks
2006-04-19 16:00                                                                 ` Gene Heskett
2006-04-20  6:51                                                               ` Kyle Moffett
2006-04-20 12:40                                                                 ` Stephen Smalley
2006-04-21  1:00                                                                   ` Nix
2006-04-21 14:24                                                                     ` Stephen Smalley
2006-04-24  8:14                                                                       ` Lars Marowsky-Bree
2006-04-25  0:19                                                                         ` Valdis.Kletnieks
2006-04-25  7:21                                                                           ` Nix
2006-04-19  7:44                                                             ` Arjan van de Ven
2006-04-19 11:53                                                             ` Serge E. Hallyn
2006-04-19 12:56                                                             ` Stephen Smalley
2006-04-19 12:54                                                           ` Stephen Smalley
2006-04-19 16:42                                                             ` Casey Schaufler
2006-04-19 18:01                                                               ` Stephen Smalley
2006-04-20  4:10                                                                 ` Casey Schaufler
2006-04-20  4:29                                                                   ` James Morris
2006-04-20  4:56                                                                     ` Chris Wright
2006-04-18 23:16                                                     ` Casey Schaufler
2006-04-18 23:19                                                       ` Christoph Hellwig
2006-04-19  5:22                                                       ` Arjan van de Ven
2006-04-19 12:40                                                   ` Stephen Smalley
2006-04-18 23:09                                                 ` Casey Schaufler
2006-04-19  5:23                                                   ` Arjan van de Ven
2006-04-18 18:46                                           ` Alan Cox
2006-04-18 19:59                                             ` Serge E. Hallyn
2006-04-18 20:20                                               ` Stephen Smalley
2006-04-18 20:36                                                 ` Serge E. Hallyn
2006-04-18 23:00                                               ` Casey Schaufler
2006-04-19  9:03                                             ` Bernhard R. Link
2006-04-18 21:38                                         ` Kurt Garloff
2006-04-19  7:04                                           ` Valdis.Kletnieks
2006-04-19  7:36                                           ` Arjan van de Ven
2006-04-19 12:10                                           ` Serge E. Hallyn
2006-04-19 12:55                                             ` Yuichi Nakamura
2006-04-19 15:44                                               ` Greg KH
2006-04-19 16:02                                                 ` Stephen Smalley
2006-04-19 16:06                                                   ` Greg KH
2006-04-19 21:10                                               ` Crispin Cowan [this message]
2006-04-19 21:48                                                 ` Yuichi Nakamura
2006-04-20 12:44                                                 ` Karl MacMillan
2006-04-19 13:09                                           ` Stephen Smalley
2006-04-18 11:59                                       ` Stephen Smalley
2006-04-17 23:09                                   ` Chris Wright
2006-04-17 19:37                               ` Stephen Smalley
2006-04-18 13:05                             ` Kazuki Omo(Company)
2006-04-18 13:37                               ` James Morris
2006-04-18 14:45                               ` Greg KH
2006-04-18 15:51                                 ` Casey Schaufler
2006-04-18 16:07                                   ` Greg KH
2006-04-17 19:20                         ` Time to remove LSM (was Re: [RESEND][RFC][PATCH 2/7] implementation of LSM hooks) James Morris
2006-04-17 19:51                           ` Greg KH
2006-04-17 20:08                             ` Arjan van de Ven
2006-04-17 21:26                             ` Alan Cox
2006-04-17 23:26                               ` Casey Schaufler
2006-04-18  2:29                               ` Valdis.Kletnieks
2006-04-18 12:22                                 ` Serge E. Hallyn
2006-04-18 12:59                                   ` Stephen Smalley
     [not found]                                     ` <20060418132121.GE7562@sergelap.austin.ibm.com>
2006-04-18 13:40                                       ` Stephen Smalley
2006-04-18 20:13                                 ` Crispin Cowan
2006-04-18 23:01                                   ` Valdis.Kletnieks
2006-04-20  0:19                                     ` Crispin Cowan
2006-04-20 15:27                                       ` Valdis.Kletnieks
2006-04-21 15:23                                         ` Ken Brush
2006-04-21 19:51                                           ` Valdis.Kletnieks
2006-04-22 20:52                                             ` Ken Brush
2006-04-23  9:45                                               ` Valdis.Kletnieks
2006-04-24  8:24                                                 ` Lars Marowsky-Bree
2006-04-24 12:42                                                   ` Alan Cox
2006-04-24 12:44                                                     ` Lars Marowsky-Bree
2006-04-24 12:45                                                     ` Olivier Galibert
2006-04-24 12:54                                                       ` Arjan van de Ven
2006-04-24 13:09                                                         ` Serge E. Hallyn
2006-04-24 13:16                                                           ` Arjan van de Ven
2006-04-24 13:29                                                             ` Serge E. Hallyn
2006-04-24 13:40                                                               ` Arjan van de Ven
2006-04-24 13:54                                                                 ` Serge E. Hallyn
2006-04-24 14:07                                                                   ` Arjan van de Ven
2006-04-25 19:06                                                                     ` Serge E. Hallyn
2006-04-25  4:07                                                               ` Casey Schaufler
2006-04-24 14:08                                                         ` Olivier Galibert
2006-04-25 16:29                                                           ` Stephen Smalley
2006-04-25 22:26                                                             ` Olivier Galibert
2006-04-26 12:14                                                               ` Stephen Smalley
2006-04-26 16:03                                                                 ` Olivier Galibert
2006-04-27  6:56                                                                   ` Thomas Bleher
2006-04-24 12:55                                                     ` Serge E. Hallyn
2006-04-24 12:56                                                     ` Serge E. Hallyn
2006-04-24 14:02                                                       ` Alan Cox
2006-04-24 14:04                                                         ` Serge E. Hallyn
2006-04-24 14:31                                                           ` Alan Cox
2006-04-24 14:28                                                             ` Serge E. Hallyn
2006-04-24 14:45                                                           ` David Lang
2006-04-24 16:50                                                             ` Arjan van de Ven
2006-04-25 16:31                                                             ` Stephen Smalley
2006-04-25 16:23                                                           ` Stephen Smalley
2006-04-25  2:06                                                   ` Valdis.Kletnieks
2006-04-25  7:36                                                     ` Lars Marowsky-Bree
2006-04-20 21:13                                   ` Pavel Machek
2006-04-23  3:50                                     ` Crispin Cowan
2006-04-23  9:33                                       ` Valdis.Kletnieks
2006-04-23 14:58                                         ` Thomas Bleher
2006-04-24  8:28                                           ` Lars Marowsky-Bree
2006-04-24  8:37                                             ` Arjan van de Ven
2006-04-24  8:54                                               ` Lars Marowsky-Bree
2006-04-24  9:12                                                 ` Arjan van de Ven
2006-04-25  0:31                                                   ` Valdis.Kletnieks
2006-04-20 17:46                                 ` Pavel Machek
2006-04-18  2:38                               ` Valdis.Kletnieks
2006-04-19  8:16                             ` Jan Engelhardt
2006-04-19 15:40                               ` Greg KH
2006-04-19 16:33                                 ` James Morris
2006-04-19 18:10                                   ` Greg KH
2006-04-19 19:33                                     ` Chris Wright
2006-04-20 12:39                                     ` Stephen Smalley
2006-04-20 12:51                                       ` Serge E. Hallyn
2006-04-20 15:00                                       ` Removing EXPORT_SYMBOL(security_ops) (was Re: Time to remove LSM) Greg KH
2006-04-20 14:20                                         ` Stephen Smalley
2006-04-20 16:15                                           ` Greg KH
2006-04-20 16:23                                             ` Christoph Hellwig
2006-04-20 16:34                                               ` Stephen Smalley
2006-04-20 16:46                                                 ` Greg KH
2006-04-20 17:00                                                   ` Stephen Smalley
2006-04-20 17:01                                                     ` [PATCH] make security_ops EXPORT_SYMBOL_GPL() Greg KH
2006-04-20 18:08                                                       ` Linus Torvalds
2006-04-20 19:34                                                         ` Greg KH
2006-04-21 16:50                                                           ` Greg KH
2006-04-21 17:34                                                             ` Chris Wright
2006-04-20 17:02                                         ` Removing EXPORT_SYMBOL(security_ops) (was Re: Time to remove LSM) Tony Jones
2006-04-20 20:14                                         ` Chris Wright
2006-04-19 19:22                                 ` Time to remove LSM (was Re: [RESEND][RFC][PATCH 2/7] implementation of LSM hooks) Jan Engelhardt
2006-04-19 20:48                                   ` Greg KH
2006-04-19 20:59                                     ` Serge E. Hallyn
2006-04-19 21:08                                     ` Randy.Dunlap
2006-04-19 16:00                               ` Arjan van de Ven
2006-04-19 19:06                                 ` Jan Engelhardt
2006-04-19 20:11                                   ` Greg KH
2006-04-19 20:52                                     ` Randy.Dunlap
2006-04-19 20:54                                       ` Arjan van de Ven
2006-04-19 21:05                                         ` Jan Engelhardt
2006-04-20 12:20                                       ` Stephen Smalley
2006-04-21 13:30                                     ` Jan Engelhardt
2006-04-21 15:05                                       ` Greg KH
2006-05-01 13:45                                         ` [PATCH 0/4] MultiAdmin LSM Jan Engelhardt
2006-05-01 13:48                                           ` [PATCH 1/4] security_cap_extra() and more Jan Engelhardt
2006-05-01 13:49                                           ` [PATCH 2/4] Use of capable_light() Jan Engelhardt
2006-05-01 13:49                                           ` [PATCH 3/4] task_post_setgid() Jan Engelhardt
2006-05-01 13:50                                           ` [PATCH 4/4] MultiAdmin module Jan Engelhardt
2006-05-01 14:56                                             ` James Morris
2006-05-01 15:05                                             ` Greg KH
2006-05-01 13:50                                           ` [PATCH 0/4] MultiAdmin LSM Arjan van de Ven
2006-05-01 16:03                                           ` [PATCH 4a/4] MultiAdmin LSM (LKCS'ed) Jan Engelhardt
2006-05-01 16:47                                             ` Greg KH
2006-05-01 17:42                                               ` Jan Engelhardt
2006-05-01 18:07                                                 ` Greg KH
2006-05-01 20:19                                                   ` Jan Engelhardt
2006-05-01 21:47                                                     ` Adrian Bunk
2006-05-01 20:56                                           ` [PATCH 0/4] MultiAdmin LSM Pavel Machek
2006-05-02  4:22                                           ` James Morris
2006-04-21 16:25                                       ` Time to remove LSM (was Re: [RESEND][RFC][PATCH 2/7] implementation of LSM hooks) Stephen Smalley
2006-04-21 18:57                                         ` Jan Engelhardt
2006-04-21 19:56                                           ` Stephen Smalley
2006-04-22 11:13                                             ` Jan Engelhardt
2006-04-20 23:41                                   ` Pavel Machek
2006-04-19 17:00                               ` Valdis.Kletnieks
2006-04-17 20:20                           ` Chris Wright
2006-04-17 20:24                             ` Arjan van de Ven
2006-04-17 20:27                               ` Time to remove LSM David S. Miller
2006-04-17 20:27                               ` Time to remove LSM (was Re: [RESEND][RFC][PATCH 2/7] implementation of LSM hooks) Chris Wright
2006-04-17 20:34                                 ` Greg KH
2006-04-17 20:38                                   ` Chris Wright
2006-04-17 20:43                                   ` Arjan van de Ven
2006-04-17 20:53                                     ` Chris Wright
2006-04-17 20:45                             ` alan
     [not found]                             ` <2e00cdfd0604171437g1d6c6923w5db82f317ed0f56@mail.gmail.com>
2006-04-17 22:07                               ` Chris Wright
2006-04-17 22:10                                 ` Arjan van de Ven
2006-04-17 20:51                           ` Adrian Bunk
2006-04-17 20:08                         ` [RESEND][RFC][PATCH 2/7] implementation of LSM hooks David S. Miller
2006-04-17 18:20                   ` Török Edwin
2006-04-07 18:39           ` [RFC][PATCH 3/7] sidtab - hashtable to store SIDs Török Edwin
2006-04-07 18:41           ` [RFC][PATCH 4/7] exports Török Edwin
2006-04-07 18:43           ` [RFC][PATCH 5/7] debugging/testing support Török Edwin
2006-04-07 18:44           ` [RFC][PATCH 6/7] userspace Török Edwin
2006-04-07 18:46           ` [RFC][PATCH 7/7] stacking support for capability module Török Edwin
2006-04-07 19:18             ` Serge E. Hallyn
2006-04-07 19:45           ` [RFC][PATCH 0/7] fireflier LSM for labeling sockets based on its creator (owner) Chris Wright
2006-04-08  7:41             ` edwin
2006-04-21 15:26 ` [RFC] packet/socket owner match (fireflier) using skfilter Mikado
2006-04-21 16:18   ` Török Edwin

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=4446A74F.5010100@novell.com \
    --to=crispin@novell.com \
    --cc=casey@schaufler-ca.com \
    --cc=fireflier-devel@lists.sourceforge.net \
    --cc=garloff@suse.de \
    --cc=gh@us.ibm.com \
    --cc=hch@infradead.org \
    --cc=jmorris@namei.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=sds@tycho.nsa.gov \
    --cc=serue@us.ibm.com \
    --cc=ynakam@gwu.edu \
    /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;
as well as URLs for NNTP newsgroup(s).