Commit graph

4080 commits

Author SHA1 Message Date
dcashman
bb3cef4488 Record observed bluetooth service access.
Bug: 18106000
Change-Id: I80b574f73d53439dd710ccdb8f05cc2f9e9a10b4
2015-03-06 11:13:29 -08:00
Nick Kralevich
a9f288b850 am 1aafc4c7: allow untrusted_app read /data/anr/traces.txt
* commit '1aafc4c7d34b30870ab985a8c33f9c87e16fd73c':
  allow untrusted_app read /data/anr/traces.txt
2015-03-06 16:32:46 +00:00
Nick Kralevich
1aafc4c7d3 allow untrusted_app read /data/anr/traces.txt
The GMS core feedback agent runs as untrusted_app, and needs
the ability to read /data/anr/traces.txt to report ANR information.

Allow all untrusted_apps to read /data/anr/traces.txt so that GMS core
can access it.

Longer term, we need to move GMS core into it's own domain, but that's
a longer term change.

Addresses the following denial:

W/ndroid.feedback(17825): type=1400 audit(0.0:68004): avc: denied { read } for name="traces.txt" dev="mmcblk0p28" ino=325762 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file

(cherrypick from commit e2547c3bff)

Bug: 18504118
Bug: 18340553
Change-Id: I8b472b6ab7dfe2a73154033e0a088b8e26396fa8
2015-03-05 17:00:58 -08:00
Nick Kralevich
bb21fe8a86 resolved conflicts for merge of 8be3e779 to stage-aosp-master
Change-Id: I3b402e3a0f55b236c48dc9f4be1973cbfc0af8a4
2015-03-05 16:53:03 -08:00
Nick Kralevich
8be3e77986 move untrusted_app statement to the correct file.
Change-Id: I5ae9606023ef7f3489f44e6657766e922160c470
2015-03-05 15:40:04 -08:00
Nick Kralevich
88d6766b99 am ee66ba8c: Merge "update isolated_app service_manager rules"
* commit 'ee66ba8c4062f6cd1ce481384d39d13e0281f8bc':
  update isolated_app service_manager rules
2015-03-05 23:17:13 +00:00
Nick Kralevich
303e139a5c am b76966d6: recovery: remove auditallow for exec_type:dir writes
* commit 'b76966d65d4e59cbb20b5a78bc583a9907a495da':
  recovery: remove auditallow for exec_type:dir writes
2015-03-05 23:13:44 +00:00
Nick Kralevich
ee66ba8c40 Merge "update isolated_app service_manager rules" 2015-03-05 23:12:44 +00:00
Nick Kralevich
b76966d65d recovery: remove auditallow for exec_type:dir writes
With the move to block based OTAs, we're never going to fix
this bug. Remove the auditallow statement to avoid SELinux log
spam.

Bug: 15575013
Change-Id: I7864e87202b1b70020a8bdf3ef327a2cf4b6bfbd
2015-03-05 14:59:53 -08:00
Nick Kralevich
efb4bdb9f4 am 92b10ddb: Eliminate CAP_SYS_MODULE from system_server
* commit '92b10ddb47caa4c80a626e6c70330439feb4aa30':
  Eliminate CAP_SYS_MODULE from system_server
2015-03-05 22:46:05 +00:00
Nick Kralevich
92b10ddb47 Eliminate CAP_SYS_MODULE from system_server
Right now, the system_server has the CAP_SYS_MODULE capability.  This allows the
system server to install kernel modules.  Effectively, system_server is one
kernel module load away from full root access.

Most devices don't need this capability. Remove this capability from
the core SELinux policy. For devices which require this capability,
they can add it to their device-specific SELinux policy without making
any framework code changes.

In particular, most Nexus devices ship with monolithic kernels, so this
capability isn't needed on those devices.

Bug: 7118228
Change-Id: I7f96cc61da8b2476f45ba9570762145778d68cb3
2015-03-05 14:14:27 -08:00
Nick Kralevich
75f34dc392 update isolated_app service_manager rules
isolated apps should only be able to access 2 services.
Remove access permissions for services inappropriately added,
and add a neverallow rule to prevent regressions.

Change-Id: I2783465c4a22507849b2a64894fb76690a27bc01
2015-03-05 12:12:00 -08:00
Sami Tolvanen
9905c88361 am 723e31ef: Merge "Allow init to set up dm-verity"
* commit '723e31efe568bf3372205cb539436fb1ecef4e3f':
  Allow init to set up dm-verity
2015-03-05 04:29:50 +00:00
Sami Tolvanen
723e31efe5 Merge "Allow init to set up dm-verity" 2015-03-05 04:26:01 +00:00
Sami Tolvanen
35f537c7ef Allow init to set up dm-verity
Allow init to

 1. Access device mapper to set up dm-verity devices

    avc:  denied  { write } for  pid=156 comm="init" name="device-mapper" dev="tmpfs" ino=6229 scontext=u:r:init:s0 tcontext=u:object_r:dm_device:s0 tclass=chr_file permissive=0

 2. Access the metadata partition to load and store dm-verity state

    avc:  denied  { write } for  pid=1 comm="init" name="mmcblk0p25" dev="tmpfs" ino=6408 scontext=u:r:init:s0 tcontext=u:object_r:metadata_block_device:s0 tclass=blk_file permissive=0

 3. Read /sys/fs/pstore/console-ramoops to detect restarts triggered
    by dm-verity

    avc:  denied  { getattr } for  pid=1 comm="init" path="/sys/fs/pstore/console-ramoops" dev="pstore" ino=9911 scontext=u:r:init:s0 tcontext=u:object_r:pstorefs:s0 tclass=file permissive=0

These can be reproduced using the following steps:

 1. Add fs_mgr flag verify to the system partition in fstab

 2. Add a device specific init.rc handler for the init action that
    calls the built-in command verity_load_state.

Change-Id: Id8790ae4b204ca66e671eefd3820d649f1d1e7ba
2015-03-05 01:46:47 +00:00
dcashman
e44a431d20 am 60cfe79f: Revert "Drop special handling of app_data_file in mls constraints."
* commit '60cfe79f1807c2dd1897cc026f342946ed92ee65':
  Revert "Drop special handling of app_data_file in mls constraints."
2015-03-05 01:13:47 +00:00
dcashman
60cfe79f18 Revert "Drop special handling of app_data_file in mls constraints."
This reverts commit 27042f6da1.

Managed profiles are represented by new android users which have the ability to
communicate across profiles as governed by an IntentFilter provisioned by the
DevicePolicyManager.  This communication includes reading and writing content
URIs, which is currently obstructed by the mls separation between an owning user
and its managed profile.

Bug: 19444116
Bug: 19525465
Bug: 19540297
Bug: 19592525
Change-Id: Id9a97f24081902bceab5a96ddffd9276d751775b
2015-03-04 16:39:58 -08:00
dcashman
31a8511a79 am 23f33615: Record observed system_server servicemanager service requests.
* commit '23f336156daf61ba07c024af2fe96994605f46eb':
  Record observed system_server servicemanager service requests.
2015-03-03 19:50:02 +00:00
dcashman
23f336156d Record observed system_server servicemanager service requests.
Also formally allow dumpstate access to all services and grant system_server
access to address the following non-system_server_service entries:

avc:  granted  { find } for service=drm.drmManager scontext=u:r:system_server:s0 tcontext=u:object_r:drmserver_service:s0 tclass=service_manager
avc:  granted  { find } for service=nfc scontext=u:r:system_server:s0 tcontext=u:object_r:nfc_service:s0 tclass=service_manager

Bug: 18106000
Change-Id: Iad16b36acf44bce52c4824f8b53c0e7731c25602
2015-03-03 11:38:07 -08:00
Nick Kralevich
77a16b43c7 am 3e113edf: neverallow ueventd to set properties
* commit '3e113edf0225bbe54a0f98353dd22de855ee2657':
  neverallow ueventd to set properties
2015-03-03 17:34:01 +00:00
Nick Kralevich
3e113edf02 neverallow ueventd to set properties
Add a compile time assertion that no SELinux rules exist which
allow ueventd to set properties, or even connect to the property
socket.

See https://android-review.googlesource.com/#/c/133120/6/init/devices.cpp@941
for details.

Change-Id: Ia9e932a3d94443d70644b14f36c74df4be7e9e32
2015-03-02 20:10:48 -08:00
dcashman
66d02db0e8 am 19eecd2d: Merge "Allow platform_app access to keystore."
* commit '19eecd2dd7bd0f542e8ac7ed6ea576dc397f6639':
  Allow platform_app access to keystore.
2015-03-02 19:46:51 +00:00
dcashman
19eecd2dd7 Merge "Allow platform_app access to keystore." 2015-03-02 19:43:02 +00:00
dcashman
7bf1b89719 am e8df21b2: Merge "Remove read access from mls constraints."
* commit 'e8df21b20dfc70be413d788586c5f43961c23197':
  Remove read access from mls constraints.
2015-03-02 19:41:52 +00:00
dcashman
6a2451b580 Allow platform_app access to keystore.
Encountered when certinstaller tries to talk to keystore:
ComponentInfo{com.android.certinstaller/com.android.certinstaller.CertInstaller}: java.lang.NullPointerException: Attempt to invoke interface method 'int android.security.IKeystoreService.test()' on a null object reference

Address the following denial:
avc:  denied  { find } for service=android.security.keystore scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:keystore_service:s0 tclass=service_manager

Bug: 19347232
Change-Id: I35b46da3c78b384cf04216be937c6b5bfa86452d
2015-03-02 11:31:26 -08:00
dcashman
e8df21b20d Merge "Remove read access from mls constraints." 2015-03-02 18:43:43 +00:00
Nick Kralevich
29b74271ad am e4da594d: Merge "Delete unconfined domain"
* commit 'e4da594d9db3554621c9818ab2144f71ec9a8dac':
  Delete unconfined domain
2015-03-02 17:24:25 +00:00
Nick Kralevich
547aa01865 am 07e73489: init: drop read_policy permission
* commit '07e7348921816cf4f02006016c06d07156c2bd51':
  init: drop read_policy permission
2015-03-02 17:24:24 +00:00
Nick Kralevich
e4da594d9d Merge "Delete unconfined domain" 2015-03-02 17:18:24 +00:00
Nick Kralevich
f435a8e556 Delete unconfined domain
No longer used.  :-)

Change-Id: I687cc36404e8ad8b899b6e76b1de7ee8c5392e07
2015-02-28 11:27:35 -08:00
Nick Kralevich
07e7348921 init: drop read_policy permission
As of https://android-review.googlesource.com/127858 ,
open(O_RDONLY) is no longer used for chmod. It's no
longer necessary to allow init to read the SELinux policy.

Change-Id: I691dd220827a01a8d7a9955b62f8aca50eb25447
2015-02-28 03:55:15 -08:00
Stephen Smalley
0f671bb074 am ed532c06: init: remove permissive_or_unconfined()
* commit 'ed532c06d610cf992b8e86c0cbf812865747a53b':
  init: remove permissive_or_unconfined()
2015-02-28 03:20:48 +00:00
Stephen Smalley
ed532c06d6 init: remove permissive_or_unconfined()
Bug: 19050686
Change-Id: Ie41c3e4d5aaeb43577ba85a4768a5fdbdd665efb
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-02-27 19:14:27 -08:00
Nick Kralevich
de41e919e6 am a8e073cd: Create boot_block_device and allow install_recovery read access
* commit 'a8e073cde0e7d39ebe5d97de497edf22713d3501':
  Create boot_block_device and allow install_recovery read access
2015-02-28 02:18:51 +00:00
Nick Kralevich
a8e073cde0 Create boot_block_device and allow install_recovery read access
The install_recovery script creates a new recovery image based
off of the boot image plus a patch on /system. We need to allow
read access to the boot image to allow the patching to succeed,
otherwise OTAs are broken.

Addresses the following denial:

  type=1400 audit(9109404.519:6): avc: denied { read } for pid=341 comm="applypatch" name="mmcblk0p37" dev="tmpfs" ino=9186 scontext=u:r:install_recovery:s0 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=0

TODO: Add device specific labels for the boot image.

Bug: 19534538
Change-Id: Ic811ec03e235df3b1bfca9b0a65e23307cd968aa
2015-02-27 17:39:09 -08:00
Nick Kralevich
ad9cb7e5b5 am 543faccc: allow init tmpfs:dir relabelfrom
* commit '543faccc62dd9a31fa12a641678de61a44ba7b70':
  allow init tmpfs:dir relabelfrom
2015-02-28 01:15:21 +00:00
dcashman
e8f95b363a Remove read access from mls constraints.
Addresses the following denial encountered when sharing photos between personal
and managed profiles:

Binder_5: type=1400 audit(0.0:236): avc: denied { read } for path="/data/data/com.google.android.apps.plus/cache/media/3/3bbca5f1bcfa7f1-a-nw" dev="dm-0" ino=467800 scontext=u:r:untrusted_app:s0:c529,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file permissive=0

Bug: 19540297
Change-Id: If51108ec5820ca40e066d5ca3e527c7a0f03eca5
2015-02-27 16:03:00 -08:00
Sami Tolvanen
a5931f7908 am a4b82264: Merge "Revert "Allow ueventd to set verity.* properties""
* commit 'a4b8226457c9bef174aa10b39f3aa0bbeae92260':
  Revert "Allow ueventd to set verity.* properties"
2015-02-27 23:19:14 +00:00
Nick Kralevich
543faccc62 allow init tmpfs:dir relabelfrom
When encrypting a device, or when an encrypted device boots,
a tmpfs is mounted in place of /data, so that a pseudo filesystem
exists to start system_server and related components. SELinux labels
need to be applied to that tmpfs /data so the system boots
properly.

Allow init to relabel a tmpfs /data.

Addresses the following denial:

[    6.294896] type=1400 audit(29413651.850:4): avc:  denied  { relabelfrom } for  pid=1 comm="init" name="/" dev="tmpfs" ino=6360 scontext=u:r:init:s0 tcontext=u:object_r:tmpfs:s0 tclass=dir

Steps to reproduce:
  1) Go into Settings > Security > Encrypt Phone
  2) Encrypt phone
  3) See denial
  4) reboot phone
  5) See denial on boot

Bug: 19050686
Change-Id: Ie57864fe1079d9164d5cfea44683a97498598e41
2015-02-27 14:54:40 -08:00
Sami Tolvanen
a4b8226457 Merge "Revert "Allow ueventd to set verity.* properties"" 2015-02-27 22:19:53 +00:00
Sami Tolvanen
9f0682dc50 Revert "Allow ueventd to set verity.* properties"
Updating properties from ueventd may lead to deadlocks with init in rare
cases, which makes these changes unnecessary after all.

This reverts commit 47cd53a558.

Change-Id: I87bdd66f0ec025eb3a9ea17574a67e908f3de6da
2015-02-27 22:18:01 +00:00
Nick Kralevich
c73e0b06e3 am 006ede39: Merge "dontaudit clatd self:capability ipc_lock"
* commit '006ede391e0b17d8fb4826b7f748c4545a2c3977':
  dontaudit clatd self:capability ipc_lock
2015-02-27 17:04:46 +00:00
Nick Kralevich
a88a0301f0 am a3364dfd: Merge "kernel.te: fix MTP sync"
* commit 'a3364dfd25cb42edf116903dce6890dd95ef36db':
  kernel.te: fix MTP sync
2015-02-27 17:04:45 +00:00
Sami Tolvanen
bd7da3eb5f am 9d87c647: Allow init to execute /sbin/slideshow
* commit '9d87c647afdc478245579090eae1ca2d1ae8d341':
  Allow init to execute /sbin/slideshow
2015-02-27 17:04:44 +00:00
Nick Kralevich
006ede391e Merge "dontaudit clatd self:capability ipc_lock" 2015-02-27 14:44:20 +00:00
Nick Kralevich
a3364dfd25 Merge "kernel.te: fix MTP sync" 2015-02-27 14:13:36 +00:00
Nick Kralevich
1025d1383b kernel.te: fix MTP sync
STEPS TO REPRODUCE:
  1. Connect the device to Mac.
  2. Switch to AFT.
  3. Now AFT on Mac will show the device contents.
  4. Now drag and drop the file to device and observe.

EXPECTED RESULTS:
  Should able to copy.

OBSERVED RESULTS:
  Showing can not copy file and on clicking ok,
  It shows device storage can not connect and close the AFT.

Addresses the following denial:

  W kworker/u:11: type=1400 audit(0.0:729): avc: denied { use } for path="/storage/emulated/0/Download/song2.mp3" dev="fuse" ino=143 scontext=u:r:kernel:s0 tcontext=u:r:untrusted_app:s0:c512,c768 tclass=fd
  12310 12530 E MtpRequestPacket: Malformed MTP request packet

ps -Z entry:
  u:r:untrusted_app:s0:c512,c768 u0_a6     12310 203   android.process.media

Bug: 15835289
Change-Id: I47b653507f8d4089b31254c19f44706077e2e96a
2015-02-26 20:50:09 -08:00
Nick Kralevich
b4c4424c99 dontaudit clatd self:capability ipc_lock
clatd calls mmap(MAP_LOCKED) with a 1M buffer. MAP_LOCKED first checks
capable(CAP_IPC_LOCK), and then checks to see the requested amount is
under RLIMIT_MEMLOCK. The latter check succeeds. As a result, clatd
does not need CAP_IPC_LOCK, so we suppress any denials we see
from clatd asking for this capability.
See https://android-review.googlesource.com/127940

Suppresses the following denial:
  type=1400 audit(1424916750.163:7): avc: denied { ipc_lock } for pid=3458 comm="clatd" capability=14 scontext=u:r:clatd:s0 tcontext=u:r:clatd:s0 tclass=capability

Change-Id: Ica108f66010dfc6a5431efa0b4e58f6a784672d1
2015-02-26 16:55:51 -08:00
Sami Tolvanen
9d87c647af Allow init to execute /sbin/slideshow
Add rules to allow /sbin/slideshow to access framebuffer and input
devices at early stages of boot, and rules to allow init to execute
the program (from init.rc using exec).

Needed by changes from
  I58c79a7f3ac747eec0d73a10f018d3d8ade9df7d

Change-Id: I1d5018feb7025853f0bf81651f497fef8c3a6ab0
2015-02-26 17:23:29 +00:00
Nick Kralevich
cd31111d5e am d99ea5a8: Merge "Revert /proc/net related changes"
* commit 'd99ea5a8af11216fb3e2e315c6310d2af4f02afc':
  Revert /proc/net related changes
2015-02-26 14:32:39 +00:00