All of lore.kernel.org
 help / color / mirror / Atom feed
* SE Android and Finer Grained Permissions
@ 2012-03-05  2:02 Jeffrey Walton
  2012-03-05 15:09 ` James Carter
  2012-03-06  1:02 ` Casey Schaufler
  0 siblings, 2 replies; 8+ messages in thread
From: Jeffrey Walton @ 2012-03-05  2:02 UTC (permalink / raw)
  To: SE Linux

Hi All,

Forgive my ignorance here.....

I was reading the slides at on SE Android at
http://selinuxproject.org/~jmorris/lss2011_slides/caseforseandroid.pdf.

I see the slides point out "[Current Android suffers] limited
granularity, coarse-grained privilege." But I don't see where SE
Android corrected it. For example, it appears READ_PHONE_STATE still
encompasses reading a device serial number, IMEI, SIM ID, call state,
incoming calling number, etc.

Does SE Android remediate the coarse grained permissions?

Is an application installation still an "all or nothing" proposition
with respect to permissions? For example, can I approve an install and
later take away the WRITE_CONTACTS permission?

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-05  2:02 SE Android and Finer Grained Permissions Jeffrey Walton
@ 2012-03-05 15:09 ` James Carter
  2012-03-05 19:44   ` Stephen Smalley
  2012-03-06  1:02 ` Casey Schaufler
  1 sibling, 1 reply; 8+ messages in thread
From: James Carter @ 2012-03-05 15:09 UTC (permalink / raw)
  To: noloader; +Cc: SE Linux

On Sun, 2012-03-04 at 21:02 -0500, Jeffrey Walton wrote:
> Hi All,
> 
> Forgive my ignorance here.....
> 
> I was reading the slides at on SE Android at
> http://selinuxproject.org/~jmorris/lss2011_slides/caseforseandroid.pdf.
> 
> I see the slides point out "[Current Android suffers] limited
> granularity, coarse-grained privilege." But I don't see where SE
> Android corrected it. For example, it appears READ_PHONE_STATE still
> encompasses reading a device serial number, IMEI, SIM ID, call state,
> incoming calling number, etc.
> 
> Does SE Android remediate the coarse grained permissions?
> 

No. Currently, the SE Android policy is only trying to ensure that the
existing Android security model is enforced. The Android permissions
work exactly the same way.

SE Android is still a work in progress. Our goal is to extend security
controls into the application frameworks of Android to better control
applications and that could eventually lead to finer-grained control
over resources currently controlled by Android permissions.

> Is an application installation still an "all or nothing" proposition
> with respect to permissions? For example, can I approve an install and
> later take away the WRITE_CONTACTS permission?
> 

As I mentioned above, SE Android currently does not change the Android
security model.
-- 
James Carter <jwcart2@tycho.nsa.gov>
National Security Agency


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-05 15:09 ` James Carter
@ 2012-03-05 19:44   ` Stephen Smalley
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Smalley @ 2012-03-05 19:44 UTC (permalink / raw)
  To: jwcart2; +Cc: noloader, SE Linux

On Mon, 2012-03-05 at 10:09 -0500, James Carter wrote:
> On Sun, 2012-03-04 at 21:02 -0500, Jeffrey Walton wrote:
> > Hi All,
> > 
> > Forgive my ignorance here.....
> > 
> > I was reading the slides at on SE Android at
> > http://selinuxproject.org/~jmorris/lss2011_slides/caseforseandroid.pdf.
> > 
> > I see the slides point out "[Current Android suffers] limited
> > granularity, coarse-grained privilege." But I don't see where SE
> > Android corrected it. For example, it appears READ_PHONE_STATE still
> > encompasses reading a device serial number, IMEI, SIM ID, call state,
> > incoming calling number, etc.
> > 
> > Does SE Android remediate the coarse grained permissions?
> > 
> 
> No. Currently, the SE Android policy is only trying to ensure that the
> existing Android security model is enforced. The Android permissions
> work exactly the same way.
> 
> SE Android is still a work in progress. Our goal is to extend security
> controls into the application frameworks of Android to better control
> applications and that could eventually lead to finer-grained control
> over resources currently controlled by Android permissions.

Just to further clarify, SE Android does in fact address the limitations
of the kernel layer DAC security model, including overcoming its limited
granularity and coarse-grained privilege model (which is what you quoted
above from slide 5).  But addressing the application layer (aka
middleware layer) security model remains to be done, as noted on slide
46. Also, you may find the more recent talk we gave at the Android
Builders Summit to be helpful.  Links to the slides and video from that
talk are available on the wiki:
http://selinuxproject.org/page/SEAndroid#Presentations

-- 
Stephen Smalley
National Security Agency


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-05  2:02 SE Android and Finer Grained Permissions Jeffrey Walton
  2012-03-05 15:09 ` James Carter
@ 2012-03-06  1:02 ` Casey Schaufler
  2012-03-06  2:39   ` Jeffrey Walton
  2012-03-06 14:53   ` Stephen Smalley
  1 sibling, 2 replies; 8+ messages in thread
From: Casey Schaufler @ 2012-03-06  1:02 UTC (permalink / raw)
  To: noloader; +Cc: SE Linux, Casey Schaufler

On 3/4/2012 6:02 PM, Jeffrey Walton wrote:
> Hi All,
>
> Forgive my ignorance here.....
>
> I was reading the slides at on SE Android at
> http://selinuxproject.org/~jmorris/lss2011_slides/caseforseandroid.pdf.
>
> I see the slides point out "[Current Android suffers] limited
> granularity, coarse-grained privilege." But I don't see where SE
> Android corrected it. For example, it appears READ_PHONE_STATE still
> encompasses reading a device serial number, IMEI, SIM ID, call state,
> incoming calling number, etc.
>
> Does SE Android remediate the coarse grained permissions?
>
> Is an application installation still an "all or nothing" proposition
> with respect to permissions? For example, can I approve an install and
> later take away the WRITE_CONTACTS permission?

I personally applaud the coarser granularity that the Android policy
has over the Fedora policy. I have long been critical of what I
consider to be excesses of granularity in SELinux. Do you really want
to see 900,000 lines of policy for a handset device? And before
someone starts to claim that the handset system software is somehow
smaller or less complex than the Fedora distribution I will point to
Stephen's note about the application enforced policy of Android.

Fine granularity in access controls are lots of fun for engineers
and seem like a good idea when you want to turn on a particular
facility and can't do so because the seemingly unrelated implications
are too dangerous. But it's a slippery slope, and I seriously doubt
that anyone would want to truly understand all the relationships
included in a policy for Android that matches the granularity of the
policy for Fedora.

But, that's my well known opinion, and as such you may wish to take
it with a grain of salt. I will be sad to see the Android policy grow
with the same unbridled exuberance as the Fedora and reference policies.


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


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-06  1:02 ` Casey Schaufler
@ 2012-03-06  2:39   ` Jeffrey Walton
  2012-03-06 15:08     ` Stephen Smalley
  2012-03-06 14:53   ` Stephen Smalley
  1 sibling, 1 reply; 8+ messages in thread
From: Jeffrey Walton @ 2012-03-06  2:39 UTC (permalink / raw)
  To: Casey Schaufler; +Cc: SE Linux

Hi Casey,

On Mon, Mar 5, 2012 at 8:02 PM, Casey Schaufler <casey@schaufler-ca.com> wrote:
> On 3/4/2012 6:02 PM, Jeffrey Walton wrote:
>> Forgive my ignorance here.....
>>
>> I was reading the slides at on SE Android at
>> http://selinuxproject.org/~jmorris/lss2011_slides/caseforseandroid.pdf.
>>
>> I see the slides point out "[Current Android suffers] limited
>> granularity, coarse-grained privilege." But I don't see where SE
>> Android corrected it. For example, it appears READ_PHONE_STATE still
>> encompasses reading a device serial number, IMEI, SIM ID, call state,
>> incoming calling number, etc.
>>
>> Does SE Android remediate the coarse grained permissions?
>>
>> Is an application installation still an "all or nothing" proposition
>> with respect to permissions? For example, can I approve an install and
>> later take away the WRITE_CONTACTS permission?
>
>
> I personally applaud the coarser granularity that the Android policy
> has over the Fedora policy. I have long been critical of what I
> consider to be excesses of granularity in SELinux. Do you really want
> to see 900,000 lines of policy for a handset device? And before
> someone starts to claim that the handset system software is somehow
> smaller or less complex than the Fedora distribution I will point to
> Stephen's note about the application enforced policy of Android.
>
> Fine granularity in access controls are lots of fun for engineers
> and seem like a good idea when you want to turn on a particular
> facility and can't do so because the seemingly unrelated implications
> are too dangerous. But it's a slippery slope, and I seriously doubt
> that anyone would want to truly understand all the relationships
> included in a policy for Android that matches the granularity of the
> policy for Fedora.
For what its worth, here's what I envision:

READ_PHONE_STATE gives the house away (confer:
http://android-permissions.org/ and the Permission Map). As a matter
of fact, Goolge forced the permission on *all* apps, whetehr it was
needed or not (confer:
http://stackoverflow.com/questions/1747178/android-permissions-phone-calls-read-phone-state-and-identity).

I want finer permissions than READ_PHONE_STATE. Perhaps
READ_PHONE_UNIQUE_ID, READ_PHONE_IMEI, READ_PHONE_INCOMING_CALLER,
READ_PHONE_LINE_STATE, READ_PHONE_LOG, etc. Ditto for many other
permissions.

When it comes time to install an application, I can look at what
actually is requested (not just READ_PHONE_STATE), and choose Yes or
No. If I choose Yes, I'd like to take away permissions at a later
time. For example, I might get suspicious and remove READ_PHONE_LOG at
a later time.

For the Enterprise, SE Android/Management Server *should* allow one to
do the same, but from a central console. I should be able to install
(or deny an install), or uninstall, or yank a permission at a later
date.

> But, that's my well known opinion, and as such you may wish to take
> it with a grain of salt. I will be sad to see the Android policy grow
> with the same unbridled exuberance as the Fedora and reference policies.
Not at all.

Unfortunately, I can't comment on policy bloat since Fedora works
great for me out of the box as a single user (no Enterprise). Perhaps
the policy tools are lacking. Again, I've never seen their GUIs, but
the front end should be simple for admins and users who understand
policy (confer: Microsoft, MMC, and Local Security Policy or GPOs).

Jeff

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-06  1:02 ` Casey Schaufler
  2012-03-06  2:39   ` Jeffrey Walton
@ 2012-03-06 14:53   ` Stephen Smalley
  2012-03-11  5:55     ` coderman
  1 sibling, 1 reply; 8+ messages in thread
From: Stephen Smalley @ 2012-03-06 14:53 UTC (permalink / raw)
  To: Casey Schaufler; +Cc: noloader, SE Linux

On Mon, 2012-03-05 at 17:02 -0800, Casey Schaufler wrote:
> On 3/4/2012 6:02 PM, Jeffrey Walton wrote:
> > Hi All,
> >
> > Forgive my ignorance here.....
> >
> > I was reading the slides at on SE Android at
> > http://selinuxproject.org/~jmorris/lss2011_slides/caseforseandroid.pdf.
> >
> > I see the slides point out "[Current Android suffers] limited
> > granularity, coarse-grained privilege." But I don't see where SE
> > Android corrected it. For example, it appears READ_PHONE_STATE still
> > encompasses reading a device serial number, IMEI, SIM ID, call state,
> > incoming calling number, etc.
> >
> > Does SE Android remediate the coarse grained permissions?
> >
> > Is an application installation still an "all or nothing" proposition
> > with respect to permissions? For example, can I approve an install and
> > later take away the WRITE_CONTACTS permission?
> 
> I personally applaud the coarser granularity that the Android policy
> has over the Fedora policy. I have long been critical of what I
> consider to be excesses of granularity in SELinux. Do you really want
> to see 900,000 lines of policy for a handset device? And before
> someone starts to claim that the handset system software is somehow
> smaller or less complex than the Fedora distribution I will point to
> Stephen's note about the application enforced policy of Android.
> 
> Fine granularity in access controls are lots of fun for engineers
> and seem like a good idea when you want to turn on a particular
> facility and can't do so because the seemingly unrelated implications
> are too dangerous. But it's a slippery slope, and I seriously doubt
> that anyone would want to truly understand all the relationships
> included in a policy for Android that matches the granularity of the
> policy for Fedora.
> 
> But, that's my well known opinion, and as such you may wish to take
> it with a grain of salt. I will be sad to see the Android policy grow
> with the same unbridled exuberance as the Fedora and reference policies.

Just to be clear, the SE Android (kernel) policy is a small, fixed
policy (with a small set of security goals) that doesn't require any
policy writing by (Android) app developers and that is invisible to
users.  And we intend to keep it that way.

-- 
Stephen Smalley
National Security Agency


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-06  2:39   ` Jeffrey Walton
@ 2012-03-06 15:08     ` Stephen Smalley
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Smalley @ 2012-03-06 15:08 UTC (permalink / raw)
  To: noloader; +Cc: Casey Schaufler, SE Linux

On Mon, 2012-03-05 at 21:39 -0500, Jeffrey Walton wrote:
> For what its worth, here's what I envision:
> 
> READ_PHONE_STATE gives the house away (confer:
> http://android-permissions.org/ and the Permission Map). As a matter
> of fact, Goolge forced the permission on *all* apps, whetehr it was
> needed or not (confer:
> http://stackoverflow.com/questions/1747178/android-permissions-phone-calls-read-phone-state-and-identity).
> 
> I want finer permissions than READ_PHONE_STATE. Perhaps
> READ_PHONE_UNIQUE_ID, READ_PHONE_IMEI, READ_PHONE_INCOMING_CALLER,
> READ_PHONE_LINE_STATE, READ_PHONE_LOG, etc. Ditto for many other
> permissions.

While SE Android may ultimately support finer grained permissions for
the application layer access controls, that isn't what we consider to be
the largest issue for the existing Android security model and thus is
not our first priority.  Privilege escalation via confused deputy and
collusion attacks and controlled sharing are the more significant
concerns.  "Towards Taming Privilege Escalation Attacks on Android" from
NDSS 2012 and "Permission Re-Delegation: Attacks and Defenses" from
Usenix Security 2011 are good background on the problems and some
previously proposed solutions.
 
> When it comes time to install an application, I can look at what
> actually is requested (not just READ_PHONE_STATE), and choose Yes or
> No. If I choose Yes, I'd like to take away permissions at a later
> time. For example, I might get suspicious and remove READ_PHONE_LOG at
> a later time.
> 
> For the Enterprise, SE Android/Management Server *should* allow one to
> do the same, but from a central console. I should be able to install
> (or deny an install), or uninstall, or yank a permission at a later
> date.

Permission revocation is already fairly easily supported on existing
Android (and I think supported in some custom builds like CyanogenMod).
But it doesn't address the issues above.

> > But, that's my well known opinion, and as such you may wish to take
> > it with a grain of salt. I will be sad to see the Android policy grow
> > with the same unbridled exuberance as the Fedora and reference policies.
> Not at all.
> 
> Unfortunately, I can't comment on policy bloat since Fedora works
> great for me out of the box as a single user (no Enterprise). Perhaps
> the policy tools are lacking. Again, I've never seen their GUIs, but
> the front end should be simple for admins and users who understand
> policy (confer: Microsoft, MMC, and Local Security Policy or GPOs).

Since we are focused on a limited set of security goals at the kernel
layer for SE Android, and since Android provides a much more constrained
environment for apps than a general purpose Linux distribution, it is
significantly easier to keep the SE Android kernel policy small and
manageable.

To the extent that we keep our focus on mitigating privilege escalation
attacks and controlled sharing for the application layer access
controls, I think we'll also be able to keep the application layer
policy small and manageable.

-- 
Stephen Smalley
National Security Agency


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: SE Android and Finer Grained Permissions
  2012-03-06 14:53   ` Stephen Smalley
@ 2012-03-11  5:55     ` coderman
  0 siblings, 0 replies; 8+ messages in thread
From: coderman @ 2012-03-11  5:55 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Casey Schaufler, noloader, SE Linux

On Tue, Mar 6, 2012 at 6:53 AM, Stephen Smalley <sds@tycho.nsa.gov> wrote:
>...
> Just to be clear, the SE Android (kernel) policy is a small, fixed
> policy (with a small set of security goals) that doesn't require any
> policy writing by (Android) app developers and that is invisible to
> users.  And we intend to keep it that way.

can we get XenARM policy enforcement next?  like Qubes+NetTop for mobiles...

</dreamin'>


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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-03-11  5:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-05  2:02 SE Android and Finer Grained Permissions Jeffrey Walton
2012-03-05 15:09 ` James Carter
2012-03-05 19:44   ` Stephen Smalley
2012-03-06  1:02 ` Casey Schaufler
2012-03-06  2:39   ` Jeffrey Walton
2012-03-06 15:08     ` Stephen Smalley
2012-03-06 14:53   ` Stephen Smalley
2012-03-11  5:55     ` coderman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.