API防护 如何保护API安全

发布时间:2024-10-06 20:24:43

API 防护包含一套用于保护应用程序编程接口 (API) 免受攻击和避免 API 被恶意攻击者滥用的流程、实践和技术。API 防护是现代 网络安全计划中必不可少的一部分,也是安全团队的头等大事。

什么是 API?


应用程序编程接口(即,API)是一组支持不同软件程序和组件进行相互通信以及共享数据和功能的协议和定义。此外,API 还负责管理应用程序间的交互方式,控制请求的发送方式和程序间可交换的请求类型。

对于很多 IT 环境所依赖的云服务、微服务、 无服务器架构以及物联网 (IoT) 来说,API 至关重要。但由于 API 会暴露应用程序逻辑和资源,并且通常会涉及到敏感信息的传输,因此它们成为了对攻击者极具吸引力的目标。不安全的 API 可能会允许恶意攻击者访问本来安全的 IT 资产。因此,API 防护对于维护网络和应用程序的安全以及防止数据泄露和其他安全问题来说至关重要。

API 具有哪些安全风险?


最常见的 API 安全风险分为几类。

漏洞利用攻击。由于 API 的构建或编码方式存在缺陷,因此恶意攻击者能够利用此类 API 攻击对 API 进行未经授权的访问。
授权错误。如果未对授权进行精心管理,与 API 进行交互的客户端或许可以访问本不应访问的数据,从而加大数据泄露的风险。
身份验证问题。当用户身份验证过程遭到破坏时,API 可能会接受来自非法或恶意来源的请求。
分布式拒绝服务攻击。通过发送大量请求使 API 不堪重负,DoS 或 DDoS 攻击可能会导致 API 无响应或崩溃。


什么是 OWASP 十大 API 安全风险清单?


开放全球应用程序安全项目 (OWASP) 是一个旨在提高软件安全性的非营利组织。OWASP 每年都会发布一份包含十大 API 安全风险的清单。2023 年 OWASP 十大 API 安全风险清单包含以下安全威胁:

  1. 失效的对象级授权 (BOLA):API 通常会公开用于处理对象标识符的端点,因此导致攻击面很广,并存在各种对象级访问控制问题。
  2. 受损的身份验证:如果身份验证机制实施不当,攻击者或许能够窃取身份验证令牌或利用实施漏洞。
  3. 失效的对象属性级授权 (BOPLA):如果对象属性级别的授权验证不正确,可能会导致信息泄露或被攻击者篡改。
  4. 不受限制的资源消耗:由于处理 API 请求会占用 CPU、内存、存储空间和网络带宽等资源,因此不受限制地使用 API 可能会引发拒绝服务或导致成本攀升。
  5. 受损的功能级别授权:复杂的访问控制策略可能会导致授权缺陷。
  6. 不受限制的敏感业务流访问:当业务流对外公开时,攻击者可能会利用自动化手段滥用它们,进而引发流程中断。
  7. 服务器端请求伪造:如果 API 在未对用户提供的 URL 进行验证的情况下获取远程资源,攻击者可能会强制应用程序向意外的目标位置发送精心设计的请求。
  8. 安全配置错误:软件和 DevOps 工程师往往会对 API 进行错误配置,从而为各种攻击敞开了大门。
  9. 不当的库存管理:如果清单和文档未能得到及时更新,就可能会引发诸如弃用的 API 版本和公开的调试端点等问题。
  10. API 的使用不安全:由于开发人员通常更信赖从第三方 API 接收的数据而非用户输入的数据,因此他们可能会对某些 API 采用较弱的安全标准。


API 安全防护与应用程序安全防护有何不同?


虽然 API 防护与 Web 安全性在许多安全原则上存在共通之处,但保护 API 免受攻击却面临着一些独特的挑战。现代应用程序系统中使用的 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 安全策略。API 管理和安全团队不应为每个 API 采用独特的策略,而应为所有 API 或特定类别的 API 制定策略,以避免将策略直接编码到各个 API 中。
  • 实施身份验证和授权。要避免 API 被滥用,对用户和应用程序进行身份验证及授权必不可少。
  • 实施速率限制和节流。这些技术决定了 API 可被调用的频率,并且可以预防恶意请求激增引发的 拒绝服务。
  • 对数据进行加密。数据加密对于保护通过 API 传输的敏感数据必不可少。
  • 配置 Web 应用程序防火墙 (WAF)。在网络安全领域,使用 WAF 可以增加额外的保护层,以抵御来自外部网络的恶意 API 流量。
  • 实施 API 网关。出色的网关可以提供各种防护并帮助分析对 API 的访问方式。
  • 部署 OAuth。OAuth 是一种用于保护 API 的 OpenAPI 安全模式,它允许用户在无需共享其原始凭据的情况下,安全地授权对资源的访问权限。
  • 使用行为分析。有效的 API 检测和响应解决方案可以利用行为分析来记录所有 API 行为,并识别出异常行为以便安全团队做出响应。
  • 保护 B2B API。虽然大多数 API 防护措施侧重于保护 B2C API,但有时最敏感的数据会通过那些被认为是安全的 B2B API 进行共享。行为分析解决方案可以监控 B2B API 并在发现可疑活动时发出告警。
  • 利用数据湖。所有 API 活动都应当在数据湖中至少存储 30 天,这将提供有关任何告警或潜在威胁的上下文信息。此外,团队可以从此数据湖中发现结果,以增强其安全态势。

API防护常见问题

什么是 OpenAPI 安全?


OpenAPI 是一种用于构建 API 的规范,它定义了一个与语言无关的标准接口,以人类和计算机都能够理解的方式描述 API 及其功能,而无需访问源代码或文档。OpenAPI 安全涉及身份验证实践、加密、授权和其他保护 API 的完整性、可用性和机密性的措施。


什么是 BOLA?


BOLA 是 Broken Object Level Authorization(失效的对象级授权)的首字母缩写。由于它很难被发现,因此被认为是对 API 防护安全的头号威胁。此漏洞让攻击者能够操纵 URL 参数等输入内容或请求攻击负载,进而访问未经授权的数据或执行未经授权的操作。


什么是 BOPLA?


BOPLA 是 Broken Object Property Level Authorization(失效的对象属性级授权)的首字母缩写。BOPLA 指的是对象内的属性,而 BOLA 指的是整个对象。针对 BOLA 的 API 防护措施并不能确保防范 BOPLA,因此必须选择能够同时防范这两种攻击类型的安全产品。

API防护    拒绝服务 (DoS) 防护是什么意思    什么是DNS DDoS攻击    什么是DNS放大攻击    什么是基于CLDAP反射的DDoS攻击    DDoS攻击的目的是什么