博客 | NGINX

使用 API 安全的基本工具和最佳实践预防 API 攻击

NGINX-F5-horiz-black-type-RGB 的一部分
Andrew Stiefel 缩略图
安德鲁·施蒂费尔
2023 年 7 月 18 日发布

近年来,API的激增极大地改变了企业的运营方式。 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 安全态势管理可以让您了解 API 公开的数量、类型、位置和数据。 此信息可帮助您了解与每个 API 相关的风险,以便您可以采取适当的措施来保护它。

主要功能:

  • 自动化 API 发现——自动、持续的 API 发现,全面了解环境中部署的 API
  • API 特性——按协议或架构(REST、GraphQL、SOAP 等)识别和分类 API,并映射敏感数据流以了解您的风险敞口
  • API 编目——维护完整的 API 列表,以鼓励软件团队重复使用现有 API,并帮助 SecOps 团队构建完整的安全态势视图

代表性技术:

  • Web应用和 API 保护 (WAAP) – 利用 API 基础设施中的全球特权地位来分析进入和离开环境的流量、识别 API 并构建风险敞口视图
  • 内联或基于代理的发现——将代理附加到现有的 API 网关、负载均衡器或 Kubernetes Ingress 控制器,以镜像和分析 API 流量
  • 带外或无代理发现——使用流量镜像或导出的日志和指标来分析 API 流量;通常对 API 和威胁的可见性低于其他技术
  • 域爬虫——API 安全提供商可能会提供爬虫来探测你的域中是否存在暴露的 API 端点,这些端点允许流量绕过可以实施安全策略的 API 网关和负载均衡器

重要的是要记住,没有任何技术可以可靠地找到您的架构中的每个 API 。 大多数发现技术依赖于现有负载均衡器、API 网关和 Ingress 控制器提供的可见性,并且不太可能捕获绕过这些架构组件的错误配置。

最终,代码审查和遵循 API-first 最佳实践可以提供更有效的长期预防。 但是自动化 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) 策略
  • 网络安全——加密并保护网络通信
  • application保护——保护 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 安全策略并随着时间的推移主动管理它们。

开始 30 天免费试用 NGINX API 连接堆栈,其中包括 F5 NGINX 管理套件 API 连接管理器,用于管理、管理和保护 API;F5 NGINX Plus 作为 API 网关;以及 F5 NGINX App Protect WAF 和 DoS,用于高级 API 安全。

其他资源


“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”