1. SELinux and SEAndroid
   Android 是建立在标准的Linux Kernel 基础上, 自然也可以开启SELinux, 通常在通用移动平台上, 很少开启这样的安全服务, Google 为了进一步增强Android 的安全性, 经过长期的准备,目前已经在Android 5.0(L) 上有完整的开启SELinux, 并对SELinux 进行深入整合形成了SEAndroid.
   
2. SELinux 在Android 上的更新历史
 如下图所描述:



1. SELinux Mode.
   SELinux 分成两种模式, 即Permissve Mode(宽容模式), 和 Enfocing mode(强制模式).
   Permissive Mode 只通过Audit System 记录LOG, 但不真正拦截访问.
   Enforcing Mode 在打印LOG 的同时,还会真正的拦截访问.
   
   通常在调试时,我们会启用Permissive Mode, 以便尽可能的发现多的问题, 然后一次修正. 在真正量产时使用Enforcing mode, 来保护系统.


1. DAC and MAC

 DAC 即 Discretionary Access control, 自主访问控制, 即系统只提供基本的验证, 完整的访问控制由开发者自己控制。
 MAC 即 Mandatory Access control, 强制性访问控制, 即系统针对每一项访问都进行严格的限制, 具体的限制策略由开发者给出.
 
2. Linux DAC
   Linux DAC 采用了一种非常简单的策略, 将资源访问者分成三类, 分别是Owner, Group, Other; 资源针对这三类访问者设置不同的访问权限. 而访问权限又分成 read, write, execute.
   访问者通常是进程有自己的uid/gid, 通过uid/gid 和 文件权限匹配, 来确定是否可以访问.
   将Root 权限根据不同的应用场景划分成许多的Root Capabilities, 其中如果有CAP_DAC_OVERRIDE 这项的话, 可以直接绕过Linux DAC 限制.
   
   Linux DAC 有明显的不足, 其中一个重要点就是, Root 权限 “无法无天”, 几乎可以做任意事情, 一旦入侵者拿到root 权限, 即已经完全掌控了系统. 另外每一个进程默认都拿到对应这个用户的所有权限, 可以改动/删除这个用户的所有文件资源, 明显这个难以防止恶意软件.
   
3. Linux MAC
   Linux MAC 针对DAC 的不足, 要求系统对每一项访问, 每访问一个文件资源都需要进行针对性的验证. 而这个针对性的验证是根据已经定义好了的策略进行. 在Linux Kernel, 所有的MAC 机制都是搭建在Linux Security Modules (LSM) 基础上, 包括有: SELinux、Apparmor、Smack 和 TOMOYO Linux等。目前SELinux 已经成了事实上的行业标准.
   
   针对Linux DAC, MAC 可以明显弥补DAC 的缺陷, 一方面限制Root 权限, 即使你有root 权限, 如果无法通过MAC 验证, 那么一样的无法真正执行相关的操作. 另外对每一项权限进行了更加完整的细化, 可限制用户对资源的访问行为.

更多相关文章

  1. Android适配概要
  2. android 6.0 权限崩溃分析:android.system.ErrnoException: statv
  3. Unity Android(安卓)Usb 通信
  4. Android权限系统(二):开机授予运行时权限
  5. Android(安卓)Permission大全
  6. make_ext4fs 文件权限控制
  7. 阿里巴巴人脸离线活体识别Android
  8. Ubuntu android adb 使用
  9. android ksoap2 访问webservice,连续两次调用时,第二次调用异常

随机推荐

  1. android super this区别
  2. MPAndroidChart常见设置属性(一)——应用层
  3. Android(安卓)repo/git server 建立过程
  4. Android(安卓)ListView的item button点击
  5. N800 刷 Android(安卓)带软键盘, wifi
  6. Android的Activity的小知识点
  7. Android(安卓)ListView带CheckBox实现单
  8. android webview的 一些设置(js java交互
  9. Android动画Animator开发问题
  10. Android实现一款不错Banner界面广告图片