1. 问题说明

检测 APP 移动客户端是否经过了正确签名,通过检测签名,可以检测出安装包在签名后是否被修改过。如果 APP 使用了 debug 进行证书签名,那么 APP 中一部分 signature 级别的权限控制就会失效,导致攻击者可以编写安装恶意 APP 直接替换掉原来的客户端。

注:在正常的情况下 APP 都应该是经过了签名的,否则的话是不能正常安装的。

2. 测试步骤

这里使用到 keytool 工具查看签名 (MobSF),检查签名信息是否正确。

  1. keytool -printcert -file META-INF/CERT.RSA
  2. # CERT.RSA 为目标 APP 的证书名

安装包签名和证书 - 图1

也可以使用 JADX-GUI 直接查看证书情况,该工具的使用我们后面会单独写一篇文章进行讲解。
安装包签名和证书 - 图2

3. 修复建议

建议移动客户端不要使用第三方开发商的证书进行签名,而是使用自己的证书进行签名后进行发布,这样可以防止第三方开发商内部监管异常,造成证书滥用的情况出现。