- Dec 15, 2016
-
-
Nick Kralevich authored
Add a compile time assertion that only authorized SELinux domains are allowed to touch the metadata_block_device. This domain may be wiped at will, and we want to ensure that we're not inadvertently destroying other people's data. Test: policy compiles. Change-Id: I9854b527c3d83e17f717d6cc8a1c6b50e0e373b6
-
- Dec 14, 2016
-
-
Nick Kralevich authored
system/core commit 331cf2fb7c16b5b25064f8d2f00284105a9b413f created a number of new properties of the form: [ro.boottime.init]: [5294587604] [ro.boottime.InputEventFind]: [10278767840] [ro.boottime.adbd]: [8359267180] ... These properties were assigned the default_prop SELinux label because a better label did not exist. Properties labeled with the default_prop label are readable to any SELinux domain, which is overly broad. bullhead:/ $ getprop -Z ro.boottime.adbd u:object_r:default_prop:s0 Instead, create a new label for the ro.boottime.* properties so we can apply more fine grain read access control to these properties. bullhead:/ $ getprop -Z ro.boottime.adbd u:object_r:boottime_prop:s0 New SELinux property labels have minimal permissions by default. As a result, after this change, ro.boottime.* properties will only be readable to system_server, bootstat, init (because it manages the property space), and "adb root" (because no SELinux permissions are enforced there). Additional read access can be granted as-needed. This is part of a larger effort to implement fine-grain access control on the properties managed by init. Test: Device boots and no SELinux denials on boot. Change-Id: Ibf981cb81898f4356fdc5c1b6f15dd93c0d6d84d
-
Chad Brubaker authored
Address denial type=1400 audit(0.0:42): avc: denied { call } for scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:ephemeral_app:s0:c207,c258,c512,c768 tclass=binder Test: Above denial no longer happens Change-Id: I351269ee4671cfd51c981d3db5d0f3944d14e702
-
Steven Moreland authored
Bug: 32123421 Bug: 32905206 Test: compiles, nfc works Change-Id: Ibf72ef70255573e4df0863ea640354b3c37eb47d
-
Nick Kralevich authored
core_property_type is an attribute which was given to all existing properties known to core SELinux policy. Any property with this label is readable to all SELinux domains, which is overly broad. The long term goal is to remove the core_property_type attribute entirely. Add a neverallow rule prohibiting the introduction of new properties with the core_property_type attribute. Device specific properties, or new properties in core SELinux policy, should not have this attribute. Test: policy compiles Change-Id: Ie89a9f0d81c8561616001ff8451496ce2278dbb2
-
- Dec 13, 2016
-
-
Max authored
There is no reason for vold to have this permission, and a proper auditallow rule has been used and monitored to ensure that nothing on android uses this permission. Bug: 26901147 Test: Phone boots Change-Id: Id36ed2722348f433fe3d046a3429066338230fec
-
Connor O'Brien authored
Test: logging confirms service runs on boot Change-Id: If86fa7daf4a626b3e04fa0d2677d4cb590eb71ce Signed-off-by:
Connor O'Brien <connoro@google.com>
-
Jeff Sharkey authored
The new domain wasn't fully tested, and it caused many regressions on the daily build. Revert back to using "priv_app" domain until we can fully test and re-land the new domain. Temporarily add the USB functionfs capabilities to priv_app domain to keep remainder of MtpService changes working; 33574909 is tracking removing that from the priv_app domain. Test: builds, boots, verified UI and downloads Bug: 33569176, 33568261, 33574909 Change-Id: I1bd0561d52870df0fe488e59ae8307b89978a9cb
-
- Dec 12, 2016
-
-
Daniel Rosenberg authored
Sdcardfs does not use a userspace daemon, so the secontext is currently the caller's when accessing files. This can be removed if sdcardfs is modified to change the secontext before calling into the lower filesystem. Bug: 32735101 Test: Run any app that falls under isolated_app. Test: See bug for example Change-Id: I9433aa0f14ff0d5a518249079e07f57e55b09bcf
-
Jerry Zhang authored
Also move necessary priv_app permissions into MediaProvider domain and remove MediaProvider specific permissions from priv_app. The new MtpServer permissions fix the following denials: avc: denied { write } for comm=6D747020666673206F70656E name="ep0" dev="functionfs" ino=12326 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:functionfs:s0 tclass=file permissive=1 denial from setting property sys.usb.ffs.mtp.ready, context priv_app Bug: 30976142 Test: Manual, verify permissions are allowed Change-Id: I4e66c5a8b36be21cdb726b5d00c1ec99c54a4aa4
-
Roshan Pius authored
Need write permissions on the specified sysfs path for reloading firmware. Denials: 01-21 23:39:01.650 4669 4669 W android.hardwar: type=1400 audit(0.0:103): avc: denied { write } for name="fwpath" dev="sysfs" ino=6847 scontext=u:r:hal_wifi:s0 tcontext=u:object_r:sysfs_wlan_fwpath:s0 tclass=file permissive=0 01-21 23:39:01.653 4669 4669 E android.hardware.wifi@1.0-service: Failed to open wlan fw path param: Permission denied Bug: 32018162 Test: Denials no longer present in the logs. Change-Id: I1a468e7c2a2a4360a2b61f04f1940471d52d0dd6
-
Roshan Pius authored
We're going to be using Android framework directly to invoke Wifi HIDL calls. So, change permissions appropriately. Bug: 33398154 Test: Verfied that framework is able to make HIDL calls using go/aog/310610. Change-Id: I4d0d88961753ad73f3876aec58b26b89486cc02a
-
- Dec 10, 2016
-
-
Nick Kralevich authored
This is unused by core policy and by any device policy except for hikey. Test: device boots Test: no denials ever collected Change-Id: I36a6790499e4aeedd808457b43fd72370fa48e53
-
Nick Kralevich authored
Because I'm nitpicky. Test: policy compiles Change-Id: I4d886d0d6182d29d7b260cf1f142c47cd32eda29
-
Nick Kralevich authored
Test: no denials showing up in log collection Test: device boots Bug: 28760354 Change-Id: I089cfcf486464952fcbb52cce9f6152caf662c23
-
Nick Kralevich authored
Remove domain_deprecated and add denials picked up by log collection. Addresses the following auditallow messages: avc: granted { search } for comm="debuggerd" name="arm" dev="sda35" ino=57521 scontext=u:r:debuggerd:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir avc: granted { read } for comm="debuggerd" path="/data/app/dji.pilot-Z6Q2X6YjYNN2Ag8otZTCdg==/lib/arm/libtpnsWatchdog.so" dev="sda35" ino=57854 scontext=u:r:debuggerd:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file avc: granted { getattr } for comm="debuggerd64" path="/data/app/com.google.android.youtube-2/lib/arm64/libcronet.so" dev="sda35" ino=1384657 scontext=u:r:debuggerd:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file avc: granted { read open } for comm="debuggerd" path="/data/app/dji.pilot-We9wJivxEqhzfdtQrNFvaA==/lib/arm/libtpnsWatchdog.so" dev="sda35" ino=57575 scontext=u:r:debuggerd:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file Bug: 28760354 Test: Device boots Test: No unexpected denials in denial collection logs. Change-Id: I1ae6203e37ddd4a19551d8063d26071ac20f2f3e
-
- Dec 09, 2016
-
-
Jeff Sharkey authored
After a series of recent commits, installd has fully migrated over to Binder, and all socket-based communication has been removed. Test: builds, boots, apps install fine, pre-OTA dexopt works Bug: 13758960, 30944031 Change-Id: Ia67b6260de58240d057c99b1bbd782b44376dfb5
-
- Dec 08, 2016
-
-
dcashman authored
app_domain was split up in commit: 2e00e637 to enable compilation by hiding type_transition rules from public policy. These rules need to be hidden from public policy because they describe how objects are labeled, of which non-platform should be unaware. Instead of cutting apart the app_domain macro, which non-platform policy may rely on for implementing new app types, move all app_domain calls to private policy. (cherry-pick of commit: 76035ea0) Bug: 33428593 Test: bullhead and sailfish both boot. sediff shows no policy change. Change-Id: I4beead8ccc9b6e13c6348da98bb575756f539665
-
- Dec 07, 2016
-
-
Nick Kralevich authored
Addresses the following denial: avc: denied { ioctl } for comm="top" path="/dev/pts/0" dev="devpts" ino=3 ioctlcmd=5402 scontext=u:r:shell:s0 tcontext=u:object_r:devpts:s0 tclass=chr_file permissive=0 Bug: 33073072 Bug: 7530569 Test: policy compiles. Change-Id: If9178d29f2295be46bb118df00ebf73a6ebc9f81
-
Nick Kralevich authored
This functionality is being used by priv_apps shipped as part of Android. Don't drop execute_no_trans as we haven't seen any denials here yet. Addresses the following auditallow messages: avc: granted { execute } for comm="GELServices-0" path="/data/data/com.google.android.googlequicksearchbox/files/velour/dex_cache/Ji1opKyKASKEOKNQUu1QyWw_1.jar/Ji1opKyKASKEOKNQUu1QyWw_1.dex" dev="dm-2" ino=1196939 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file avc: granted { execute } for comm="CTION_IDLE_MODE" path="/data/data/com.google.android.gms/snet/dalvik-cache/snet.dex" dev="dm-2" ino=1114262 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file avc: granted { execute } for comm="lowpool[3]" path="/data/data/com.google.android.gms/files/libAppDataSearchExt_arm64_v8a.so" dev="dm-2" ino=1688320 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file avc: granted { execute } for comm="Binder:9196_2" path="/data/data/com.google.android.gms/app_dg_cache/1FECE961A655634046D6AB5E18FE6F74212FBEA6/lib/libdC14BB7282EA1.so" dev="dm-2" ino=1893474 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file avc: granted { execute } for comm="Binder:13170_1" path="/data/data/com.google.android.gms/app_fb/f.dex" dev="dm-2" ino=1810720 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file Test: policy compiles. Change-Id: I63358697b07c8f620b999e666791f4f385bab776
-
Daniel Rosenberg authored
Test: No media_rw_data_file related app denials Change-Id: I1a977db09379f9a3e5bc52c597df12f52929ad19
-
dcashman authored
Make all platform tyeps public to start to prevent build breakage in any devices that may have device-specific policy using these types. Future changes will need to be carefully made to ensure we properly limit types for use by non-platform policy. Test: Builds Change-Id: I7349940d5b5a57357bc7c16f66925dee1d030eb6
-
- Dec 06, 2016
-
-
Torne (Richard Coles) authored
webview_zygote needs to preload the WebView implementation, which may be an installed APK, so must be able to read and execute code from inside the APK. Also add additional neverallow assertions to strengthen some restrictions on this domain. Test: WebView apps work after installing a WebView APK. Bug: 21643067 Change-Id: I58aedc5e0a25259e2e20c70d4260579a354b6789
-
dcashman authored
In order to support platform changes without simultaneous updates from non-platform components, the platform and non-platform policies must be split. In order to provide a guarantee that policy written for non-platform objects continues to provide the same access, all types exposed to non-platform policy are versioned by converting them and the policy using them into attributes. This change performs that split, the subsequent versioning and also generates a mapping file to glue the different policy components together. Test: Device boots and runs. Bug: 31369363 Change-Id: Ibfd3eb077bd9b8e2ff3b2e6a0ca87e44d78b1317
-
- Dec 05, 2016
-
-
Jeff Sharkey authored
Most of this CL mirrors what we've already done for the "netd" Binder interface, while sorting a few lists alphabetically. Migrating installd to Binder will allow us to get rid of one of the few lingering text-based command protocols, improving system maintainability and security. Test: builds, boots Bug: 13758960, 30944031 Change-Id: I59b89f916fd12e22f9813ace6673be38314c97b7
-
Nick Kralevich authored
system/core commit 6a70ded7bfa8914aaa3dc25630ff2713ae893f80 (later amended by 107e29ac1b1c297a0d4ee35c4978e79f47013e2c indicated that logd doesn't want it's memory accessible by anyone else. Unfortunately, setting DUMPABLE isn't sufficient against a root level process such with ptrace. Only one such process exists, "debuggerd". Block debuggerd from accessing logd's memory on user builds. Userdebug and eng builds are unaffected. Add a neverallow rule (compile time assertion + CTS test) to prevent regressions. Bug: 32450474 Test: Policy compiles. Change-Id: Ie90850cd91846a43adaa0871d239f894a0c94d38
-
Nick Kralevich authored
Broke the dragon build: libsepol.report_failure: neverallow on line 304 of system/sepolicy/public/domain.te (or line 8638 of policy.conf) violated by allow kernel device:chr_file { create setattr }; libsepol.check_assertions: 1 neverallow failures occurred Error while expanding policy This reverts commit ed0b4eb3. Change-Id: I5d55ab59ed72ce7c19a10ddbb374f9f3b3fae4fd
-
Nick Kralevich authored
By default, files created in /dev are labeled with the "device" label unless a different label has been assigned. The direct use of this generic label is discouraged (and in many cases neverallowed) because rules involving this label tend to be overly broad and permissive. Today, generically labeled character devices can only be opened, read, or written to by init and ueventd. $ sesearch --allow -t device -c chr_file -p open,read,write out/target/product/marlin/root/sepolicy allow init device:chr_file { setattr read lock getattr write ioctl open append }; allow ueventd device:chr_file { read lock getattr write ioctl open append }; this is enforced by the following SELinux neverallow rule (compile time assertion + CTS test): neverallow { domain -init -ueventd } device:chr_file { open read write }; Start auditallowing ueventd access to /dev character device files with the default SELinux label. This doesn't appear to be used, but let's prove it. While ueventd is expected to create files in /dev, it has no need to open most of the files it creates. Note, however, that because ueventd has mknod + setfscreate permissions, a malicious or compromised ueventd can always create a device node under an incorrect label, and gain access that way. The goal of this change is to prove that no process other than init are accessing generically labeled files in /dev. While I'm here, tighten up the compile time assertion for device:chr_file to include more permissions. Test: policy compiles + device boots with no granted messages. Change-Id: Ic98b0ddc631b49b09e58698d9f40738ccedd1fd0
-
Max authored
Only init and ueventd have any access to /dev/port, and neither should have any use for it. As it stands, leaving port in just represents additional attack surface with no useful functionality, so it should be removed if possible, not only from Pixel devices, but from all Android devices. Test: The phone boots successfully Bug:33301618 Change-Id: Iedc51590f1ffda02444587d647889ead9bdece3f
-
Daniel Micay authored
In general, apps shouldn't be executing data from their writable data directories. Allowing this is a security risk and use cases for this are almost always anti-patterns where saner alternatives are available such as using one of the standard systems for shipping libraries (extracted by the package manager or aligned/uncompressed in the apk) or using the existing package system to handle plugins. It's reasonable for the untrusted_app domain to have this (not just for backwards compatibility) for priv_app should be held to a higher standard. Ideally, untrusted apps would be able to opt-in to disabling this and then the default could then be switched at a new API level. It could do more than just hardening apps not requiring it by having documentation explain the risks and offer alternatives to reduce 'legitimate' use. The base system could disable it for all of the bundled untrusted apps. Change-Id: I4efcfaf01c6b6c33c39e98c22a1934e8892e2147
-
- Dec 04, 2016
-
-
Amit Mahajan authored
Test: none Bug: 32020264 Change-Id: If5f22dad672895b3684b8e44209c5a1eae16ba47
-
- Dec 03, 2016
-
-
Ray Essick authored
media framework analytics are gathered in a separate service. define a context for this new service, allow various media-related services and libraries to access this new service. Bug: 30267133 Test: ran media CTS, watched for selinux denials. Change-Id: I5aa5aaa5aa9e82465b8024f87ed32d6ba4db35ca
-
- Dec 02, 2016
-
-
Robert Sesek authored
Test: m Test: angler boots Bug: 21643067 Change-Id: I7530120385766506405a318caac8ef143e71cce7
-
Jeff Sharkey authored
Historically we pushed all system_server SD card interactions through DefaultContainerService to avoid holding open FDs, but it's safe to measure disk usage for internal emulated storage when looking directly at /data/media, since there is no risk of unsafe ejection. These rule changes give us just enough access to measure statistics. avc: denied { getattr } for path="/data/media/0/DCIM/.thumbnails" dev="sda35" ino=589892 scontext=u:r:system_server:s0 tcontext=u:object_r:media_rw_data_file:s0:c512,c768 tclass=dir permissive=1 avc: denied { open } for path="/data/media/0/DCIM/.thumbnails" dev="sda35" ino=589892 scontext=u:r:system_server:s0 tcontext=u:object_r:media_rw_data_file:s0:c512,c768 tclass=dir permissive=1 avc: denied { read } for name="0" dev="sda35" ino=589827 scontext=u:r:system_server:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=1 Test: builds, boots, and access allowed Bug: 33298975 Change-Id: I9748608a5c1169d542e763c5a8f79c4f26f7a382
-
- Nov 30, 2016
-
-
Nick Kralevich authored
Remove /proc/net access to domain_deprecated. Add it to domains where it was missing before. Other than these domains, SELinux denial monitoring hasn't picked up any denials related to /proc/net Bug: 28760354 Test: Device boots Test: No unexpected denials in denial collection logs. Change-Id: Ie5bfa4bc0070793c1e8bf3b00676fd31c08d426a
-
Max authored
Vold shouldn't have this selinux permission, so this will be left in for a few weeks to keep track of if removing it would be an issue to any other processes. If not, then a follow-up CL will remove both the rule and the auditallow Test: This CL is a test in itself, auditallow rules shouldn't change behavior of SELinux policy by themselves Bug: 26901147 Change-Id: Ib076448863bd54278df59a3b514c9e877eb22ee5
-
- Nov 29, 2016
-
-
Steven Moreland authored
Bug: 33067126 Test: Dumpstate vibrator works. Change-Id: I46ff453218ba77f156e13b448e3cba9a291df0e7
-
Daniel Rosenberg authored
Sdcardfs now supports bind mounts and remounts instead of needing several separate mounts bug: 30954918 Test: Enable Sdcardfs, verify mounts Change-Id: Id94713752a08ceeb6aea7d3c29a29d3293a9b0c8
-
- Nov 28, 2016
-
-
Nick Kralevich authored
Addresses the following denials and auditallows: avc: denied { read } for pid=561 comm="hwservicemanage" name="hw" dev="dm-0" ino=1883 scontext=u:r:hwservicemanager:s0 tcontext=u:object_r:system_file:s0 tclass=dir permissive=0 avc: denied { read } for pid=748 comm="gatekeeperd" name="hw" dev="dm-0" ino=1883 scontext=u:r:gatekeeperd:s0 tcontext=u:object_r:system_file:s0 tclass=dir permissive=0 avc: granted { read open } for pid=735 comm="fingerprintd" path="/system/lib64/hw" dev="dm-0" ino=1883 scontext=u:r:fingerprintd:s0 tcontext=u:object_r:system_file:s0 tclass=dir Test: no denials on boot Change-Id: Ic363497e3ae5078e564d7195f3739a654860a32f
-
William Roberts authored
commit 221938cb introduces a fix that uses braces around a single item. This is not within the normal style of no brace around a single item. Drop the braces. Change-Id: Ibeee1e682c0face97f18d5e5177be13834485676 Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-