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全部清空

DAC,MAC和SELinux,SEAndroid

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

上一篇:基于python的机器学习实现日元币对人民币汇率预测


下一篇:新手!SDK Manager里找不到API安装的选项怎么办?