NGINX Full Version

利用 API 安全防护的基本工具和最佳实践防御 API 攻击

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

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

 

API 优先软件开发的兴起

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

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

 

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

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

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

这些攻击的大规模和多样性揭示了安全防护和工程领导者所面临的严峻挑战。一些攻击利用了被错误地暴露在互联网上的 API,而另一些攻击则使用了代码库中错误暴露的 API 密钥或其他身份验证工具。或者,攻击者通过 VPN 漏洞侵入内部环境,利用内部 API 窃取数据。

 

阻止 API 攻击需要采用正确的策略和工具

防范 API 威胁的最常见方法是结合使用传统 Web 应用安全防护策略与现代 API 安全防护技术。面对当今各种 API 威胁,传统策略往往力不能及。自动化 API 发现和 API 对比测试等现代技术试图弥合这些缺口。

对于企业而言,“右护”(实施全局控制和安全防护策略,以保护已部署的应用和 API)和“左移”(在安全防护嵌入到代码中,从而在应用和 API 投入生产环境前消除漏洞)至关重要。但这两种策略均无法单独提供全面的 API 安全防护,因此防范漏洞的关键在于采取一种涵盖三类 API 安全防护实践的全面方法:

通过结合使用正确的策略与正确的工具,企业能够更好地保护其 API 免受攻击,并确保软件系统安全无虞。下面我们来看看平台工程领导者需要部署哪些重要功能和工具,以便在 API 的整个生命周期对其进行有效保护。

什么是 API 安全防护态势管理?

API 安全防护态势管理可提供对 API 所暴露的数量、类型、位置及数据的可见性。这些信息能够帮助您了解与每个 API 相关的风险,从而采取适当的措施保护 API。

主要功能:

代表性技术:

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

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

什么是 API 安全防护测试?

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

主要功能:

代表性技术:

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

什么是 API 运行时保护?

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

代表性技术:

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 安全防护)。

 

更多资源