Android系统10 RK3399 init进程启动(二十) SEAndroid 缩写与名词解释

网友投稿 1338 2022-09-10

Android系统10 RK3399 init进程启动(二十) SEAndroid 缩写与名词解释

Android系统10 RK3399 init进程启动(二十) SEAndroid 缩写与名词解释

说明

系统:Android10.0

设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)

前言

接下来会给大家介绍Android Selinux的相关知识,讲解之前,将部分相关名词和缩写先列举出来。

一, 缩写与名词解释


DAC



Discretionary Access Control,自主访问控制系统



MAC



Mandatory Access Control,强制访问控制系统



SELinxux/SEAndroid



Security Enhanced for linux

Security Enhanced for Android



SContext



SELinux给每一个文件、进程、属性、服务都给打上一个标签,叫安全上下文(Security Context),也可以理解为附加在对象上的标签(label)

由四部分内容组成:SELinux用户、SELinux角色、类型、安全级别

格式为“user:role:type:sensitivity”

在日志中出现的scontext为source context, tcontext为target context



Subject/Object



主体:一般指进程

客体: 一般指资源(文件,socket,属性, IPC等)



Action



对Object做的动作,例如 读取、写入或者执行等等



cil



Common Intermediate Language,通用中间语言,CIL 的最终目标是生成将由内核强制执行的策略.将相关策略文件转换成完全忠实地代表内核的语言。



Policy



策略,用于制定主体对客体的访问规则



User



用户



Role



角色



Type



类型, selinux是以type为单位进行控制的, 可以认为是一个动词, 表示为某某设置类型, 也可以表示一个个体/单位, 比如某个type具有什么权限。



te文件



Type Enforce文件: 类型强制文件



non-platform/platform



非平台(如vendor,odm, oem)

平台(如谷歌编写的核心代码)



attributes



翻译成属性组或类型组, 如exec_type, file_type,fs_type,vendor_file_type等.一般用于将type和attribute进行关联, 若对attribute进行allow或者neverallow, 那么type也就跟着拥有同样的控制策略了,这样可以简化te规则的编写。



typeattribute



将某个类型个体关连连另外一个属性(权限组),

如:typeattribute platform_app unconfineddomain,

此时platform_app就拥有了unconfineddomain类型的权限,可以理解为一堆权利(如经理有人事任免,财务审计, 采购审批等权限)




class



权限类, 也是一种组别或集合, 侧重于权限行为的集合, 如:

class service_manager { add find list }

拥有权限类, 就自然拥有权限类中的各个权限。



Security Server



用户空间服务, 是一个统称, android系统里面由init, zygote,PMS, intalld共同组成, 负责对



LSM



Linux security module 内核安全模块, 是一个通用的安全策略管理子系统, selinux作为模块,被LSM管理。



AVC



Access Vector Cache 用于缓存访问决策结果的, 以提升性能。


二, 相关文件和目录介绍

源码文件:


system/sepolicy/private/security_classes



描述te策略文件中的object_class目标类型



system/sepolicy/private/access_vectors



描述te策略文件中的perm_set权限集合



system/sepolicy/public/te_macros



Selinux所有的宏定义文件



system/sepolicy/public/global_macros



定义了各种object_class的集合名,如devfile_class_set, ipc_class_set等, 权限集合如x_file_perms,里面都是宏定义



system/sepolicy/public/attributes



定义系统中各种属性,属性是一种可进行关联的



external/sepolicy/



提供getenforce/setenforce命令, libselinux库, 以及相关编译命令


根文件系统文件 :


/system/etc/selinux



平台策略文件编译之后生成到根文件系统中存放目录



/vendor/etc/selinux



厂商策略文件编译之后生成到根文件系统中存放目录



/sys/fs/selinux



内核为用户空间提供了selinux文件系统的挂载路径


三,总结

以上内容在后期章节会详细讲解, 此处可以作为一个开胃菜,学完后面知识,回头再看这些, 就基本都明白是啥了。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:「运维有小邓」AD域委派
下一篇:第六章 网络原理 物理层 曼切斯特编码技术 调制技术
相关文章

 发表评论

暂时没有评论,来抢沙发吧~