Re: [RESEND][RFC][PATCH 2/7] implementation of LSM hooks

Arjan van de Ven
2006-04-19T07:44:10Z

On Wed, 2006-04-19 at 02:40 -0400, Kyle Moffett wrote:
> On Apr 18, 2006, at 21:48:56, Casey Schaufler wrote:
> > --- James Morris <jmorris@namei.org> wrote:
> >> With pathnames, there is an unbounded and unknown number of
> >> effective security policies on the system, as there are an
> >> unbounded and unknown number of ways of viewing the files via
> >> pathnames.
> >
> > I agree that for traditional DAC and MAC (including the flavors
> > supported by SELinux) inodes is the only way to go. SELinux is a
> > traditional Trusted OS architecture and addresses the traditional
> > Trusted OS issues.
>
> Perhaps the SELinux model should be extended to handle (dir-inode,
> path-entry) pairs. For example, if I want to protect the /etc/shadow
> file regardless of what tool is used to safely modify it, I would set
> up security as follows:
>
> o Protect the "/" and "/etc" directory inodes as usual under SELinux
> (with attributes on directory inodes).

in which namespace are these? And are they in a chroot?
And what if someone makes /etd a symlink to /etc :)
And what if I bind-mount something on top of /etc/shadow ?
or unlink the file while holding it open? Should the security suddenly
go away? There's no "directory" for this file anymore at that point.
Or if I hardlink /etc/shadhow to /tmp/shad ... what then?

> o Create pairs with (etc_inode,"shadow") and (etc_inode,"gshadow")
> and apply security attributes to those potentially nonexistent pairs

again see above ;_)

> .
>
> I'm not terribly familiar with the exact internal semantics of
> SELinux, but that should provide a 90% solution (it fixes bind mounts
> and namespaces).

how does this fix namespaces or even bind mounts?
(or even symlinks for that matter)