2.1扫描总述

文章目录
  1. 1. 1 有哪些检测项目?
  2. 2. 2 详细清单

评估一个安卓应用的安全性,最常见的技术就是静态扫描技术,而静态扫描必定遵循一定规则进行。本扫描体系将静态扫描划项目分成12个大类,细分为76子项目,依次对每个项目进行评估,对每项给出高危、中危、低危、警告、提醒和安全的标识,最终完成一套完整的应用扫描评估体系。该部分将会详细介绍所有的扫描检测项目,以及其相应的风险评级标准。

1 有哪些检测项目?

该扫描体系涉及共12类大项目,细分为总共82个小项目(表1),详细的检测清单见表2。其中前三大类是应用的基本信息共12项,不具备风险等级的属性;后九大类,总共有70项,每一项均具备风险等级属性。该体系设定了高危、中危、低危、提醒和安全六个风险等级,应用在完全评估后,每个检测项都会给出一个对应的风险等级。

12类风险扫描项涵盖了大部分安卓应用存在的风险点。

子项目 描述
1 7 文件信息
2 1 权限信息检测
3 4 四大组件
4 8 Menifest文件检测
5 11 组件安全检测
6 9 Webview组件安全检测
7 5 Sqlite安全检测
8 5 网络通信安全检测
9 6 弱加密风险检测
10 12 数据安全检测
11 11 敏感函数调用检测
12 3 系统漏洞检测
共12类 82个子项目

表1 检测项目总览表

2 详细清单

这里需要说明一下关于唯一标识的定义规则:

唯一标识说明

唯一标识总共由六位数字组成,前两位是第几类的意思,后三位代表是该类中的扫描项。如03004,代表第三类中的第四个扫描项;10011代表第十类中的第11个扫描项。

项目序号 唯一标识 风险描述 风险等级 检测方式
1 01001 文件名 静态
2 01002 文件大小 静态
3 01003 MD5 静态
4 01004 包名 静态
5 01005 Main Activity 静态
6 01006 Min SDK 静态
7 01007 Target SDK 静态
8 02001 权限信息检测 静态
9 03001 Activity组件 静态
10 03002 Service组件 静态
11 03003 BroadcastReceiver组件 静态
12 03004 ContentProvider组件 静态
13 04001 AndroidManifest文件中PermissionGroup检测 提醒 静态
14 04002 AndroidManifest文件中系统权限使用检测 提醒 静态
15 04003 AndroidManifest文件中ProtectionLevel权限检测 提醒 静态
16 04004 AndroidManifest sharedUserId检测 提醒高危 静态
17 04005 allowBackup标志检测 低危 静态
18 04006 Debuggable配置检测 高危 静态
19 04007 非必要权限检测 提醒 静态
20 04008 app最低版本检测 展示 静态
21 05001 Activity组件导出检测 中危 静态
22 05002 Service组件导出检测 中危 静态
23 05003 Receiver组件导出检测 中危 静态
24 05004 Provider组件导出检测 高危 静态
25 05005 Provider: grant-uri-permission属性检测 提醒 静态
26 05006 Intent-Based攻击检测 低危 静态
27 05007 Intent Scheme URL漏洞攻击检测 高危 静态
28 05008 应用本地拒绝服务器漏洞检测 低危 静态
29 05009 manifest中定义组件未实现检测 中危 静态
30 05010 Debug或Test敏感测试组件泄露检测 中危低危 静态
31 05011 Intent不安全反射风险检测 低危 静态
32 06001 Webview远程执行漏洞检测 提醒 静态
33 06002 WebView潜在XSS攻击检测 提醒 静态
34 06003 WebView本地文件访问漏洞检测 高危 静态
35 06004 WebView密码明文存储漏洞检测 提醒 静态
36 06005 主机名弱校验检测 中危 静态
37 06006 证书弱校验检测 中危 静态
38 06007 中间人攻击漏洞检测 中危 静态
39 06008 WebView不校验证书漏洞检测 中危 静态
40 06009 WebView组件系统隐藏接口未移除漏洞 低危 静态
41 07001 SQLite数据库加密(SQLCipher)检测 展示 静态
42 07002 SQLite数据库加密拓展(SQLite Encryption Extension,SEE)检测 展示 静态
43 07003 SQLite数据库的对称密钥检测 - 未实现 提醒 静态
44 07004 SQLite Database Transaction Deprecated(SQL注入)检测 - 未实现 所有 动态
45 07005 Databases任意读写漏洞检测 - 废弃 中危 静态
46 08001 SSL不安全组件检测 提醒 静态
47 08002 SSL连接检测 提醒 静态
48 08003 HttpHost检测 提醒 静态
49 08004 HttpURLConnection漏洞检测 - 废弃 低危 静态
50 08005 网络端口开放威胁检测 低危 混合
51 09001 弱加密算法风险检测 低危 静态
52 09002 不安全的密钥长度风险检测 低危 静态
53 09003 ECB弱加密模式风险检测 低危 静态
54 09004 IVParameterSpec不安全初始化向量风险检测 低危 混合
55 09005 RSA中不使用Padding风险检测 低危 静态
56 09006 检测keystore是否使用密码保护 - 未实现 高危 动态
57 10001 敏感信息检测 展示 静态
58 10002 剪贴板敏感信息泄露风险检测 展示 静态
59 10003 Intent敏感数据泄露风险检测 提醒 静态
60 10004 PendingIntent误用风险 中危 静态
61 10005 密钥硬编码风险检测 提醒 静态
62 10006 数据或程序加载检查 - 未实现 提醒 动态
63 10007 BASE64安全检测 展示 静态
64 10008 文件全局读写漏洞检测 中危 静态
65 10009 日志泄露风险检测 提醒 静态
66 10010 外部加载Dex检测 - 去掉 高危 静态
67 10011 外部存储路径检测 - 未实现 提醒 动态
68 10012 明文数字证书风险 - 未实现 警告 静态
69 11001 安全相关的函数检测 提醒 静态
70 11002 安全相关的类检测 提醒 静态
71 11003 运行命令检测 提醒 静态
72 11004 Native Library加载检测 提醒 静态
73 11005 外部动态加载DEX检测 高危 混合
74 11006 root代码检测 提醒 静态
75 11007 获取IMEI和Device ID敏感信息代码检测 提醒 静态
76 11008 获取Android ID敏感信息代码检测 提醒 静态
77 11009 发送SMS敏感代码检测 提醒 静态
78 11010 文件删除代码检测 提醒 静态
79 11011 signature代码检测 提醒 静态
80 12001 fragment注入漏洞检测 中危 静态
81 12002 sqlite数据库日志泄露漏洞检测 低危 静态
82 12003 随机数生成漏洞检测 高危 静态

表2 检测项详细清单