[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <462EA8E9.6050700@tresys.com>
Date: Tue, 24 Apr 2007 21:03:37 -0400
From: Joshua Brindle <jbrindle@...sys.com>
To: Crispin Cowan <crispin@...ell.com>
CC: David Wagner <daw-usenet@...erner.cs.berkeley.edu>,
linux-kernel@...r.kernel.org,
LSM ML <linux-security-module@...r.kernel.org>
Subject: Re: AppArmor FAQ
Crispin Cowan wrote:
> David Wagner wrote:
>
>> James Morris wrote:
>>
>>
>>> [...] you can change the behavior of the application and then bypass
>>> policy entirely by utilizing any mechanism other than direct filesystem
>>> access: IPC, shared memory, Unix domain sockets, local IP networking,
>>> remote networking etc.
>>>
>>>
>> [...]
>>
>>
>>> Just look at their code and their own description of AppArmor.
>>>
>>>
>> My gosh, you're right. What the heck? With all due respect to the
>> developers of AppArmor, I can't help thinking that that's pretty lame.
>> I think this raises substantial questions about the value of AppArmor.
>> What is the point of having a jail if it leaves gaping holes that
>> malicious code could use to escape?
>>
>> And why isn't this documented clearly, with the implications fully
>> explained?
>>
>> I would like to hear the AppArmor developers defend this design decision.
>>
>>
> It was a simplicity trade off at the time, when AppArmor was mostly
> aimed at servers, and there was no HAL or DBUS. Now it is definitely a
> limitation that we are addressing. We are working on a mediation system
> for what kind of IPC a confined process can do
> http://forge.novell.com/pipermail/apparmor-dev/2007-April/000503.html
>
>
Also, things like:
share_mem /usr/bin/firefox r, # /bin/foo can share memory with /usr/bin/firefox for read only
clearly show that you aren't using native abstractions for IPC. The
native abstraction for shared memory would be the key used when creating
the shared memory segment. The same goes for message queues which are
noticeably missing from the "simplified" IPC model.
This, of course, begs the question of whether you are using native
abstractions for profiles at all, processes have nothing to do with the
binary they started from after they've been started. The binary on disk
could be something entirely different than the process from which it ran.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists