Skip to content
Snippets Groups Projects
  1. Apr 30, 2014
    • Stephen Smalley's avatar
      DO NOT MERGE: Ensure that /data/misc/wifi/sockets is always labeled wpa_socket. · b55ebfb0
      Stephen Smalley authored
      
      It appears that wpa_supplicant tries to rmdir /data/misc/wifi/sockets
      and re-create it at times, so make sure that it remains labeled correctly
      when re-created in this manner via a name-based type transition rule.
      Do the same for hostapd as it also has permissions for creating/removing
      this directory.
      
      <5>[83921.800071] type=1400 audit(1392997522.105:26): avc:  denied  { rmdir } for  pid=3055 comm="wpa_supplicant" name="sockets" dev="mmcblk0p28" ino=618957 scontext=u:r:wpa:s0 tcontext=u:object_r:wpa_socket:s0 tclass=dir
      
      We no longer need the type_transition for sock_file as it will inherit
      the type from the parent directory which is set via restorecon_recursive
      /data/misc/wifi/sockets or via type_transition, so drop it.
      
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      
      (cherry picked from commit 7ade68d7)
      
      Change-Id: Ie3e2f4c14ce29a63634aa4049ab47f2624e93310
      b55ebfb0
    • Stephen Smalley's avatar
      DO NOT MERGE: Update hostapd domain for /data/misc/wifi/sockets label change. · 5086de28
      Stephen Smalley authored
      
      Change I9e35cc93abf89ce3594860aa3193f84a3b42ea6e changed the type
      on /data/misc/wifi/sockets to wpa_socket and change
      I51b09c5e40946673a38732ea9f601b2d047d3b62 fixed the type on existing
      devices.  Consequently hostapd now needs access to wpa_socket dir
      and sock_file.
      
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      
      (cherry picked from commit f2067371)
      
      Change-Id: I58dd3d5927e6cf9e349dc7584df499521d49afb1
      5086de28
    • Stephen Smalley's avatar
      DO NOT MERGE: partial backport of 08461cb0 · ad10d108
      Stephen Smalley authored
      
      Original change: Allow netd-spawned domains to use inherited netd unix_dgram_socket.
      
      Resolves denials such as:
       avc:  denied  { read write } for  pid=4346 comm="hostapd" path="socket:[7874]" dev="sockfs" ino=7874 scontext=u:r:hostapd:s0 tcontext=u:r:netd:s0 tclass=unix_dgram_socket
       avc:  denied  { read write } for  pid=4348 comm="dnsmasq" path="socket:[7874]" dev="sockfs" ino=7874 scontext=u:r:dnsmasq:s0 tcontext=u:r:netd:s0 tclass=unix_dgram_socket
      
      Change-Id: Iebbbf8f9f31b56ec5b158dda93101472c25e638d
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      ad10d108
  2. Mar 18, 2014
    • Stephen Smalley's avatar
      Allow netd-spawned domains to use inherited netd unix_dgram_socket. · 08461cb0
      Stephen Smalley authored
      
      Resolves denials such as:
       avc:  denied  { read write } for  pid=4346 comm="hostapd" path="socket:[7874]" dev="sockfs" ino=7874 scontext=u:r:hostapd:s0 tcontext=u:r:netd:s0 tclass=unix_dgram_socket
       avc:  denied  { read write } for  pid=4348 comm="dnsmasq" path="socket:[7874]" dev="sockfs" ino=7874 scontext=u:r:dnsmasq:s0 tcontext=u:r:netd:s0 tclass=unix_dgram_socket
      
      Change-Id: Ie82f39c32c6e04bc9ef1369ca787cf80b3b4141c
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      08461cb0
  3. Mar 14, 2014
  4. Mar 12, 2014
    • Stephen Smalley's avatar
      Label /data/misc/wifi/hostapd with wpa_socket type. · 5f8d9f85
      Stephen Smalley authored
      
      hostapd creates sockets under /data/misc/wifi/hostapd.
      Ensure that they are labeled correctly both at runtime
      (type_transition) and during the init.rc restorecon_recursive /data
      (file_contexts).
      
      Addresses denials such as:
       avc:  denied  { create } for  pid=20476 comm="hostapd" name="wlan0" scontext=u:r:hostapd:s0 tcontext=u:object_r:wifi_data_file:s0 tclass=sock_file
       avc:  denied  { setattr } for  pid=20476 comm="hostapd" name="wlan0" dev="mmcblk0p23" ino=619005 scontext=u:r:hostapd:s0 tcontext=u:object_r:wifi_data_file:s0 tclass=sock_file
       avc:  denied  { unlink } for  pid=20476 comm="hostapd" name="wlan0" dev="mmcblk0p23" ino=619005 scontext=u:r:hostapd:s0 tcontext=u:object_r:wifi_data_file:s0 tclass=sock_file
      
      Change-Id: I80a443faeb6017a9d6cbdb8da9d7416f29a7b85f
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      5f8d9f85
  5. Feb 25, 2014
    • Stephen Smalley's avatar
      Clean up socket rules. · 16011320
      Stephen Smalley authored
      
      Replace * or any permission set containing create with
      create_socket_perms or create_stream_socket_perms.
      
      Add net_domain() to all domains using network sockets and
      delete rules already covered by domain.te or net.te.
      
      For netlink_route_socket, only nlmsg_write needs to be separately
      granted to specific domains that are permitted to modify the routing
      table.   Clarification:  read/write permissions are just ability to
      perform read/recv() or write/send() on the socket, whereas nlmsg_read/
      nlmsg_write permissions control ability to observe or modify the
      underlying kernel state accessed via the socket.
      See security/selinux/nlmsgtab.c in the kernel for the mapping of
      netlink message types to nlmsg_read or nlmsg_write.
      
      Delete legacy rule for b/12061011.
      
      This change does not touch any rules where only read/write were allowed
      to a socket created by another domain (inherited across exec or
      received across socket or binder IPC).  We may wish to rewrite some or all
      of those rules with the rw_socket_perms macro but that is a separate
      change.
      
      Change-Id: Ib0637ab86f6d388043eff928e5d96beb02e5450e
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      16011320
  6. Feb 21, 2014
    • Stephen Smalley's avatar
      Ensure that /data/misc/wifi/sockets is always labeled wpa_socket. · 7ade68d7
      Stephen Smalley authored
      
      It appears that wpa_supplicant tries to rmdir /data/misc/wifi/sockets
      and re-create it at times, so make sure that it remains labeled correctly
      when re-created in this manner via a name-based type transition rule.
      Do the same for hostapd as it also has permissions for creating/removing
      this directory.
      
      <5>[83921.800071] type=1400 audit(1392997522.105:26): avc:  denied  { rmdir } for  pid=3055 comm="wpa_supplicant" name="sockets" dev="mmcblk0p28" ino=618957 scontext=u:r:wpa:s0 tcontext=u:object_r:wpa_socket:s0 tclass=dir
      
      We no longer need the type_transition for sock_file as it will inherit
      the type from the parent directory which is set via restorecon_recursive
      /data/misc/wifi/sockets or via type_transition, so drop it.
      
      Change-Id: Iffa61c426783eb03205ba6964c624c6ecea32630
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      7ade68d7
  7. Feb 11, 2014
  8. Jan 11, 2014
    • Nick Kralevich's avatar
      Support forcing permissive domains to unconfined. · 623975fa
      Nick Kralevich authored
      Permissive domains are only intended for development.
      When a device launches, we want to ensure that all
      permissive domains are in, at a minimum, unconfined+enforcing.
      
      Add FORCE_PERMISSIVE_TO_UNCONFINED to Android.mk. During
      development, this flag is false, and permissive domains
      are allowed. When SELinux new feature development has been
      frozen immediately before release, this flag will be flipped
      to true. Any previously permissive domains will move into
      unconfined+enforcing.
      
      This will ensure that all SELinux domains have at least a
      minimal level of protection.
      
      Unconditionally enable this flag for all user builds.
      
      Change-Id: I1632f0da0022c80170d8eb57c82499ac13fd7858
      623975fa
  9. Nov 18, 2013
  10. Oct 21, 2013
    • Nick Kralevich's avatar
      Move unconfined domains out of permissive mode. · 353c72e3
      Nick Kralevich authored
      This change removes the permissive line from unconfined
      domains. Unconfined domains can do (mostly) anything, so moving
      these domains into enforcing should be a no-op.
      
      The following domains were deliberately NOT changed:
      1) kernel
      2) init
      
      In the future, this gives us the ability to tighten up the
      rules in unconfined, and have those tightened rules actually
      work.
      
      When we're ready to tighten up the rules for these domains,
      we can:
      
      1) Remove unconfined_domain and re-add the permissive line.
      2) Submit the domain in permissive but NOT unconfined.
      3) Remove the permissive line
      4) Wait a few days and submit the no-permissive change.
      
      For instance, if we were ready to do this for adb, we'd identify
      a list of possible rules which allow adbd to work, re-add
      the permissive line, and then upload those changes to AOSP.
      After sufficient testing, we'd then move adb to enforcing.
      We'd repeat this for each domain until everything is enforcing
      and out of unconfined.
      
      Change-Id: If674190de3262969322fb2e93d9a0e734f8b9245
      353c72e3
  11. Jun 28, 2013
    • Nick Kralevich's avatar
      Enable SELinux protections for netd. · dbd28d91
      Nick Kralevich authored
      This change does several things:
      
      1) Restore domain.te to the version present at
      cd516a32 . This is the version
      currently being distributed in AOSP.
      
      2) Add "allow domain properties_device:file r_file_perms;" to
      domain.te, to allow all domains to read /dev/__properties__ .
      This change was missing from AOSP.
      
      3) Restore netd.te to the version present at
      80c9ba52 . This is the version
      currently being distributed in AOSP.
      
      4) Remove anything involving module loading from netd.te. CTS
      enforces that Android kernels can't have module loading enabled.
      
      5) Add several new capabilities, plus data file rules, to
      netd.te, since netd needs to write to files owned by wifi.
      
      6) Add a new unconfined domain called dnsmasq.te, and allow
      transitions from netd to that domain. Over time, we'll tighten up
      the dnsmasq.te domain.
      
      7) Add a new unconfined domain called hostapd.te, and allow
      transitions from netd to that domain. Over time, we'll tighten up
      the hostapd.te domain.
      
      The net effect of these changes is to re-enable SELinux protections
      for netd. The policy is FAR from perfect, and allows a lot of wiggle
      room, but we can improve it over time.
      
      Testing: as much as possible, I've exercised networking related
      functionality, including turning on and off wifi, entering airplane
      mode, and enabling tethering and portable wifi hotspots. It's quite
      possible I've missed something, and if we experience problems, I
      can roll back this change.
      
      Bug: 9618347
      Change-Id: I23ff3eebcef629bc7baabcf6962f25f116c4a3c0
      dbd28d91
Loading