业余研究 App 安全半年,我整理的 5 个踩坑记录

5 阅读3分钟

先说清楚:我不是安全工程师,就是个业余爱好者。这半年断断续续地在看 App 安全相关的东西,踩了一堆坑,记下来给同样在摸索的朋友们,说错的欢迎指正。

坑 1:以为「用了第三方组件」就跟自己没关系

这是我最开始最大的误解。我一度认为:只要我自己写的代码规范,App 就没问题。

后来才慢慢明白,App 里集成的统计、推送、广告这类组件,它们也在 App 里跑,也可能在启动阶段就工作。所以自查的时候不能只看自己写的部分,得把所有集成的东西一起算进来。

对非技术背景的人来说,这是最容易漏的一块。

坑 2:以为权限「申请了不用就没事」

我原来想,权限申请了但没实际使用,应该无所谓吧。

后来理解是:重点不在「有没有用」,而在「这个权限和你的功能对得上吗」。用户打开 App 就被问一堆权限,其中有些跟当前能感知到的功能完全没关系,这个体验本身就会引发质疑。

所以我的做法变成了:先列一遍所有权限,逐个问自己「哪个功能要用它」,说不上来的就删掉。

坑 3:以为隐私政策写清楚就够了

一开始我以为,App 安全里最容易做的就是「把隐私政策写明白」。

后来发现这是两回事:政策文本是一份说明,App 实际的行为是另一回事。如果实际行为和文本对不上,文本写得再完整也没用。关键是说的和做的一致。

坑 4:以为加固越强越好

这个坑我觉得很多人都会有——既然加固是为了安全,那肯定拉满最好。

实际上加固是有代价的:可能让启动变慢,也可能在老机型上出问题。我看到的比较合理的思路是:先检测,看清楚自己哪里有暴露面,再决定加固到什么程度。把预算(性能的和钱的)花在真正需要保护的地方。

坑 5:以为测一次就一劳永逸

我刚开始是「测一遍报告一看没问题,收工」。

但 App 是持续迭代的,新版本、新集成的组件都可能带来新的暴露面。现在的做法是:每个大版本上线前跑一次,当成固定流程的一部分。

我现在的一个简单流程

  1. 用自动化工具完整跑一遍检测,拿到问题清单(我这种业余的靠肉眼翻肯定漏)。
  2. 照着清单逐项确认,能配置解决的先解决。
  3. 开启基础混淆。
  4. 看检测结果决定加固程度。
  5. 加固后再测一次,确认没引入新问题。

关于工具

我自己在用的是爱加密的 SaaS 平台(saas.ijiami.cn),浏览器上传安装包就能出报告,不用装本地环境——对业余研究的人来说这点很重要,省了很多环境配置的麻烦。再说一遍:这只是我个人在用的工具,不是官方推荐,也不代表任何厂商。

想试的话,注册时填推荐码 C5U0R2J7,可以领一次免费检测额度。

如果这篇对你有帮助,或者你也踩过类似的坑,欢迎在评论区交流,我继续整理下一篇。

以上是我个人的学习和使用记录,不代表任何厂商观点,有错误欢迎指正。