我认为Android权限是一种DAC机制,因为权限是映射到Linux Kernel中的组ID。 SEAndroid是一种MAC机制。并且在DAC检查之后进行MAC检查。
但我不理解他们之间的关系。应该允许或拒绝他们如何合作检查app中的某个操作?
我想知道CHECK操作如何在源代码中实现(权限检查和SEAndroid策略检查)。但我无法在Android和Linux内核中找到相关的源代码。
在论文安全增强版(SE)Android:将灵活MAC引入Android ,据说
对于传统的第三名 派对应用程序安装,如果该应用程序的安装中止 policy拒绝其中一个请求的权限。
我也想从源代码中了解详细实现。但我不知道它在哪里。
是否有熟悉Android和Linux内核的人可以帮助我?
答案 0 :(得分:0)
我假设您在引用Android权限时引用Android System Permissions(即READ_LOGS,READ_HISTORY_BOOKMARKS,WRITE_HISTORY_BOOKMARKS等)。
放弃了对MMAC(以及系统权限实施)的所有SEAndroid支持,并且已从AOSP中删除所有源代码。有关详细信息,请参阅此answer。
SEAndroid MAC机制在Android堆栈的最深层实现,并提供对最基本操作的访问控制(即读/写文件,打开/关闭套接字,绑定等)。这是通过将LSM(Linux安全模块)挂钩放入内核来实现的。这使得SEAndroid MAC模块如此强大。
另一方面,Android权限系统实际上是由高级"JAVA API level framework"和组件实现的,例如:PackageManager,ServiceManager,ActivityManager等。让SEAndroid处理这些高级组件的执行可能会丢失点(但这只是我个人的意见)。