近年来,API的广泛应用显著改变了企业的运营方式。API支持不同应用程序相互通信和交换数据,从而提高业务流程和软件开发的效率与成效。
然而,随着API使用量增加,API蔓延风险也随之而来。在这种情况下,API由分散的团队在分布式架构中创建和部署,往往缺乏适当的监督和管理。这可能给企业带来一系列新的安全风险,因为每个API都可能成为攻击者未经授权访问敏感数据和系统的入口。
API优先软件开发的兴起
API蔓延的主要驱动因素之一是微服务的激增。微服务架构将大型应用拆分为多个较小的独立应用,这些应用通过API相互通信。这样,复杂应用便可拆分为多个独立部分,由不同团队分别管理,并可根据流量需求独立扩展。
微服务为开发人员带来诸多优势,包括更高的灵活性和可扩展性。但这些优势也伴随着取舍,例如复杂性增加。因此,许多企业采用API 优先的微服务构建方法。在这种策略中,应用和服务的设计流程从 API 契约开始。该契约说明 API 的工作方式,包括请求和响应的格式。
随着API激增,攻击面不断扩大
如果不重视API安全,尤其是在设计和部署阶段,API优先的软件开发优势很容易被削弱。从最基本的层面来看,API越多,攻击面就越大。API在现代软件开发中发挥着至关重要的作用,但与此同时,也越来越容易被利用。
2018年,Gartner预测,到2022年,API将成为针对应用最常见的攻击途径。事实上,该预测认为这一趋势要到数年后才会出现,未免过于乐观。当时,大型企业已经发生了影响数百万用户的重大API数据泄露事件,此后此类事件愈发常见:
- 2018年,Facebook报告称,至少有5,000万用户的数据面临风险。此前,攻击者利用该公司的开发者API,获取了与用户个人资料页面关联的个人身份信息(PII),包括姓名、性别和家乡。
- 2019年,LinkedIn报告称,一名黑客利用API,通过数据抓取技术收集了超过7亿用户的信息,并将这些信息发布到暗网上出售。
- 2021年,Peloton维护的一个API允许恶意行为者请求获取个人身份信息(PII),包括年龄、性别、所在城市、体重和出生日期。
- 2022年,Twitter处理了一起API泄露事件,该事件导致540万个用户账户的数据遭到泄露,其中包括电话号码和电子邮件地址。
- 2023年,T-Mobile报告称,一起API泄露事件导致3,700万客户的数据被盗,其中包括姓名、电子邮件地址、住址、电话号码、出生日期等信息。
这些攻击范围广、类型多,凸显了安全和工程负责人面临的挑战。有些攻击会利用因配置不当而暴露在互联网上的API;有些攻击会使用因配置不当而暴露在代码存储库中的API密钥或其他身份验证方法;还有一些攻击者会利用VPN漏洞进入内部环境,并通过内部API窃取数据。
抵御API攻击需要正确的策略和工具
防范API威胁最常见的方法,是将传统Web应用安全策略与现代API安全技术相结合。面对当今多样化的API威胁,传统策略往往力有不逮。自动化API发现和API对比测试等现代技术旨在弥补这些不足。
企业必须兼顾右侧防护(实施全局控制和安全策略,保护已部署的应用和API)与左移安全(将安全机制融入代码,在应用和API投入生产前消除漏洞)。这两种策略都无法单独提供全面的API安全防护,因此,防止安全事件的关键在于采用涵盖以下三类API安全实践的整体方法:
- API安全态势管理:提供对一组API安全状态的可见性,包括暴露的数据类型和请求方法
- API安全测试,在API生命周期的关键节点评估其安全性,以识别潜在漏洞
- API运行时保护,在API运行期间检测并阻止恶意请求到达API
通过结合适当的策略和工具,组织可以更有效地保护API免受攻击,并保障软件系统的安全。下面介绍平台工程负责人为保护API全生命周期而需要实施的重要功能和工具。
什么是API安全态势管理?
API安全态势管理可帮助您了解API的数量、类型、位置及其暴露的数据。这些信息有助于您了解每个API的相关风险,从而采取适当措施加以保护。
主要功能:
- 自动化API发现,自动持续发现API,全面了解环境中部署的API
- API特征分析,按协议或架构(REST、GraphQL、SOAP等)识别 API 并进行分类,同时绘制敏感数据流图,以了解风险敞口
- API编目:维护完整的API清单,鼓励软件团队复用现有API,并帮助安全运营团队全面了解贵组织的安全态势
代表性技术:
- Web application and API protection(WAAP),利用在全球API基础设施中的独特优势,分析进出各环境的流量、识别API,并全面了解面临的风险
- 内联或基于代理的发现,将代理附加到现有API网关、负载均衡器或Kubernetes Ingress控制器,以镜像并分析API流量
- 带外或无代理发现,使用流量镜像或导出的日志和指标来分析API流量;与其他技术相比,通常对API和威胁的可见性较低
- 域名爬虫:API安全提供商可能会提供爬虫,用于探测域名中暴露的API端点。这些端点会使流量绕过可实施安全策略的API网关和负载均衡器。
请务必注意,没有任何技术能够可靠地发现架构中的每个API。大多数发现技术依赖现有负载均衡器、API网关和Ingress控制器提供的可见性,因此不太可能发现绕过这些架构组件的错误配置。
归根结底,代码审查和遵循API优先的最佳实践能够更有效地实现长期预防。不过,自动化API发现工具仍有助于快速了解安全状况,并发现那些原本可能处于无人管理且未受保护状态的API。
什么是API安全测试?
API安全态势管理关注企业范围内的安全,而API安全测试则主要针对单个API。最基本的API安全测试通过测试API运行时(即API背后运行的应用程序),帮助识别和防范漏洞及其相关风险。它有助于确保满足基本安全要求,包括身份验证、授权、速率限制和加密方面的要求。
主要功能:
- API契约测试,利用API的OpenAPI规范,通过比较客户端请求和服务器响应,验证API是否按设计运行。该测试采用“由内而外”的方法,在API部署前发现其是否存在漏洞。
- 动态应用安全测试(DAST),模拟针对API运行时的攻击以发现漏洞,并像恶意用户一样从“外到内”评估API。
代表性技术:
- API契约测试软件,用于运行测试的专用工具,可对API请求和响应进行分段,以验证客户端和服务器行为是否符合API契约
- 应用安全测试(AST)软件:通过模拟攻击来分析和测试应用(包括API)的工具
市场上既有开源的契约测试工具,也有专业API安全厂商提供的商业产品。应用安全测试(AST)市场已有数十年历史,越来越多的厂商开始提供专门用于API的扫描和测试工具。
什么是API运行时保护?
API运行时保护是指在API运行和处理请求时对其进行保护。它强调将安全机制融入平台基础设施和API自身的代码中,旨在识别并阻止部署后出现的恶意API请求。
主要功能:
- 访问控制:实施身份验证(authN)和授权(authZ)策略
- Network security,对整个网络中的通信进行加密和保护
- 应用保护:保护API运行时免受恶意API请求和攻击
- 实时监控:直观呈现、追踪并缓解整个API基础设施中的攻击
代表性技术:
- API网关:应用并实施安全策略,包括身份验证、授权、速率限制、访问控制列表和加密
- Web应用防火墙 (WAF),通过基于攻击特征主动监控和过滤流量,保护API和应用免受复杂的第7层攻击
- 身份提供商 (IdP),一种存储并验证用户身份的服务,通常与单点登录(SSO)提供商配合使用,以对用户进行身份验证
并非所有API网关和WAF/WAAP都具备同等能力。某些服务,尤其是云平台及其他平台提供的原生解决方案,缺乏多云和混合架构所需的全局可见性和标准化能力。
API安全最佳实践
鉴于保护API的重要性,必须有条不紊地开展API安全工作。平台工程和安全负责人必须协同应对API全生命周期中的安全要求。如前所述,这大致对应三个主要实践领域:API安全态势管理、API安全测试和API运行时保护。换言之,需要重点掌握API的数量、如何测试API中的错误,以及如何将安全机制融入代码。
结论
与所有网络安全工作一样,API安全是一个持续推进的过程,需要网络工程师、安全运营负责人、平台工程负责人和软件开发工程师等众多利益相关方协作。好消息是,保护API并非无章可循。
大多数组织已采取措施,应对跨站脚本、注入、分布式拒绝服务等可能以API为目标的常见攻击。经验丰富的安全专业人员可能也十分熟悉上述许多最佳实践。无论贵组织运营多少个API,目标都是制定可靠的API安全策略,并持续主动地加以管理。
开始免费试用NGINX API Connectivity Stack 30天,其中包括用于管理、治理和保护API的F5 NGINX Management Suite API Connectivity Manager、用作API网关的F5 NGINX Plus,以及提供高级API安全防护的F5 NGINX App Protect WAF and DoS。
其他资源
相关博客文章
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的开源产品和商业产品。
