- Nov 22, 2017
-
-
Jeff Vander Stoep authored
Commit 7688161c "hal_*_(client|server) => hal(client|server)domain" added neverallow rules on hal_*_client attributes while simultaneously expanding these attribute which causes them to fail CTS neverallow tests. Remove these neverallow rules as they do not impose specific security properties that we want to enforce. Modify Other neverallow failures which were imposed on hal_foo attributes and should have been enforced on hal_foo_server attributes instead. Bug: 69566734 Test: cts-tradefed run cts -m CtsSecurityHostTestCases -t \ android.cts.security.SELinuxNeverallowRulesTest CtsSecurityHostTestCases completed in 7s. 627 passed, 1 failed remaining failure appears to be caused by b/68133473 Test: build taimen-user/userdebug Change-Id: I619e71529e078235ed30dc06c60e6e448310fdbc
-
- Nov 21, 2017
-
-
Nick Kralevich authored
Remove a number of SELinux rules which were required to support file based OTA. After this, we can have a much stronger assertion that files on /system are immutable. Tighten up the neverallow rules at the same time. Bug: 35853185 Bug: 15575013 Test: adb reboot recovery && adb sideload [file] Change-Id: I4238d17808bed6a81f47e14eb1797496c07642e2
-
Jeffrey Vander Stoep authored
This reverts commit ed876a5e. Fixes user builds. libsepol.report_failure: neverallow on line 513 of system/sepolicy/public/domain.te (or line 9149 of policy.conf) violated by allow update_verifier misc_block_device:blk_file { ioctl read write lock append open }; libsepol.check_assertions: 1 neverallow failures occurred Error while expanding policy Bug: 69566734 Test: build taimen-user Change-Id: I969b7539dce547f020918ddc3e17208fc98385c4
-
Jeff Vander Stoep authored
Commit 7688161c "hal_*_(client|server) => hal(client|server)domain" added neverallow rules on hal_*_client attributes while simultaneously expanding these attribute which causes them to fail CTS neverallow tests. Remove these neverallow rules as they do not impose specific security properties that we want to enforce. Modify Other neverallow failures which were imposed on hal_foo attributes and should have been enforced on hal_foo_server attributes instead. Bug: 69566734 Test: cts-tradefed run cts -m CtsSecurityHostTestCases -t \ android.cts.security.SELinuxNeverallowRulesTest CtsSecurityHostTestCases completed in 7s. 627 passed, 1 failed remaining failure appears to be caused by b/68133473 Change-Id: I83dcb33c3a057f126428f88a90b95f3f129d9f0e
-
Benjamin Gordon authored
In kernel 4.7, the capability and capability2 classes were split apart from cap_userns and cap2_userns (see kernel commit 8e4ff6f228e4722cac74db716e308d1da33d744f). Since then, Android cannot be run in a container with SELinux in enforcing mode. This change applies the existing capability rules to user namespaces as well as the root namespace so that Android running in a container behaves the same on pre- and post-4.7 kernels. This is essentially: 1. New global_capability_class_set and global_capability2_class_set that match capability+cap_userns and capability2+cap2_userns, respectively. 2. s/self:capability/self:global_capability_class_set/g 3. s/self:capability2/self:global_capability2_class_set/g 4. Add cap_userns and cap2_userns to the existing capability_class_set so that it covers all capabilities. This set was used by several neverallow and dontaudit rules, and I confirmed that the new classes are still appropriate. Test: diff new policy against old and confirm that all new rules add only cap_userns or cap2_userns; Boot ARC++ on a device with the 4.12 kernel. Bug: crbug.com/754831 Change-Id: I4007eb3a2ecd01b062c4c78d9afee71c530df95f
-
- Nov 20, 2017
-
-
Nick Kralevich authored
Similar to the way we handle /dev/random and /dev/urandom, make /proc/sys/kernel/random available to everyone. hostname:/proc/sys/kernel/random # ls -laZ total 0 dr-xr-xr-x 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 . dr-xr-xr-x 1 root root u:object_r:proc:s0 0 2017-11-20 18:32 .. -r--r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 boot_id -r--r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 entropy_avail -r--r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 poolsize -rw-r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 read_wakeup_threshold -rw-r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 urandom_min_reseed_secs -r--r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 uuid -rw-r--r-- 1 root root u:object_r:proc_random:s0 0 2017-11-20 19:02 write_wakeup_threshold boot_id (unique random number per boot) is commonly used by applications, as is "uuid". As these are random numbers, no sensitive data is leaked. The other files are useful to allow processes to understand the state of the entropy pool, and should be fairly benign. Addresses the following denial: type=1400 audit(0.0:207): avc: denied { read } for name="boot_id" dev="proc" ino=76194 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0 Bug: 69294418 Test: policy compiles. Change-Id: Ieeca1c654ec755123e19b4693555990325bd58cf
-
Jeff Vander Stoep authored
Sharing data folders by path will be disallowed because it violates the approved API between platform and vendor components tested by VTS. Move all violating permissions from core selinux policy to device specific policy so that we can exempt existing devices from the ban and enforce it on new devices. Bug: 34980020 Test: Move permissions. Build and test wifi, wifi AP, nfc, fingerprint and Play movies on Marlin and Taimen. Test: build on Angler, Bullhead, Dragon, Fugu, Marlin, Walleye Change-Id: Ib6fc9cf1403e74058aaae5a7b0784922f3172b4e
-
- Nov 17, 2017
-
-
Jeff Vander Stoep authored
Exclude vendor processes. Bug: 69309298 Test: cts-tradefed run cts -m CtsCompilationTestCases completed in 33s. 5 passed, 0 failed Test: runtest frameworks-services -c \ com.android.server.pm.dex.DexoptOptionsTests \ --install=".*FrameworksServicesTests.apk" OK (5 tests) Change-Id: Ic02caf373e2214b4b931a724ca8d4f4effbc0741
-
- Nov 09, 2017
-
-
Jeff Vander Stoep authored
Vendor apps may only use servicemanager provided services marked as app_api_service. surfaceflinger_service should be available to vendor apps, so add this attribute and clean up duplicate grants. Addresses: avc: denied { find } scontext=u:r:qtelephony:s0 tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager avc: denied { find } scontext=u:r:ssr_detector:s0 tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager avc: denied { find } scontext=u:r:qcneservice:s0 tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager Bug: 69064190 Test: build Change-Id: I00fcf43b0a8bde232709aac1040a5d7f4792fa0f
-
- Nov 08, 2017
-
-
Jeff Vander Stoep authored
1. remove some duplicate permissions. 2. Grant permissions to su for dgram sockets in a way that is consistent to how we grant permissions to stream_sockets. Bug: 34980020 Test: build Change-Id: I50e01d51444a70ead3ef40b52eda8eb29732b46c
-
- Oct 25, 2017
-
-
Tom Cherry authored
First pass at adding vendor_init.te Bug: 62875318 Test: boot sailfish with vendor_init Change-Id: I35cc9be324075d8baae866d6de4166c37fddac68
-
- Oct 20, 2017
-
-
Nick Kralevich authored
The use of SIOCATMARK is not recommended per rfc6093. This ioctl is not currently allowed on Android. Add a neverallowxperm statement (compile time assertion + CTS test) to ensure this never regresses. Bug: 68014825 Test: policy compiles. Change-Id: I41272a0cb157ac9aa38c8e67aabb8385403815f9
-
- Oct 04, 2017
-
-
Nick Kralevich authored
"append" has almost the same behavior as "write". Test: policy compiles. Change-Id: I3f85108e7918766f07e03f74c3f1d8e8084042b3
-
- Oct 03, 2017
-
-
Nick Kralevich authored
Duplicate of "allow domain su:fd use;" Test: policy compiles. Change-Id: I81d86a8b325d619d3ecc9450a011d6646605cab9
-
- Sep 26, 2017
-
-
Dan Cashman authored
Bug: 37916906 Test: Builds 'n' boots. Change-Id: Ia1d86264446ebecc1ca79f32f11354921bc77668 Merged-In: I208ec6a864127a059fb389417a9c6b259d7474cb
-
- Aug 29, 2017
-
-
Ed Coyne authored
Iot would like to allow bootanim to load libraries from /oem but in order for device-specfic sepolicies to grant exec this global restriction needs to be relaxed. Bug: 37992717 Test: Tested with Iot sepolicies in effect and bootanim can exec. Change-Id: I6462bf510562eb3fb06304e50b68fba05d37b285
-
- Aug 28, 2017
-
-
Jeff Vander Stoep authored
This is needed to retain app's previous access to /sys/devices/system/cpu. When these files were previously labeled in file_contexts, symlinks were labeled as sysfs_devices_system_cpu. When labeling was moved to genfs_contexts symlinks all have the default sysfs label. avc: denied { getattr } for comm="main" path="/sys/devices/system/cpu/cpu0/cpufreq" dev="sysfs" ino=41897 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:sysfs:s0 tclass=lnk_file permissive=0 Change-Id: Idaa565390bca13d3819e147fcea4214956c0f589 Bug: 64270911 Test: build aosp_marlin
-
- Aug 23, 2017
-
-
John Stultz authored
This patch tries to provide similar functionality as the previous change made here: https://android-review.googlesource.com/#/c/platform/system/sepolicy/+/432339/ Only, making sure we add the same map permissions for the vendor directory. Change-Id: Ia965df2881cdee8bb5d81278a1eb740def582871 Signed-off-by:
John Stultz <john.stultz@linaro.org>
-
- Jul 10, 2017
-
-
Stephen Smalley authored
Kernel commit 3ba4bf5f1e2c ("selinux: add a map permission check for mmap") added a map permission check on mmap so that we can distinguish memory mapped access (since it has different implications for revocation). The purpose of a separate map permission check on mmap(2) is to permit policy to prohibit memory mapping of specific files for which we need to ensure that every access is revalidated, particularly useful for scenarios where we expect the file to be relabeled at runtime in order to reflect state changes (e.g. cross-domain solution, assured pipeline without data copying). The kernel commit is anticipated to be included in Linux 4.13. This change defines map permission for the Android policy. It mirrors the definition in the kernel classmap by adding it to the common definitions for files and sockets. This will break compatibility for kernels that predate the dynamic class/perm mapping support (< 2.6.33); on such kernels, one would instead need to add map permission to the end of each file and socket access vector. This change also adds map permission to the global macro definitions for file permissions, thereby allowing it in any allow rule that uses these macros, and to specific rules allowing mapping of files from /system and executable types. This should cover most cases where it is needed, although it may still need to be added to specific allow rules when the global macros are not used. Test: Policy builds Change-Id: Iab3ccd2b6587618e68ecab58218838749fe5e7f5 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
- Jul 05, 2017
-
-
Jeff Vander Stoep authored
Change fb889f23 "Force expand all hal_* attributes" annotated all hal_* attributes to be expanded to their associated types. However some of these attributes are used in CTS for neverallow checking. Mark these attributes to be preserved. In addition, remove the hacky workaround introduced in oc-dev for b/62658302 where extraneous neverallow rules were introduced to prevent unused or negated attributes from being auto-expanded from policy. Bug: 62658302 Bug: 63135903 Test: cts-tradefed run cts -m CtsSecurityHostTestCases -t \ android.cts.security.SELinuxNeverallowRulesTest armeabi-v7a CtsSecurityHostTestCases completed in 4s. 501 passed, 0 failed, 0 not executed Merged-In: I989def70a16f66e7a18bef1191510793fbe9cb8c Change-Id: I989def70a16f66e7a18bef1191510793fbe9cb8c
-
- Jun 23, 2017
-
-
Narayan Kamath authored
NOTE: This change is marked dnma because we don't want it on oc-dr1-dev-plus-aosp or any other downstream branch. Moreover, oc-dr1-dev-plus-aosp is the only outgoing merger from oc-dr1-dev for this project. This reverts commit 11bfcc1e. Bug: 62908344 Test: make Change-Id: Ide61829cf99f15777c46f657a0e140d594f88243
-
- Jun 16, 2017
-
-
Dan Cashman authored
Due to the massively increased number of attributes in SELinux policy as part of the treble changes, we have had to remove attributes from policy for performance reasons. Unfortunately, some attributes are required to be in policy to ensure that our neverallow rules are being properly enforced. Usually this is not a problem, since neverallow rules indicate that an attribute should be kept, but this is not currently the case when the attribute is part of a negation in a group. This is particularly problematic with treble since some attributes may exist for HALs that have no implementation, and thus no types. In particular, this has caused an issue with the neverallows added in our macros. Add an extraneous neverallow rule to each of those auto-generated neverallow rules to make sure that they are not removed from policy, until the policy compiler is fixed to avoid this. Also add corresponding rules for other types which have been removed due to no corresponding rules. Bug: 62591065 Bug: 62658302 Test: Attributes present in policy and CTS passes. sepolicy-analyze also works on platform-only policy. Change-Id: Ic3fc034cdbd04a94167f8240cf562297e8d7c762
-
- May 31, 2017
-
-
Andrew Scull authored
This is sometimes used for communication with the bootloader. Bug: 62052545 Test: Build Change-Id: I3ae37793407719e55ab0830129aa569c9018f7da
-
Narayan Kamath authored
Applications connect to tombstoned via a unix domain socket and request an open FD to which they can write their traces. This socket has a new label (tombstoned_java_trace_socket) and appdomain and system_server are given permissions to connect and write to it. Apps no longer need permissions to open files under /data/anr/ and these permissions will be withdrawn in a future change. Bug: 32064548 Test: Manual (cherry picked from commit a8832dabc7f3b7b2381760d2b95f81abf78db709) (cherry picked from commit 11bfcc1e) Change-Id: Icc60d227331c8eee70a9389ff1e7e78772f37e6f
-
Narayan Kamath authored
Applications connect to tombstoned via a unix domain socket and request an open FD to which they can write their traces. This socket has a new label (tombstoned_java_trace_socket) and appdomain and system_server are given permissions to connect and write to it. Apps no longer need permissions to open files under /data/anr/ and these permissions will be withdrawn in a future change. Bug: 32064548 Test: Manual Merged-In: I70a3e6e230268d12b454e849fa88418082269c4f Change-Id: Ib4b73fc130f4993c44d96c8d68f61b6d9bb2c7d5
-
- May 30, 2017
-
-
Narayan Kamath authored
Applications connect to tombstoned via a unix domain socket and request an open FD to which they can write their traces. This socket has a new label (tombstoned_java_trace_socket) and appdomain and system_server are given permissions to connect and write to it. Apps no longer need permissions to open files under /data/anr/ and these permissions will be withdrawn in a future change. Bug: 32064548 Test: Manual (cherry picked from commit a8832dabc7f3b7b2381760d2b95f81abf78db709) Change-Id: I70a3e6e230268d12b454e849fa88418082269c4f
-
- May 10, 2017
-
-
Alex Vakulenko authored
Specify per-service rules for PDX transport. Now being able to grant permissions to individual services provided by processes, not all services of a process. Also tighter control over which permissions are required for client and server for individual components of IPC (endpoints, channels, etc). Bug: 37646189 Change-Id: I78eb8ae8b6e08105666445a66bfcbd2f1d69d0ea
-
- May 04, 2017
-
-
Nick Kralevich authored
With build/core eaa9d88cf, system_server should not be loading code from /data. https://bugs.chromium.org/p/project-zero/issues/detail?id=955 Bug: 37214733 Bug: 31780877 Test: Device boots and no obvious problems. Test: No collected SELinux denials for build-server generated builds. Change-Id: I37b1e9e6c4555c937730ab491b6c38801b38ad38
-
- Apr 28, 2017
-
-
Jeff Vander Stoep authored
Adding the default label/mapping is important because: 1. Lookups of services without an selinux label should generate a denial. 2. In permissive mode, lookups of a service without a label should be be allowed, without the default label service manager disallows access. 3. We can neverallow use of the default label. Bug: 37762790 Test: Build and flash policy onto Marlin with unlabeled vendor services. Add/find of unlabeled vendor services generate a denial. Change-Id: I66531deedc3f9b79616f5d0681c87ed66aca5b80 (cherry picked from commit 639a2b84)
-
Jeff Vander Stoep authored
Adding the default label/mapping is important because: 1. Lookups of services without an selinux label should generate a denial. 2. In permissive mode, lookups of a service without a label should be be allowed, without the default label service manager disallows access. 3. We can neverallow use of the default label. Bug: 37762790 Test: Build and flash policy onto Marlin with unlabeled vendor services. Add/find of unlabeled vendor services generate a denial. Change-Id: I66531deedc3f9b79616f5d0681c87ed66aca5b80
-
- Apr 26, 2017
-
-
Nick Kralevich authored
The fuse_device neverallow rules are too aggressive and are inhibiting certain vendor customizations. Relax the /dev/fuse neverallow rules so that they better reflect the security invariants we want to uphold. Bug: 37496487 Test: policy compiles. Change-Id: Ie73b0ba7c76446afc2a7a23ebed1275c977d932d
-
- Apr 25, 2017
-
-
Alex Klyubin authored
This adds neverallow rules which enforce the prohibition on communication between framework and vendor components over VendorBinder. This prohibition is similar in spirit to the one for Binder communications. Most changes consist of adding neverallow rules, which do not affect runtime behavior. The only change which does affect runtime behavior is the change which takes away the right of servicemanager domain to transfer Binder tokens to hwservicemanager and vndservicemanager. This grant was there by accident (because it was overly broad) and is not expected to be needed: servicemanager, hwservicemanager, and vndservicemanager are not supposed to be communicating with each other. P. S. The new neverallow rules in app_neverallows.te are covered by the new rules in domain.te. The rules were nevertheless added to app_neverallows.te for consistency with other *Binder rules there. Test: mmm system/sepolicy Bug: 37663632 Change-Id: I7c2ae23924bf0f2fed3f1e3a8d4d603129286329
-
- Apr 24, 2017
-
-
Alex Klyubin authored
App domains which host arbitrary code must not have access to arbitrary HwBinder services. Such access unnecessarily increases the attack surface. The reason is twofold: 1. HwBinder servers do not perform client authentication because HIDL currently does not expose caller UID information and, even if it did, many HwBinder services either operate at a layer below that of apps (e.g., HALs) or must not rely on app identity for authorization. Thus, to be safe, the default assumption is that a HwBinder service treats all its clients as equally authorized to perform operations offered by the service. 2. HAL servers (a subset of HwBinder services) contain code with higher incidence rate of security issues than system/core components and have access to lower layes of the stack (all the way down to hardware) thus increasing opportunities for bypassing the Android security model. HwBinder services offered by core components (as opposed to vendor components) are considered safer because of point #2 above. Always same-process aka always-passthrough HwBinder services are considered safe for access by these apps. This is because these HALs by definition do not offer any additional access beyond what its client already as, because these services run in the process of the client. This commit thus introduces these two categories of HwBinder services in neverallow rules. Test: mmm system/sepolicy -- this does not change on-device policy Bug: 34454312 Change-Id: I4f5f4dd10b3fc3bb9d262dda532d4a23dcdf061d
-
- Apr 22, 2017
-
-
Alex Klyubin authored
* isolated_app is no longer permitted to access /dev/hwbinder -- this was granted by mistake. * There are now neverallows which enforce that isolated_app can't access HwBinder and VendorBinder. * There are now neverallows which enforce that isolated_app can't add Binder and VendorBinder services to servicemanager and vndservicemanager. Test: mmm system/sepolicy Bug: 34454312 Change-Id: I8ba90a0dcb6a9fccd8f50c78cbd2409381376f7a
-
- Apr 21, 2017
-
-
Alex Klyubin authored
This adds fine-grained policy about who can register and find which HwBinder services in hwservicemanager. Test: Play movie in Netflix and Google Play Movies Test: Play video in YouTube app and YouTube web page Test: In Google Camera app, take photo (HDR+ and conventional), record video (slow motion and normal), and check that photos look fine and videos play back with sound. Test: Cast screen to a Google Cast device Test: Get location fix in Google Maps Test: Make and receive a phone call, check that sound works both ways and that disconnecting the call frome either end works fine. Test: Run RsHelloCompute RenderScript demo app Test: Run fast subset of media CTS tests: make and install CtsMediaTestCases.apk adb shell am instrument -e size small \ -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner' Test: Play music using Google Play music Test: Adjust screen brightness via the slider in Quick Settings Test: adb bugreport Test: Enroll in fingerprint screen unlock, unlock screen using fingerprint Test: Apply OTA update: Make some visible change, e.g., rename Settings app. make otatools && \ make dist Ensure device has network connectivity ota_call.py -s <serial here> --file out/dist/sailfish-ota-*.zip Confirm the change is now live on the device Bug: 34454312 (cherry picked from commit 632bc494) Merged-In: Iecf74000e6c68f01299667486f3c767912c076d3 Change-Id: I7a9a487beaf6f30c52ce08e04d415624da49dd31
-
Jaekyun Seok authored
installd needs to check whether idmap is outdated or not compared to vendor overlay file. Test: building succeeded and tested on sailfish. Bug: 37179531 Change-Id: I934c1ae39e3f806bca1e3d68cf8190addeebb499
-
- Apr 20, 2017
-
-
Alex Klyubin authored
This adds fine-grained policy about who can register and find which HwBinder services in hwservicemanager. Test: Play movie in Netflix and Google Play Movies Test: Play video in YouTube app and YouTube web page Test: In Google Camera app, take photo (HDR+ and conventional), record video (slow motion and normal), and check that photos look fine and videos play back with sound. Test: Cast screen to a Google Cast device Test: Get location fix in Google Maps Test: Make and receive a phone call, check that sound works both ways and that disconnecting the call frome either end works fine. Test: Run RsHelloCompute RenderScript demo app Test: Run fast subset of media CTS tests: make and install CtsMediaTestCases.apk adb shell am instrument -e size small \ -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner' Test: Play music using Google Play music Test: Adjust screen brightness via the slider in Quick Settings Test: adb bugreport Test: Enroll in fingerprint screen unlock, unlock screen using fingerprint Test: Apply OTA update: Make some visible change, e.g., rename Settings app. make otatools && \ make dist Ensure device has network connectivity ota_call.py -s <serial here> --file out/dist/sailfish-ota-*.zip Confirm the change is now live on the device Bug: 34454312 Change-Id: Iecf74000e6c68f01299667486f3c767912c076d3
-
Daniel Nicoara authored
Bug: 37542947 Test: Compiled and ran on device to ensure no access errors while in VR Change-Id: Ia685676d82f1f10f2bd371a13879d00fe63a9ea6
-
Jeff Vander Stoep authored
Remove neverallow exemption allowing other processes to run in the bluetooth app's selinux domain. The bluetooth domain is intended to host the zygote spawned bluetooth app. It is not intended to host other bluetooth related processes. Please define new domains for these processes. Test: build Marlin Change-Id: I1fd3dd0fe85f73457d77b63a65b4307821cbd41c
-
- Apr 19, 2017
-
-
Andreas Gampe authored
Add asanwrapper support for system server under sanitization. Bug: 36138508 Test: m && m SANITIZE_TARGET=address SANITIZE_LITE=true Test: adb root && adb shell setprop wrap.system_server asanwrapper Change-Id: Id930690d2cfd8334c933e0ec5ac62f88850331d0
-