Android静态安全检查(八):自定义Permission检测
程序员文章站
2022-05-14 21:13:10
...
自定义权限风险
Android系统提供了很多权限,同时也允许应用根据自己的需求创建自定义的权限(Permission),该Permission在AndroidManifest.xml的标签如下
<permission android:name="com.wzj.test"/>
无论是系统权限还是自定义权限,都有一个叫做 android:protectionLevel属性,它代表权限的风险级别,有四个值,缺省为normal
- Normal:权限被声明为Normal级别,任何应用都可以申请,在安装应用时,不会直接提示给用户,点击全部才会展示。
- Dangerous:权限被声明为Dangerous级别,任何应用都可以申请,在安装应用时,会直接提示给用户。
- Signature:只有和该apk(定义了这个权限的apk)用相同的私钥签名的应用才可以申请该权限
- SignatureOrSystem:有两种应用可以申请该权限,一个是和该apk同样的签名,另一种是在/system/app目录下的应用
如果一个应用自定义权限定义为Normal或Dangerous,可以被外部第三方的应用申请到,则说明该权限可能存在风险问题。
检测方法
查看AndroidManifest.xml所有的Permission,查看android:protectionLevel设置的什么级别,如果是Normal或Dangerous,可以被外部第三方的应用申请到,该权限存在安全问题。
修复方案
应用自定义权限的风险级别设置为Signature或者SignatureOrSystem。