首先我们需要知道,在普通android中使用的是DAC访问方式,即 Discretionary Access Control,顾名思义,该访问方式是自由的访问控制,由此,他有一些本身自有的缺点。
在DAC 中,普通app只能通过系统服务来访问系统资源。同时,DAC 通过用户和组来分隔app。每一个app在安装的时候都被分配一个独一无二的用户id和组id,这个id对被他的所有进程和私有数据文件使用。只有数据拥有者和app创造者才能访问这些数据。但是DAC有下面一些缺点:
而在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攻击
版权声明:您好,转载请留下本人博客的地址,谢谢
原文地址:http://blog.csdn.net/hongbochen1223/article/details/46929811