使用 IDE:搜索与分析
IDE 的目标是简化手动评估,并提供在 Ostorlab 完成的所有分析(从污点分析 (taint analysis)、动态调用跟踪、拦截的流量到扫描的 API 请求)之上编写自定义检查的能力。
访问 IDE
要访问 IDE,请前往您的扫描页面并点击“analysis”。

导航
IDE 的各个部分列在左侧:

- Files:APK 和 IPA 分别是 Android 和 iOS 移动应用的包文件格式。这些文件包含在移动设备上安装和运行应用所需的所有资源和代码。“Files”选项可帮助您检查 APK 或 IPA 文件的内容。您将看到构成该应用的文件和目录列表。这些文件可能包括应用的代码、图像和声音等资源、配置文件以及应用使用的其他资产。
- HTTP Folders:收集到的所有网络流量,按端点进行排序和组织。
- Static:静态分析导航旨在帮助工程师识别其代码中的潜在问题。这可能涉及阅读代码、检查变量类型和函数,以及查找常见的编码错误,如空指针解引用、内存泄漏或缓冲区溢出。
- Dynamic:动态部分显示在动态分析期间收集的应用程序调用跟踪。动态分析支持 Java、C、Flutter 和 Swift。
- Call Coverage:Call Coverage(调用覆盖率)是移动应用的 UI 流程 (UI flow),它向您显示 Ostorlab 机器人在使用应用时经过的屏幕或页面序列。它模拟了用户如何与应用的受用户界面交互以实现其预期目标。移动应用的典型 UI 流程可能包括以下步骤:登录页面、导航、内容页面、身份验证、对话框和模态框。
- Traffic:以请求形式列出的所有收集到的网络流量。
- API:API 是当 Ostorlab 机器人与应用程序交互时应用程序生成的网络流量。这可以帮助您检查 HTTP 请求/响应消息,其中包含 JSON payload、HTTP 方法、HTTP 协议版本、状态和请求资源的 URI。
- Search:您可以使用 search 部分在所有应用程序文件中搜索特定的关键字。
- Logs:在“Logs”部分,您可以查看动态扫描过程中生成的设备日志。
- Pcap:列出供下载的所有已注册的
Pcap文件。 - Agent Logs:扫描期间所有代理的日志,带有严重性、代理密钥和搜索作为过滤器(特定于自定义代理)。
- Vulnerabilities:Vulnerabilities 选项将您重定向到静态和动态分析检测到的漏洞列表。
文件
此部分允许您检查 APK 和 IPA 文件的内容:
您将看到构成该应用的文件和目录列表。这些文件可能包括应用的代码、图像和声音等资源、配置文件以及应用使用的其他资产。

IDE 支持:
- 针对大多数编程语言的代码高亮显示:

- 二进制 Plist 提取:

HTTP 文件夹
HTTP Folders 部分列出了收集到并按端点组织的所有网络流量:

静态
静态分析部分旨在帮助工程师识别其代码中的潜在问题。这可能涉及阅读代码、检查变量类型和函数,以及查找常见的编码错误,如空指针解引用、内存泄漏或缓冲区溢出。
- 上下文调用跟踪生成

您可以使用搜索来查找一个或多个方法。

您可以使用过滤器选项卡在表格中列出所有方法,然后选择一个或多个方法以在映射中突出显示它们的连接。
静态分析中的搜索功能支持可以将多个关键字链接在一起。例如,要搜索所有包含单词“mem”的方法。您可以输入 search 冒号 mem。
支持的关键字列表为:
search:在方法或函数的所有属性内进行任意搜索。path:APK 或 IPA 文件内的路径。package:包名(如果适用)。class:类名(如果适用)。method:方法名。function:函数名。signature:方法或函数签名。sink:sink(接收器)类别,支持*作为通配符。source:来源类别,支持*作为通配符。privacySource:隐私来源类别,支持*作为通配符。input:输入类别,支持*作为通配符。sanitizer:清理器 (sanitizer) 类别,支持*作为通配符。persistRead:持久读取类别,支持*作为通配符。persistWrite:持久写入类别,支持*作为通配符。deprecated:在最新的 API 中已弃用的函数或方法。
函数标记有助于识别安全热点。一个简单的用例是找到所有可能导致 SQL 注入的方法,使用调用跟踪功能查看该方法的使用位置,以及攻击者是否可能控制该输入:
标记区分了以下类别:
- Sink:十几个 sink 类别。Sink 是可能导致漏洞的函数或方法,例如 execSQL,如果用户控制输入,它可能导致 SQL 注入。
- Source:来源函数和方法返回可能来自网络、IPC、文件系统(外部存储)等不可信的输入。
- Privacy Source:隐私来源 (privacy source) 函数和方法返回敏感输入,如用户位置、短信、Wi-Fi 端点,这些可能影响用户的隐私。
- Input:输入 (input) 方法通常是作为回调服务的可覆盖方法,其参数不可信且可能被攻击者操纵。一个典型的例子是内容提供者的 query、update、insert、delete 等方法。
- Sanitizer:清理器函数和方法用于针对特定 API 使用情况清除不可信的输入。
- Persist Read and Write:持久读取 (persist read) 和写入 (persist write) 有助于发现二阶注入漏洞。读取和写入操作是分开的。
- Deprecated:仅仅是已弃用的函数和方法。
动态
动态分析部分显示在动态分析期间收集的应用程序调用跟踪。
动态分析支持 Java、C、Flutter 和 Swift。

您可以点击任何堆栈跟踪 (stack trace) 来查看其帧。
您可以通过类名、函数、包、路径、值和类型来过滤调用跟踪。

调用覆盖率
Call Coverage(调用覆盖率)部分显示移动应用的 UI 流程 (UI flow),它向您显示 Ostorlab 机器人在使用应用时经过的屏幕或页面序列。
它模拟了用户如何与应用的受用户界面交互以实现其预期目标。
移动应用的典型 UI 流程可能包括以下步骤:
登录页面、导航、内容页面、身份验证、对话框和模态框。

流量
Traffic 部分列出了在整个动态扫描过程中收集的所有流量。

API
API 部分显示了当 Ostorlab 机器人与应用程序交互时应用程序生成的网络流量。
这可以帮助您检查 HTTP 请求/响应消息,其中包含 JSON payload、HTTP 方法、HTTP 协议版本、状态和请求资源的 URI。

搜索
您可以使用搜索 (search) 部分在所有应用程序文件中搜索特定的关键字。

日志
在“Logs”部分,您可以查看动态扫描过程中生成的设备日志。

Pcap 数据包捕获
Pcap 部分提供了收集的作为 pcap 文件的网络流量,可供下载以进行进一步检查。

Agent 日志
代理日志 (agent logs) 部分提供了对您可能实施的任何自定义代理的日志的访问权限。

漏洞
Vulnerabilities 选项将您重定向到静态和动态分析检测到的漏洞列表。
每个发现结果都有:名称、描述、建议、参考资料、技术细节。
