Skip to content
Snippets Groups Projects
  1. Jun 26, 2014
    • Riley Spahn's avatar
      Adding policies for KeyStore MAC. · 1196d2a5
      Riley Spahn authored
      Add keystore_key class and an action for each action supported
      by keystore. Add policies that replicate the access control that
      already exists in keystore. Add auditallow rules for actions
      not known to be used frequently. Add macro for those domains
      wishing to access keystore.
      
      Change-Id: Iddd8672b9e9b72b45ee208e6eda608cc9dc61edc
      1196d2a5
  2. Jun 25, 2014
    • Nick Kralevich's avatar
      Allow system_server to read all /proc files · 8c6552ac
      Nick Kralevich authored
      system_server scans through /proc to keep track of process
      memory and CPU usage. It needs to do this for all processes,
      not just appdomain processes, to properly account for CPU and
      memory usage.
      
      Allow it.
      
      Addresses the following errors which have been showing up
      in logcat:
      
        W/ProcessCpuTracker(12159): Skipping unknown process pid 1
        W/ProcessCpuTracker(12159): Skipping unknown process pid 2
        W/ProcessCpuTracker(12159): Skipping unknown process pid 3
      
      Bug: 15862412
      Change-Id: I0a75314824404e060c6914c06a371f2ff2e80512
      8c6552ac
  3. Jun 24, 2014
  4. Jun 20, 2014
  5. Jun 23, 2014
    • Riley Andrews's avatar
      Give healthd permission to write sys properties to allow quick boot from charger mode. · 51df227d
      Riley Andrews authored
      Property being set: sys.boot_from_charger_mode. If healthd attempts to write
      this property without the policy changes we get the following audit message:
      
      [   45.751195] type=1400 audit(1403556447.444:7): avc:  denied  { write } for pid=99 comm="charger" name="property_service" dev="tmpfs" ino=3229 scontext=u:r:healthd:s0 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0
      
      These changes are needed to support the following system/core commit:
      faster booting from charger mode
      * Ieec4494d929e92806e039f834d78b9002afd15c4
      
      Change-Id: I9f198cd73c7b2f1e372c3793dc2b8d5ef26b3a0f
      51df227d
    • Stephen Smalley's avatar
      Align SELinux property policy with init property_perms. · fee49159
      Stephen Smalley authored
      
      Introduce a net_radio_prop type for net. properties that can be
      set by radio or system.
      Introduce a system_radio_prop type for sys. properties that can be
      set by radio or system.
      Introduce a dhcp_prop type for properties that can be set by dhcp or system.
      Drop the rild_prop vs radio_prop distinction; this was an early
      experiment to see if we could separate properties settable by rild
      versus other radio UID processes but it did not pan out.
      
      Remove the ability to set properties from unconfineddomain.
      Allow init to set any property.  Allow recovery to set ctl_default_prop
      to restart adbd.
      
      Change-Id: I5ccafcb31ec4004dfefcec8718907f6b6f3e0dfd
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      fee49159
    • Nick Kralevich's avatar
      unconfined: remove internet access · 0db95cce
      Nick Kralevich authored
      Don't allow unconfined domains to access the internet. Restrict
      internet functionality to domains which explicitly declare their
      use. Removing internet access from unconfined domains helps
      protect daemons from network level attacks.
      
      In unconfined.te, expand out socket_class_set, and explicitly remove
      tcp_socket, udp_socket, rawip_socket, packet_socket, and
      appletalk_socket. Remove name_bind, node_bind and name_connect rules,
      since they only apply to internet accessible rules.
      
      Add limited udp support to init.te. This is needed to bring up
      the loopback interface at boot.
      
      Change-Id: If756f3fed857f11e63a6c3a1a13263c57fdf930a
      0db95cce
    • Stephen Smalley's avatar
      Remove execmod access to system_file and exec_type. · a893edae
      Stephen Smalley authored
      
      execmod is checked on attempts to make executable a file mapping
      that has been modified.  Typically this indicates a text relocation
      attempt.  As we do not ever allow this for any confined domain to
      system_file or exec_type, we should not need it for unconfineddomain
      either.
      
      Change-Id: I8fdc858f836ae0d2aa56da2abd7797fba9c258b1
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      a893edae
    • Nick Kralevich's avatar
      Merge "Create vdc domain" · bb75dd73
      Nick Kralevich authored
      bb75dd73
    • Nick Kralevich's avatar
      2e14164c
    • Stephen Smalley's avatar
      Allow init to relabel rootfs files. · c626a882
      Stephen Smalley authored
      
      This is required for the restorecon /adb_keys in init.rc or
      for any other relabeling of rootfs files to more specific types on
      kernels that support setting security contexts on rootfs inodes.
      
      Addresses denials such as:
        avc: denied { relabelfrom } for comm="init" name="adb_keys" dev="rootfs" ino=1917 scontext=u:r:init:s0 tcontext=u:object_r:rootfs:s0 tclass=file permissive=0
      We do not need to prohibit relabelfrom of such files because our goal
      is to prevent writing to executable files, while relabeling the file
      to another type will take it to a non-executable (or non-writable) type.
      In contrast, relabelto must be prohibited by neverallow so that a
      modified file in a writable type cannot be made executable.
      
      Change-Id: I7595f615beaaa6fa524f3c32041918e197bfbebe
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      c626a882
  6. Jun 21, 2014
    • Nick Kralevich's avatar
      Allow dumpsys from serial console · 67d1f1ec
      Nick Kralevich authored
      Trying to run dumpsys from the serial console generates the
      following errors:
      
        shell@device:/ # dumpsys power
        [ 3244.099015] binder: 2259:2259 transaction failed 29201, size 28-8
        [ 3244.099291] type=1400 audit(1403313679.642:12): avc: denied { read write } for pid=2259 comm="dumpsys" path="/dev/console" dev="tmpfs" ino=6188 scontext=u:r:system_server:s0 tcontext=u:object_r:console_device:s0 tclass=chr_file permissive=0
        Error dumping service info: (Unknown error -2147483646) power
      
      and the operation fails. Allow binderservicedomains to perform
      writes to /dev/console.
      
      Bug: 15779131
      Change-Id: Iff55ab09c3a4d40e12d49ff2308bf147f9cb6937
      67d1f1ec
    • Nick Kralevich's avatar
      Create vdc domain · bf8a37b8
      Nick Kralevich authored
      The init.rc one-shot services "defaultcrypto" and "encrypt" call
      out to the /system/bin/vdc command line to ask vold to perform
      encryption operations. Create a new domain for these one-shot
      services. Allow the vdc domain to talk to vold.
      
      Change-Id: I73dc2ee4cc265bc16056b27307c254254940fd9f
      bf8a37b8
  7. Jun 20, 2014
    • Nick Kralevich's avatar
    • Stephen Smalley's avatar
      Only allow app domains to access SDcard via fuse mount. · cf610692
      Stephen Smalley authored
      
      sdcard_internal is assigned to fuse mounts while sdcard_external
      is assigned to vfat mounts by genfs_contexts.  Originally we
      allowed access to both via the sdcard_type attribute, and access
      via both means was required.  IIUC however, in 4.4 and later,
      SDcard access should always occur via the fuse mount and we can
      drop access to sdcard_external.
      
      I think we can do the same for all domains except sdcardd.  However,
      I cannot test this as the Nexus devices do not have external SDcard
      support.
      
      Also wondering if we should rename sdcard_internal type to fuse
      and sdcard_external type to vfat to more clearly represent their
      meaning, since one accesses the external SDcard via the fuse mount now.
      
      Change-Id: Ie44221e9eea90e627a48df5398c456b86293f724
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      cf610692
    • Stephen Smalley's avatar
      Remove sdcard_type access from unconfineddomain. · ee615284
      Stephen Smalley authored
      
      Require sdcard_type access to be explicitly allowed to
      each domain.  This is to both protect services from
      being killed by unsafe ejection and to protect SDcard
      data from access by rogue daemons.
      
      Change-Id: If3bdd50fd2be50bd98d755b2f252e0ae455b82c4
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      ee615284
    • Stephen Smalley's avatar
      Remove app_data_file access from unconfineddomain. · 631a5a8e
      Stephen Smalley authored
      
      Require app_data_file access to be explicitly allowed to
      each domain.  We especially do not want to allow
      app_data_file:lnk_file read to any privileged domain.
      But removing app_data_file access in general can be useful
      in protecting app data from rogue daemons.
      
      Change-Id: I46240562bce76579e108495ab15833e143841ad8
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      631a5a8e
  8. Jun 19, 2014
    • Stephen Smalley's avatar
      Remove write access to rootfs files. · 04b8a75c
      Stephen Smalley authored
      
      Remove write access to rootfs files from unconfineddomain and
      prevent adding it back via neverallow.  This is only applied to
      regular files, as we are primarily concerned with preventing
      writing to a file that can be exec'd and because creation of
      directories or symlinks in the rootfs may be required for mount
      point directories.
      
      Change-Id: If2c96da03f5dd6f56de97131f6ba9eceea328721
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      04b8a75c
    • Stephen Smalley's avatar
      Remove execute_no_trans from unconfineddomain. · f3c3a1aa
      Stephen Smalley authored
      
      execute_no_trans controls whether a domain can execve a program
      without switching to another domain.  Exclude this permission from
      unconfineddomain, add it back to init, init_shell, and recovery for
      files in / and /system, and to kernel for files in / (to permit
      execution of init prior to setcon).  Prohibit it otherwise for the
      kernel domain via neverallow.  This ensures that if a kernel task
      attempts to execute a kernel usermodehelper for which no domain transition
      is defined, the exec will fail.
      
      Change-Id: Ie7b2349923672dd4f5faf7c068a6e5994fd0e4e3
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      f3c3a1aa
    • Stephen Smalley's avatar
      Address recovery denials. · 1095d694
      Stephen Smalley authored
      
      [  265.263738] type=1400 audit(17091747.819:4): avc:  denied  { write } for  pid=132 comm="recovery" name="enable" dev="sysfs" ino=14405 scontext=u:r:recovery:s0 tcontext=u:object_r:sysfs:s0 tclass=file
      [  265.293154] type=1400 audit(17091747.849:5): avc:  denied  { execute } for  pid=177 comm="recovery" name="recovery" dev="rootfs" ino=6376 scontext=u:r:recovery:s0 tcontext=u:object_r:rootfs:s0 tclass=file
      [  265.299479] type=1400 audit(17091747.859:6): avc:  denied  { setgid } for  pid=177 comm="recovery" capability=6  scontext=u:r:recovery:s0 tcontext=u:r:recovery:s0 tclass=capability
      [  265.299511] type=1400 audit(17091747.859:7): avc:  denied  { read write } for  pid=178 comm="recovery" name="android_adb" dev="tmpfs" ino=6739 scontext=u:r:recovery:s0 tcontext=u:object_r:adb_device:s0 tclass=chr_file
      [  265.299531] type=1400 audit(17091747.859:8): avc:  denied  { open } for  pid=178 comm="recovery" name="android_adb" dev="tmpfs" ino=6739 scontext=u:r:recovery:s0 tcontext=u:object_r:adb_device:s0 tclass=chr_file
      [  265.299863] type=1400 audit(17091747.859:9): avc:  denied  { setuid } for  pid=177 comm="recovery" capability=7  scontext=u:r:recovery:s0 tcontext=u:r:recovery:s0 tclass=capability
      
      Change-Id: I024d5a797b86b9766f10bbb2a6a6462cafc9c26a
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      1095d694
    • Paul Jensen's avatar
      Allow Bluetooth app to initiate DHCP service on bt-pan interface. · 97a2cfdf
      Paul Jensen authored
      bug:15407087
      Change-Id: I3dea9c1110583f11f093d048455a1cc739d05658
      97a2cfdf
    • Nick Kralevich's avatar
      system_server: allow open /dev/snd and read files · 04e730b6
      Nick Kralevich authored
      system_server needs to open /dev/snd and access files
      within that directory. Allow it.
      
      system_server need to parse the ALSA card descriptors after a USB device
      has been inserted. This happens from USBService in system_server.
      
      Addresses the following denial:
      
        system_server( 1118): type=1400 audit(0.0:19): avc: denied { search } for comm=5573625365727669636520686F7374 name="snd" dev="tmpfs" ino=8574 scontext=u:r:system_server:s0 tcontext=u:object_r:audio_device:s0 tclass=dir
      
      and likely others
      
      Change-Id: Id274d3feb7bf337f492932e5e664d65d0b8d05b8
      04e730b6
  9. Jun 18, 2014
    • Stephen Smalley's avatar
      Prevent adding transitions to kernel or init domains. · bac4ccce
      Stephen Smalley authored
      
      Add neverallow rules to prohibit adding any transitions into
      the kernel or init domains.  Rewrite the domain self:process
      rule to use a positive permission list and omit the transition
      and dyntransition permissions from this list as well as other
      permissions only checked when changing contexts.  This should be
      a no-op since these permissions are only checked when
      changing contexts but avoids needing to exclude kernel or init
      from the neverallow rules.
      
      Change-Id: Id114b1085cec4b51684c7bd86bd2eaad8df3d6f8
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      bac4ccce
    • Stephen Smalley's avatar
      Allow mounting of usbfs. · 718bf84b
      Stephen Smalley authored
      
      Addresses denials such as:
      avc:  denied  { mount } for  pid=5 comm="kworker/u:0" name="/" dev=usbfs ino=3234 scontext=u:r:kernel:s0 tcontext=u:object_r:usbfs:s0 tclass=filesystem
      
      Change-Id: I1db52193e6a2548c37a7809ef44cf7fd3357326d
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      718bf84b
  10. Jun 17, 2014
  11. Jun 16, 2014
    • Nick Kralevich's avatar
      Fix SELinux policies to allow resource overlays. · fad4d5fb
      Nick Kralevich authored
      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
      fad4d5fb
    • Stephen Smalley's avatar
      Define contextmount_type attribute and add it to oemfs. · d2503ba8
      Stephen Smalley authored
      
      Several device-specific policy changes with the same Change-Id
      also add this attribute to device-specific types.
      
      Change-Id: I09e13839b1956f61875a38844fe4fc3c911ea60f
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      d2503ba8
    • Stephen Smalley's avatar
      Restrict use of context= mount options. · 75e2ef92
      Stephen Smalley authored
      
      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: default avatarStephen Smalley <sds@tycho.nsa.gov>
      75e2ef92
    • Nick Kralevich's avatar
      Don't allow types which are both file_type and fs_type · 48212742
      Nick Kralevich authored
      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
      48212742
  12. Jun 15, 2014
    • Nick Kralevich's avatar
      recovery: Allow exec_type on dirs, read for /dev · ff409bb4
      Nick Kralevich authored
      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
      ff409bb4
  13. Jun 13, 2014
Loading