1. 问题说明
检测 APP 移动客户端是否经过了正确签名,通过检测签名,可以检测出安装包在签名后是否被修改过。如果 APP 使用了 debug 进行证书签名,那么 APP 中一部分 signature 级别的权限控制就会失效,导致攻击者可以编写安装恶意 APP 直接替换掉原来的客户端。
注:在正常的情况下 APP 都应该是经过了签名的,否则的话是不能正常安装的。
2. 测试步骤
这里使用到 keytool 工具查看签名 (MobSF),检查签名信息是否正确。
keytool -printcert -file META-INF/CERT.RSA
# CERT.RSA 为目标 APP 的证书名
也可以使用 JADX-GUI 直接查看证书情况,该工具的使用我们后面会单独写一篇文章进行讲解。
3. 修复建议
建议移动客户端不要使用第三方开发商的证书进行签名,而是使用自己的证书进行签名后进行发布,这样可以防止第三方开发商内部监管异常,造成证书滥用的情况出现。