DAC,MAC和SELinux,SEAndroid

1. 被ROOT了怎么办

2. SELinux

3. SEAndroid

4. JB(4.3) MR2的漏洞弥补

-------------------------------------------

-------------------------------------------

1. 被ROOT了怎么办

    恶意应用获得了ROOT权限 --- 现在我们是无能为力的

    我们想要做到的: 即便一个进程的EUID==ROOT,仍然不能为所欲为

 

2. SELinux

    DAC()模式:主体(EUID==ROOT)对它所属的对象和运行的程序拥有所有的控制权 -- 可以做任何事

    MAC()模式:SELinux基于的安全策略。管理员管理访问控制,管理员指定策略,用户不能改变它,任何主体不能改变 -- 只能做安全策略授权的,不能为所欲为

   

3. SEAndroid

    * 就是将原本运行到Linux系统上的SELinux,  移植到了 Android上

    * 在SELinux的基础上,做了许多针对Android的安全提高,例如把Binder IPC、Socket、Properties访问控制也加入到了SEAndroid的控制中

 

    SEAndroid的核心概念

        即便恶意应用篡得了ROOT权限,仍然只能做有限的应用,不能为所欲为

 

4. JB(4.3) MR2的漏洞弥补

    在JB MR2之前,APK内部可以通过Java的Runtime执行一个具有Root-setUID的可执行文件而提升EffectiveUID 来进行一些特权操作,典型的就是Root包中的su就是这个原理

    JB(4.3) MR2修补了这个漏洞

 

    每个apk进程在创建完后,都会执行如下这段代码,将CAPBSET全部清空

   

     后果: 新进程的Effecttive(Capability Sets)为空,所以CAP_SETUID就没了,那么系统基于Root-setUID的可执行文件来提升EUID到ROOT当然就不允许了。所以新进程的EUID=RUID == APK的RUID

 

posted @ 2015-08-27 09:50  carlo-z  阅读(1889)  评论(0编辑  收藏  举报