对移动应用进行专业、深入的安全性测试,是保证其抵御恶意攻击、保护用户数据的基础。
一、 安全测试的OWASP Mobile Top 10
所有测试工作都应围绕这十大最重点的风险展开:
M1:不当的证据使用:检查硬编码密码、不安全的证据存储。
M2:供应链安全不足:检测第三方库、组件的已知漏洞。
M3:不安全的身份证实/授权:测试认证绕过、会话管理缺陷。
M4:输入证实不足:查找可能导致SQL注入、命令注入的漏洞。
M5:不安全的通信:重点测试数据加密传输,防止窃听和中间人攻击。
M6:隐私控制不足:保证个人识别信息(PII)的收集、存储符合法规。
M7:二进制保护不足:考虑应用抗逆向工程、反篡改的能力。
M8:安全配置错误:检查错误的默认设置、权限配置。
M9:不安全的数据存储:测试本地存储的敏感数据是不是未加密或弱加密。
M10:加密不足:考虑加密算法的强度、密钥管理是不是安全。
二、 重要测试方法、情形和工具
一个全面的安全测试方案需要融合多种方法,从不同方面发现漏洞。
静态应用安全测试 (SAST):在不运行代码的情况下,通过分析源代码、字节码或二进制文件来发现漏洞。硬编码密钥、不安全的API调用、代码逻辑漏洞、依赖库漏洞。工具:MobSF、AppScan(SAST功能)、Q-mast
动态应用安全测试 (DAST):在应用运行状态下,通过模拟外部攻击(如发送恶意请求)来探测漏洞。服务器端漏洞(如注入)、不安全的通信、运行时身份证实问题。工具:OWASP ZAP、Burp Suite、AppScan(DAST功能)
交互式应用安全测试 (IAST):在应用运行中,通过插桩技术实时监控应用行为和数据流,准确定位漏洞。结合SAST和DAST优点,精确定位漏洞在代码中的位置及触发流程。工具:AppScan(IAST功能)
渗透测试和手动测试:安全专家模拟真实黑客的攻击思路和手法,进行深度、探索性的安全考虑。业务逻辑漏洞、高级旁路攻击、组合漏洞利用、设计缺陷。工具:Drozer(针对Android)、Frida、Burp Suite
三、 数据加密传输测试
这是防止数据在传输过程中被窃听或篡改的重点,对应OWASP M5风险。测试需包括以下方面:
强制使用HTTPS/TLS:
测试点:证实所有网络请求是不是均使用https://,禁止明文http://。尝试将请求降级为HTTP,应用应拒绝连接。
工具:使用Burp Suite或OWASP ZAP作为代理,拦截并修改请求进行测试。
TLS配置和证书证实:
测试点:检查TLS版本(应禁用SSLv3, TLS 1.0/1.1,使用TLS 1.2+)、加密套件强度。重点测试证书证实:尝试使用自签名或无效证书和服务器通信,应用必须结束连接。
工具:使用Burp Suite的“TLS扫描”功能或在线服务(如SSL Labs)测试服务器配置。使用Frida等工具尝试绕过证书锁定。
证书锁定:
测试点:这是对抗中间人攻击的高级防护措施。应用应在代码中“固定”受信任的服务器证书或公钥哈希。测试时,即使设备信任了攻击者安装的根证书,应用也应拒绝建立连接。
证实方法:一般需要代码审计(检查是不是实现锁定逻辑)和结合动态测试(尝试用不同证书代理流量)。
敏感信息泄露:
测试点:检查加密请求的URL、参数、头部和响应体中,是不是仍泄露了会话令牌、身份证号等敏感信息。
工具:通过Burp Suite等代理工具,逐一审查所有传输数据。
四、 测试建议
信息收集和分析:获取应用安装包,进行反编译,了解其架构、组件和第三方库。
自动化扫描:使用MobSF等工具进行初步的静态和动态扫描。
手动深入测试:
业务逻辑:使用应用,寻找权限提升、逻辑绕过等自动化无法发现的漏洞。
深度通信测试:按照第三部分重点,手动测试加密传输的每个步骤。
本地数据存储:检查SharedPreferences、数据库、日志文件中是不是存储敏感信息。
漏洞证实和报告:对发现的漏洞进行复现和风险考虑,按照OWASP风险等级标准撰写详细报告,并提供修复建议。
五、 行业标准和服务
按照标准:除了OWASP,国内可参考工信部发布的YD/T 1700-2025《移动终端信息安全测试方法》 等行业标准。
专业服务:对于金融、政务等重点应用,建议寻求有CMA/CNAS资质的第三方安全测评机构(如湖南卓码软件测评有限公司)进行渗透测试和合规考虑。他们能提供有法律效力的测试报告,并按照国家和行业标准,进行更为客观、全面的审计。