Android RASP
Android RASP:在应用内部运行的防护
运行时应用自我保护在 Android 上意味着什么、能检测什么,以及如何在不影响真实用户的情况下采用。
简短回答
RASP(运行时应用自我保护)是嵌入应用中的代码,在应用运行时检查设备和应用本身是否可信:Root、模拟器、调试器、Hook 框架以及被修改的副本。然后由策略决定响应方式,从仅上报到结束会话。它提高了攻击成本,但不会让应用无法被攻击。
为什么 Android 应用需要它
任何人都可以下载 APK,解包、修改后重新安装。在已 Root 的手机上或连接了插桩工具时,攻击者可以读取内存、绕过检查并篡改应用发送的内容。服务器上的规则只能看到到达的请求,看不到产生这些请求的设备。
RASP 检查什么
检查项涵盖环境(Root、模拟器、不安全的设备状态)、插桩(Frida、Xposed、被 Hook 的函数)、调试(附加的调试器、进程跟踪)和完整性(签名、被修改的代码、重新签名的副本)。单个信号很弱,多个信号结合才能给出可用的判定。
如何安全地上线
先从监控模式开始:应用上报它本会采取的动作,但不拦截任何内容。查看来自真实用户的事件,再逐项把检测切换为警告、拦截或结束会话。把运行时检查与构建加固(混淆)结合起来,让检查本身更难被找到和移除。
来源怎么说
边界在哪里
任何单项检查都不能作为证据,有时间、有决心的攻击者可以绕过客户端检查。RASP 带来的是信号和时间;对于涉及资金的操作,应与服务器端验证(Attest 或 Play Integrity)结合使用。
常见问题
RASP 和混淆是一回事吗?
不是。混淆让代码在运行前更难阅读;RASP 在运行时检查环境。两者结合效果更好,因为混淆也能隐藏 RASP 的检查。
RASP 会拦截正常用户吗?
如果过早启用拦截,可能会。因此检测应从监控模式开始,在拦截任何内容之前先看到真实影响。
需要修改源代码吗?
使用 Moatgator 不需要。防护在你的构建流水线中加入已编译的应用,策略保存在 moatgator.yml 中。
支持 iOS 吗?
Moatgator 支持 Android 和 iOS(测试版)。本指南介绍的是 Android。