过去几年中,许多组织经历了数字化转型,而这一进程因 COVID-19 疫情而加速。
API 在这一转变中发挥着重要作用。 作为数字化转型的一部分,许多组织现在声称他们是“API-First”组织。 “API-First” 组织是指首先通过设计 API 来设计应用的组织。 然后,他们以 API 为基础开始设计应用的其余部分。 目的是让应用利用其基础 API 与其他应用进行通信并检索信息。
这些组织通常开发 API 并使用它们来支持与外部组织的合作伙伴关系,减少开发时间和成本,并增强内部系统、工具和团队之间的互操作性。
正如 F5 Labs 的《2021 年应用战略状况报告》所述,API 也是应用现代化的基石,可用于协助调整和更新旧的经典应用,以支持更新的、更模块化的应用语言、工具和平台。 此外,API(无论好的还是坏的)现在占据了总网络流量的绝大部分。
这是 API 这把“双刃剑”的第一刃。
API 这把“双刃剑”的第二个刃口是,根据 Gartner 的研究,到 2022 年,API 滥用将成为最常见的攻击媒介。 攻击者意识到 API 可能存在漏洞,甚至不受某些组织的保护,因为它们依赖于在其应用与其他应用之间共享的开放数据和信息流。 其他时候,这只是一个疏忽,但却允许攻击者快速、简单地进入应用。 这种情况需要特殊处理,例如对行业使用的所有 API 协议和技术进行本机支持。
GraphQL 是一种相对较新的 API 技术,在过去几年中发展迅速,并且持续受到关注。 GraphQL 由 Facebook 于 2012 年内部开发,现已成为 Linux 基金会的一部分,它正在克服 REST API 中存在的重大挑战。 与 REST 或 SOAP 相比,组织正在转向使用 GraphQL 来开发 API。
这些挑战包括数据的不足和过度获取、无需新 API 端点(GraphQL 使用一个端点)的更快前端开发、使用 GraphQL 查询的出色后端分析以及结构化模式和类型系统。
去年,GraphQL 的行业采用率已超过 22%1 ,覆盖创新者、早期采用者、以及创新采用生命周期的早期大多数。
GraphQL 有望成为未来几年 API 的主要标准之一。
然而,GraphQL 的迅速发展和接受度也迅速引起了网络对手的注意,其中一些对手已经开始利用 GraphQL 生态系统中的漏洞并开始开发工具来攻击它们。
对使用 GraphQL 的 API 的攻击技术包括传统的 SQL 注入,以及利用 GraphQL 规范来泄露有关 API 的数据并利用其为攻击者带来优势的新攻击。
此外,还引入了新的拒绝服务 (DoS) 攻击方法,利用 GraphQL 构建的 API 并快速耗尽服务器资源。
从Advanced WAF(API 安全 - 新一代 WAF) v16.1 开始,F5 现在原生支持 GraphQL API 的安全性。
首先,F5 开发了 GraphQL 流量的本机解析,以允许应用Advanced WAF(API 安全 - 新一代 WAF)攻击签名。
一方面,这种方法将在有效载荷的正确位置检测到攻击(在值上运行签名);另一方面,这种方法将阻止由于攻击签名在 GraphQL 请求的错误部分运行而导致的误报。
其次,F5 创建 GraphQL 策略模板和内容配置文件作为application安全策略的一部分。
在这个新的内容配置文件中,用户可以配置参数的总长度和值长度,并根据自己的策略进行限制。
此外,用户可以配置最大结构深度,消除可能导致 DoS 攻击的递归 GraphQL 查询;以及最大批量查询,限制一个 HTTP 请求中不同 GraphQL 查询的数量。
还可以强制执行自省查询,这可以帮助攻击者了解 API 结构并使他们更成功破坏应用程序。
为了解决这个问题,F5 还增加了对我们的声明式策略配置的支持、使用我们的行为 DoS 功能对容量攻击 DoS 的保护、以及使用 F5 Advanced WAF(API 安全 - 新一代 WAF)中的 DataGuard 功能对响应进行过滤。
总而言之,GraphQL 提供了创建和管理 API 的新方法,增强了现有经典应用的现代化,并支持数字化转型。 但一如既往,任何新技术都会有更多的威胁利用其中的漏洞,让您措手不及。
立即开始使用F5 Advanced WAF(API 安全 - 新一代 WAF)保护您的 GraphQL API!
欲了解更多信息,请查看我们的 DevCentral 帖子和YouTube 上的 Lightboard 课程。
1 2020 年 API 状态报告,Postman