什么是 API 安全测试以及它是如何工作的? | Synopsys
目录

定义

API 安全测试针对应用程序编程接口 (API) ,就其安全性、正确性和可靠性进行测试,以确保其符合组织的最佳实践。

API 安全测试的起源是什么?

API 的现代概念产生于 2000 年,当时 Salesforce 以“互联网即服务”的模式推出了基于 Web 的销售自动化 API。从那时起,API 迅速流行和普及。

如今,API 的数量不断增长,是各行各业现代软件开发的基本组成部分。2020 年,61% 的开发人员称其使用的 API 数量多于上一年。71% 的人预计在未来几年会使用更多 API。

API 使用量增加,部分原因是组织为鼓励使用 API 制定了标准。OpenAPI 和 AsyncAPI 等规范有助于定义各种用于描述 API 的必需文件。然后,这些文件可帮助组织识别必要的文档、集成和测试工具,以有效地管理其 API。


API 安全测试如何工作?

安全测试有助于确保满足基本安全要求,包括用户访问、加密和身份验证。API 扫描背后的理念是精心设计输入,以发现 API 中的错误和未定义的行为,其在本质上是模仿潜在黑客的行为和攻击向量。

API 安全测试从定义要测试的 API 开始。测试工具使用各种规范格式(包括 OpenAPI v2/v3、Postman Collections 和 HAR 文件)提供有关 API 的输入和输出的信息。API 安全测试使用此信息,根据 API 期望的输入来构建定制的模糊输入。

API 安全测试输出报告,内容是关于在模糊化 API 时发现的漏洞或错误。这可能包括 SQL 和 OS 命令注入、授权/身份认证旁路、路径遍历问题和 OWASP Top 10 API 漏洞(包括身份验证失效、错误的安全配置和数据泄露)等结果。


为什么 API 安全测试很重要?

API 是许多应用程序的核心,为开发人员提供强大的接口,使其能够访问组织提供的服务。确保 API 符合已发布的规范,并能灵活地应对不良和潜在的恶意输入,这对组织的整体安全至关重要。

传统的 DAST 扫描工具无法完全覆盖 API;它们只覆盖一小部分 API。如果组织的前端无法与所有 API 端点进行交互,传统的 DAST 扫描工具则会将其遗漏。因此,必须采用全面的 API 测试策略,以解决 API 所有端点中的问题。

API 安全测试 | Synopsys

API 安全测试有哪些优点?

在最基本的层面上,API 安全测试有助于识别和预防漏洞及其相关的潜在组织风险。

具体而言,API 安全测试是就被测试的 API 和组织的整体战略和最佳实践进行精细调整的。API 扫描工具在更深层次工作,检查单页 Web 应用程序、物联网设备或移动应用程序的 API。通过了解 API 的输入预期,API 扫描工具能够智能地模糊化数据,以发现隐藏的错误。

API 安全测试工具还有助于提升 API 的正确性,扫描 API 的业务逻辑,而不仅仅是前端提供的输入验证。

API 安全测试还可以帮助识别 API 与已发布的 API 规范之间的差异。例如,如果某端点应采用特定 HTTP 状态响应,但在扫描期间检测到另一个状态,则测试工具将提醒相应的利益相关者。这有助于确保使用 API 的开发人员获得与已发布的规范相一致的相关经验。


API 安全测试有哪些挑战?Synopsys 如何提供帮助?

Synopsys 提供 API 扫描器,这是一款功能强大的自动化 RESTful 和 GraphQL API 安全扫描工具,能够测试 API 响应的正确性并扫描常见安全漏洞。

API 扫描器还可作为本地设备使用,因此能扫描内部 API。API 扫描器不依赖于语言,能够扫描任何提供 RESTful 或 GraphQL 接口的内容。无论应用程序如何实施部署,都能够对其进行扫描。

能够帮助解决的挑战包括:

  • 大型和复杂的 API 很难手动测试;API 扫描器能够帮助实现整个自动化流程。
  • 未记录的 API 使用 Postman 或 HAR 文件摄取功能,生成初始 OpenAPI 3 文档。API 扫描器使用内置的内部观测功能,可自动识别 GraphQL API 发生的更改。很少有其他产品可以执行 GraphQL DAST 扫描。
  • 组织在扫描内部 API 方面面临着挑战。Synopsys 提供独立的本地解决方案。
  • 某些 API 需要对身份验证进行适当测试。能够遵循所有 API 身份验证要求,因此能够完全扫描所有端点。它还能够识别 API 中的授权/身份验证旁路问题。
  • 是一款智能模糊测试工具,因此它能够使用自己了解的 API 可接受参数,来识别不太明显的错误。

继续阅读

解决方案
API 扫描工具

自动化 RESTful 和 GraphQL API 安全扫描工具

博客
什么是 API 安全?
博客
什么是威胁建模?