背景
在工作中经常需要在 android 中增加一些东西, 而android有自己的安全限制,如果不懂SELinux,就不好添加。
Control Access Model
https://zh.wikipedia.org/wiki/Chmod
https://linux.die.net/man/1/chcon
DAC
DAC and Trojan Horses
DAC and Trojan Horse
被某个用户执行的程序拥有与该用户相同的权限。这意味着系统安全依靠运行的程序,因此,当一个程序中发生安全裂缝,会影响到该用户能访问的所有对象。这使得DAC在特洛伊木马前特别脆弱。例如,假设Alice对文件file1.doc拥有读写权限。Charlie,一个恶意攻击者,写了一个程序,这个程序在执行时生成文件file2.doc.这个程序授予Alice写权限和Charlike读权限。Charlie把这个程序伪装成合法的程序发给Alice。当Alice运行这个程序是,它就具有了和Alice相同的权限。它可以拷贝file1.doc到file2.doc,这样charlie就窃取了file1.doc的内容。如果一个管理员执行这个程序,攻击者会获取最大的特权,危害整个系统的安全。
SELinux
Example
链接:Your visual how-to guide for SELinux policy enforcement | Opensource.com
Type enforcement
Fail Example
Android Security Context format
SELINUX 中,每个对象(进程和文件)被赋予安全属性。
The Access Vector Rule
Rules
attribute/type
Android SELinux code
Example:DualCameraCal(1/4)
https://selinuxproject.org/page/TypeRules
https://blog.csdn.net/xbalien29/article/details/19505575
https://fedoraproject.org/wiki/SELinux/Understanding
Generalized Security Context Labeling
neverallow policy by google
SELinux 语法结构
Building Selinux policy
暂时关闭/开启 SELinux
https://blog.csdn.net/u012824529/article/details/102938284 https://wertherzhang.com/seandroid%E8%A7%84%E5%88%99%E4%BB%8B%E7%BB%8D/