Commit graph

3153 commits

Author SHA1 Message Date
Nick Kralevich
0dccb07e64 am a2288aff: Merge "Add missing services to service_contexts."
* commit 'a2288aff439744818567c2da46f552f1d1ce161b':
  Add missing services to service_contexts.
2014-06-17 15:48:33 +00:00
Nick Kralevich
9deda15493 am f416b54d: am 8d6e4cc1: Merge "Fix SELinux policies to allow resource overlays."
* commit 'f416b54df780803d6806092affc9f69df84fdb65':
  Fix SELinux policies to allow resource overlays.
2014-06-17 13:30:45 +00:00
Nick Kralevich
f416b54df7 am 8d6e4cc1: Merge "Fix SELinux policies to allow resource overlays."
* commit '8d6e4cc174ec06b3b45c71b5f5fe1353653a1d31':
  Fix SELinux policies to allow resource overlays.
2014-06-17 13:26:57 +00:00
Nick Kralevich
8d6e4cc174 Merge "Fix SELinux policies to allow resource overlays." 2014-06-17 05:00:50 +00:00
Nick Kralevich
a2288aff43 Merge "Add missing services to service_contexts." 2014-06-17 04:58:57 +00:00
Riley Spahn
3f06ad96c3 Add missing services to service_contexts.
Add missing services to service_contexts that we did not include
in earlier patch that added SELinux checks in service_manager.

Change-Id: I889d999bf0b745bfcb75a3553b207777dc5700b7
2014-06-17 08:13:36 -07:00
Stephen Smalley
1b9c49b258 am 05dbf1ac: am 75e2ef92: Restrict use of context= mount options.
* commit '05dbf1ac44a16a12e6b654415c58709f9ba2e7e1':
  Restrict use of context= mount options.
2014-06-17 01:31:05 +00:00
Stephen Smalley
05dbf1ac44 am 75e2ef92: Restrict use of context= mount options.
* commit '75e2ef92601c485348c40cc8884839fba27046ba':
  Restrict use of context= mount options.
2014-06-16 23:38:34 +00:00
Nick Kralevich
fad4d5fb00 Fix SELinux policies to allow resource overlays.
The following commits added support for runtime resource overlays.

  New command line tool 'idmap'
  * 65a05fd56dbc9fd9c2511a97f49c445a748fb3c5
  Runtime resource overlay, iteration 2
  * 48d22323ce39f9aab003dce74456889b6414af55
  Runtime resource overlay, iteration 2, test cases
  * ad6ed950dbfa152c193dd7e49c369d9e831f1591

During SELinux tightening, support for these runtime resource
overlays was unknowingly broken. Fix it.

This change has been tested by hackbod and she reports that
everything is working after this change. I haven't independently
verified the functionality.

Test cases are available for this by running:
  * python frameworks/base/core/tests/overlaytests/testrunner.py

Change-Id: I1c70484011fd9041bec4ef34f93f7a5509906f40
2014-06-16 14:20:08 -07:00
Stephen Smalley
274ed88617 am aff2796b: am d2503ba8: Define contextmount_type attribute and add it to oemfs.
* commit 'aff2796b238d791a5a3c9a08cfa3fcad62833230':
  Define contextmount_type attribute and add it to oemfs.
2014-06-16 20:51:46 +00:00
Stephen Smalley
1699b2ae43 Define contextmount_type attribute and add it to oemfs.
Several device-specific policy changes with the same Change-Id
also add this attribute to device-specific types.

Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>

(cherry picked from commit d2503ba864)

Change-Id: I08a718ba0d91641de720440e16abc0a04f5ec5a5
2014-06-16 11:59:23 -07:00
Stephen Smalley
aff2796b23 am d2503ba8: Define contextmount_type attribute and add it to oemfs.
* commit 'd2503ba864b4a8b992529178608aa3c881626006':
  Define contextmount_type attribute and add it to oemfs.
2014-06-16 18:07:41 +00:00
Stephen Smalley
d2503ba864 Define contextmount_type attribute and add it to oemfs.
Several device-specific policy changes with the same Change-Id
also add this attribute to device-specific types.

Change-Id: I09e13839b1956f61875a38844fe4fc3c911ea60f
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-16 17:46:21 +00:00
Stephen Smalley
75e2ef9260 Restrict use of context= mount options.
Prior to this change, the init and recovery domains were
allowed unrestricted use of context= mount options to force
all files within a given filesystem to be treated as having a
security context specified at mount time.  The context= mount
option can be used in device-specific fstab.<board> files
to assign a context to filesystems that do not support labeling
such as vfat where the default label of sdcard_external is not
appropriate (e.g. /firmware on hammerhead).

Restrict the use of context= mount options to types marked with the
contextmount_type attribute, and then remove write access from
such types from unconfineddomain and prohibit write access to such
types via neverallow.  This ensures that the no write to /system
restriction cannot be bypassed via context= mount.

Change-Id: I4e773fadc9e11328d13a0acec164124ad6e840c1
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-16 13:25:07 -04:00
Nick Kralevich
66e903c699 am 8318980a: am 48212742: Don\'t allow types which are both file_type and fs_type
* commit '8318980a1e0737f4f862c8815000b8bff83b999f':
  Don't allow types which are both file_type and fs_type
2014-06-16 16:51:43 +00:00
Nick Kralevich
8318980a1e am 48212742: Don\'t allow types which are both file_type and fs_type
* commit '48212742b260512ba4e5cf50fe6f5d72cc90f2b1':
  Don't allow types which are both file_type and fs_type
2014-06-16 16:46:35 +00:00
Stephen Smalley
5d633fb859 am 2fbecbba: Allow installd to stat asec files and /data/media files.
* commit '2fbecbba4dcea125cae1b673368fad07eee67879':
  Allow installd to stat asec files and /data/media files.
2014-06-16 16:28:20 +00:00
Nick Kralevich
f810bcc794 am b545f2fc: am ff409bb4: recovery: Allow exec_type on dirs, read for /dev
* commit 'b545f2fcc7c9c242793f47c547928ba60d2f42b3':
  recovery: Allow exec_type on dirs, read for /dev
2014-06-16 15:46:28 +00:00
Nick Kralevich
b545f2fcc7 am ff409bb4: recovery: Allow exec_type on dirs, read for /dev
* commit 'ff409bb40a7a941576118eecd2ae0eddf653e847':
  recovery: Allow exec_type on dirs, read for /dev
2014-06-16 15:41:47 +00:00
Nick Kralevich
48212742b2 Don't allow types which are both file_type and fs_type
It's a bug to have a type with both the file_type and fs_type
attribute. A type should be declared with either file_type,
or fs_type, but not both.

Create a neverallow rule which detects this situation. This works
because we have the following allow rule:

  allow fs_type self:filesystem associate;

If a type is a file_type and an fs_type, the associate allow rule
will conflict with this neverallow rule.

Not sure if this is the cleanest way to accomplish this, but it
seems to work.

Change-Id: Ida387b1df260efca15de38ae7a66ed25e353acaa
2014-06-16 08:36:05 -07:00
Nick Kralevich
ff409bb40a recovery: Allow exec_type on dirs, read for /dev
When applying a file based OTA, the recovery scripts sometimes
transiently label a directory as an exec_type. This occurs on
hammerhead when the OTA generation scripts generate lines of the
form:

  set_metadata_recursive("/system/vendor/bin", "uid", 0, "gid", 2000, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:vss_exec:s0");
  set_metadata("/system/vendor/bin", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");

which has the effect of transiently labeling the /system/vendor/bin
directory as vss_exec.

Allow this behavior for now, even though it's obviously a bug.

Also, allow recovery to read through the /dev directory.

Addresses the following denials:
  avc:  denied  { read } for  pid=143 comm="recovery" name="/" dev="tmpfs" ino=8252 scontext=u:r:recovery:s0 tcontext=u:object_r:device:s0 tclass=dir
  avc:  denied  { open } for  pid=143 comm="recovery" name="/" dev="tmpfs" ino=8252 scontext=u:r:recovery:s0 tcontext=u:object_r:device:s0 tclass=dir
  avc:  denied  { relabelto } for  pid=142 comm="update_binary" name="bin" dev="mmcblk0p25" ino=1438 scontext=u:r:recovery:s0 tcontext=u:object_r:vss_exec:s0 tclass=dir
  avc:  denied  { getattr } for  pid=142 comm="update_binary" path="/system/vendor/bin" dev="mmcblk0p25" ino=1438 scontext=u:r:recovery:s0 tcontext=u:object_r:vss_exec:s0 tclass=dir
  avc:  denied  { setattr } for  pid=142 comm="update_binary" name="bin" dev="mmcblk0p25" ino=1438 scontext=u:r:recovery:s0 tcontext=u:object_r:vss_exec:s0 tclass=dir
  avc:  denied  { relabelfrom } for  pid=142 comm="update_binary" name="bin" dev="mmcblk0p25" ino=1438 scontext=u:r:recovery:s0 tcontext=u:object_r:vss_exec:s0 tclass=dir

Bug: 15575013
Change-Id: I743bea356382d3c23c136465dc5b434878370127
2014-06-15 09:40:12 -07:00
Nick Kralevich
14fc59b60a am e45aa7e9: am 2be9c64f: Merge "Make inputflinger enforcing."
* commit 'e45aa7e952dd118127d658b53606b3636f2c497d':
  Make inputflinger enforcing.
2014-06-14 09:44:25 +00:00
Nick Kralevich
bee58ccff3 am f6b438fb: am a76d9ddf: system_server profile access
* commit 'f6b438fbb4b7dd94c61dcd73f3c95b44f66faf16':
  system_server profile access
2014-06-14 09:44:24 +00:00
Nick Kralevich
e45aa7e952 am 2be9c64f: Merge "Make inputflinger enforcing."
* commit '2be9c64f85cffcbfdece89da270599b9256ea80d':
  Make inputflinger enforcing.
2014-06-14 09:06:43 +00:00
Nick Kralevich
f6b438fbb4 am a76d9ddf: system_server profile access
* commit 'a76d9ddf6bf8f0ee0768a2129fa7606f66b0b510':
  system_server profile access
2014-06-14 09:06:42 +00:00
Nick Kralevich
a76d9ddf6b system_server profile access
Still not fixed. *sigh*

Addresses the following denial:

<4>[   40.515398] type=1400 audit(15842931.469:9): avc: denied { read } for pid=814 comm="system_server" name="profiles" dev="mmcblk0p28" ino=105874 scontext=u:r:system_server:s0 tcontext=u:object_r:dalvikcache_profiles_data_file:s0 tclass=dir

Change-Id: I705a4cc9c508200ace46780c18b7112b62f27994
2014-06-13 21:29:56 -07:00
Stephen Smalley
2fbecbba4d Allow installd to stat asec files and /data/media files.
Addresses denials such as:
avc: denied { getattr } for comm="installd" path="/data/app-asec/com.vectorunit.red-1.asec" dev="dm-0" ino=578229 scontext=u:r:installd:s0 tcontext=u:object_r:asec_image_file:s0 tclass=file

avc:  denied  { getattr } for  pid=262 comm="installd" path="/data/media/0/Android/data/com.google.android.apps.maps/cache/cache_vts_tran_base_GMM.m" dev="dm-0" ino=124930 scontext=u:r:installd:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=file

Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>

(cherry picked from commit d2622fda56)

Change-Id: Iac46236ee583dee11a7e6518a9e8eca25c59e9ba
2014-06-13 18:46:40 -07:00
Nick Kralevich
cb9953569e am d23935c8: am 96d9af42: allow system_server getattr on /data/dalvik-cache/profiles
* commit 'd23935c8d3b6e3c668bd2708d840fd64c0695b79':
  allow system_server getattr on /data/dalvik-cache/profiles
2014-06-13 20:54:34 +00:00
Nick Kralevich
d23935c8d3 am 96d9af42: allow system_server getattr on /data/dalvik-cache/profiles
* commit '96d9af423575aec5559bd1a7094203c9e0586347':
  allow system_server getattr on /data/dalvik-cache/profiles
2014-06-13 16:29:12 +00:00
Nick Kralevich
96d9af4235 allow system_server getattr on /data/dalvik-cache/profiles
8670305177 wasn't complete. I thought
getattr on the directory wasn't needed but I was wrong. Not sure
how I missed this.

Addresses the following denial:

  <4>[   40.699344] type=1400 audit(15795140.469:9): avc: denied { getattr } for pid=1087 comm="system_server" path="/data/dalvik-cache/profiles" dev="mmcblk0p28" ino=105874 scontext=u:r:system_server:s0 tcontext=u:object_r:dalvikcache_profiles_data_file:s0 tclass=dir

Change-Id: Ibc176b2b00083bafaa91ab78d0f8dc1ca3c208b6
2014-06-13 09:05:26 -07:00
Nick Kralevich
ced8cb5bcc am f1b92488: runas: allow pipe communication from the shell
* commit 'f1b92488f561d4fd27c6d4360f4d0ab3f3127203':
  runas: allow pipe communication from the shell
2014-06-13 15:04:12 +00:00
Mark Salyzyn
a307b6f147 am e0bbb6f3: am 848109c0: Merge "selinux: logd Development settings"
* commit 'e0bbb6f3ac845cae3fcb01305b62c86bd71d5420':
  selinux: logd Development settings
2014-06-13 14:47:38 +00:00
Mark Salyzyn
e0bbb6f3ac am 848109c0: Merge "selinux: logd Development settings"
* commit '848109c0b9eb03e490126b6bd4dcafe9e83c95fd':
  selinux: logd Development settings
2014-06-13 14:44:09 +00:00
Nick Kralevich
9da3b7861e am 4dcb8245: am fc10f2a7: Merge "runas: allow pipe communication from the shell"
* commit '4dcb8245ae5d8179c28de1147e4b7563a50d0347':
  runas: allow pipe communication from the shell
2014-06-13 13:10:00 +00:00
Nick Kralevich
f1b92488f5 runas: allow pipe communication from the shell
run-as won't communicate with shell via pipes. Allow it.

  nnk@nnk:~$ adb shell "cat /dev/zero | run-as com.google.foo sh -c 'cat'"
  /system/bin/sh: cat: <stdout>: Broken pipe

  <4>[ 1485.483517] type=1400 audit(1402623577.085:25): avc: denied { read } for pid=6026 comm="run-as" path="pipe:[29823]" dev="pipefs" ino=29823 scontext=u:r:runas:s0 tcontext=u:r:shell:s0 tclass=fifo_file

read is definitely needed. Not sure about write, but adding it just
in case.

(cherry picked from commit 6c9c58884a)

Change-Id: Ifed6314588723063531982b45a56b902dfe32ea9
2014-06-13 06:08:13 -07:00
Nick Kralevich
4dcb8245ae am fc10f2a7: Merge "runas: allow pipe communication from the shell"
* commit 'fc10f2a759cfeca49814bc9ebec77b810148e2a2':
  runas: allow pipe communication from the shell
2014-06-13 13:07:29 +00:00
Lorenzo Colitti
1d75c90be7 Remove clatd's dac_override abilities.
These are no longer necessary after the clatd change to acquire
membership in AID_VPN when dropping root privileges.

Change-Id: I9955296fe79e6dcbaa12acad1f1438e11d3b06cf
2014-06-13 21:44:43 +09:00
Lorenzo Colitti
4070ef7f2c am 591b9c25: am 81c03013: Remove clatd\'s ability to write to proc files.
* commit '591b9c25f1f9b3e6274dbe9e1ea33672a38a4549':
  Remove clatd's ability to write to proc files.
2014-06-13 12:41:57 +00:00
Lorenzo Colitti
591b9c25f1 am 81c03013: Remove clatd\'s ability to write to proc files.
* commit '81c03013879739aa58254356e61d59d45b346a03':
  Remove clatd's ability to write to proc files.
2014-06-13 12:38:05 +00:00
Lorenzo Colitti
81c0301387 Remove clatd's ability to write to proc files.
This is no longer required now that clatd has switched from IPv6
forwarding to sockets.

Bug: 15340961
Change-Id: Id7d503b842882d30e6cb860ed0af69ad4ea3e62c
2014-06-13 12:00:21 +09:00
Lorenzo Colitti
b4bea1d8de am fb635166: am b32448c9: Merge "Allow clatd to read from packet sockets and write to raw sockets"
* commit 'fb6351669d79a0ef1a35c4f7dffdaf818debb845':
  Allow clatd to read from packet sockets and write to raw sockets
2014-06-13 01:08:39 +00:00
Lorenzo Colitti
fb6351669d am b32448c9: Merge "Allow clatd to read from packet sockets and write to raw sockets"
* commit 'b32448c90f982e9832ca87a6931dfc956da8b71b':
  Allow clatd to read from packet sockets and write to raw sockets
2014-06-13 01:06:22 +00:00
Stephen Smalley
23dc086c7d am 65ad8086: am f0ffff0b: Make the mediaserver domain enforcing.
* commit '65ad808685888bda08595960647fe59fb0dcd865':
  Make the mediaserver domain enforcing.
2014-06-13 01:05:11 +00:00
Stephen Smalley
65ad808685 am f0ffff0b: Make the mediaserver domain enforcing.
* commit 'f0ffff0bc9b00df985aecba77334af65b06e65c6':
  Make the mediaserver domain enforcing.
2014-06-13 01:02:57 +00:00
Stephen Smalley
f0ffff0bc9 Make the mediaserver domain enforcing.
Change-Id: Ib693b563c2db6abc02cf7dbeb12ed61c09734fa8
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-12 23:41:13 +00:00
Nick Kralevich
71f238c2ce am 2c8b50b8: am 86703051: Remove world-read access to /data/dalvik-cache/profiles
* commit '2c8b50b88f6eb8f05be9d5dceb624281f59e82d6':
  Remove world-read access to /data/dalvik-cache/profiles
2014-06-12 23:17:36 +00:00
Nick Kralevich
2c8b50b88f am 86703051: Remove world-read access to /data/dalvik-cache/profiles
* commit '867030517724036b64fcaf39deaba1b27f3ca77e':
  Remove world-read access to /data/dalvik-cache/profiles
2014-06-12 23:12:43 +00:00
Nick Kralevich
8670305177 Remove world-read access to /data/dalvik-cache/profiles
Remove /data/dalvik-cache/profiles from domain. Profiling information
leaks data about how people interact with apps, so we don't want
the data to be available in all SELinux domains.

Add read/write capabilities back to app domains, since apps need to
read/write profiling data.

Remove restorecon specific rules. The directory is now created by
init, not installd, so installd doesn't need to set the label.

Change-Id: Ic1b44009faa30d704855e97631006c4b990a4ad3
2014-06-12 14:56:05 -07:00
Nick Kralevich
db644f98ad am 8eb63f24: am b0ee91a4: Merge "Add SELinux rules for service_manager."
* commit '8eb63f24bb34639d76246a2fe0276f5cada5c764':
  Add SELinux rules for service_manager.
2014-06-12 21:13:06 +00:00
Nick Kralevich
8eb63f24bb am b0ee91a4: Merge "Add SELinux rules for service_manager."
* commit 'b0ee91a418a899dbd39678711ea65ed60418154e':
  Add SELinux rules for service_manager.
2014-06-12 21:06:37 +00:00