大项 | 功能 | 组件 | 测试项 |
---|
业务安全 | 用户登录 | 检测用户登录过程中是否需要输入用户名和密码 |
检测是否有密码尝试次数限制,限制策略是否安全 |
检测是否存在密码或账户登录错误提示混淆的问题 |
是否存在记住用户名或密码 |
是否有错误信息提示 |
是否提示用户名错误 |
是否提示用户名或密码错误 |
是否提示密码错误 |
是否有验证码确认用户信息 |
是否有支付功能 |
支付密码和账户是否使用同一键盘进行输入 |
支付过程是否可以截图 |
是否含有敏感信息的输入 |
对于铭感信息是否完整的显示出来 |
程序进入后台是否会有提示 |
密码管理 | 检测密码输入是否使用安全键盘 |
检测密码是否有强度要求 |
检测密码是否本地存储 |
检测密码是否加固传输 |
测试登录免密、支付密码等不同类型密码是否采取不同的安全级别管理 |
检测是否能够使用弱密码 |
检测使用弱安全密码时程序是否使用安全策略保证密码安全 |
检测密码找回策略是否存在安全隐患 |
支付安全 | 检测是否有支付密码保护 |
检测支付行为发生时是否有检测环境清场检测 |
检测是否有支付密码试错次数限制 |
身份认证 | 检测在安全级别要求较高的应用场景是否有除密码之外的安全认证机制,安全认证机制是否起到保护效果 |
超时设置 | 检测是否有会话超时机制,超时后重鉴别 |
异常处理 | 检测在软件操作异常时是否有异常处理机制,错误提示信息是否泄露敏感信息 |
组件安全 | Activity安全 | 检测Activity是否会被权限劫持 |
检测Activity是否会被劫持 |
检测Activity跳转时传输的数据是否安全 |
检测Activity结束运行后是否遗漏敏感数据 |
检测Activity是否有被启动者身份(防止被第三方程序恶意启动) |
Broadcast Receiver安全 | 检测Broadcast Receiver是否会被权限攻击 |
检测Broadcast Receiver是否会被监听、劫持 |
检测Broadcast Receiver是否有被启动者身份认证(防止被第三方程序恶意启动) |
Service安全 | 检测Service是否会被权限劫持 |
检测Service是否会被劫持 |
检测Service跳转时传输的数据是否安全 |
检测Service结束运行后是否遗漏敏感数据 |
检测Service是否有被启动者身份认证(防止被第三方程序恶意启动) |
Content Provider安全 | 检测Content Provider是否会被权限攻击 |
检测Content Provider是否存在泄露隐私数据风险 |
检测Content Provider执行源码是否暴露 |
Intent安全 | 检测Intent是否会被权限攻击 |
检测Intent是否泄露隐私数据 |
WebView安全 | WebView安全 | 检测HTML5和WebView组件是否存在代码注入漏洞 |
检测WebView.load的第三方H5还是自身提供的H5 |
检测WebView是否使用系统已经被暴露风险的函数(已知漏洞) |
发布规范 | 测试数据移除 | 检测发布应用中是否包含不应包含的测试代码 |
检测发布应用中测试数据是否暴露隐私数据信息 |
日志信息移除 | 检测发布应用中是否包含不应该包含的日志信息 |
检测发布版本测试日志信息是否正常输出 |
安全合规 | 检测应用是否符合国家相关安全标准 |
安全增强 | 权限管理 | 是否存在权限溢出问题 |
是否存在串谋攻击隐患 |
输入检测 | 是否存在客户端注入问题 |
是否存在输入数据被拦截或泄露等问题 |
键盘记录 | 是否存在键盘记录隐患 |
键盘是否能够被注入钩子 |
界面劫持 | 用户在进行敏感信息输入时是否存在界面劫持和截屏问题 |
模拟器检测 | 检测应用是否可以运行在模拟器环境中 |
检测应用运行在危险的模拟器环境中程序是否能够进行运行 |
进程保护 | 检测应用是否具备抵抗进程注入的能力 |
动态调试 | 检测程序是否具备抵抗动态调试的能力(Java层和Native层) |
第三方SDK安全 | 检测App中使用的第三方SDK是否存在安全隐患 |
检测App中使用的第三方SDK是否存在潜在后面 |
检测App中使用的第三方SDK性能、兼容、功能是否存在潜在隐患 |
AndroidManifest配置 | 检测AndroidManifestt.xml中是否有不安全的配置,如allowBackup、debuggable等 |
程序完整性 | 程序签名 | 检测程序是否进行签名校验,签名校验是否会被绕过 |
检测程序签名是否使用独立的签名文件而非使用系统签名文件 |
完整性校验 | 检测程序是否进行签名校验,签名校验是否会被绕过 |
检测程序是否进行签名校验,签名校验是否会被绕过 |
程序机密性 | 代码混淆 | 检测程序是否进行代码混淆 |
Dex保护 | 检测程序可执行文件Dex是否做加固处理 |
SO保护 | 检测程序的本地库文件是否做加固处理 |
资源文件保护 | 检测程序的资源文件是否做加固处理 |
内存保护 | 检测程序运行时内存空间是否有安全保护 |
重要函数逻辑安全 | 检测程序运行时重要函数是否有安全保护 |
硬编码 | 检测程序是否存在硬编码问题 |
WebView | 如果程序使用混合(Hybrid)编程,检测JS功能函数是否进行代码混淆和加固 |
数据输入 | 敏感数据显示 | 检测敏感数据(如用户密码)输入时软件界面是否为非明文显示 |
输入监听 | 检测用户进行输入操作时,输入的数据是否会被其他终端或其他城西非授权获取 |
数据存储 | 存储数据类别 | 检测是否本地保存手机号、密码等敏感信息,程序应尽可能少的存储用户的敏感数据 |
数据访问控制 | 检测数据是否仅被授权用户或应用进程访问 |
敏感数据加固 | 检测是否对口令、密码、银行卡号等已本地保存的敏感信息进行加固处理,加固强度是否到达要求 |
内存数据安全 | 检测程序在运行过程中,内存中是否保存敏感数据,敏感数据是否进行加固处理,加固强度是否达到要求 |
数据传输 | 远程数据通讯协议 | 检测程序与服务器通信过程中,敏感数据是否选择SSL/TLS或IPSec等安全通信协议 |
证书验证 | 检测程序与服务器的通信是否有证书,是否有证书合法性和一致性校验 |
远程数据通信加固 | 检测程序与服务器通信的敏感数据是否进行加固处理,加固强度是否达到要求 |
数据传输完整性 | 检测程序与服务器通信的敏感数据是否进行完整性校验,防止数据传输中断或被篡改 |
本地数据通讯安全 | 检测程序与本地其他应用进程间的数据传输是否采取加固处理和权限控制 |
会话安全 | 检测程序session的安全性 |
重放攻击 | 检测应用软件与服务器通信报文被第三方嗅探后是否可以进行重放攻击 |
数据输出 | 调试信息 | 检测应用运行时是否有调试信息输出,调试信息是否包含敏感数据 |
检测应用运行时输出的异常数据是否泄露隐私 |
敏感信息显示 | 检测应用对敏感细腻些进行显示(账号、密码、身份证号等)时是否对部分字段进行屏蔽 |
检测应用在进行界面切换后,前一界面的敏感信息是否被清空 |