背景
在工作中经常需要在 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 中,每个对象(进程和文件)被赋予安全属性。
SEAndroid策略-CSDN博客

The Access Vector Rule

AVCRules - SELinux Wiki
Rules

AVCRules - SELinux Wiki
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

TypeStatements - SELinux Wiki
暂时关闭/开启 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/