NGINX.COM
Web Server Load Balancing with NGINX Plus

近年来,API 的激增极大地改变了企业运营方式。API 支持不同的应用相互通信和交换数据,可让业务流程和软件开发变得更加高效和有效。

然而,随着 API 使用的增多,API 蔓延的风险也随之产生,即跨分布式团队和架构创建和部署 API 往往缺乏适当的监督和管理。这可能会给企业带来一系列新的安全风险,因为每个 API 都是攻击者未经授权访问敏感数据和系统的潜在入口点。

 

API 优先软件开发的兴起

API 蔓延的主要驱动因素之一是微服务的激增。微服务架构将一个大型应用分解为许多通过 API 相互通信的小型应用。这就将复杂的应用分解为独立的组件,这些组件可由各个团队进行管理,并能够彼此独立扩展以满足流量需求。

微服务为开发人员提供了许多优势,包括更高的灵活性和可扩展性。但这些优势是有代价的,其中就包括额外的复杂性。因此,许多企业采用 API 优先方法来构建微服务。在实施这种策略时,应用和服务的设计流程都是先制定 API 契约,该契约概述了 API 的工作方式,细化到请求和响应格式。

 

攻击面随 API 激增而不断扩大

若不重视 API 安全防护,特别是在设计和部署过程中,那么 API 优先软件开发的优势就很容易被削弱。从根本上讲,API 越多,攻击面越大。尽管 API 在现代软件开发中发挥着重要作用,但它们同时也更容易被攻击者盯上。

2018 年,Gartner 预测,到 2022 年,API 将成为应用中最常见的攻击向量。实际上,他们对形势的预测过于乐观了。影响数百万用户的重大 API 漏洞事件在多家大型公司不断上演,而且只会愈加频繁:

  • 2018 年,Facebook 报告称,攻击者利用该公司的开发人员 API 窃取了与用户个人资料页面相关联的个人身份信息(PII),包括姓名、性别及籍贯,至少 5000 万用户的数据处于风险之中
  • 2019 年,LinkedIn 报告称,一名黑客利用数据抓取技术通过 API 收集了 7 亿多用户的信息,并在暗网上发布兜售。
  • 2021 年,Peloton 维护的 API 出现漏洞,允许攻击者请求 PII,包括年龄、性别、城市、体重和出生日期。
  • 2022 年,Twitter 发生了一起 API 漏洞事件,540 万用户帐户的数据惨遭泄露,包括电话号码和电子邮件地址。
  • 2023 年,T-Mobile 报告称,API 漏洞导致 3700 万客户的数据被盗,包括姓名、电子邮箱、地址、电话号码、出生日期等。

这些攻击的大规模和多样性揭示了安全防护和工程领导者所面临的严峻挑战。一些攻击利用了被错误地暴露在互联网上的 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 表征 – 按协议或架构(REST、GraphQL、SOAP 等)对 API 进行识别和分类,并映射敏感数据流,从而了解所面临的暴露风险
  • API 编目 – 维护完整的 API 列表,以方便软件团队复用现有 API,并帮助 SecOps 团队构建安全防护态势的完整视图

代表性技术:

  • Web 应用和 API 防护(WAAP) – 利用在 API 基础架构中的特殊全局位置来分析进出环境的流量,识别 API,并构建风险暴露视图
  • 内联或基于代理的发现 – 将代理附加到现有 API 网关、负载均衡器或 Kubernetes Ingress Controller,以镜像和分析 API 流量
  • 带外或无代理发现 – 使用流量镜像或导出日志和指标来分析 API 流量;与其他技术相比,通常对 API 和威胁的可见性较低
  • 域爬虫程序 – API 安全防护提供商可能会提供爬虫程序,以探测您的域中是否有暴露的 API 端点,这些端点允许流量绕过执行安全防护策略的 API 网关和负载均衡器

需要警惕的是,任何技术都无法一个不落地发现架构中的每个 API。大多数发现技术都依赖于现有负载均衡器、API 网关及 Ingress Controller 提供的可见性,不太可能发现能够绕过这些架构组件的错误配置。

从根本上说,执行代码审查和遵循 API 优先最佳实践可提供更有效的长期防御。不过,对于快速构建安全防护态势视图以及发现有可能不受管理和保护的 API 而言,自动化 API 发现工具仍很有用。

什么是 API 安全防护测试?

API 安全防护态势管理关乎企业整体安全防护,而 API 安全防护测试则关乎单个 API。从根本上讲,API 安全防护测试是通过测试 API 运行时(API 背后运行的应用)来帮助识别和防范漏洞及其相关风险。它有助于确保满足基本的安全防护要求,包括身份验证、授权、速率限制及加密条件。

主要功能:

  • API 契约测试 – 使用 API 的 OpenAPI 规范,通过比较客户端请求和服务器响应来验证其是否正常运行。它采用“由内而外”的方法,可在部署 API 之前发现它们是否存在漏洞。
  • 动态应用安全防护测试(DAST)– 模拟针对 API 运行时的攻击以查找漏洞,像恶意用户一样从“从外向内”评估 API。

代表性技术:

  • API 契约测试软件 – 用于运行测试的专用工具,这些测试可对 API 请求和响应进行分段,以验证客户端和服务器行为是否符合 API 契约
  • 应用安全防护测试(AST)软件 – 通过模拟攻击来分析和测试应用(包括 API)的工具

既有开源契约测试工具,也有来自专业 API 安全防护厂商的商用产品。应用安全防护测试(AST)市场发展已有数十年,越来越多的厂商提供 API 专用扫描和测试工具。

什么是 API 运行时保护?

API 运行时保护是指在 API 运行和管理请求时确保其安全防护。它优先考虑将安全防护构建到平台基础架构及 API 本身的代码中,旨在识别和防止部署后出现恶意 API 请求。
主要功能:

  • 访问控制 – 执行身份验证(authN)和授权(authZ)策略
  • 网络安全防护 – 加密并保护网络通信
  • 应用保护 – 保护 API 运行时免受恶意 API 请求和攻击的影响
  • 实时监控 – 可视化、跟踪和缓解 API 基础架构中的攻击

代表性技术:

  • API 网关 – 应用和执行安全防护策略,包括身份验证、授权、速率限制、访问控制列表及加密
  • Web 应用防火墙(WAF) – 根据攻击特征库主动监控并过滤流量,以保护 API 和应用免受复杂的七层攻击
  • 身份验证供应商(IdP) – 存储并验证用户身份的服务,通常与单点登录(SSO)提供商协同验证用户身份

API 网关和 WAF/WAAP 各不相同。一些服务(特别是适用于云及其他平台的原生解决方案)缺乏多云和混合架构所需的全局可见性和标准化。

 

API 安全防护的最佳实践

考虑到保护 API 的重要性,必须有计划地实施 API 安全防护。平台工程和安全防护领导者必须通力合作,以满足整个 API 生命周期的安全防护要求。如前所述,这需要在三大方面并发用力:API 安全防护态势管理、API 安全防护测试及 API 运行时保护。换句话说,您需要重点了解您有多少个 API、如何测试它们是否存在缺陷,以及如何将安全防护嵌入到代码中。

 

结语

与所有网络安全一样,API 安全防护也是一个持续的过程,需要网络工程师、安全防护运维领导者、平台工程领导者及软件开发工程师等诸多利益相关者之间展开密切协作。好在 API 安全防护并不是深不可测的事情。

大多数企业已经采取相应措施来应对已知攻击,如跨站脚本攻击、注入攻击、分布式拒绝服务攻击以及其他可能针对 API 的攻击。对于经验丰富的安全防护专业人员来说,上述许多最佳实践可能都非常熟悉。无论贵企业运行多少 API,您都要建立可靠的 API 安全防护策略,并主动地对其进行持续管理。

立即开启 NGINX API 互联套件(API Connectivity Stack)30 天免费试用,其中包括 F5 NGINX Management Suite API Connectivity Manager(用于管理、治理和保护 API);NGINX Plus(作为 API 网关);以及 F5 NGINX App Protect WAF 和 DoS(支持高级 API 安全防护)。

 

更多资源

Hero image
API 策略:
面向平台工程团队的最佳实践

了解如何使用 F5 NGINX 保护和扩展 API 运维、遏制 API 蔓延以及构建弹性 API 平台。

关于作者

Andrew Stiefel

产品营销经理

关于 F5 NGINX

F5, Inc. 是备受欢迎的开源软件 NGINX 背后的商业公司。我们为现代应用的开发和交付提供一整套技术。我们的联合解决方案弥合了 NetOps 和 DevOps 之间的横沟,提供从代码到用户的多云应用服务。访问 nginx-cn.net 了解更多相关信息。