Web API 模糊测试

  1. Tier: 旗舰版
  2. Offering: JihuLab.com,私有化部署

Web API 模糊测试对 API 操作参数进行模糊测试。模糊测试将操作参数设置为意外值,以便在 API 后端引发意外行为和错误。这有助于发现其他质量保证过程可能遗漏的漏洞和潜在的安全问题。

您应该在其他安全扫描器和您自己的测试过程中使用模糊测试,例如在极狐GitLab 安全中使用。如果您使用 极狐GitLab CI/CD,您可以将模糊测试作为 CI/CD 工作流程的一部分运行。

有关概述,请参见 Web API Fuzzing

Web API 模糊测试的运行时机#

Web API 模糊测试在 CI/CD 流水线的 fuzz 阶段运行。为了确保 API 模糊测试扫描最新代码,您的 CI/CD 流水线应在 fuzz 阶段之前的某个阶段将更改部署到测试环境。

如果您的流水线配置为在每次运行时部署到同一个 Web 服务器,则在另一条流水线仍在运行时运行流水线可能会导致竞争条件,其中一条流水线覆盖另一条的代码。在模糊测试扫描期间,应排除对要扫描的 API 的更改。API 的唯一更改应来自模糊测试扫描器。在扫描期间,对 API 的任何更改(例如,用户、计划任务、数据库更改、代码更改、其他流水线或其他扫描器)都可能导致结果不准确。

您可以使用以下方法运行 Web API 模糊测试扫描:

  1. OpenAPI 规范 - 版本 2 和 3。
  2. GraphQL Schema
  3. HTTP Archive (HAR)
  4. Postman Collection - 版本 2.0 或 2.1

术语表#

  1. Assert:断言是检测模块,用于检查触发故障。许多断言都有配置。检查可以使用多个断言。例如,日志分析、响应分析和状态码是检查一起使用的常见断言。具有多个断言的检查允许它们打开和关闭。
  2. Check:执行特定类型的测试,或对某种类型的漏洞进行检查。例如,JSON 模糊测试检查执行 JSON 负载的模糊测试。API 模糊测试由多个检查组成。检查可以在配置文件中打开和关闭。
  3. Fault:在模糊测试期间,断言识别的失败称为故障。故障被调查以确定它们是安全漏洞、非安全议题还是误报。在调查之前,故障没有已知的漏洞类型。示例漏洞类型包括 SQL 注入和拒绝服务。
  4. Profile:配置文件有一个或多个测试配置文件或子配置。您可以为特性分支设置一个配置文件,并为主分支设置另一个额外测试的配置文件。