概述----SEAndroid in Android 5.x
来源:互联网 发布:荣誉证书打印软件 编辑:程序博客网 时间:2024/04/29 08:55
drwxrwx---root
drwxrwx---root
-rw-rw----root
drwxrwx---root
drwxrwx---root
drwxrwx---root
root
root
root
system
root
u0_a96
u0_a6
u0_a100
SEAndroid实现了比DAC更加细致和深入的MAC(强制访问控制)。MAC将系统对象分为客体和主体两种。客体是指系统中的一切资源,如文件、目录以及端口等;主体指能够访问客体并对其进行操作的实体,在Android系统中,主要指运行中的进程等。系统中的所有客体和主体都拥有安全属性。同时,系统中存在一套预先制定好的策略来规定主体如何对客体进行操作。当主体试图对某个客体发起访问时,系统在执行操作前,先分别获取主体和客体的安全属性,并查询策略,按照策略的规定来判断访问操作是否可以执行。
根据上图,SEAndroid系统分为用户空间部分和内核部分。
其中,用户空间部分,主要包含三部分:
- Security Context,也就是主体和客体的安全上下文。
- SecurityServer,4个,其中PackageManagerService和installd负责创建应用数据目录的securitycontext,Zygote进程负责创建进程的security context,而init进程负责控制系统属性的安全访问。
- SEAndroid Policy,安全策略,这个策略将在系统运行时,加载到内核当中。
- 查询主体客体应该使用什么安全上下文。
- 为主体和客体设置安全上下文。
- 将策略文件加载到内核当中。
而这些操作都是通过libselinux库中提供的方法来实现的。