首先我们需要知道,在普通android中使用的是DAC访问方式,即 Discretionary Access Control,顾名思义,该访问方式是自由的访问控制,由此,他有一些本身自有的缺点。
在DAC 中,普通app只能通过系统服务来访问系统资源。同时,DAC 通过用户和组来分隔app。每一个app在安装的时候都被分配一个独一无二的用户id和组id,这个id对被他的所有进程和私有数据文件使用。只有数据拥有者和app创造者才能访问这些数据。但是DAC有下面一些缺点:
- 1:不能阻止攻击。这个是显而易见的,因为DAC仅仅控制的是对文件和数据的访问,并没有对攻击做出任何防御措施。
- 2:会被恶意程序泄漏数据。当一个恶意程序通过系统服务去获取系统数据的时候,就容易将数据泄漏出去。
- 3:粗糙的特权管理。
- 4:不能限制或控制系统守护进程。这个的意思是系统进程或者是特权进程具有至高无上的特权,他们具有访问其他资源的权利,但是万一一个进程获取到特权的话,DAC就不能阻止其访问其他资源了。
- 5:不能阻止root权限的恶意行为。
而在SEAndroid 中,使用的是MAC,即Mandatory Access Control ,强制的访问控制。在MAC中,无论进程是普通进程还是root进程,在对资源进行访问的时候都要进行验证,同时,它还能够阻止特权升级。
SEAndroid 的中心思想就是即使root权限被篡夺了,恶意行为也会被阻止。通过SEAndroid的中心思想,我们就能看出SEAndroid和普通android的巨大不同。在SEAndroid中,特权已经失去了自己的作用,或者是特权也会被监控了,而真正的特权掌握在策略定义者那里。举个例子,如果一个设备越狱了,也就是root了,即使su特权被获取了,管理员也依然能够设置有关于修改系统文件的策略来限制访问。
SEAndroid提供了一系列安全控制机制,当前这些策略包括Install-MAC,Intent-MAC,Content Provider MAC,权限取消和权限标签传播。
- 1:Install MAC:在安装的时候,通过mac的permission.xml文件来检查app声明的权限。他的行为包括允许,拒绝和允许所有权限。
- 2:Intent MAC:他的角色就是决定一个Intent能否被分发到其他组件当中。他会阻止任何不被允许的分发。现在,他也支持对使用,读取,读取和写权限的控制。
- 3:Content Provider MAC。他的角色是来决定一个对Content Provider 的请求是否被允许。
- 4:权限取消。他能够取消app的一些权限。
- 5:权限标签分发。这个策略是污点跟踪方法的一个应用。安卓的权限作为抽象标签被映射到一个策略配置文件中。
SEAndroid在安全性方面取得的效果:
- 1:阻止root特权的攻击
SEAndroid能够阻止root攻击例如GinderBreak和Exploid。
- 2:阻止app攻击
版权声明:您好,转载请留下本人博客的地址,谢谢
时间: 2024-11-05 12:22:27