From: Casey Schaufler <casey@schaufler-ca.com>
To: David Howells <dhowells@redhat.com>, Stephen Smalley <sds@tycho.nsa.gov>
Cc: dhowells@redhat.com, casey@schaufler-ca.com, torvalds@osdl.org,
akpm@osdl.org, steved@redhat.com, trond.myklebust@fys.uio.no,
linux-fsdevel@vger.kernel.org, linux-cachefs@redhat.com,
nfsv4@linux-nfs.org, linux-kernel@vger.kernel.org,
selinux@tycho.nsa.gov,
LSM List <linux-security-module@vger.kernel.org>
Subject: Re: [PATCH 00/16] Permit filesystem local caching [try #3]
Date: Mon, 13 Aug 2007 09:20:23 -0700 (PDT) [thread overview]
Message-ID: <26859.95417.qm@web36612.mail.mud.yahoo.com> (raw)
In-Reply-To: <10228.1187018526@redhat.com>
--- David Howells <dhowells@redhat.com> wrote:
> Stephen Smalley <sds@tycho.nsa.gov> wrote:
>
> > Seems like over-design - we don't need to support LSM stacking, and we
> > don't need to support pushing/popping more than one level of context.
>
> It will, at some point hopefully, be possible for someone to try, say, NFS
> exporting a cached ISO9660 mount (CDROM) - in which case, we'd should allow
> for two levels of stack. If we can pass the displaced context to the caller
> to restore later then that allows for more or less unlimited depth.
>
> It occurs to me that the following is almost good enough, but not quite:
>
> (1) int security_get_context(void **_context);
>
> This allocates and gives the caller a blob that describes the current
> context of all the LSM module states attached to the current task and
> stores a pointer to it in *_context.
Is this intended to be anything more than a copy of current->security?
> (2) int security_push(void *context, struct sec **_old_context)
>
> This causes all the LSM modules on the current task to switch to a new
> acting state, passing back the old state. It does not change how
> other tasks do things to this one.
I assume that you're talking about the LSM specific data changing,
not the LSM itself.
If you change the task->security information you are definitly going
to change what other tasks can do to the calling task. This is part of
the dark side of label swapping. This is what I was trying to suggest
when I said that if you're going to switch labels you switch to a
system-daemon label, do your work, then change the file label explicitly.
Stephen may have a trick up his sleeve for SELinux, but I don't
expect it to be pleasent.
> (3) int security_pop(void *context)
>
> This causes all the LSM modules on the current task to switch to a new
> acting state, deleting the old state. It does not change how
> other tasks do things to this one.
Same issues.
> (4) int security_delete_context(void *context)
>
> I still need a way to transform the cachefilesd context into the kernel's
> context. See patch:
>
> Subject: [Linux-cachefs] [PATCH 12/16] CacheFiles: Get the SID under which
> the CacheFiles module should operate [try #3]
>
> However, this seems to add a fairly generic tranformation, so that could be
> generalised:
>
> (5) int security_xfrm_to_kernel_context(void *from, void **_to);
Woof. What are you transforming from?
> > What was the objection again to the original interface, aside from
> > replacing "u32 secids" with "void* security blobs"?
>
> I got the impression that Casey thought much of this was tied to SELinux, but
> rereading his/her
"His" is preferred.
> emails, I'm not so certain. Maybe that's sufficient.
> Casey?
I did get the impression that your initial design was focused
on SELinux, and that the implications of alternative LSM modules
had not been very high on your priority list. It's clear from
your responses that you are taking the issue seriously. Thank you.
> However, I've realised a problem (as outlined above) with what I've got.
> Namely its stack isn't necessarily deep enough. Alternatively, nfsd perhaps
> should suppress caching on what it reads.
That's the really nice thing about cans of worms.
They come in six-packs.
Casey Schaufler
casey@schaufler-ca.com
--
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.
WARNING: multiple messages have this Message-ID (diff)
From: Casey Schaufler <casey@schaufler-ca.com>
To: David Howells <dhowells@redhat.com>, Stephen Smalley <sds@tycho.nsa.gov>
Cc: dhowells@redhat.com, casey@schaufler-ca.com, torvalds@osdl.org,
akpm@osdl.org, steved@redhat.com, trond.myklebust@fys.uio.no,
linux-fsdevel@vger.kernel.org, linux-cachefs@redhat.com,
nfsv4@linux-nfs.org, linux-kernel@vger.kernel.org,
selinux@tycho.nsa.gov,
LSM List <linux-security-module@vger.kernel.org>
Subject: Re: [PATCH 00/16] Permit filesystem local caching [try #3]
Date: Mon, 13 Aug 2007 09:20:23 -0700 (PDT) [thread overview]
Message-ID: <26859.95417.qm@web36612.mail.mud.yahoo.com> (raw)
In-Reply-To: <10228.1187018526@redhat.com>
--- David Howells <dhowells@redhat.com> wrote:
> Stephen Smalley <sds@tycho.nsa.gov> wrote:
>
> > Seems like over-design - we don't need to support LSM stacking, and we
> > don't need to support pushing/popping more than one level of context.
>
> It will, at some point hopefully, be possible for someone to try, say, NFS
> exporting a cached ISO9660 mount (CDROM) - in which case, we'd should allow
> for two levels of stack. If we can pass the displaced context to the caller
> to restore later then that allows for more or less unlimited depth.
>
> It occurs to me that the following is almost good enough, but not quite:
>
> (1) int security_get_context(void **_context);
>
> This allocates and gives the caller a blob that describes the current
> context of all the LSM module states attached to the current task and
> stores a pointer to it in *_context.
Is this intended to be anything more than a copy of current->security?
> (2) int security_push(void *context, struct sec **_old_context)
>
> This causes all the LSM modules on the current task to switch to a new
> acting state, passing back the old state. It does not change how
> other tasks do things to this one.
I assume that you're talking about the LSM specific data changing,
not the LSM itself.
If you change the task->security information you are definitly going
to change what other tasks can do to the calling task. This is part of
the dark side of label swapping. This is what I was trying to suggest
when I said that if you're going to switch labels you switch to a
system-daemon label, do your work, then change the file label explicitly.
Stephen may have a trick up his sleeve for SELinux, but I don't
expect it to be pleasent.
> (3) int security_pop(void *context)
>
> This causes all the LSM modules on the current task to switch to a new
> acting state, deleting the old state. It does not change how
> other tasks do things to this one.
Same issues.
> (4) int security_delete_context(void *context)
>
> I still need a way to transform the cachefilesd context into the kernel's
> context. See patch:
>
> Subject: [Linux-cachefs] [PATCH 12/16] CacheFiles: Get the SID under which
> the CacheFiles module should operate [try #3]
>
> However, this seems to add a fairly generic tranformation, so that could be
> generalised:
>
> (5) int security_xfrm_to_kernel_context(void *from, void **_to);
Woof. What are you transforming from?
> > What was the objection again to the original interface, aside from
> > replacing "u32 secids" with "void* security blobs"?
>
> I got the impression that Casey thought much of this was tied to SELinux, but
> rereading his/her
"His" is preferred.
> emails, I'm not so certain. Maybe that's sufficient.
> Casey?
I did get the impression that your initial design was focused
on SELinux, and that the implications of alternative LSM modules
had not been very high on your priority list. It's clear from
your responses that you are taking the issue seriously. Thank you.
> However, I've realised a problem (as outlined above) with what I've got.
> Namely its stack isn't necessarily deep enough. Alternatively, nfsd perhaps
> should suppress caching on what it reads.
That's the really nice thing about cans of worms.
They come in six-packs.
Casey Schaufler
casey@schaufler-ca.com
next prev parent reply other threads:[~2007-08-13 16:20 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-10 16:04 [PATCH 00/16] Permit filesystem local caching [try #3] David Howells
2007-08-10 16:04 ` David Howells
2007-08-10 16:05 ` [PATCH 01/16] FS-Cache: Release page->private after failed readahead " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 02/16] FS-Cache: Recruit a couple of page flags for cache management " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 03/16] FS-Cache: Provide an add_wait_queue_tail() function " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 04/16] FS-Cache: Generic filesystem caching facility " David Howells
2007-08-10 16:05 ` [PATCH 05/16] CacheFiles: Add missing copy_page export for ia64 " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 06/16] CacheFiles: Add a hook to write a single page of data to an inode " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 07/16] CacheFiles: Permit the page lock state to be monitored " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 08/16] CacheFiles: Export things for CacheFiles " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 09/16] CacheFiles: Permit a process's create SID to be overridden " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:52 ` Casey Schaufler
2007-08-10 16:52 ` Casey Schaufler
2007-08-10 16:05 ` [PATCH 10/16] CacheFiles: Add an act-as SID override in task_security_struct " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 11/16] CacheFiles: Permit an inode's security ID to be obtained " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:05 ` [PATCH 12/16] CacheFiles: Get the SID under which the CacheFiles module should operate " David Howells
2007-08-10 16:05 ` David Howells
2007-08-10 16:06 ` [PATCH 13/16] CacheFiles: A cache that backs onto a mounted filesystem " David Howells
2007-08-10 16:06 ` [PATCH 14/16] NFS: Use local caching " David Howells
2007-08-10 16:06 ` David Howells
2007-08-10 16:06 ` [PATCH 15/16] NFS: Configuration and mount option changes to enable local caching on NFS " David Howells
2007-08-10 16:06 ` David Howells
2007-08-10 16:06 ` [PATCH 16/16] NFS: Display local caching state " David Howells
2007-08-10 16:06 ` David Howells
2007-08-10 22:13 ` [PATCH 00/16] Permit filesystem local caching " Casey Schaufler
2007-08-10 22:13 ` Casey Schaufler
2007-08-11 8:41 ` David Howells
2007-08-11 8:41 ` David Howells
2007-08-11 8:41 ` David Howells
2007-08-11 15:56 ` Casey Schaufler
2007-08-11 15:56 ` Casey Schaufler
2007-08-13 10:54 ` David Howells
2007-08-13 10:54 ` David Howells
2007-08-13 10:54 ` David Howells
2007-08-13 13:46 ` Casey Schaufler
2007-08-13 13:46 ` Casey Schaufler
2007-08-13 13:46 ` Casey Schaufler
2007-08-13 14:51 ` David Howells
2007-08-13 14:51 ` David Howells
2007-08-13 14:51 ` David Howells
2007-08-13 14:57 ` Stephen Smalley
2007-08-13 14:57 ` Stephen Smalley
2007-08-13 14:57 ` Stephen Smalley
2007-08-13 15:22 ` David Howells
2007-08-13 15:22 ` David Howells
2007-08-13 15:22 ` David Howells
2007-08-13 16:20 ` Casey Schaufler [this message]
2007-08-13 16:20 ` Casey Schaufler
2007-08-13 16:31 ` David Howells
2007-08-13 16:31 ` David Howells
2007-08-13 16:31 ` David Howells
2007-08-13 16:58 ` Casey Schaufler
2007-08-13 16:58 ` Casey Schaufler
2007-08-13 16:58 ` Casey Schaufler
2007-08-13 19:52 ` David Howells
2007-08-13 19:52 ` David Howells
2007-08-13 21:44 ` Casey Schaufler
2007-08-13 21:44 ` Casey Schaufler
2007-08-14 9:39 ` David Howells
2007-08-14 9:39 ` David Howells
2007-08-14 9:39 ` David Howells
2007-08-14 15:53 ` Casey Schaufler
2007-08-14 15:53 ` Casey Schaufler
2007-08-14 17:42 ` Stephen Smalley
2007-08-14 17:42 ` Stephen Smalley
2007-08-14 17:42 ` Stephen Smalley
2007-08-15 16:30 ` Casey Schaufler
2007-08-15 16:30 ` Casey Schaufler
2007-08-15 16:30 ` Casey Schaufler
2007-08-14 17:58 ` David Howells
2007-08-14 17:58 ` David Howells
2007-08-14 17:58 ` David Howells
2007-08-14 17:50 ` Stephen Smalley
2007-08-14 17:50 ` Stephen Smalley
2007-08-14 17:50 ` Stephen Smalley
2007-08-13 15:42 ` Casey Schaufler
2007-08-13 15:42 ` Casey Schaufler
2007-08-13 15:42 ` Casey Schaufler
2007-08-13 13:50 ` Stephen Smalley
2007-08-13 13:50 ` Stephen Smalley
2007-08-13 13:50 ` Stephen Smalley
2007-08-13 15:10 ` Casey Schaufler
2007-08-13 15:10 ` Casey Schaufler
2007-08-13 15:10 ` Casey Schaufler
2007-08-13 13:01 ` Stephen Smalley
2007-08-13 13:01 ` Stephen Smalley
2007-08-13 13:01 ` Stephen Smalley
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=26859.95417.qm@web36612.mail.mud.yahoo.com \
--to=casey@schaufler-ca.com \
--cc=akpm@osdl.org \
--cc=dhowells@redhat.com \
--cc=linux-cachefs@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=nfsv4@linux-nfs.org \
--cc=sds@tycho.nsa.gov \
--cc=selinux@tycho.nsa.gov \
--cc=steved@redhat.com \
--cc=torvalds@osdl.org \
--cc=trond.myklebust@fys.uio.no \
/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.