跳转至

使用 IDE:搜索与分析

IDE 的目标是简化手动评估,并提供在 Ostorlab 完成的所有分析(从污点分析 (taint analysis)、动态调用跟踪、拦截的流量到扫描的 API 请求)之上编写自定义检查的能力。

访问 IDE

要访问 IDE,请前往您的扫描页面并点击“analysis”。

analysis_button

导航

IDE 的各个部分列在左侧: ide_navigation

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

文件

此部分允许您检查 APK 和 IPA 文件的内容: files_section 您将看到构成该应用的文件和目录列表。这些文件可能包括应用的代码、图像和声音等资源、配置文件以及应用使用的其他资产。 list_files

IDE 支持:

  • 针对大多数编程语言的代码高亮显示: code_highlighting
  • 二进制 Plist 提取: plist_extraction

HTTP 文件夹

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

静态

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

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

您可以使用过滤器选项卡在表格中列出所有方法,然后选择一个或多个方法以在映射中突出显示它们的连接。 static_filter 静态分析中的搜索功能支持可以将多个关键字链接在一起。例如,要搜索所有包含单词“mem”的方法。您可以输入 search 冒号 mem。 static_search_example 支持的关键字列表为:

  • 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。 dynamic_analysis

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

调用覆盖率

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

流量

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

API

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

搜索

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

日志

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

Pcap 数据包捕获

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

Agent 日志

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

漏洞

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