Commit graph

4178 commits

Author SHA1 Message Date
Nick Kralevich
b706690e42 am 1d45b9c2: Merge "sepolicy: Drop BOARD_SEPOLICY_IGNORE/REPLACE support."
* commit '1d45b9c209ac0c0f2a02919946e6b180b5ed66cf':
  sepolicy:  Drop BOARD_SEPOLICY_IGNORE/REPLACE support.
2015-03-19 17:19:27 +00:00
Nick Kralevich
581f25b0d5 Merge "Add new "procrank" SELinux domain." 2015-03-19 17:12:27 +00:00
Nick Kralevich
1d45b9c209 Merge "sepolicy: Drop BOARD_SEPOLICY_IGNORE/REPLACE support." 2015-03-19 17:06:21 +00:00
Nick Kralevich
a191398812 Add new "procrank" SELinux domain.
/system/xbin/procrank is a setuid program run by adb shell on
userdebug / eng devices. Allow it to work without running adb root.

Bug: 18342188
Change-Id: I18d9f743e5588c26661eaa26e1b7e6980b15caf7
2015-03-19 09:35:31 -07:00
Daniel Micay
3d886cd9df extend app policy to fix wrapped processes
Bug: 15435041
Change-Id: I26209bf8e0b896eac016b5dd1faf6b6e97d72aff
Signed-off-by: Daniel Micay <danielmicay@gmail.com>
2015-03-17 20:10:18 -04:00
Nick Kralevich
2e4ea6698e am 79e873c0: Merge "sepolicy: Clean up mls constraints."
* commit '79e873c0f69ecb4c2812685208976aabcdfa5ea6':
  sepolicy:  Clean up mls constraints.
2015-03-17 22:55:54 +00:00
Nick Kralevich
79e873c0f6 Merge "sepolicy: Clean up mls constraints." 2015-03-17 22:41:55 +00:00
Dan Albert
9f8b5aaca8 am 0d3bf4be: Revert "Fix sepolicy-analyze libc++.so loading issue w/CTS."
* commit '0d3bf4beac7e30d47e3520e3b51b43f95cd7c219':
  Revert "Fix sepolicy-analyze libc++.so loading issue w/CTS."
2015-03-17 18:52:10 +00:00
Dan Albert
0d3bf4beac Revert "Fix sepolicy-analyze libc++.so loading issue w/CTS."
This is causing more harm than good. We'll just make these all link
libc++ again and work out the CTS issues if they still exist.

Bug: 19778891

This reverts commit 3812cf58cb.

Change-Id: Iaea8f6acb147da4275633a760ccb32951db7f8b6
2015-03-17 11:41:04 -07:00
Dan Albert
648a352ab6 am f0852340: Revert "Don\'t use address sanitizer for selinux tools."
* commit 'f0852340af6bdd9b21b28ed2b79b89e115b398e6':
  Revert "Don't use address sanitizer for selinux tools."
2015-03-17 17:52:38 +00:00
Dan Albert
f0852340af Revert "Don't use address sanitizer for selinux tools."
This is causing more harm than good. We'll just make these all link
libc++ again (another revert) and work out the CTS issues if they still
exist.

Bug: 19778891

This reverts commit a5113a1500.

Change-Id: I35a4c93dae4abb66e3525451d5ce01e33a540895
2015-03-17 17:38:55 +00:00
Dan Albert
9970735893 am a5113a15: Don\'t use address sanitizer for selinux tools.
* commit 'a5113a15009d5501e6ce5d14e781e0e691d80864':
  Don't use address sanitizer for selinux tools.
2015-03-17 14:36:51 +00:00
Dan Albert
a5113a1500 Don't use address sanitizer for selinux tools.
Address sanitizer requires using libc++ (apparently). We removed
libc++ from these projects since they were C and the SDK/CTS was not
able to find libc++.

If we're interested in continuing to use ASAN on these tools
(probably), we should turn libc++ back on once we're sure CTS won't
die.

Bug: 19778891
Change-Id: I3c1913171a15396ead73277ec1186fead730f66d
2015-03-16 17:39:40 -07:00
dcashman
3d9e31b5e9 am 3812cf58: Fix sepolicy-analyze libc++.so loading issue w/CTS.
* commit '3812cf58cbf4e97006c172152de6aca209d185e9':
  Fix sepolicy-analyze libc++.so loading issue w/CTS.
2015-03-16 20:18:45 +00:00
dcashman
3812cf58cb Fix sepolicy-analyze libc++.so loading issue w/CTS.
Addresses the following error when running CTS on master:
junit.framework.AssertionFailedError: The following errors were encountered when validating the SELinuxneverallow rule:
neverallow { appdomain -bluetooth } self:capability *;
/tmp/SELinuxHostTest5593810182495331783.tmp: error while loading shared libraries: libc++.so: cannot open shared object file: No such file or directory

Also indicate that none of the sepolicy tools need c++ std lib.

Bug: 19617220

Change-Id: I713b3cbd1220655413d399c7cd2b0b50459a5485
2015-03-16 13:07:46 -07:00
Stephen Smalley
653844260f am d5892b4c: Allow shell to read /proc/pid/attr/current for ps -Z.
* commit 'd5892b4c3151721f032e75979161bddb89b3a146':
  Allow shell to read /proc/pid/attr/current for ps -Z.
2015-03-16 16:09:48 +00:00
Stephen Smalley
d5892b4c31 Allow shell to read /proc/pid/attr/current for ps -Z.
Needed since Iff1e601e1268d4d77f64788d733789a2d2cd18cc removed it
from appdomain.

Change-Id: I9fc08b525b9868f0fb703b99b0c0c17ca8b656f9
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-16 11:43:22 -04:00
Stephen Smalley
68cd16bab3 am 2cba1ee1: Remove ability to read all /proc/pid/attr/current entries.
* commit '2cba1ee10da9afae86249bd2f227cd7470bf3f1a':
  Remove ability to read all /proc/pid/attr/current entries.
2015-03-16 13:54:41 +00:00
Stephen Smalley
2cba1ee10d Remove ability to read all /proc/pid/attr/current entries.
This was rendered obsolete when SELinuxDomainTest was ported
to SELinuxHostTest and only makes sense if allowing search
to domain:dir and { open read } to domain:file in order to
open the /proc/pid/attr/current files in the first place.
SELinux applies a further :process getattr check when
reading any of the /proc/pid/attr/* files for any process
other than self, which is no longer needed by app domains to
pass CTS.

Change-Id: Iff1e601e1268d4d77f64788d733789a2d2cd18cc
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-16 09:37:41 -04:00
Nick Kralevich
f836abef7d am 8bd13687: neverallow su_exec:file execute
* commit '8bd13687b0a023ac2acf15175d52cafac9809b52':
  neverallow su_exec:file execute
2015-03-15 15:48:39 +00:00
Nick Kralevich
8bd13687b0 neverallow su_exec:file execute
Executing /system/xbin/su is only supported on userdebug builds
for a limited number of domains. On user builds, it should never
occur.

Add a compile time assertion (neverallow rule) that this is
always true.

Bug: 19647373
Change-Id: I231a438948ea2d47c1951207e117e0fb2728c532
2015-03-14 12:44:06 -07:00
Nick Kralevich
a5649f328a am 6ece49c3: Merge "Revert "allow system_server to set kernel scheduling priority""
* commit '6ece49c3dcac11c88f992a9e7efe20a3444db0bc':
  Revert "allow system_server to set kernel scheduling priority"
2015-03-14 00:24:43 +00:00
Nick Kralevich
6ece49c3dc Merge "Revert "allow system_server to set kernel scheduling priority"" 2015-03-14 00:13:12 +00:00
Stephen Smalley
025b7df298 sepolicy: Clean up mls constraints.
Require equivalence for all write operations.  We were already
doing this for app_data_file as a result of restricting open
rather than read/write, so this makes the model consistent across
all objects and operations.  It also addresses the scenario where
we have mixed usage of levelFrom=all and levelFrom=user for
different apps on the same device where the dominated-by (domby)
relation may not be sufficiently restrictive.

Drop the System V IPC constraints since System V IPC is never allowed
by TE and thus these constraints are dead policy.

Change-Id: Ic06a35030c086e3978c02d501c380889af8d21e0
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 17:07:39 -04:00
Stephen Smalley
eaece936f2 neverallow untrusted_app as a mlstrustedsubject.
Assigning mlstrustedsubject to untrusted_app would undermine
the per-user isolation model being enforced via levelFrom=user
in seapp_contexts and the mls constraints.  There is no direct
way to specify a neverallow on attribute assignment, but this
makes use of a particular property of the fork permission to
prevent ever adding mlstrustedsubject to untrusted_app.

A similar restriction for app_data_file and mlstrustedobject
is also important for the same reason, but cannot be expressed
as a neverallow.

Change-Id: I5170cadc55cc614aef0cd5f6491de8f69a4fa2a0
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 16:54:48 -04:00
Stephen Smalley
b8caf7fdd4 Move allow rules before neverallow rules.
There were a few instances where allow rules were appended
after the neverallow rules stanza in the .te file.  Also
there were some regular allow rules inserted into the CTS-specific
rules section of app.te.  Just move the rules as appropriate.
Should be no change in policy.

Change-Id: Iec76f32d4b531d245bbf5dd9f621a71ff5c71f3e
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 16:42:42 -04:00
Stephen Smalley
9342d55443 am eaece936: neverallow untrusted_app as a mlstrustedsubject.
* commit 'eaece936f297e1c77939c0ff0ad4d741de6990b4':
  neverallow untrusted_app as a mlstrustedsubject.
2015-03-13 20:10:58 +00:00
Stephen Smalley
cccef6c07e am b8caf7fd: Move allow rules before neverallow rules.
* commit 'b8caf7fdd4dcf531900a2f8ab4e762e58eb0e0f9':
  Move allow rules before neverallow rules.
2015-03-13 20:10:57 +00:00
Stephen Smalley
0233cd800e sepolicy-analyze: Add attribute command.
Add an attribute command to sepolicy-analyze for displaying the list
of types associated with an attribute in a policy.  This is for use
by CTS to check what domains and types are associated with certain
attributes such as mlstrustedsubject and mlstrustedobject.

Change-Id: Ie19361c02feb1ad14ce36862c6aace9e66c422bb
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 12:22:39 -04:00
Stephen Smalley
7c0b328a7f am 0233cd80: sepolicy-analyze: Add attribute command.
* commit '0233cd800efc7af1828bb69d236c8371ca238c66':
  sepolicy-analyze:  Add attribute command.
2015-03-13 16:09:35 +00:00
Stephen Smalley
b4f17069b3 sepolicy: Drop BOARD_SEPOLICY_IGNORE/REPLACE support.
With changes I431c1ab22fc53749f623937154b9ec43469d9645 and
Ia54aa263f2245c7090f4b9d9703130c19f11bd28, it is no longer
legitimate to use BOARD_SEPOLICY_IGNORE or REPLACE with
any of the *_contexts files since the CTS requires the AOSP
entries to be present in the device files.

Further, these changes render BOARD_SEPOLICY_IGNORE unusable for
most policy files since all domains and types referenced within any
of the AOSP *_contexts entries must be defined in the kernel policy, so
you cannot use BOARD_SEPOLICY_IGNORE to exclude any .te file
that defines a type referenced in any of those *_contexts files.
There does not seem to be a significant need for such a facility,
as AOSP policy is small and only domains and types used by most
devices should be defined in external/sepolicy.

BOARD_SEPOLICY_REPLACE is commonly misused to eliminate neverallow rules
from AOSP policy, which will only lead to CTS failures, especially
since change Iefe508df265f62efa92f8eb74fc65542d39e3e74 introduced neverallow
checking on the entire policy via sepolicy-analyze.  The only remaining
legitimate function of BOARD_SEPOLICY_REPLACE is to support overriding
AOSP .te files with more restrictive rule sets.  However, the need for this
facility has been significantly reduced by the fact that AOSP policy
is now fully confined + enforcing for all domains, and further restrictions
beyond AOSP carry a compatibility risk.

Builders of custom policies and custom ROMs still have the freedom to
apply patches on top of external/sepolicy to tighten rule sets (which are
likely more maintainable than maintaining a completely separate copy of
the file via BOARD_SEPOLICY_REPLACE) and/or of using their own separate
policy build system as exemplified by
https://bitbucket.org/quarksecurity/build-policies

Change-Id: I2611e983f7cbfa15f9d45ec3ea301e94132b06fa
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 10:26:00 -04:00
Stephen Smalley
c93617315e Fix rules for general_property_contexts.
Failed to include base_rules.mk, so this target was not being built.

Change-Id: I2414fa6c3e3e37c74f63c205e3694d1a811c956e
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 09:36:57 -04:00
Stephen Smalley
a39ff52a17 am c9361731: Fix rules for general_property_contexts.
* commit 'c93617315e69f9bd7319476afbd3f91d00dd6b5a':
  Fix rules for general_property_contexts.
2015-03-13 13:23:23 +00:00
Stephen Smalley
2e0cd5ad36 Generate general versions of the other contexts files for tests.
Generate general forms of the remaining *_contexts files with only the
device-independent entries for use in CTS testing.

Change-Id: I2bf0e41db8a73c26754cedd92cbc3783ff03d6b5
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-12 17:45:03 -04:00
Stephen Smalley
dc215e9617 am 2e0cd5ad: Generate general versions of the other contexts files for tests.
* commit '2e0cd5ad36321fd7a8f21768dac080d09b658920':
  Generate general versions of the other contexts files for tests.
2015-03-12 21:39:13 +00:00
Stephen Smalley
a16559d125 am 37712877: Generate a general_seapp_contexts file for tests.
* commit '377128778d2d2055044c8f4a65e7b0097ab59fd4':
  Generate a general_seapp_contexts file for tests.
2015-03-12 21:39:03 +00:00
Nick Kralevich
cd14eb443e Revert "allow system_server to set kernel scheduling priority"
Periodically, SELinux denials of the form:

  type=1400 audit(0.0:8574): avc: denied { setsched } for comm="system_server" scontext=u:r:system_server:s0 tcontext=u:r:kernel:s0 tclass=process permissive=0

are being generated. These denials come from system_server and other
processes. There's no reason why system_server should be calling
sched_setscheduler() on a kernel thread.

Current belief is that these SELinux denials are a bug in the kernel,
and are being inappropriately triggered.

Revert 2d1650f407. The original reason
for accepting this change was to see if it would fix bug 18085992.
Unfortunately, even after the commit, the bug was still present.
The change had no impact on the bug.

Don't inappropriately grant system_server the ability to minipulate
the scheduling priority of kernel threads.

This reverts commit 2d1650f407.

Change-Id: I59bdf26ad247a02b741af2fa58a18e7e83ef44d8
2015-03-12 13:55:29 -07:00
Stephen Smalley
377128778d Generate a general_seapp_contexts file for tests.
Generate a general_seapp_contexts file with only the
device-independent entries, similar to general_sepolicy.conf.
This is for use by CTS tests to compare with the prefix of
device seapp_contexts.

Change-Id: If8d1456afff5347adff7157411c6a160484e0b39
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-12 15:46:36 -04:00
Nick Kralevich
893cfee5d4 am 7d090fbd: Merge "sepolicy-analyze: Change booleans command to be more test-friendly."
* commit '7d090fbd36cccde0b010992c8491ce369927320d':
  sepolicy-analyze:  Change booleans command to be more test-friendly.
2015-03-12 13:18:26 +00:00
Nick Kralevich
7d090fbd36 Merge "sepolicy-analyze: Change booleans command to be more test-friendly." 2015-03-12 13:06:44 +00:00
Stephen Smalley
d155914479 sepolicy-analyze: Change booleans command to be more test-friendly.
Instead of displaying the boolean count, display a list of booleans
defined in the policy, if any.  This makes sepolicy-analyze booleans
consistent with sepolicy-analyze permissive and allows automated tests
to simply check whether there was any output at all.

Change-Id: I221b60d94e6e7f6d80399bf0833887af3747fe83
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-12 10:01:49 -04:00
Mark Salyzyn
bcc18356e0 am 61d665af: logd: allow access to system files
* commit '61d665af16ea54a3a650da4e443c6d9e251b05cf':
  logd: allow access to system files
2015-03-12 01:00:26 +00:00
Mark Salyzyn
61d665af16 logd: allow access to system files
- allow access for /data/system/packages.xml.
- deprecate access to /dev/logd_debug (can use /dev/kmsg for debugging)
- allow access to /dev/socket/logd for 'logd --reinit'

Bug: 19681572
Change-Id: Iac57fff1aabc3b061ad2cc27969017797f8bef54
2015-03-11 23:00:37 +00:00
Nick Kralevich
b9d7c2c650 am 5434a8a9: Merge "system_server: neverallow blk_file read/write"
* commit '5434a8a9136f4151b4b7e2cd6812f3b78bb1418e':
  system_server: neverallow blk_file read/write
2015-03-11 20:18:40 +00:00
Nick Kralevich
c86099dedf am fbaf72ed: Merge "sepolicy-analyze: Implement booleans test."
* commit 'fbaf72ed8f7f7e0e0d53be90354e8d6cd9d18c99':
  sepolicy-analyze:  Implement booleans test.
2015-03-11 20:18:39 +00:00
Nick Kralevich
5434a8a913 Merge "system_server: neverallow blk_file read/write" 2015-03-11 20:07:53 +00:00
Nick Kralevich
fbaf72ed8f Merge "sepolicy-analyze: Implement booleans test." 2015-03-11 20:07:31 +00:00
Stephen Smalley
a7b2c5f4ab sepolicy-analyze: Implement booleans test.
Implement the booleans test in sepolicy-analyze so
that we can move the no-booleans check from the
SELinuxTest to the SELinuxHostTest along with the
other policy checks.

Change-Id: I95d7ad34da10c354470f43734d34a6ec631a7b4e
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-11 17:03:42 -04:00
Nick Kralevich
acc0842c4b system_server: neverallow blk_file read/write
With the exception of the factory reset protection block device,
don't allow system_server to read or write to any other block
devices. This helps protect against a system->root escalation
when system_server has the ability to directly minipulate raw
block devices / partitions / partition tables.

This change adds a neverallow rule, which is a compile time
assertion that no SELinux policy is written which allows this
access. No new rules are added or removed.

Change-Id: I388408423097ef7cf4950197b79d4be9d666362c
2015-03-11 12:48:02 -07:00
Nick Kralevich
cbfe9d5733 am c01f7fd1: system_server: remove appdomain:file write
* commit 'c01f7fd1c1569a0649703d24747ad1ddd857bc93':
  system_server: remove appdomain:file write
2015-03-11 13:32:51 +00:00