On Fri, 2012-09-28 at 11:27 -0400, Joshua Brindle wrote:
> Stephen Smalley wrote:
> > On Fri, 2012-09-28 at 11:10 -0400, Joshua Brindle wrote:
> >> Stephen Smalley wrote:
> >>> On Fri, 2012-09-28 at 10:55 -0400, Joshua Brindle wrote:
> >>>> As of right now, if you want a separate app domain (no binder 
> >>>> communications allowed outside of the domain) you have to reproduce all 
> >>>> the rules for the appdomain attribute for the new domain. This isn't 
> >>>> ideal, and having to track appdomain changes, etc, etc.
> >>>>
> >>>> My first thought was to make a template that replicated all of the 
> >>>> appdomain  rules (which would enlarge the policy every time it was used) 
> >>>> but it occurred to me this morning that we aren't really utilizing the 
> >>>> constraints for binder. I quickly tested this on my phone this morning 
> >>>> and it appears to work.
> >>>>
> >>>> I had to make servicemanager and radio binder services, I don't know if 
> >>>> that was the right thing to do but the macro description seemed to match:
> >>>>
> >> <snip>
> >>
> >>>>    # Presently commented out, as apps are expected to call one another.
> >>>>    # This would only make sense if apps were assigned categories
> >>>>    # based on allowable communications rather than per-app categories.
> >>>> -#mlsconstrain binder call
> >>>> -#       (l1 eq l2 or t1 == mlstrustedsubject or t2 == 
> >>>> mlstrustedsubject);
> >>>> +mlsconstrain binder call
> >>>> +        (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject 
> >>>> or t1 == t2     
> >>>> +                or t1 == platformappdomain or t2 == platformappdomain 
> >>>> or t2 == binderservicedomain);
> >>> Bill tried using this constraint earlier but found it doesn't actually
> >>> prevent Intents from being sent across levels.  They all go through the
> >>> system_server, so it just looks like A ->   system_server and
> >>> system_server ->   B.  Kernel doesn't see the direct A ->   B connection.
> >>>
> >> In what cases? I definitely see plenty of binder calls between the
> >> domains when I separate them (both this way and the way I was doing it
> >> before).  Granted if the system_server does that at all it has to be
> >> enforce the separation but I'm wondering what I'm currently letting 
> >> through.
> >
> > There are some direct calls, yes, but AMS routes Intents and deals with
> > Broadcasts IIUC.
> >
> > BTW, what's the advantage of adding further exceptions to the constraint
> > vs. just making those domains mlstrustedsubjects?  If they can take
> > binder IPC from any level, then they may also have to deal with open fds
> > passed by the caller that may be created at any level.  Or if they truly
> > don't require full mls exemption, I'd say introduce a new
> > mlstrustedbinder attribute and put that on all of the relevant domains.
> >
> 
> I looked around for an attribute that was already used for binder 
> services and assumed that platformappdomain would need to be exempt as 
> well. What is the advantage to combining those 2 domains into 
> mlstrustedbinder?

We already mark platform app domains with mlstrustedsubject in
platform_app_domain() so that one should be covered.  Adding it to
binder_service() likely also makes sense.

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the seandroid-list mailing list.
If you no longer wish to subscribe, send mail to majord...@tycho.nsa.gov with
the words "unsubscribe seandroid-list" without quotes as the message.

Reply via email to