Merge "Allow system_server to attach bpf programs to tracepoints" am: d90d4aa2bb

Change-Id: Ia18f4643a3f069cc69f0885c77bbb68b4a2f7ff3
This commit is contained in:
Automerger Merge Worker 2020-02-04 21:23:43 +00:00
commit d7ffd9d1e0
3 changed files with 13 additions and 3 deletions

View File

@ -18,7 +18,7 @@ allow bpfloader self:global_capability_class_set sys_admin;
### Neverallow rules
###
neverallow { domain -bpfloader } *:bpf { map_create prog_load };
neverallow { domain -bpfloader -netd -netutils_wrapper } *:bpf prog_run;
neverallow { domain -bpfloader -netd -netutils_wrapper -system_server } *:bpf prog_run;
neverallow { domain -bpfloader -init } bpfloader_exec:file { execute execute_no_trans };
neverallow bpfloader domain:{ tcp_socket udp_socket rawip_socket } *;
# only system_server, netd and bpfloader can read/write the bpf maps

View File

@ -132,6 +132,7 @@ full_treble_only(`
-init
-traced_probes
-shell
-system_server
-traceur_app
} debugfs_tracing:file no_rw_file_perms;

View File

@ -896,6 +896,9 @@ allow system_server debugfs_tracing_instances:dir search;
allow system_server debugfs_wifi_tracing:dir search;
allow system_server debugfs_wifi_tracing:file rw_file_perms;
# Allow system_server to read tracepoint ids in order to attach BPF programs to them.
allow system_server debugfs_tracing:file r_file_perms;
# allow system_server to exec shell, asanwrapper & zygote(app_process) on ASAN builds. Needed to run
# asanwrapper.
with_asan(`
@ -905,10 +908,11 @@ with_asan(`
')
# allow system_server to read the eBPF maps that stores the traffic stats information and update
# the map after snapshot is recorded
# the map after snapshot is recorded, and to read, update and run the maps and programs used for
# time in state accounting
allow system_server fs_bpf:dir search;
allow system_server fs_bpf:file { read write };
allow system_server bpfloader:bpf { map_read map_write };
allow system_server bpfloader:bpf { map_read map_write prog_run };
# ART Profiles.
# Allow system_server to open profile snapshots for read.
@ -1122,3 +1126,8 @@ neverallow { domain -init -system_server } password_slot_metadata_file:notdevfil
set_prop(system_server, binder_cache_system_server_prop)
neverallow { domain -system_server -init }
binder_cache_system_server_prop:property_service set;
# Allow system server to attach BPF programs to tracepoints. Deny read permission so that
# system_server cannot use this access to read perf event data like process stacks.
allow system_server self:perf_event { open write cpu kernel };
neverallow system_server self:perf_event ~{ open write cpu kernel };