On Sat, 9 Jun 2007 00:04:15 -0700 (PDT)
david@lang.hm wrote:
The question is: why not just extend SELinux to include AA functionality
rather than doing a whole new subsystem. What exactly about AA demands
an entire new infrastructure rather than just building on what already
exists in the kernel?
It seems the main purported advantage of AA is it doesn't require maintaining
labels on files etc. In fact, that's the only conceptual difference I can
see other than a simpler policy file format. So why not just make an AA
extension to SELinux that implements this main difference (ie. create labels
on the fly).
Then have a userspace program that converts the pretty-peace-and-love
AA policy file format into the baby-killing SELinux format and feed it
into the kernel.
All of a sudden you've implemented the main features of AA with very
few changes to the kernel. It should be more maintainable, and much
easier to get accepted into the kernel.
Because it requires you to reimplement much of what is already in the kernel.
It requires you to be able to understand an entire new policy mechanism
instead of just piggybacking on what already exists.
Again you're only looking at the way the AA code is _today_. If it were
refactored to be an extension of SELinux, there would be no reason for the
AA kernel code to know any policy whatsoever. All it would need to know
is a path-to-label mapping. SELinux would then enforce the AA policy
that it received from your userspace tool that translates your native
AA policy format into SELinux-lingo.
It's a win because the policy enforcement code is already in the kernel.
All you have to do is extend SELinux to create labels on the fly and provide
a userspace tool to convert the nice AA policy files into something SELinux
can use.
You seem to be quibbling over small little unimportant details and refusing
to part with your current implementation. It would seem the easiest way to
get the functionality you want into the kernel is to be a bit more flexible
on implementation.
Sean
-