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 模糊测试模板定义了
build
、test
、deploy
和fuzz
阶段。fuzz
阶段默认最后运行。预定义的阶段已被弃用,并从API-Fuzzing.latest.gitlab-ci.yml
模板中删除。它们将在未来的极狐GitLab 版本中被删除。
如果您的流水线配置为在每次运行时部署到同一个 Web 服务器,则在另一个流水线仍在运行时运行流水线,可能会导致一个流水线覆盖另一个流水线的代码的竞争条件。在模糊扫描期间,应将要扫描的 API 从更改中排除。API 的唯一更改应该来自模糊扫描器。扫描期间对 API 所做的任何更改(例如,用户、计划任务、数据库更改、代码更改、其他流水线或其他扫描程序)都可能导致不准确的结果。
您可以使用以下方法运行 Web API 模糊扫描:
- OpenAPI 规范 - 版本 2 和 3。
- GraphQL Schema
- HTTP 存档 (HAR)
- Postman 收集 - 版本 2.0 或 2.1
术语
- 断言:断言是检查模块使用的检测模块,用于触发故障。许多断言都有配置。检查可以使用多个断言。例如,日志分析、响应分析和状态代码是常用断言,由检查一起使用。具有多个断言的检查允许它们打开和关闭。
- 检查:执行特定类型的测试,或执行检查以查找特定类型的漏洞。例如,JSON 模糊检查对 JSON 有效负载进行模糊测试。API 模糊器由多个检查组成。检查可以打开和关闭配置文件中的检查。
- 故障:在模糊测试期间,由断言检测到的故障称为故障。故障被调查以确定它们是否是安全漏洞、非安全问题或假阳性。故障在被调查之前没有已知的漏洞类型。示例漏洞类型包括 SQL 注入和拒绝服务。
- 配置文件:配置文件有一个或多个测试配置文件,或子配置。您可能有一个功能分支的配置文件,另一个配置文件具有主分支的额外测试。
极狐GitLab 技术支持
如果您在配置过程中遇到任何问题,您可以在极狐GitLab 官方论坛上发帖求助,您也可以直接扫描下方二维码咨询专业人员: