OWASP 十大 API 安全风险

开放全球应用程序安全项目 (OWASP) 是一个致力于提高软件安全性的非营利基金会。OWASP 提供免费和开放的资源,包括工具、方法和文档,以帮助企业保护其 Web 应用程序。OWASP 最知名的贡献之一是 API 十大安全风险清单,重点介绍了 API 安全领域最严峻的风险。2023 年更新反映了保护应用程序编程接口 (API) 和 Web 应用程序的重要性和独特挑战。

什么是 API?

API 是支持不同软件应用程序彼此通信的协议和定义组合。API 的关键功能之一是促进不同技术之间的高效数据交换。作为现代应用程序架构的基础技术,API 使一个应用程序能够请求信息,并利用其他应用程序和服务的功能,而不必复制数据,也不必从头开始构建这些服务。API 是当今数字化世界的核心,连接着应用程序、系统和数据。

API 为何面临威胁?

参与 2024 年 API 安全影响研究的 1,200 多名 IT 和安全专业人士表示,84% 的企业在过去 12 个月内遭遇过 API 安全事件。随着 API 在现代应用程序架构中快速崛起,出于多种原因,网络犯罪分子越来越倾向于将 API 作为攻击媒介。

  • 广泛采用:API 在现代软件开发中无处不在,为 Web 和移动应用程序、物联网设备以及各种平台之间的集成提供支持。这种广泛采用为攻击者创造了许多潜在的新目标,并扩大了企业的攻击面。
  • 敏感数据访问:API 会处理敏感数据,包括个人信息、财务详情和专有业务数据。利用 API,攻击者可以访问高价值的机密信息,这些信息可用于身份盗窃、金融欺诈或公司间谍活动。
  • 直接访问后端系统:API 提供对后端系统和数据库的直接访问,通常会绕过传统用户界面。这种直接访问可用于检索、修改或删除数据,而无需经过前端应用程序的常规安全检查和平衡。
  • 复杂性与错误配置:API 可能相当复杂,包含许多端点和版本,每个端点和版本都需要适当的配置和安全保护。错误配置和安全漏洞十分常见,这使得 API 攻击的成功几率相当高。
  • 攻击的自动化和可扩展性:可以使用自动化工具和脚本将 API 锁定为攻击目标,使攻击者能够更轻松地扩展攻击规模。自动攻击可以快速利用 API 漏洞,例如薄弱的身份验证机制和其他安全漏洞。
  • 第三方集成:API 通常会促进与第三方服务的集成,这可能会带来额外的安全风险。如果第三方服务遭到入侵,就有可能为攻击者提供入口点,以利用主 API。
  • 日志记录和监控不足:许多企业缺乏其 API 的适当日志记录和监控,因此难以实时检测和响应可疑活动。这使得攻击者能够长时间利用安全漏洞,而不会被发现。

关键 API 技术和概念

为了解 OWASP API 十大安全风险中的具体威胁,回顾与 API 相关的一些关键概念和术语会很有帮助。

  • API 端点:API 端点是客户端可以访问 API 的特定 URL 或路径。每个端点提供对不同功能或资源的访问,例如提交表单、更新数据库条目或检索用户信息。
  • 调用和请求:API 调用或请求是客户端发送到 API 端点的消息,用于请求数据或执行操作。API 调用或请求会触发 API 端点生成响应。
  • 目标:对象是代表用户、产品或订单等真实实体的数据结构。对象可以具有特性/属性和方法/函数。例如在社交媒体 API 中,一个对象可能是个人资料,具有姓名、个人资料头像和电子邮件等属性,以及发送加好友申请和个人资料更新等方法。
  • 数据绑定:数据绑定是将输入数据从 API 请求映射到对象的过程。
  • 身份验证:身份验证是验证发起 API 请求的用户或系统身份的过程。实体身份验证或用户身份验证的目的是确定实体的身份,或者其实际身份与其声称的身份是否相符。
  • 授权:授权决定了允许经过身份验证的用户或系统的访问权限级别。

OWASP 2023 年十大 API 安全风险

OWASP 十大 API 安全风险强调了 API 面临的最严重安全风险。

  • API1:2023——对象级授权失效在 API 未根据用户权限正确限制对特定对象的访问时,就会发生此威胁。这意味着未经授权的用户可能访问或修改其本不应能够接触到的数据,从而有可能暴露敏感信息或允许恶意行动。
  • API2:2023——失效的身份验证 (BA):当用于验证用户身份的方法存在缺陷时,就会发生失效的身份验证。这有可能允许攻击者接管用户帐户,获得未经授权的访问权限,并像合法用户一样执行操作。
  • API3:2023——失效的对象属性级授权:在 API 未能正确检查对象中的属性级权限时,就会发生此问题。攻击者可能会获得未经授权的访问权限或修改对象中的具体数据字段,从而暴露敏感数据或实施恶意操作。
  • API4:2023——不受限制的资源消耗:API 需要网络带宽、CPU、内存和存储等资源才能正常运行。在 API 未设置足够的资源消耗限制时,攻击者可能会发出过多请求,从而使 API不堪重负,导致拒绝服务或增加运营成本。
  • API5:2023——失效的功能级授权:失效的功能级授权意味着 API 无法根据用户角色正确限制对某些功能或操作的访问。这让用户可以执行本应无法执行的操作,例如访问管理功能。
  • API6:2023——不受限制的敏感业务流访问:API 可能暴露业务流程,如购买商品或发表评论,却未能充分控制这些功能如何被滥用。攻击者可能会自动滥用这些功能,从而给企业造成损害。
  • API7:2023——服务器端请求伪造 (SSRF):如果 API 未能正确验证用户提供的 URL,从另外一台服务器提取资源时,就会发生 SSRF。攻击者可以利用此漏洞,使 API 服务器绕过防火墙或访问内部系统,从而向意外位置发送请求。
  • API8:2023——安全配置错误:安全配置错误涉及到 API 中设置不正确或不完整,使其容易受到攻击。这可能因默认设置、缺失补丁或安全控制配置错误导致潜在漏洞利用。
  • API9:2023——不当的资产管理:在 API 暴露的端点超出必要或缺乏适当的文档和版本管理时,就会产生此类风险。攻击者可以利用开发人员可能遗忘的过时、已弃用或不安全的端点和 API 版本。
  • API10:2023——不安全的 API 使用:开发人员可能过度信任来自第三方 API 的数据,而未对其应用与用户输入相同的安全标准。攻击者可以利用这些第三方服务中的漏洞间接入侵 API。
OWASP 十大 API 安全风险列表自 2019 年以来的重大变化示意图。 OWASP 十大 API 安全风险列表自 2019 年以来的重大变化示意图。

其他威胁

OWASP API 安全项目的早期版本包括其他几种类型的攻击和漏洞,这些攻击和漏洞仍然对企业构成巨大威胁:

  • 数据泄露过多:当 API 在响应中提供的数据超出必要时,就会导致数据泄露过多。这可能会无意中向攻击者泄露敏感信息,即使用户并未直接请求这些信息。
  • 缺乏资源和速率限制:这种威胁涉及到 API 不限制用户在给定时间段内可以发出的请求数量。如果没有速率限制,攻击者可能会通过过多的请求导致 API 过载,从而造成拒绝服务或利用资源密集型操作。
  • 批量分配:API 自动将请求中的输入绑定到程序对象,从而允许攻击者修改或设置意外的数据字段时,就会实现批量分配。这可能导致用户擅自修改其本无权控制的数据或配置。
  • 注入:将不受信任的数据作为命令或查询的一部分发送给解释器时,就会发生注入漏洞。示例包括 SQL、NoSQL 和命令注入等,这些漏洞可能会诱使 API 执行意外命令,从而导致数据被盗、丢失或损坏。
  • 日志记录和监控不足:在管理员未妥善记录日志、监控 API 时,可疑活动可能会被忽视,进而延迟入侵检测,并导致难以有效响应安全事件。
  • 不当的资产管理:不当的资产管理指未能妥善维护和监控 API 的端点和版本。这可能会导致暴露攻击者可以利用的旧有、已弃用或不安全的端点。

如何防范 OWASP 十大 API 安全风险

为保护 API 免受 OWASP 十大 API 安全风险和其他威胁的侵害,IT 和安全团队应部署多层 API 安全策略。

这种方法的核心在于:部署完整的 API 安全解决方案,提供四个关键功能:API 发现、API 安全态势管理、运行时保护和 API 安全测试。

这种全面的方法可作为对企业在整个 API 生命周期内管理和保护 API 的现有工具(例如 API 网关和 Web 应用程序防火墙 (WAF))的重要补充。

API 发现:大多数企业几乎不具备对大部分 API 流量进行监测的能力,往往是因为他们认为其所有 API 都会通过 API 网关路由。但事实并非如此。企业的许多典型 API 都是不受管 API,例如被遗忘但仍在运行并持续接触敏感数据的休眠 API。如果没有完整、准确的清单,您的企业将会面临各种风险。所需的核心功能:

  • 无论配置或类型如何,找到您的所有 API 并将其加入清单中
  • 检测休眠、遗留和僵尸 API
  • 识别被遗忘、被忽视或未知的影子域名
  • 消除监控盲点,发现潜在攻击路径

API 态势管理:在有完整 API 清单的情况下,了解哪些类型的数据会流经您的 API 以及这会如何影响您遵从监管要求的能力至关重要。API 态势管理让您可以全面了解流量、代码和配置以评估贵企业的 API 安全态势。所需的核心功能:

  • 自动扫描基础架构,从而发现配置错误和隐藏的风险
  • 创建自定义工作流,从而通知主要利益相关者有关漏洞的情况
  • 确定哪些 API 和内部用户能够访问敏感数据
  • 为检测到的问题分配严重程度评级,从而确定补救工作的优先级

API 运行时安全:毫无疑问,您熟悉“假设存在入侵”的概念。专门针对 API 的入侵和攻击同样不可避免。对于生产环境中存在的所有 API 来说,您需要能够实时检测和阻止攻击。所需的核心功能:

  • 监控数据篡改和泄露、策略违反情况、可疑行为以及 API 攻击
  • 无需进行额外的网络调整或安装难以部署的代理,即可轻松分析 API 流量
  • 与现有工作流(工单、SIEM 等)进行集成,以便向安全/运营团队发出告警
  • 通过部分自动化或全自动化补救,实时防止各类攻击和滥用行为

API 安全测试:API 开发团队压力重重,需要尽可能快地完成工作。速度对于所开发的每个应用程序都至关重要,这更容易导致漏洞或设计缺陷发生且随后无法被检测到。将 API 发布到生产环境中之前在开发阶段对其进行测试,可以显著降低风险并减少修复易受攻击 API 的成本。所需的核心功能:

  • 运行模拟恶意流量的各种自动化测试
  • 在 API 进入生产环境之前发现漏洞,从而降低攻击得逞的风险
  • 依据已确立的管理策略和规则,对 API 规范进行检查
  • 根据实际需求或在 CI/CD 管道中运行以 API 为重点的安全测试

注意:除了 API 安全解决方案之外,企业还可以探索网络应用程序和 API 保护 (WAAP) 的功能。WAAP 扩展了 WAF 的传统保护范围,旨在快速识别和抵御来自多种攻击媒介的威胁。API 安全解决方案与 WAF 和 WAAP 协同工作,将保护范围进一步扩展到防火墙之外,建立更强大的防御系统。

寻求加强 API 安全方法的企业也可以使用以下技术与技巧。

身份验证和授权

  • 实施精细授权:每个 API 请求都会检查用户访问特定对象的权限。使用基于角色的访问控制 (RBAC) 或基于属性的访问控制 (ABAC) 来实施这些规则。
  • 使用强身份验证机制:实施 多重身份验证 (MFA),并使用 OAuth 2.0 和 OpenID Connect 等安全协议来验证用户身份。
  • 实施强密码策略:要求使用复杂的密码并实施密码轮换策略,以增强安全性。

访问控制

  • 属性级访问控制:在对象内的属性级别应用访问控制,以确保用户只能访问或修改其拥有权限的属性。
  • 功能级访问控制:根据用户角色和权限,限制对每个 API 功能的访问。使用最小权限原则来尽可能减少访问权限。

速率限制、节流和资源监控

  • 实施速率限制和节流:设置用户在特定时间段内可发出的 API 请求数量限制,以防止资源耗尽。
  • 资源监控和扩展:持续监控资源使用情况并动态扩展基础架构,以应对合法流量高峰,同时确保不影响可用性。

验证与清理

  • 验证并清理用户输入:正确验证和清理服务器端请求中的 URL 或其他输入,以防止恶意请求。
  • 验证并清理 API 响应:按照对待用户输入时相同的谨慎态度,在使用前对来自第三方 API 的数据进行验证和清理。

分段

  • 网络分段:服务器端请求仅限于必要的内部服务,并使用网络分段来限制潜在 SSRF 攻击的影响。

配置和资源清册

  • 强化配置设置:定期审核并更新 API 配置设置,以遵循安全最佳实践。禁用不需要的功能和服务。
  • 自动化安全配置管理:使用自动化工具,在所有环境中一致地管理和实施安全配置。

测试与审计

  • 持续安全测试:定期测试 API 端点是否存在漏洞,并及时修复任何问题。
  • 定期审计:定期执行安全审计,以识别和修复授权漏洞。

资源清册、文档和审核

  • 维护 API 资源清册:维护所有 API 端点的最新资源清册,包括其版本和使用情况。正确停用已弃用的端点。
  • 记录和监控 API:记录 API 功能并监控其使用情况,以检测并抵御与不当管理相关的安全风险。
  • 监控异常活动:实施持续监控,以检测和响应可能表明企图利用业务流的 API 异常使用模式。
  • 定期安全审查:定期审查和更新访问控制策略,以确保其始终有效。
  • 使用安全的库和框架:确保用于与第三方 API 交互的库和框架安全且定期更新。

加密

加密传输中数据:使用传输层安全 (TLS) 对传输中数据进行加密,以保护敏感信息免受攻击者拦截。

防火墙和网关

  • 实施 Web 应用程序防火墙 (WAF)Web 应用程序防火墙可拦截恶意请求,从而保护 API 免受基于 Web 的常见攻击,例如 SQL 注入和跨站点脚本攻击 (XSS)。
  • 使用 API 网关:API 网关充当所有 API 请求的入口点,可执行客户端身份验证、实施速率限制、管理流量和实时防范 DDoS 攻击等安全任务。

修补和更新

  • 补丁管理:定期应用补丁、更新和安全修复,以解决已知漏洞。建立测试环境,以确保补丁不会引入任何兼容性问题或意外后果。

Zero Trust

  • 采用 Zero Trust 方法:Zero Trust 框架假定 IT 环境内外的任何用户、设备或应用程序都不具备固有可信性。Zero Trust 方法要求每个请求访问 API 的客户端都必须经过持续的身份验证与确认,从而防止未经授权的访问并限制攻击得逞造成的损害。

常见问题

开放全球应用程序安全项目 (OWASP) 是一个旨在提高软件安全性的非营利组织。它提供免费的开源工具、资源和社区驱动的项目,以帮助开发人员和安全专业人员保护 Web 应用程序的安全。

OWASP 十大 API 安全风险列举了 API 面临的最严重安全风险。十大安全风险列表旨在为开发人员、架构师和安全专业人员提供有关最常见漏洞以及如何抵御这些漏洞的见解。

API 越来越多地用于连接各种服务和系统,使其成为攻击者的主要目标。保护 API 对于保护敏感数据、确保交易完整性以及保持服务可用性至关重要。

客户为什么选择 Akamai

Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。Akamai 的全栈云计算解决方案可在海外分布广泛的平台上提供高性能且经济实惠的服务。众多全球企业信赖 Akamai,凭借我们卓越的可靠性、扩展性和专业技术,企业能够从容拓展业务。

探索 Akamai 的所有安全解决方案