[apparmor] [PATCH 2/4] profiles: Add strict session bus abstraction

Tyler Hicks tyhicks at canonical.com
Thu Jan 9 23:22:54 UTC 2014


On 2014-01-09 12:59:28, John Johansen wrote:
> On 01/09/2014 12:28 PM, Tyler Hicks wrote:
> > On 2014-01-07 16:39:44, Jamie Strandboge wrote:
> >> On 01/03/2014 04:26 PM, Tyler Hicks wrote:
> >>> Move the file rule from the existing permissive session bus abstraction
> >>> into a new strict session bus abstraction.
> >>>
> >> Thanks for all these! This is a really good idea. Sorry for not responding sooner.
> > 
> > No problem! I thought you'd like these patches since they should make
> > some of your profiles smaller. :)
> > 
> >> ...
> >>>
> >>> diff --git a/profiles/apparmor.d/abstractions/dbus-session b/profiles/apparmor.d/abstractions/dbus-session
> >>> index 76a7bbf..2eda4e0 100644
> >>> --- a/profiles/apparmor.d/abstractions/dbus-session
> >>> +++ b/profiles/apparmor.d/abstractions/dbus-session
> >>
> >> ...
> >>
> >>> -  /usr/bin/dbus-launch ix,
> >>
> >> ...
> >>
> >>> diff --git a/profiles/apparmor.d/abstractions/dbus-session-strict b/profiles/apparmor.d/abstractions/dbus-session-strict
> >>
> >>> +  /usr/bin/dbus-launch ix,
> >>
> >> ...
> >>
> >> First off, can we change this to be 'Pix'?
> > 
> > IMO, modifying this rule should happen separate from this patch set. (but that
> > doesn't mean we can't discuss it...)
> > 
> > 
> > It used to be Pix. Take a look at r1722. Here's the commit message:
> > 
> >   profiles/apparmor.d/abstractions/dbus-session: Per discussion with John
> >   Johansen, use 'ix' instead of 'Pix' for dbus-launch since if someone happens to
> >   define a profile for dbus-launch and it is loosely confined, then users of this
> >   abstraction could end up launching a program via dbus-launch in a less confined
> >   manner than intended. This sort of thing should not be possible via an
> >   abstraction (and people are always free to profile using Pix if they prefer).
> > 
> > Would 'Pix -> dbus_launch', as you suggest below, fix the problem that John
> > pointed out? I think it would but I'm not 100% sure.
> > 
> No, this just locks down what profile will be used to a profile with a specific
> name.
> 
>   Eg. using ix
>     task a confined by A calls dbus-launch b
>     dbus-launch is confined by A
>     b (if it is allowed) has its confinement determined by A
> 
>   Eg. using Pix, same as ix if no profile defined otherwise, for a profile D defined
>   for dbus-launch
>     task a confined by A calls dbus-launch b
>     dbus-launch is confined by D
>     b (if allowed by D) has its confinement determined by D
> 
> The difference between using a plain Pix as above and Pix -> dbus-launch is that
> the profile is specified to always be the dbus-launch profile. Where the bare Pix
> will choose the "best" profile.
> 
> It could be dbus-launch, if it has an attachment specification
>   profile dbus-launch /usr/bin/dbus-launch { }
> 
> however you generally wouldn't want to do that as it would apply to every invocation
> of dbus-launch and would have to be very loose
> 
> It could be a generic profile
>   profile generic /usr/bin/* { }
> 
> etc.
> 
> specifying the dbus-launch profile with Pix -> dbus-launch, allows for a generic
> dbus-launch profile that doesn't attach from unconfined, so it can be tighter
> than a dbus-launch profile with the generic attachment. However this is still not
> what you usually want to do for a confined application. Generally you want it
> to use the transitions defined by A.
> 
> What this really is asking for is a form of profile composition. Where the base
> permissions for dbus launch are contain in a separate profile so they don't
> pollute the current profile, and the transitions for the current profile are
> used. Interestingly enough stacking can give this to us.
> 
>   Px -> &//dbus-launch,
> 
> the dbus-launch profile will need a transition defined in it so that it get
> dropped when it launches b
> 
> that is
> dbus-launch {
>   /** ux,
> }
> 
> this will cause the dbus-launch profile to be dropped from the stack, allowing
> b's transition to be entirely defined by profile A
> 

Thanks for explaining this so well!

> 
> but for now I would keep it as ix, sorry I didn't catch that on my first review
> 

You didn't miss anything. The patch you reviewed kept the rule as ix.
Jamie proposed to change it to Pix in a later reply.

Tyler
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20140109/dd16ee7b/attachment.pgp>


More information about the AppArmor mailing list