恶意软件排查复盘
一、背景
近期,Google play上两个app在 Facebook 渠道投放时陆续被报错,导致无法正常投放。具体错误信息参见以下链接:包被FB拉黑 - 解决方案。技术团队需解决病毒检测异常问题,并通过 VirusTotal 网站确保全绿通过。
二、问题排查
1. 信安扫描
在问题排查中,我们首先进行了信安扫描,并提供了两个主要方向:
• 排查异常类库:确认工程中未引用任何异常库。
• 敏感权限获取过大:对代码进行审查,移除涉及的敏感权限。尽管进行了此操作,重新扫描后问题依旧存在。
2. 功能移除与重新打包
由于没有有效的解决方案,我们尝试通过移除部分功能并重新打包进行检测。
• 改动前扫描结果:发现有3项未通过的检测。
• 移除三方 SDK:我们移除了同盾、听云、izi 和 advance 这几个 SDK,但检测仍有一项未通过。
虽然上述尝试取得了一定效果,但效率较低,移除功能后需解决编译报错才能重新打包,耗费时间较多。
3. 采用新思路
在此过程中,组内小伙伴提供了新的思路:直接解压 APK,去除部分资源或代码后重新打包进行检测。
• 移除 SO 库:尝试后无效。
• 移除一个 DEX 文件:发现移除其中一个 DEX 文件后,检测完全通过。这表明,三方检测可能是针对代码而非清单中声明的权限进行的。
经此尝试,我们了解到 advance SDK 的升级解决了类似问题,这与移除 SDK 的结果一致,但仍有一项未通过的问题需要进一步排查。
4. 继续深入排查
在深入排查时,我们继续采用“笨办法”:
• 移除数据抓取组件:尝试后无效。
• 同时移除数据抓取组件和权限:依旧无效,陷入僵局。
5. 扫描引擎如何识别SpyLoan 软件
在整个排查过程中,我们借助 SpyLoan 软件分析了检测引擎如何发现应用的数据抓取行为:
• 数据抓取与上报:经过排查,发现代码中存在通讯录和通话记录相关的代码。移除这些代码后,重新打包检测后,所有检测均通过。
总结
通过以上的排查和尝试,我们总结出以下经验:
• 在面临病毒检测异常问题时,需全面分析权限和引入的库。
• 移除功能时要注意编译报错,尽量选择高效的方法。
• 不要忽视 SDK 的升级,及时关注其他团队的解决方案。
• 在排查中,深入分析代码逻辑,尤其是数据抓取和上报的实现。
通过这些经验,希望能为今后类似问题的排查提供借鉴。