selinux mode DAC and MAC
来源:互联网 发布:中行中银淘宝信用卡 编辑:程序博客网 时间:2024/06/06 01:28
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 验证, 那么一样的无法真正执行相关的操作. 另外对每一项权限进行了更加完整的细化, 可限制用户对资源的访问行为.
0 0
- selinux mode DAC and MAC
- DAC,MAC,RBAC
- ADC and DAC Glossary
- Chapter 3 ADC and DAC
- DAC
- DAC
- 访问控制模型DAC,MAC,RBAC
- 访问控制模型DAC,MAC,RBAC
- 访问控制模型DAC,MAC,RBAC
- 访问控制模型DAC,MAC,RBAC
- 访问控制模型DAC,MAC,RBAC
- Disable Fireware and SELinux
- SELinux and LD_PRELOAD
- Prune days and Change Capture in DAC
- How to test ADC and DAC devices
- Selinux在Enforcing mode切到root
- real mode and protected mode
- pager mode and session mode
- 【LeetCode】144. Binary Tree Preorder Traversal 二叉树先序遍历的非递归实现
- uLua记录--LuaMgr
- tcpdump:运行在命令行下的嗅探工具
- iOS 元素坐标转换
- 10 个 Redis 建议/技巧
- selinux mode DAC and MAC
- CMakeLists.txt与Makefile 的区别
- 贪心算法—Problem E
- javascript笔记1-links
- HashMap,LinkedHashMap,TreeMap的区别
- 算法训练 最大的算式 【dfs】
- Android如何防止apk程序被反编译
- ElasticSearch2.1 基于空间位置geo_query距离计算
- Android Studio 的图文教程和视频教程