自新冠疫情以来,数字经济持续扩张,90%的组织都在扩展其现代应用架构。F5的《2023年应用策略现状报告》显示,在接受调查的1,000名全球IT决策者中,超过40%的人将其应用组合描述为“现代化”。过去几年,这一比例稳步增长,预计到2025年将超过50%。然而,随着现代应用日益增多、微服务得到更广泛应用,API和API端点也迅速激增,导致潜在漏洞和攻击面呈指数级扩大。
根据F5首席技术官办公室发布的报告《API持续激增》,2021年全球约有2亿个API,预计到2030年将接近20亿个。除了API快速增长带来的复杂性之外,跨混合云和多云环境管理分布式应用也构成了挑战。在《2023年应用策略现状报告》中,受访者表示,在多云环境中部署应用时,管理多种工具和API的复杂性是他们面临的首要挑战。实施一致的安全策略和优化应用性能并列第二,且与首要挑战差距不大。

为何API安全对企业利润至关重要
API不仅是现代应用的构建基础,也是数字业务的核心。F5 2023年报告显示,58%的受访组织表示,其至少一半的收入来自数字服务。API支持用户与应用以及应用之间的通信。由于API可用于访问客户隐私数据和企业内部信息,因此成为攻击者眼中极具价值的目标。2022年,API是攻击者青睐的攻击途径。
在整体应用安全策略中,保护API至关重要。攻击可能造成严重后果,其影响远不止侵犯消费者隐私(这本身已经很严重),还可能进一步危害公共安全并导致知识产权损失。以下是2022年发生的各类API攻击的一些示例。
- 消费者隐私:Twitter遭受了持续多年的API攻击。2022年12月,黑客窃取了2亿Twitter用户的个人资料数据和电子邮件地址。4个月前,CloudSEK研究人员发现3,207款移动应用泄露了有效的Twitter API密钥和机密信息。而在此事发生的1个月前,黑客曾利用一个API漏洞窃取并出售540万用户的数据。
- 公共安全:一个研究团队在约20家主要汽车制造商的系统中发现了严重的API安全漏洞,其中包括Toyota、Mercedes和BMW。如今,许多汽车的功能类似于智能设备,因此黑客不仅能窃取车辆识别码(VIN)和车主个人信息,还能追踪车辆位置并控制远程管理系统,从而解锁和启动车辆,甚至使车辆完全无法使用。
- 知识产权:一名遭到针对性攻击的CircleCI员工成为恶意软件攻击的受害者。CircleCI是一个CI/CD平台,全球有超过100万名开发者使用该平台交付代码。该员工拥有生成生产环境访问令牌的权限,因此黑客得以窃取客户的API密钥和机密信息。此次入侵近3周未被发现。由于无法确定客户的机密信息是否被盗并用于未经授权访问第三方系统,CircleCI只能建议客户轮换项目API令牌和个人API令牌。
这些API攻击事件为我们敲响了警钟。当API存在安全漏洞且未得到保护时,其长期影响可能远不止经济损失。因此,API安全至关重要。
F5 NGINX 如何帮助保护您的 API
The 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多种高级攻击特征、机器人程序特征和威胁活动。它支持实施左移策略并轻松实现API安全自动化,从而将安全即代码集成到CI/CD流水线中。在与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速度快、行为可预测且易于扩展。
- 灵活性:支持十多种语言和平台。
GitHub是GraphQL的知名用户之一。出于可扩展性和灵活性方面的考虑,GitHub于2016年改用GraphQL。
为什么使用gRPC API?
使用gRPC API的主要优势包括:
- 性能:轻量、紧凑的数据格式可最大限度降低资源需求,并支持快速编解码消息
- 高效:protobufs数据格式通过序列化结构化数据来简化通信
- 可靠性:必须使用HTTP/2和TLS/SSL,从而默认提升安全性
大部分处理能力来自客户端,而管理和计算任务则卸载到托管资源的远程服务器。gRPC适用于通常需要固定数据量或处理量的用例,例如微服务之间的流量,或请求方(如IoT设备)需要节省有限资源的数据收集场景。
Netflix是广为人知的gRPC API用户之一。
使用NGINX App Protect WAF保护GraphQL API
NGINX App Protect WAF 现已支持GraphQL API,此外还支持REST和gRPC API。它通过应用攻击特征、消除恶意利用并抵御攻击来保护GraphQL API。系统会对GraphQL流量进行原生解析,使NGINX App Protect WAF能够根据GraphQL语法和配置文件检测违规行为并应用攻击特征。借助对内省查询的可见性,NGINX App Protect WAF可以阻止此类查询,还可以阻止响应中检测到的模式。此方法有助于检测攻击,并在有效负载的适当部分运行特征,从而减少误报。
观看此演示,了解NGINX App Protect WAF如何保护GraphQL API免受攻击。
 
使用NGINX App Protect WAF保护GraphQL API的优势:
- 定义安全参数根据组织策略,在GraphQL模板和内容配置文件中设置参数的总长度和值,并将其纳入应用安全策略
- 减少误报,通过精细化控制更准确地检测GraphQL请求中的攻击,从而提高攻击防护的准确性
- 缓解恶意利用:定义单个HTTP请求中批量查询的最大数量,以降低恶意利用和攻击的风险
- 阻止DoS攻击:在内容配置文件中配置最大结构深度,以阻止递归查询引发的DoS攻击
- 限制API风险暴露,对内省查询实施约束,防止黑客了解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攻击
安全运营团队和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支持通过声明式策略实现一致的应用安全。这些策略可由安全运营团队创建,API开发团队则可管理和部署API安全措施,从而实现更精细的控制并提高敏捷性。如果需要在混合云和多云环境中大规模实现API安全自动化,NGINX App Protect WAF可以提供帮助。
总结
现代应用组合持续增长,随着微服务的使用,API数量也在加速增加。API安全复杂且极具挑战性,对于在混合云或多云环境中运营的组织尤其如此。API安全缺失可能造成严重的长期影响,损失远不止金钱成本。NGINX App Protect WAF提供全面的API安全防护,可保护REST、GraphQL和gRPC API,并帮助安全运营和API团队将安全左移,在整个API生命周期和分布式环境中实现安全自动化。
立即试用NGINX App Protect WAF,享受30天免费试用。
其他资源
博客:使用NGINX App Protect WAF保护API网关
电子书:现代应用和API安全
电子书:掌握API架构:O’Reilly出品
数据表:NGINX App Protect WAF
关于作者

相关博客文章
NGINX Plus R26 正式发布
NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。
使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。
Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。
NGINX Plus R19 正式发布
NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。
NGINX现已正式加入F5
NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。
