发布时间 : 星期六 文章seandroid策略介绍更新完毕开始阅读f3ecc29c6c85ec3a86c2c56a
这一attribute包含了所有存在于非伪文件系统的相关文件的type,数量过多不再列举。
file_type:
这一attribute包含了所有关于domian接入点的type,多被用在domain transition中,如下所列。 bluetoothd_exec dbusd_exec debuggerd_exec drmserver_exec gpsd_exec installd_exec keystore_exec mediaserver_exec netd_exec qemud_exec rild_exec
servicemanager_exec surfaceflinger_exec vold_exec wpa_exec zygote_exec
exec_type:
这一attribute包含了所有在/data目录下的文件type,如下所列。 system_data_file anr_data_file
tombstone_data_file apk_data_file
dalvikcache_data_file shell_data_file gps_data_file
bluetoothd_data_file bluetooth_data_file keystore_data_file vpn_data_file
systemkeys_data_file wifi_data_file radio_data_file nfc_data_file app_data_file
data_file_type:
这一attribute包含了在sysfs文件系统下的所有文件的type,在SEAndroid中只有sysfs_writable包含在这个attribute中。
sysfs_type:
这一attribute包含了所有与nodes/hosts有关的type,在SEAndroid中只有node包含在这个attribute中。
node_type:
这一attribute包含了所有与网络接口相关的type,在SEAndroid中只有netif包含在这个attribute中。
netif_type:
这一attribute包含了所有与网络端口相关的type,在SEAndroid中只有port包含在这个attribute中。
port_type:
这一attribute包含了所有能越过MLS检查的主体domain。
mlstrustedsubject:
这一attribute包含了所有能越过MLS检查的客体type。
mlstrustedobject:
这一attribute包含了所有拥有无限权限的type。
unconfineddomain:
这一attribute包含了所有与app相关的type,如下所列。 trusted_app browser_app untrusted_app nfc radio shell
system_app
appdomain:
这一attribute包含了所有与需要访问网络的app相关的type,如下所列。 trusted_app browser_app gpsd
mediaserver radio rild
netdomain:
system
这一attribute包含了所有与需要访问bluetooth的app相关的type,如下所列。
trusted_app radio system
bluetoothdomain:
这一attribute包含了所有与binder服务相关的type,如下所列。 mediaserver surfaceflinger system
binderservicedomain:
通过allow语句制定主体客体强制访问规则(白名单规则,不再规则中的都默认为非法操作) 通过type_transition语句制定tpye类
审核是对于发生了访问违规或出现了被系统安全规则拒绝的行为进行日志记录的过程,审核可以帮助系统管理员发现bug和可能的入侵尝试。
默认情况下,SEAndroid会记录被拒绝的访问检查,但策略语言dontaudit允许我们取消这些默认的预料之中的拒绝审核消息。
型转换规则 通过dontaudit语句声明对一些被安全策略拒绝的访问不再进行审核。
SEAndroid为系统定义了33个te策略文件,这33个策略文件是:
adbd.te、file.te、su.te、app.te、gpsd.te、netd.te、system.te、bluetoothd.te、init.te、net.te、ueventd.te、bluetooth.te、installd.te、nfc.te、unconfined.te、cts.te、kernel.te、qemud.te、vold.te、dbusd.te、keystore.te、radio.te、wpa_supplicant.te、debuggerd.te、mediaserver.te、rild.te、zygote.te、device.te、servicemanager.te、domain.te、shell.te、drmserver.te、surfaceflinger.te。
对上述33个文件根据其策略规则针对的对象可分为三类: 针对attribute的策略制定:
attribute是多个具有共性的type的集合,以下六个文件主要是直接针对attribute制定的策略,这种针对attribute制定的策略也就是同时对多个type制定策略一样。
主要是为unconfineddomain属性制定策略,这些策略基本就是对各种访问客体拥有所有的权限。
unconfined.te
主要是为domain属性制定策略,为所有归在其中的访问主体制定一些公共的策略。
domain.te
主要是为appdomain制定策略,这些策略一般是在对app进行CTS测试时用到。
CTS.te
主要是为bluetoothdomain制定策略。
bluetooth.te
主要是为netdomain制定策略,这些策略主要是关于对sockets、ports的访问以及与netd的通信。
net.te
这个文件主要定义了各文件系统的type,各文件的type,socket的type,以及制定了在不同文件系统中创建文件的规则。
file.te
针对daemon domain的策略制定:
adbd.te、gpsd.te、netd.te、bluetoothd.te、zygote.te、ueventd.te、installd.te、vold.te、dbusd.te、keystore.te、debuggerd.te、mediaserver.te、rild.te、drmserver.te、surfaceflinger.te、qemud.te、servicemanager.te、su.te、shell.te、wpa_supplicant.te 这些文件都是为系统中的daemon进程进行策略的制定,它们都有着相应的daemon domain。
针对系统其他模块的策略制定:
最后的7个文件分别对系统的其他模块进行策略制定。
在这一文件里将安装在系统上的第三方app分类为受信任的app和不受信任的app,分别用不同的type表示,
再分别为这两种app在访问网络,bluetooth,sdcard,数据,缓存,binder等等名感位置时设置相应权限。
app.te
这一文件主要针对的是系统app和system server进程。对系统app访问binder、system data files、dalvikcatch、keystone等进行权限控制, 对system server访问网络、bluetooth、netlink、app、binder、device、data files、socket、cache files等进行权限控制。
system.te
在这一文件中声明了init拥有无限权限。
init.te
在这一文件中制定了nfc domain对nfc设备和相关数据文件的访问权限。
nfc.te
在这一文件中声明了kernel拥有无限权限。
kernel.te
在这一文件中制定了radio domain对init、rild和相关数据文件的访问权限。
radio.te