我们的 AI 引擎 Neutron 在加州大学伯克利分校的 CyberGym 基准测试中取得了 96.75% 的成绩。 了解更多

工程

工程

DAST(动态分析)是如何工作的?

动态分析

Ostorlab 使用动态分析来评估移动应用,并在运行时确认漏洞,从而大幅减少误报。

动态分析是指在真实的 Android 或 iOS 设备上运行应用,监控应用与各种操作系统组件之间的交互,并检测不安全或具有潜在风险的行为。

动态分析所使用的设备是真实的手机和平板电脑硬件,搭载适用于不同架构的不同操作系统版本。

在安装阶段,iOS 应用(.ipa)会在安装前被重新签名并插桩,而 Android 应用则按原样安装,不做任何修改。

应用安装完成后,插桩引擎会挂钩(Hook)进去,开始拦截大量 API 调用,以检测存在漏洞的行为,包括加密 API、钥匙串、网络、文件系统、SQL 等。

一个 Monkey UI 模糊测试工具会模拟随机操作,尽量提高应用的覆盖率;与此同时,另一个实例被安装在一台单独的设备上,由人工操作员模拟需要多个步骤的复杂操作,或与第三方系统的交互,例如邮箱注册验证、输入短信验证码等。目标是提高应用代码的覆盖率。

在分析步骤中,文件系统、网络和 API 调用会被收集起来,先被动地检查其中的漏洞(例如使用了弱加密方案),同时还会被分发给其他系统以执行主动测试。

替代文本
Selection_021

在主动测试期间,应用的所有入口点都会被收集并进行模糊测试,包括 Content Provider、Broadcast Receiver、URI 处理程序等。

后端系统也会在这一步骤中被收集,并扫描其中的漏洞,包括 SQL 注入、命令注入、跨站脚本(XSS)等。

部分收集到的内容会作为产物导出到扫描结果中,例如网络日志和屏幕截图。

替代文本
Selection_021

最初,Ostorlab 使用越狱和 Root 过的设备来运行所有动态测试,但事实证明这并无必要,在某些情况下还会带来问题。使用健壮且快速的插桩引擎可以收集所有必要的信息,但需要支持对原生 C 层 API 以及平台特定 API 的 Hook,例如 Cordova 中的 JavaScript 和 Xamarin 中的 CLI。