Android系统10 RK3399 init进程启动(二十二) SEAndroid 框架

本文详细介绍了Android 10.0中的SEAndroid(Security Enhanced for Android)框架,包括用户空间的安全上下文、安全服务和安全策略,以及内核空间的LSM和AVC。通过系统调用进入内核,经过DAC检查后,SEAndroid利用LSM的hook接口进行安全验证,确保进程对资源的合法访问。此外,还阐述了用户空间与内核空间的交互机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配套系列教学视频链接:

      安卓系列教程之ROM系统开发-百问100ask

说明

系统:Android10.0

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

前言

本章节介绍SEAndroid(Security Enhanced for Android Selinux整体框架, 了解整体,再去看细节就容易很多.


一, 框图介绍: 

SEAndroid框架是由用户空间和内核空间组成, 用户空间安全保护机制中主要包含安全上下文(Security Context)、安全策略(Security  Policy)和安全服务(Security Server)等模块,内核空间由LSM,AVC组成,LSM (linux security module)负责内核资源的安全访问控, 由它来决定一个主体访问一个客体是否是合法的,这个主体一般是指进程,而客体主要指资源, 而selinux是属于LSM中实现的一种。

用户空间

安全上下文(security Contex),包含各种xx_context上下文文件

安全服务(Security Server),由PMS,installd,init,zygote几个重要进程组成。

安全策略 (Security policy),主要是各种te文件

内核空间

 Linux安全模块(SELinux LSM)(通常包括访问向量缓冲(Access Vector Cache),模块会利用HOOK拦截接口, 对用户空间调用接口进行安全校验

   二, Selinux用户空间和内核空间交互

从应用空间通过系统调用进入到内核空间, 初步会进行DAC检查, 检查通过后, 在selinux使能的情况下, 会调用LSM子系统的hook接口,进行安全检查, 因为selinux具体实现了LSM子系统重点 hook接口, 所以最终会通过selinux进行权限检查,通过后才会找到相应inode进行问文件操作。

这种图体现的是LSM子系统调用selinux的接口层次图, SELinux 会在 LSM 中注册相应的回调函数。其次,LSM 会在相应的内核对象子系统中会加入一些 Hook 代码(内核LSM驱动代码:security/selinux.c),例如我们调用系统接口open函数来读取一个文件的时候,就会进入到内核的文件子系统中。在文件子系统中负责读取文件函数 vfs_open就会调用 LSM 加入的 Hook 代码。这些 Hook 代码就会调用之前 SELinux 注册进来的回调函数(security/selinux/hooks.c),以便后者可以进行安全检查,同时内核也提供selinuxfs供用户空间进行交互(security/selinux/selinuxfs.c)。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旗浩QH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值