自新冠疫情爆发以来,数字经济不断发展壮大,90% 的企业和组织正在发展其现代应用架构。F5 的《2023 年应用策略现状报告》显示,在接受调查的 1,000 名全球 IT 决策者中,超过 40% 的受访者将其应用组合称作“现代应用”。在过去几年中,这一比例不断稳步增长,预计到 2025 年将超过 50%。然而,随着现代应用和微服务的增加伴随着 API 和 API 端点大量增加,极大的增加了潜在的漏洞和攻击面。
根据 F5 CTO 办公室的《API 持续蔓延》报告,2021 年全球约有 2 亿个 API,预计到 2030 年该数字将接近 20 亿。这种快速 API 增长带来的复杂性加剧了在混合云和多云环境中管理分布式应用程序的挑战。《2023 年应用策略现状报告》的受访者表示,在多云环境中部署应用时,管理多种工具和 API 的复杂性是他们面临的首要挑战。执行一致的安全防护策略和优化应用性能并列为第二大挑战。
为什么 API 安全防护对于您的业务成败至关重要
API 不仅是现代应用的构建模块,而且还是数字业务的核心——在 F5 2023 年报告调查中,58% 的受访企业表示其至少一半的收入源自数字服务。API 支持用户到应用和应用到应用的通信,而且提供对专有客户数据和企业内部信息的访问能力,因此成为了攻击者眼中的有利可图的目标。API 是 2022 年的首选攻击向量。
保护 API 是整个应用安全防护策略的重中之重。攻击可能会带来的严重性远超过侵犯消费者隐私(尽管这很严重)的毁灭性后果,危害公共安全并导致知识产权流失。以下列举了一些 2022 年发生的此类 API 攻击。
- 消费者隐私 – Twitter 遭遇了一次跨度多年的 API 攻击。2022 年 12 月,黑客窃取了 2 亿 Twitter 用户的个人资料数据和电子邮件地址。四个月前,CloudSEK 研究人员发现多达 3,207 个移动应用泄露有效的 Twitter API 密钥。而在这之前的一个月,黑客利用一个 API 漏洞窃取并出售了 540 万用户的数据。
- 公共安全 – 一支研究人员团队在大约 20 家顶级汽车制造商(包括丰田、梅赛德斯和宝马)中发现了高危 API 安全防护漏洞。如今,许多汽车就像智能设备一样,黑客不再只是窃取车辆识别码和车主个人信息,他们可以跟踪汽车位置,并控制远程管理系统,以解锁和启动汽车或完全禁用汽车。
- 知识产权 – CircleCI(一个供全球上百万开发人员发布代码的 CI/CD 平台)的一名员工成为了恶意软件攻击的目标受害者。由于该员工拥有生成生产访问令牌的权限,因此黑客得以窃取客户的 API 密钥。该入侵事件持续近三周未被察觉。由于无法判断客户密钥是否被盗并用于对第三方系统进行未经授权的访问,CircleCI 只能建议客户轮换项目和个人 API 令牌。
这些 API 攻击给大家敲响了警钟。如果 API 存在安全防护漏洞而未予保护,长期后果远不止经济损失。API 安全防护的重要性怎么强调都不为过。
F5 NGINX 如何帮助您保护 API
NGINX API 互联套件(NGINX API Connectivity Stack)解决方案可帮助您在多云环境中管理 API 网关和 API。通过将 NGINX Plus 部署为您的 API 网关(内置 NGINX App Protect WAF), 您能够有效防止常见的 API 攻击,轻松化解 F5《2023 年应用策略现状报告》中确定的三大 API 挑战(跨多云环境管理 API 复杂性、确保安全防护策略和优化应用性能),并防范上一节中所述的 API 攻击类型。NGINX Plus 可用于多种用途,包括部署为 API 网关,您可以快速路由 API 请求,对 API 客户端进行身份验证和授权以保护 API,并限制流量速率以防止基于 API 的服务出现过载情况。
NGINX Plus 提供开箱即用的保护,不仅针对 OWASP 十大 API 安全防护漏洞,而且还检查格式错误的 cookie、JSON 和 XML,验证允许的文件类型和响应状态代码,并检测用于掩盖攻击的规避技术。NGINX Plus API 网关可确保对 HTTP 或 HTTP/2 API 协议的保护,包括 REST、GraphQL 和 gRPC。
NGINX App Protect WAF 提供轻量级、高性能的应用和 API 安全防护功能,不仅提供基本的保护,防止 OWASP API 安全前十名和 OWASP(应用程序)前十名漏洞,而且还提供针对超过 7,500 个高级特征库、bot 特征库和威胁情报的安全防护。它支持安全防护左移策略 ,允许将安全防护即代码集成到 CI/CD 流水线中,以轻松实现 API 安全防护自动化。在针对 AWS、Azure 和 Cloudflare WAF 的测试中发现,NGINX App Protect WAF 能够提供强大的应用和 API 安全防护,同时保持更好的性能和较低的延迟。如欲了解更多详情,请查阅 GigaOm 报告。
NGINX App Protect WAF 已嵌入 NGINX Plus API 网关中,减少了一个 API 流量一个中间跳转。更少的跨层可以缩短延迟、降低复杂性并减少故障点。这与没有集成 WAF 的普通 API 管理解决方案形成了鲜明对比(后者要求您必须单独部署 WAF,设置完成后,API 流量必须分别遍历 WAF 和 API 网关)。NGINX 的紧密集成意味着高性能与安全防护的完美结合。
GraphQL 和 gRPC 兴起
应用和 API 开发人员不断寻求提高灵活性、速度以及易用性和部署便捷性的新方法。根据 Postman 发布的《2022 年 API 现状报告》,REST 仍然是当今最常用的 API 协议 (89%),但 GraphQL (28%) 和 gRPC (11%) 正日趋流行。从根本上说,API 协议的选择在很大程度上取决于应用的用途和适合业务的最佳解决方案。每种协议各具优势。
为何使用 GraphQL API?
使用 GraphQL API 的主要优势包括:
- 适应性强 – 客户端决定数据请求、类型和格式。
- 高效 – 不存在过度获取数据问题,请求根据已创建的模式运行,而且返回的数据正是(而且只是)请求的内容。请求和响应中的数据采用相同的格式,可确保 GraphQL API 快速、可预测且易于扩展。
- 灵活 – 支持十几种语言和平台。
GraphQL 的代表用户是 GitHub。出于可扩展性和灵活性的考虑,他们在 2016 年迁移至 GraphQL。
为何使用 gRPC API?
使用 gRPC API 的主要优势包括:
- 高性能 – 轻量级、紧凑的数据格式将资源需求降至最低,并支持快速的消息编码和解码。
- 高效 – protobufs 数据格式可序列化结构化数据,从而简化通信。
- 可靠 – 默认必选 HTTP/2 和 TLS/SSL,可提高安全防护。
大部分操作在客户端进行,而管理和计算则被卸载到托管资源的远程服务器上。gRPC 适用于通常需要一定数量的数据或处理的用例,例如微服务之间的流量或者需要请求者(如物联网设备)节省有限资源的数据收集。
gRPC API 的代表用户是 Netflix。
借助 NGINX App Protect WAF 保护 GraphQL API
除 REST 和 gRPC API 以外,NGINX App Protect WAF 现在还支持 GraphQL API。它通过应用攻击特征库、消除恶意利用和防御攻击来保护 GraphQL API。通过对 GraphQL 流量进行原生解析,NGINX App Protect WAF 能够根据 GraphQL 语法和配置文件检测违规行为并应用攻击特征库。借助检测 introspection 查询的可见性,NGINX App Protect WAF 可阻止违规行为并拦截在响应中检测到的模式。该方法有助于检测攻击,并在有效载荷的适当分段运行特征库,从而减少误报。
请观看此演示,了解 NGINX App Protect WAF 如何保护您的 GraphQL API 免受攻击。
借助 NGINX App Protect WAF 保护 GraphQL API 安全防护的优势:
- 定义安全参数 – 作为应用安全防护策略的一部分,根据企业策略在 GraphQL 模板和内容配置文件中设置参数的总长度和值
- 减少误报 – 通过细粒度控制提高攻击防御的准确性,从而更好地检测 GraphQL 请求中的攻击
- 减少恶意利用 – 定义单个 HTTP 请求的批量查询最大值,以降低恶意利用和攻击的风险
- 消除 DoS 攻击 – 在内容配置文件中配置最大结构深度,以阻止由递归查询引起的 DoS 攻击
- 限制 API 风险暴露 – 对 introspection 查询实施限制,以防止黑客发现可能存在漏洞的 API 结构
借助 NGINX App Protect WAF 保护 gRPC 双向流式传输 API
NGINX App Protect WAF 不仅支持一元消息类型,现在还支持 gRPC 双向流式传输,可帮助您保护使用消息流(客户端、服务器或两者)且基于 gRPC 的 API。这为 gRPC API 提供了全面的安全防护,无论何种通信类型。
NGINX App Protect WAF 通过应用您的模式、设置大小限制、拦截未知文件和防御资源耗尽类型的 DoS 攻击,保护 gRPC API 的安全。您可以将接口定义语言 (IDL) 文件导入 NGINX App Protect WAF,以应用您的 gRPC 消息结构和模式,并在适当的位置扫描攻击。这有助于准确地检测出企图通过 gRPC 来攻击您应用的威胁,并避免在没有上下文的情况下在错误的位置扫描安全防护问题时可能出现的误报。
请观看此演示,了解 NGINX App Protect WAF 如何保护您的 gRPC 双向流式传输 API 免受攻击。
使用 NGINX App Protect WAF 保护 gRPC API 安全防护的优势:
- 全面的 gRPC 保护 – 从一元到双向流式传输,无论何种通信类型,均可提供全面的安全防护
- 减少误报 – 通过应用 gRPC 消息结构和模式提高准确性,从而更好地检测 gRPC 请求中的攻击
- 阻止恶意利用 – 可阻止未知字段,确保 gRPC 消息中的每个字段都具有正确的类型和预期内容
- 消除 DoS 攻击 – 限制消息大小,以防止资源耗尽型 DoS 攻击
SecOps 和 API 开发团队都能管理并自动化 API 安全防护
根据 Postman 的《2022 年 API 现状报告》,在接受调查的 37,000 名开发人员和 API 专业人士中,20% 的受访者表示其企业每月至少发生一次 API 事件,深受数据丢失、服务中断、滥用或非法访问之害。相比之下,52% 的受访者每年遭受不到一次 API 攻击,这凸显了 API 安全防护左移策略中及早引入安全防护的重要性。因为 API 发布频率高于应用,左移策略正越来越多地被应用于 API 安全防护。当企业采用安全防护左移策略并将安全防护作为代码集成到 CI/CD 流水线中时,即可将安全防护融入 API 开发的每个阶段,这有助于开发人员保持敏捷并加快部署速度。
特定于 API 的一个关键保护点就是 API 模式验证,包括 gRPC IDL 文件和 GraphQL 查询。每个 API 都具有独一无二的模式,并且该模式因 API 版本而异。在采用自动化 API 模式时,只要您更新 API,就要更新该文件中的配置和代码。WAF 配置可根据 API 版本的变化自动部署。NGINX App Protect WAF 可以验证模式,核证请求是否符合 API 要求(方法、端点、参数等)。NGINX App Protect WAF 通过声明式策略(可由 SecOps 团队创建)实施一致的应用安全防护,API 开发团队能够管理并部署 API 安全防护,以实现更细粒度的控制和敏捷性。要想在混合环境和多云环境中大规模地自动化 API 保护,NGINX App Protect WAF 可助您一臂之力。
总结
随着现代应用组合的不断扩展和微服务的普及,API 数量激增。API 安全防护非常复杂性和具有挑战性,对于在混合环境或多云环境中运行的企业来说更是如此。缺乏 API 安全防护不仅会造成经济损失,而且还会产生毁灭性的长期后果。NGINX App Protect WAF 提供全面的 API 安全防护,包括对 REST、GraphQ L 和 gRPC API 的保护,可帮助您的 SecOps 和 API 团队在整个 API 生命周期跨分布式环境实现安全防护左移和安全防护自动化。
如欲亲自试用 NGINX App Protect WAF,请立即下载 30 天免费试用版。
更多资源
博客: 使用 NGINX App Protect WAF 保护 API 网关
电子书: 现代应用和 API 安全
O’Reilly 电子书: 掌握 API 架构
产品说明: NGINX App Protect WAF