1. 11 Jan, 2014 1 commit
    • 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
  2. 11 Dec, 2013 1 commit
    • Stephen Smalley's avatar
      Allow untrusted apps to execute binaries from their sandbox directories. · 65317124
      Stephen Smalley authored
      
      Various third party apps come with their own binaries that they write out to
      their sandbox directories and then execute, e.g.:
      audit(1386527439.462:190): avc:  denied  { execute_no_trans } for  pid=1550 comm="Thread-79" path="/data/data/com.cisco.anyconnect.vpn.android.avf/app_bin/busybox" dev="mmcblk0p23" ino=602891 scontext=u:r:untrusted_app:s0:c39,c256 tcontext=u:object_r:app_data_file:s0:c39,c256 tclass=file
      
      While this is not ideal from a security POV, it seems necessary to support for
      compatibility with Android today.
      
      Split out the execute-related permissions to a separate allow rule as it
      only makes sense for regular files (class file) not other kinds of files
      (e.g. fifos, sockets, symlinks), and use the rx_file_perms macro.
      
      Move the rule to untrusted_app only so that we do not permit system apps
      to execute files written by untrusted apps.
      
      Change-Id: Ic9bfe80e9b14f2c0be14295c70f23f09691ae66c
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      65317124
  3. 27 Sep, 2013 1 commit
    • Stephen Smalley's avatar
      Isolate untrusted app ptys from other domains. · 2dc4acf3
      Stephen Smalley authored
      
      Add a create_pty() macro that allows a domain to
      create and use its own ptys, isolated from the ptys
      of any other domain, and use that macro for untrusted_app.
      This permits the use of a pty by apps without opening up access
      to ptys created by any other domain on the system.
      
      Change-Id: I5d96ce4d1b26073d828e13eb71c48d1e14ce7d6b
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      2dc4acf3
  4. 04 Sep, 2013 1 commit
  5. 17 Aug, 2013 1 commit
  6. 16 Aug, 2013 1 commit
  7. 16 Jul, 2013 4 commits
  8. 15 Jul, 2013 1 commit
  9. 14 Jul, 2013 1 commit
    • Nick Kralevich's avatar
      untrusted_app.te / isolated_app.te / app.te first pass · 6634a108
      Nick Kralevich authored
      This is my first attempt at creating an enforcing SELinux domain for
      apps, untrusted_apps, and isolated_apps. Much of these rules are based on the
      contents of app.te as of commit 11153ef3
      with extensive modifications, some of which are included below.
      
      * Allow communication with netd/dnsproxyd, to allow netd to handle
        dns requests
      * Allow binder communications with the DNS server
      * Allow binder communications with surfaceflinger
      * Allow an app to bind to tcp/udp ports
      * Allow all domains to read files from the root partition, assuming
        the DAC allows access.
      
      In addition, I added a bunch of "neverallow" rules, to assert that
      certain capabilities are never added.
      
      This change has a high probability of breaking someone, somewhere.
      If it does, then I'm happy to fix the breakage, rollback this change,
      or put untrusted_app into permissive mode.
      
      Change-Id: I83f220135d20ab4f70fbd7be9401b5b1def1fe35
      6634a108
  10. 13 Jul, 2013 1 commit
    • Nick Kralevich's avatar
      Move *_app into their own file · 748fdef6
      Nick Kralevich authored
      app.te covers a lot of different apps types (platform_app, media_app,
      shared_app, release_app, isolated_app, and untrusted_app), all
      of which are going to have slightly different security policies.
      
      Separate the different domains from app.te. Over time, these
      files are likely to grow substantially, and mixing different domain types
      is a recipe for confusion and mistakes.
      
      No functional change.
      
      Change-Id: Ida4e77fadb510f5993eb2d32f2f7649227edff4f
      748fdef6