Skip to content
Snippets Groups Projects
  1. Sep 27, 2018
    • Nick Kralevich's avatar
      Introduce system_file_type · 5e37271d
      Nick Kralevich authored
      system_file_type is a new attribute used to identify files which exist
      on the /system partition. It's useful for allow rules in init, which are
      based off of a blacklist of writable files. Additionally, it's useful
      for constructing neverallow rules to prevent regressions.
      
      Additionally, add commented out tests which enforce that all files on
      the /system partition have the system_file_type attribute. These tests
      will be uncommented in a future change after all the device-specific
      policies are cleaned up.
      
      Test: Device boots and no obvious problems.
      Change-Id: Id9bae6625f042594c8eba74ca712abb09702c1e5
      5e37271d
  2. Sep 14, 2018
    • Nick Kralevich's avatar
      Strengthen ptrace neverallow rules · 095fbea5
      Nick Kralevich authored
      Add additional compile time constraints on the ability to ptrace various
      sensitive domains.
      
      llkd: remove some domains which llkd should never ptrace, even on
      debuggable builds, such as kernel threads and init.
      
      crash_dump neverallows: Remove the ptrace neverallow checks because
      it duplicates other neverallow assertions spread throughout the policy.
      
      Test: policy compiles and device boots
      Change-Id: Ia4240d1ce7143b983bb048e046bb4729d0af5a6e
      095fbea5
  3. Aug 21, 2018
    • Benjamin Gordon's avatar
      sepolicy: Fix references to self:capability · 7ed266c6
      Benjamin Gordon authored
      commit 9b2e0cbe added a new
      self:global_capability_class_set macro that covers both self:capability
      and self:cap_userns.  Apply the new macro to various self:capability
      references that have cropped up since then.
      
      Bug: 112307595
      Test: policy diff shows new rules are all cap_userns
      Change-Id: I3eb38ef07532a8e693fd549dfdbc4a6df5329609
      7ed266c6
  4. May 23, 2018
  5. Mar 30, 2018
    • Chenbo Feng's avatar
      Allow netutils_wrapper to use pinned bpf program · be9b15c5
      Chenbo Feng authored
      The netutils_wrapper is a process used by vendor code to update the
      iptable rules on devices. When it update the rules for a specific chain.
      The iptable module will reload the whole chain with the new rule. So
      even the netutils_wrapper do not need to add any rules related to xt_bpf
      module, it will still reloading the existing iptables rules about xt_bpf
      module and need pass through the selinux check again when the rules are
      reloading. So we have to grant it the permission to reuse the pinned
      program in fs_bpf when it modifies the corresponding iptables chain so
      the vendor module will not crash anymore.
      
      Test: device boot and no more denials from netutils_wrapper
      Bug: 72111305
      Change-Id: I62bdfd922c8194c61b13e2855839aee3f1e349be
      (cherry picked from aosp commit 2623ebcf)
      be9b15c5
  6. Mar 29, 2018
    • Chenbo Feng's avatar
      Allow netutils_wrapper to use pinned bpf program · 2623ebcf
      Chenbo Feng authored
      The netutils_wrapper is a process used by vendor code to update the
      iptable rules on devices. When it update the rules for a specific chain.
      The iptable module will reload the whole chain with the new rule. So
      even the netutils_wrapper do not need to add any rules related to xt_bpf
      module, it will still reloading the existing iptables rules about xt_bpf
      module and need pass through the selinux check again when the rules are
      reloading. So we have to grant it the permission to reuse the pinned
      program in fs_bpf when it modifies the corresponding iptables chain so
      the vendor module will not crash anymore.
      
      Test: device boot and no more denials from netutils_wrapper
      Bug: 72111305
      Change-Id: I62bdfd922c8194c61b13e2855839aee3f1e349be
      2623ebcf
  7. Mar 21, 2018
    • Chenbo Feng's avatar
      Allow netd to setup xt_bpf iptable rules · 68ef8c07
      Chenbo Feng authored
      To better record the network traffic stats for each network interface.
      We use xt_bpf netfilter module to do the iface stats accounting instead
      of the cgroup bpf filter we currently use for per uid stats accounting.
      The xt_bpf module will take pinned eBPF program as iptables rule and run
      the program when packet pass through the netfilter hook. To setup the
      iptables rules. netd need to be able to access bpf filesystem and run the
      bpf program at boot time. The program used will still be created and
      pinned by the bpfloader process.
      
      Test: With selinux enforced, run "iptables -L -t raw" should show the
      xt_bpf related rule present in bw_raw_PREROUTING chain.
      Bug: 72111305
      
      Change-Id: I11efe158d6bd5499df6adf15e8123a76cd67de04
      (cherry picked from aosp commit 5c95c168)
      68ef8c07
    • Chenbo Feng's avatar
      Allow netd to setup xt_bpf iptable rules · 5c95c168
      Chenbo Feng authored
      To better record the network traffic stats for each network interface.
      We use xt_bpf netfilter module to do the iface stats accounting instead
      of the cgroup bpf filter we currently use for per uid stats accounting.
      The xt_bpf module will take pinned eBPF program as iptables rule and run
      the program when packet pass through the netfilter hook. To setup the
      iptables rules. netd need to be able to access bpf filesystem and run the
      bpf program at boot time. The program used will still be created and
      pinned by the bpfloader process.
      
      Test: With selinux enforced, run "iptables -L -t raw" should show the
      xt_bpf related rule present in bw_raw_PREROUTING chain.
      Bug: 72111305
      
      Change-Id: I11efe158d6bd5499df6adf15e8123a76cd67de04
      5c95c168
  8. Mar 07, 2018
    • Chenbo Feng's avatar
      Fix sepolicy for bpf object · 6cd70c2f
      Chenbo Feng authored
      With the new patches backported to 4.9 kernels, the bpf file system now
      take the same file open flag as bpf_obj_get. So system server now need
      read permission only for both bpf map and fs_bpf since we do not need
      system server to edit the map. Also, the netd will always pass stdin
      stdout fd to the process forked by it and do allow it will cause the
      fork and execev fail. We just allow it pass the fd to bpfloader for now
      until we have a better option.
      
      Test: bpfloader start successful on devices with 4.9 kernel.
            run cts -m CtsNetTestCases -t android.net.cts.TrafficStatsTest
      Bug: 74096311
      Bug: 30950746
      
      Change-Id: I747a51cb05ae495c155e7625a3021fc77f921e0d
      6cd70c2f
  9. Mar 06, 2018
    • Chenbo Feng's avatar
      Fix sepolicy for bpf object · bfa95fcd
      Chenbo Feng authored
      With the new patches backported to 4.9 kernels, the bpf file system now
      take the same file open flag as bpf_obj_get. So system server now need
      read permission only for both bpf map and fs_bpf since we do not need
      system server to edit the map. Also, the netd will always pass stdin
      stdout fd to the process forked by it and do allow it will cause the
      fork and execev fail. We just allow it pass the fd to bpfloader for now
      until we have a better option.
      
      Test: bpfloader start successful on devices with 4.9 kernel.
            run cts -m CtsNetTestCases -t android.net.cts.TrafficStatsTest
      Bug: 74096311
      Bug: 30950746
      
      Change-Id: I747a51cb05ae495c155e7625a3021fc77f921e0d
      bfa95fcd
  10. Jan 17, 2018
    • Chenbo Feng's avatar
      Add sepolicy to lock down bpf access · 566411ed
      Chenbo Feng authored
      Add a new set of sepolicy for the process that only netd use to load
      and run ebpf programs. It is the only process that can load eBPF
      programs into the kernel and is only used to do that. Add some
      neverallow rules regarding which processes have access to bpf objects.
      
      Test: program successfully loaded and pinned at sys/fs/bpf after device
      boot. No selinux violation for bpfloader
      Bug: 30950746
      
      Change-Id: Ia6bb1afda29ae0749bdc368e2dfc5faa12e81b2f
      566411ed
Loading