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

posted @ 2015-11-11 20:02  牧 天  阅读(996)  评论(0)    收藏  举报