待补充
反编译
0x01 漏洞描述
APK文件是安卓工程打包的最终形式,将apk安装到手机或者模拟器上就可以使用APP。反编译apk则是将该安卓工程的源码、资源文件等内容破解出来进行分析。
0x02 漏洞危害
攻击者通过反编译可获取应用安卓客户端应用的源代码,攻击者可根据源代码获取对应接口信息,加密算法、密钥,以及一些硬编码在代码中的其他敏感信息,从而进行进一步攻击。
0x03 修复意见
- 使用市面上安卓加固的厂商对安卓APP进行加固,比如360、梆梆等。
安装包签名
0x01 漏洞描述
Android系统要求安装的应用必须用数字证书进行签名后才能安装,并且签名证书的私钥由应用开发者保存。签名证书的生成也由开发者自己生成。在应用安装时会校验包名(package name)和签名,如果系统中已经存在了一个相同的包名和签名的应用,将会用新安装的应用替换旧的;如果包名相同但是签名不同,则会安装失败。
应用签名完后在应用的META-INF目录下会有三个文件: CERT.RSA、CERT.SF和MANIFEST.MF。
MANIFEST.MF中保存了所有其他文件的SHA1摘要并base64编码后的值。
CERT.SF文件是对MANIFEST.MF文件中的每项中的每行加上“\r\n”后,再次SHA1摘要并base64编码后的值(这是为了防止通过篡改文件和其在MANIFEST.MF中对应的SHA1摘要值来篡改APK,要对MANIFEST的内容再进行一次数字摘要)。
CERT.RSA文件:包含了签名证书的公钥信息和发布机构信息。
0x02 漏洞危害
签名信息中包含的组织信息,将便于用户识别安装包的真伪。
0x03 修复意见
- 在应用程序发布时使用企业签名对安装包进行签名。
应用完整性
0x01 漏洞描述
客户端若未进行应用完整性校验,经二次打包后的Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都跟正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。
0x02 漏洞危害
- 插入自己广告或者删除原来广告;
- 恶意代码,恶意扣费、木马等;
- 修改原来支付逻辑;
0x03 修复意见
- 在应用发布时使用360、梆梆等安全厂商进行安全加固。
- 对签名文件中classes.dex哈希值的校验
可参考下列文章: