Skip to content
Snippets Groups Projects
  1. Feb 21, 2017
    • Chad Brubaker's avatar
      Add new untrusted_v2_app domain · a782a816
      Chad Brubaker authored
      untrusted_v2_app is basically a refinement of untrusted_app with legacy
      capabilities removed and potentially backwards incompatible changes.
      
      This is not currently hooked up to anything.
      
      Bug: 33350220
      Test: builds
      Change-Id: Ic9fad57476bc2b6022b1eaca8667bf6d844753c2
      a782a816
  2. Feb 14, 2017
    • Michael Peck's avatar
      Add minTargetSdkVersion input selector to seapp_contexts · f54b3622
      Michael Peck authored
      This new input selector allows phasing in new security policies by
      giving app developers an opportunity to make any needed compatibility
      changes before updating each app's targetSdkVersion.
      
      When all else is equal, matching entries with higher
      minTargetSdkVersion= values are preferred over entries with lower
      minTargetSdkVersion= values.
      
      Test: Marlin builds and boots. Apps targeting targetSdkVersion<=25
      run in untrusted_app_25 domain. Apps targeting the current development
      build >=26 run in the untrusted_app domain with fewer permissions. No
      new denials observed during testing.
      Bug: 34115651
      Change-Id: I14bf4f51dbe26cb9bd3f62ad0b281085441d9806
      f54b3622
  3. Oct 19, 2016
    • William Roberts's avatar
      check_seapp: correct output on invalid policy file · f7d6bb3f
      William Roberts authored
      
      If in invalid policy file is loaded check_seapp outputs:
      
      Error: Could not lod policy file to db: Success!
      
      The "Success" value is from errno, which is not manipulated
      by libsepol. Also, load should have an a in it!
      
      Hardcode the error message to:
      
      Error: Could not load policy file to db: invalid input file!
      
      Test: That when providing an invalid sepolicy binary, that the output
      message is correct.
      Change-Id: Iaf1f85eeb217d484997ee1367d91d461c1195bf4
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      f7d6bb3f
  4. Oct 12, 2016
  5. Oct 07, 2016
  6. Aug 22, 2016
  7. Aug 19, 2016
    • Janis Danisevskis's avatar
      Port from pcre to pcre2 · a15ea578
      Janis Danisevskis authored
      Ports check_seapp to pcre2.
      
      Merged-In: Ib9977326cfbb19ce143b04504f41afb884f2ec17
      Bug: 24091652
      Change-Id: Ib9977326cfbb19ce143b04504f41afb884f2ec17
      a15ea578
  8. May 11, 2016
    • Chih-Hung Hsieh's avatar
      Fix misc-macro-parentheses warnings. · 33500c91
      Chih-Hung Hsieh authored
      Add parentheses around macro arguments used beside binary operators.
      Use NOLINT comment to suppress false clang-tidy warnings.
      
      Bug: 28705665
      Change-Id: Idc7474c43da52a1ca6a690b56d8f637767adbb88
      33500c91
  9. Feb 10, 2016
  10. Jan 29, 2016
  11. Nov 09, 2015
    • Jeff Vander Stoep's avatar
      Add autoplay_app domain · 400d3ac1
      Jeff Vander Stoep authored
      Initial check in of empty autoplay_app.te policy file.
      
      Create isAutoPlayApp input selector. Give this selector high precedence -
      only below isSystemServer.
      
      Add neverallow rule disallowing an app context with isAutoPlayApp=true from
      running in a domain other than autoplay_app.
      
      Change-Id: I1d06669d2f1acf953e50867dfa2b264ccaee29a4
      400d3ac1
  12. Oct 14, 2015
  13. Jun 25, 2015
    • William Roberts's avatar
      check_seapp: add support for "neverallow" checks · 81e1f90c
      William Roberts authored
      
      Introduce "neverallow" rules for seapp_contexts. A neverallow rule is
      similar to the existing key-value-pair entries but the line begins
      with "neverallow". A neverallow violation is detected when all keys,
      both inputs and outputs are matched. The neverallow rules value
      parameter (not the key) can contain regular expressions to assist in
      matching. Neverallow rules are never output to the generated
      seapp_contexts file.
      
      Also, unless -o is specified, checkseapp runs in silent mode and
      outputs nothing. Specifying - as an argument to -o outputs to stdout.
      
      Sample Output:
      Error: Rule in File "external/sepolicy/seapp_contexts" on line 87: "user=fake domain=system_app type=app_data_file" violates neverallow in File "external/sepolicy/seapp_contexts" on line 57: "user=((?!system).)* domain=system_app"
      
      Change-Id: Ia4dcbf02feb774f2e201bb0c5d4ce385274d8b8d
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      81e1f90c
  14. Jun 23, 2015
    • William Roberts's avatar
      check_seapp: mac build memory leak · 7d65b547
      William Roberts authored
      
      rule_map_free() took as a parameter a boolean menu rule_map_switch
      that was used to determine if it should free the key pointer that
      is also in the table. On GLIBC variants, calls to hdestroy do not
      free the key pointer, on NON-GLIBC variants, it does. The original
      patch was meant to correct this, however, it always passes "destroy"
      as the rule_map_switch. On GLIBC variants this is fine, however on
      NON-GLIBC variants, that free was compiled out, and the free() was
      handled by hdestroy. In cases of failure where the rule_map was not
      in the htable, those key's were not properly free'd.
      
      Change-Id: Ifdf616e09862bca642a4d31bf0cb266168170e50
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      7d65b547
    • William Roberts's avatar
      drop unused option -s · f26b6d42
      William Roberts authored
      
      Change-Id: I00aa4eeaf569c8108a7b6aab190be68e53b46597
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      f26b6d42
  15. Jun 19, 2015
    • William Roberts's avatar
      correct all error messages · 8d3a1b55
      William Roberts authored
      
      When an error occured it was erroneously being indicated that he
      file was the output file, not the input file.
      
      Before:
      Error: Could not find selinux type "fake_app" on line: 51 in file: out/target/product/flo/obj/ETC/seapp_contexts_intermediates/seapp_contexts
      Error: Could not validate
      Error: reading out/target/product/flo/obj/ETC/seapp_contexts_intermediates/seapp_contexts.tmp, line 51, name levelFrom, value user
      
      After:
      Error: Could not find selinux type "fake_app" on line: 51 in file: out/target/product/flo/obj/ETC/seapp_contexts_intermediates/seapp_contexts.tmp
      Error: Could not validate
      Error: reading out/target/product/flo/obj/ETC/seapp_contexts_intermediates/seapp_contexts.tmp, line 51, name levelFrom, value user
      
      Change-Id: Ib0e01f1f0ef563a2a150a0a3b4012e6e15d736bb
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      8d3a1b55
  16. Jun 12, 2015
    • William Roberts's avatar
      check_seapp: Correct output on duplicate entries · 773d4126
      William Roberts authored
      
      If a duplicate entry is found, rule_map_cmp() incorrectly
      assumes that the lengths of the key value pairs should be
      equal, when this is not true. The duplicate detection is
      done on the input parameters, thus the lengths can be
      different. This resulted in a duplicate error string
      message of "do not match", instead of "match on all inputs".
      
      Also, the file name printed that contained the error was
      the output file, not the input file that contained it.
      
      Change-Id: I9b3f99fa4aa3454849de55f18b198b0b56e44320
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      773d4126
  17. Feb 24, 2015
  18. Feb 13, 2015
    • Stephen Smalley's avatar
      checkseapp: Detect duplicate entries within seapp_contexts. · 0b820042
      Stephen Smalley authored
      
      Presently it only detects complete duplicates if you specify -s (strict),
      which is not used in the external/sepolicy Makefile, and it allows
      overriding earlier entries that have the same input selectors (e.g.
      user=, seinfo=) with different values for the output selectors (e.g.
      domain=, type=).  Thus, a device/<vendor>/<board>/sepolicy/seapp_contexts
      file can override the external/sepolicy definitions, and even a single
      seapp_contexts file can contain duplicated or conflicting definitions.
      
      Make it always check strictly, and prohibit either duplicates on the
      input selectors (i.e. overrides) or complete duplicates (redundant).
      
      Change-Id: Id1e38133cbe31b796253101cfe3b111d1826bc8c
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      0b820042
  19. Sep 15, 2014
  20. Apr 04, 2014
    • Stephen Smalley's avatar
      Treat seinfo=default name=<anything> as an error. · f4fa7567
      Stephen Smalley authored
      
      check_app already checks for usage of name= entries
      in seapp_contexts with no seinfo= specification to
      link it back to a signer in mac_permissions.xml.
      However, one can avoid this error by specifying
      a seinfo=default which merely matches the default
      stanza of mac_permissions.xml without actually ensuring
      that it is tied to a specific certificate.  Catch
      that error case too.
      
      Change-Id: If33cf21501e8bfee44d31c92b6341dfa583552b2
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      f4fa7567
  21. Feb 19, 2014
    • Stephen Smalley's avatar
      Add support for and use new path= specifier in seapp_contexts. · 6139de50
      Stephen Smalley authored
      
      Extend check_seapp to accept the use of the new path= specifier
      in seapp_contexts and use it to ensure proper labeling of the cache
      subdirectory of com.android.providers.downloads for restorecon.
      
      After this change, restorecon /data/data/com.android.providers.downloads/cache
      does not change the context, leaving it in download_file rather than
      relabeling it to platform_app_data_file.
      
      Depends on Iddaa3931cfd4ddd5b9f62cd66989e1f26553baa1.
      
      Change-Id: Ief65b8c8dcb44ec701d53e0b58c52d6688cc2a14
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      6139de50
  22. Nov 01, 2013
  23. Oct 31, 2013
    • Stephen Smalley's avatar
      Add sepolicy-analyze tool. · 7b2bee99
      Stephen Smalley authored
      
      And also remove the unnecessary references to libselinux for
      sepolicy-check, as it has no dependencies on libselinux.
      Also enable -Wall -Werror on building all of these tools and
      fix up all such errors.
      
      Usage:
      $ sepolicy-analyze -e -P out/target/product/<device>/root/sepolicy
      or
      $ sepolicy-analyze -d -P out/target/product/<device>/root/sepolicy
      
      The first form will display all type pairs that are "equivalent", i.e.
      they are identical with respect to allow rules, including indirect allow
      rules via attributes and default-enabled conditional rules (i.e. default
      boolean values yield a true conditional expression).
      
      Equivalent types are candidates for being coalesced into a single type.
      However, there may be legitimate reasons for them to remain separate,
      for example:
      - the types may differ in a respect not included in the current
      analysis, such as default-disabled conditional rules, audit-related
      rules (auditallow or dontaudit), default type transitions, or
      constraints (e.g. mls), or
      - the current policy may be overly permissive with respect to one or the
      other of the types and thus the correct action may be to tighten access
      to one or the other rather than coalescing them together, or
      - the domains that would in fact have different accesses to the types
      may not yet be defined or may be unconfined in the policy you are
      analyzing (e.g. in AOSP policy).
      
      The second form will display type pairs that differ and the first
      difference found between the two types.  This output can be long.
      
      We have plans to explore further enhancements to this tool, including
      support for identifying isomorphic types.  That will be required to
      identify similar domains since all domains differ in at least their
      entrypoint type and in their tmpfs type and thus will never show up as
      equivalent even if they are in all other respects identical to each other.
      
      Change-Id: If0ee00188469d2a1e165fdd52f235c705d22cd4e
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      7b2bee99
  24. Oct 16, 2013
  25. Oct 15, 2013
    • William Roberts's avatar
      tools: drop unused field in struct · d1f1070a
      William Roberts authored
      check_seapp at one point in time switch from a home implementation
      of a hash table to using GLIBC search.h routines. A struct in one
      of the fields was never removed during this transition.
      
      Change-Id: I65c028103ffe90fa52e0b3c9fce28124ed9c7ff9
      d1f1070a
  26. Apr 29, 2013
  27. Apr 20, 2013
  28. Mar 20, 2013
    • Stephen Smalley's avatar
      Generalize levelFromUid support. · 38084146
      Stephen Smalley authored
      
      Introduce a levelFrom=none|app|user|all syntax for specifying
      per-app, per-user, or per-combination level assignment.
      levelFromUid=true|false remains valid syntax but is deprecated.
      levelFromUid=true is equivalent to levelFrom=app.
      
      Update check_seapp to accept the new syntax.
      Update seapp_contexts to document the new syntax and switch
      from levelFromUid=true to levelFrom=app.  No change in behavior.
      
      Change-Id: Ibaddeed9bc3e2586d524efc2f1faa5ce65dea470
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      38084146
  29. Nov 27, 2012
Loading