SEAndroid
SEAndroid是一种基于安全策略的MAC安全机制。这种安全策略又是建立在对象的安全上下文的基础上的。这里所说的对象分为两种类型,一种称主体(Subject),一种称为客体(Object)。主体通常就是指进程,而客观就是指进程所要访问的资源,例如文件、系统属性等。
安全上下文实际上就是一个附加在对象上的标签(Tag)。这个标签实际上就是一个字符串,它由四部分内容组成,分别是SELinux用户、SELinux角色、类型、安全级别,每一个部分都通过一个冒号来分隔,格式为“user:role:type:sensitivity”。
user:android中,只定义了一个user即为u
role:如果是进程的话,都会统一定义为r,如果是文件的话,会被定义为object_r
type:在andorid里面,定义了100多个type.
sensitivity:这个是一个安全的等级
root@htc_e56ml_dtul:/ # ls -Z /init.rc
-rwxr-x--- root root u:object_r:rootfs:s0 init.rc
上面的命令列出文件/init.rc的安全上下文为“u:object_r:rootfs:s0”,这表明文件/init.rc的SELinux用户、SELinux角色、类型和安全级别分别为u、object_r、rootfs和s0。
adb shell之后进入手机,ps -Z可以查看当前进程所拥有的selinux的权限。
root@htc_e56ml_dtul:/ # ps -Z
LABEL USER PID PPID NAME
u:r:init:s0 root 1 0 /init
u:r:kernel:s0 root 12 2 ksoftirqd/1
u:r:wpa:s0 wifi 6036 1 /system/bin/wpa_supplicant
u:r:ssd_tool:s0 root 6460 1022 /system/xbin/tcpdump
u:r:platform_app:s0:c512,c768 u0_a47 6480 1280 com.htc.CruiserPwrExpert
u:r:system_app:s0 system 6875 1280 org.simalliance.openmobileapi.service:remote
u:r:untrusted_app:s0:c512,c768 u0_a8 7257 1280 android.process.media
u:r:untrusted_app:s0:c512,c768 u0_a64 7295 1280 com.google.android.inputmethod.pinyin
u:r:untrusted_app:s0:c512,c768 u0_a90 7316 1281 com.google.android.apps.plus
u:r:untrusted_app:s0:c512,c768 u0_a11 7383 1280 com.google.android.gms.wearable
u:r:untrusted_app:s0:c512,c768 u0_a49 7732 1280 com.android.deskclock
u:r:untrusted_app:s0:c512,c768 u0_a19 8036 1280 com.android.vending
u:r:untrusted_app:s0:c512,c768 u0_a16 8242 1280 com.android.launcher3
u:r:kernel:s0 root 8457 2 kworker/3:3
u:r:untrusted_app:s0:c512,c768 u0_a400 9245 1280 com.example.jnitest
u:r:untrusted_app:s0:c512,c768 u0_a45 9283 1281 com.android.chrome
u:r:untrusted_app:s0:c512,c768 u0_a88 9299 1281 com.google.android.apps.photos
u:r:untrusted_app:s0:c512,c768 u0_a72 9341 1280 com.google.android.inputmethod.latin
u:r:untrusted_app:s0:c512,c768 u0_a80 9390 1280 com.google.android.music:main
u:r:su:s0 root 9432 395 logcat
u:r:untrusted_app:s0:c512,c768 u0_a67 9519 1281 com.google.android.talk
在开启了SEAndroid安全机制的设备上执行带-Z选项的ls命令,就可以看到一个文件的安全上下文:
root@htc_e56ml_dtul:/ # ls -Z
drwxr-xr-x root root u:object_r:cgroup:s0 acct
drwxrwx--- system cache u:object_r:cache_file:s0 cache
drwxrwx--x system root u:object_r:unlabeled:s0 carrier
lrwxrwxrwx root root u:object_r:rootfs:s0 charger -> /sbin/healthd
dr-x------ root root u:object_r:rootfs:s0 config
drwxrwx--x root cw_access u:object_r:apk_data_file:s0 cota
drwxr-xr-x root root u:object_r:rootfs:s0 custom
lrwxrwxrwx root root u:object_r:rootfs:s0 d -> /sys/kernel/debug
drwxrwxrwx system system u:object_r:system_data_file:s0 data

浙公网安备 33010602011771号