行业新闻与博客

什么是 API 安全性以及如何实现它?10 个需要了解的基本方法

Salt 的研究表明,17% 的组织经历过因 API 安全漏洞而导致的数据泄露。不要成为他们中的一员。

Salt 的数据强调了为什么 API 安全性(即应用程序编程接口安全性)如此重要。该公司的 2023 年第一季度 API 安全状况报告显示,与前六个月相比,针对客户的独特攻击增加了 400%,其中 31% 的客户遭遇了敏感数据泄露。其结果之一是 API 安全性不再被视为简单的工程问题:它现在越来越受到 C 级高管的关注。

Twitter 2022 年 API 安全漏洞只是与 API 漏洞相关的危险的一个例子。2021 年 12 月首次披露的安全漏洞导致黑客窃取了超过 540 万 Twitter 用户的数据。他们于 2022 年 7 月在暗网上发布了这些数据,给该公司带来了很多尴尬和声誉损害。

如果您的组织不想追随 Twitter 的脚步,那么是时候关注 API 安全性了。本文概述了组织内需要了解和实施的 10 种重要的 API 安全方法。

让我们来讨论一下。

定义 API 安全性及其重要性

API 安全性是指您为确保 API 免受恶意攻击而采取的整体方法。它包含广泛的安全实践、工具、文档和程序,所有这些都旨在确保企业能够防止 API 攻击并在发生此类攻击时减轻任何损害。

过去几年,API 在公共和私营部门的使用呈爆炸式增长。这些接口现在支撑着全球重要的 IT 基础设施,并且可以在从金融和政府组织到医疗保健服务的各种数字环境中找到。鉴于它们的受欢迎程度和广泛使用,是时候仔细研究应用程序编程接口的安全性了。

鉴于 API 公开数据和应用程序逻辑,API 安全性对于企业来说变得非常重要。从技术角度来看,Web API 安全主要涉及(但不限于):

  • 实施授权和身份验证流程。您可以通过使用静态字符串、令牌(动态或用户委托)等方法来实现此目的。这种方法可确保您完全控制谁访问您的 API 以及他们的访问方式。
  • 创建并推出基于策略的访问控制。这种方法使您能够通过策略来实现安全性,而不是针对每个单独的产品这样做。这对于那些公开多个 API 的人来说是理想的选择。
  • 建立基于角色的访问控制。这可以实现访问级别的精细方法,将不同的访问权限链接到组织内的不同角色。
  • 实施速率限制。这将帮助您确保您的 API 免受过多系统流量的影响,避免一切陷入停滞,从而防止分布式拒绝服务 (DDoS) 攻击。

最令人担忧的 API 安全漏洞示例

在安全漏洞方面,OWASP 是软件和 Web 应用程序安全环境(包括 API)方面备受推崇的权威机构。其“十大”列表考虑了漏洞、攻击场景和预防方法。OWASP 最近分享了 2023 年十大 API 安全风险,排名顺序如下:

  1. “损坏的对象级授权” ——黑客通过操纵对象 ID 来访问敏感数据来利用这一点。
  2. “身份验证失效” ——这意味着缺乏保护机制和身份验证错误实施,为黑客控制帐户奠定了基础。
  3. “损坏的对象属性级别授权” ——当黑客可以读取和更改他们不应访问的对象值时,就会发生这种情况,从而导致未经授权的数据泄露。
  4. “资源消耗不受限制” ——缺乏消耗限制的 API 很容易因淹没可用资源而受到 DDoS 攻击。
  5. “损坏的功能级授权” ——这是黑客试图通过向端点或他们不应访问的其他资源发送 API 调用来访问管理功能的地方。
  6. “不受限制地访问敏感业务流” ——当攻击者通过自动化利用合法、敏感的业务流功能(例如,进行购买)造成损害时,就会发生这种情况。  
  7. “服务器端请求伪造” ——当黑客访问统一资源标识符 (URI) 并使用它绕过端点的 API 安全机制时,就会发生这种情况。
  8. “安全配置错误” ——黑客使用自动化工具来检测未修补的缺陷、未受保护的目录或文件以及其他能够访问敏感数据和 / 或系统详细信息的漏洞。
  9. “库存管理不当” ——攻击者利用孤立和影子 API(即被遗忘或未知的资产),为黑客提供完全的访问权限。
  10. “API 的不安全使用” ——这是第三方 API 为黑客利用安全漏洞创造可能性的地方,这意味着开发人员需要谨慎信任此类交互。

考虑到这些漏洞的广泛性,80% 的组织表示确保 API 安全是一项挑战,这或许并不奇怪,其中 36% 的组织表示 API 安全是一个重大问题。

如何实现 API 安全?10 个 API 安全措施示例

当谈到防御上述漏洞时,暴露 API 的企业并非没有足够的资源。让我们看一下您可以使用的一些方便的工具和技术。

1. 使用完善的访问控制和访问管理标准

使用完善的授权和身份验证流程标准是避免安全问题的重要方法,同时确保授权用户仍然可以轻松使用您的 API。身份和访问管理实践的一些重要方面包括:

  • 创建强大的、基于 PKI 的数字身份
  • 实施和执行强有力的访问控制
  • 遵守行业标准和最佳实践

实施 OAuth 和 OpenID Connect 可能有助于满足您在这方面的需求。

2. 始终使用 TLS 加密 (HTTPS)

TLS 加密使用加密来保护传输中的数据(这可实现安全的 HTTPS 连接,也称为 HTTP over TLS)。使用 TLS 意味着通过 API 流向服务器的消息将被安全加密,从而防止恶意行为者的窥探。

(这样,如果他们确实拦截了您的数据,他们看到的只是一堆乱码。如果没有访问密钥,他们将无法解密数据。)

您可以通过在 Web 服务器上安装由公共信任的证书颁发机构 (CA) 颁发的 SSL/TLS 证书来启用 HTTPS 加密。这些证书分为三个验证级别(域验证、组织验证和扩展验证),并保证网站的数字身份是真实的。

3. 启用相互验证

使用相互身份验证是解决 API 安全性的另一个重要方法。您可以使用基于公钥基础设施 (PKI) 的客户端身份验证证书和使用策略表达式的相互 TLS 身份验证,以确保服务器和客户端证书的属性与预定义的值匹配。

4. 验证和清理输入

对于与第三方 API 的交互,重点应放在输入验证和清理上:

  • 验证检查输入是否符合您预定义的标准。
  • 清理会修改任何不合规的输入以使其得到验证。

如果正确实施,验证和清理可以帮助避免 SQL 注入攻击(网络犯罪分子将恶意 SQL 命令注入 API 请求,从而窃取、操纵或删除数据)。

查看 OWASP 的输入验证备忘单,了解有关如何执行输入验证的更多信息。

5.实施速率限制

速率限制以及配额和限制可以帮助减少您的组织遭受 DDoS 攻击的脆弱性。速率限制控制在任何给定时间可以访问您的 API 的流量,这意味着不良行为者无法淹没它并导致您的服务离线。把它想象成类似于引导水的漏斗;一端有大量流量进入,但另一端却被集中到较小的流量。这可以防止同时传入太多呼叫而导致系统不堪重负。

您可以根据您希望在设定时间段内收到的请求数量以及这些请求是经过身份验证的调用还是未经身份验证的调用,以多种方式设置 API 速率限制。例如,您可以将其设置为将客户端对 API 的调用限制为每秒 1 次,或者每分钟 100 次。

任何合适的 API 管理解决方案都应该提供速率限制,以便您可以轻松防御此类攻击。

6. 关注监管安全要求

API 安全需要采用多层方法来满足不同的要求,包括不同的监管义务。例如,专注于反洗钱 (AML) 合规性的企业将与旨在履行健康保险流通与责任法案 ( HIPAA ) 或支付卡行业数据安全标准 ( PCI ) 规定的安全义务的公司关注不同的重点。决策支持系统)。

然而,无论是实施 AML 合规计划、保护患者数据还是其他相关事项,都存在某些适用的 API 安全最佳实践。

关键是确保 API 安全性作为总体网络安全策略的一部分得到解决,该策略遵循行业标准最佳实践(涉及 PKI 证书管理、密钥管理等)。例如,始终确保将 API 密钥(和其他加密密钥)安全地存储在应用程序外部(即,不要将其嵌入其代码或源代码树中)。

许多组织选择使用密钥保管库、物理硬件存储模块 ( HSM ) 或信任管理解决方案。 

需要帮助吗?联系我们的支持团队 在线客服