Web API 模糊测试

Web API fuzzing 对 API 操作参数进行模糊测试。模糊测试将操作参数设置为意外值,在 API 后端引起意外行为和错误。这有助于您发现其他 QA 流程可能遗漏的错误和潜在安全问题。

除了极狐GitLab 安全的其他安全扫描器和您自己的测试过程,我们建议您使用模糊测试。如果您使用极狐GitLab CI/CD,您可以运行模糊测试作为 CI/CD 工作流程的一部分。

当 Web API 模糊测试运行时

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

请注意,对 API 模糊测试模板进行了以下更改:

  • 在 14.0 及更高版本,您必须在 .gitlab-ci.yml 文件中定义一个 fuzz 阶段。
  • 在 13.12 及更早版本,API 模糊测试模板定义了 buildtestdeployfuzz 阶段。fuzz 阶段默认最后运行。预定义的阶段已被弃用,并从 API-Fuzzing.latest.gitlab-ci.yml 模板中删除。它们将在未来的极狐GitLab 版本中被删除。

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

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

术语

  • 断言:断言是检查模块使用的检测模块,用于触发故障。许多断言都有配置。检查可以使用多个断言。例如,日志分析、响应分析和状态代码是常用断言,由检查一起使用。具有多个断言的检查允许它们打开和关闭。
  • 检查:执行特定类型的测试,或执行检查以查找特定类型的漏洞。例如,JSON 模糊检查对 JSON 有效负载进行模糊测试。API 模糊器由多个检查组成。检查可以打开和关闭配置文件中的检查。
  • 故障:在模糊测试期间,由断言检测到的故障称为故障。故障被调查以确定它们是否是安全漏洞、非安全问题或假阳性。故障在被调查之前没有已知的漏洞类型。示例漏洞类型包括 SQL 注入和拒绝服务。
  • 配置文件:配置文件有一个或多个测试配置文件,或子配置。您可能有一个功能分支的配置文件,另一个配置文件具有主分支的额外测试。

极狐GitLab 技术支持

如果您在配置过程中遇到任何问题,您可以在极狐GitLab 官方论坛上发帖求助,您也可以直接扫描下方二维码咨询专业人员:

技术支持