OWASP API 安全十大概述和最佳实践

API 在现代应用架构中发挥着至关重要的作用,而这个 OWASP 项目专注于提高对常见 API 安全漏洞的认识。

OWASP (开放全球application安全项目)列出十大 API 安全风险的目标是教育参与 API 开发和维护的人员并提高对常见 API 安全漏洞的认识。 API 越来越成为攻击者的目标,而 OWASP 的 API 安全项目专注于了解和减轻与 API 相关的特有漏洞和安全风险的策略和解决方案。

什么是 API?

API(应用编程接口)是现代应用开发的基础,因为它们促进了应用与其他应用、服务或平台进行通信和交换数据的能力。 API 是应用程序现代化战略的关键部分,也是移动应用程序的基础。 它们使企业能够轻松地与外部平台和第三方服务集成,并通过连接各种组件来构建全面的解决方案。 这促进了应用程序开发的模块化方法,使开发人员能够利用现有的服务和功能,促进代码重用,加快开发周期并提高生产力。

API 还扩大了风险面,并且由于跨多云架构的相互依赖性质,特别引入了不可预见的风险。 与 Web 应用程序一样,API 容易受到漏洞利用、自动威胁滥用、拒绝服务、错误配置以及绕过身份验证和授权控制的攻击。

从本质上讲,API 会暴露关键的业务逻辑和敏感信息,例如用户数据、身份验证凭据和金融交易,并且越来越成为攻击者的目标;尤其是登录、创建帐户、添加到购物车和转账功能。 API 可以成为攻击者利用漏洞或弱点或暴露底层基础设施和资源的入口点。  

API 安全最佳实践是什么?

强大的 API 安全措施对于保护数据未授权访问、操纵或泄露是必要的,以确保隐私并维护用户和利益相关者的信任,以及确保 API 的机密性、完整性和可用性。 API 安全的最佳实践包括:

  • 实施强有力的身份验证和授权。 强制执行适当的授权检查,以确保经过身份验证的客户端具有访问特定资源或执行某些操作所需的权限。 使用细粒度的访问控制来限制对敏感 API 端点或数据以及相关对象和功能的访问。
  • 验证输入和输出编码。 验证并清理从 API 客户端收到的所有输入以防止注入攻击,并对输出进行适当编码以防止执行恶意脚本。
  • 使用安全通信。 采用安全协议在 API 客户端和服务器之间传输数据,并对传输中和静止的敏感信息进行加密,以确保数据的机密性和完整性。 
  • 实施速率限制和节流。 强制限制 API 客户端在指定时间范围内可以发出的请求数量,以防止过度使用或未授权访问尝试,例如分布式拒绝服务 (DDoS)和暴力攻击。
  • 定期进行安全测试和审计。 执行定期的安全评估、渗透测试和代码审查,以识别和解决 API 中的潜在漏洞,并进行安全审核以检测弱点并确保符合行业标准和规定。 由于 API 与底层框架和库的相互依赖,这一点尤为重要。
  • 强制遵守架构和协议。 使用 OpenAPI 规范自动创建和实施积极的安全模型是确保一致的安全策略的有价值的工具。
  • 动态发现并持续评估 API。 API 激增导致了一些无人问津或无人维护的 API,包括影子 API 。 安全控制需要使用零信任和最小特权访问范例不断盘点和保护 API,以减轻第三方相互依赖的不可预见的风险。 
  • 全面的威胁检测。 API 容易受到各种威胁,包括漏洞、配置错误、机器人、欺诈和滥用,因此需要加以保护。

OWASP API 安全前 10 名——2023 年

OWASP API 安全十大要点 – 2023 的制定旨在提高人们对常见 API 安全弱点的认识,并帮助开发人员、设计人员、架构师、经理以及其他参与 API 开发和维护的人员对 API 安全采取主动的方法。

2023 年 OWASP API 安全十大风险是:  

  1. 对象级授权已损坏。 当应用未能正确执行对象或数据级别的访问控制时,就会出现此安全漏洞,从而允许攻击者操纵或绕过授权检查并授予对应用内特定对象或数据的未授权访问。 这可能是由于授权检查实施不当、缺乏适当的验证或绕过访问控制而发生的。 每个接收对象 ID 并对该对象执行任何操作的 API 端点都应实现对象级授权检查,以验证登录用户是否有权对请求的对象执行请求的操作。
  2. 身份验证失败。 API 中的身份验证机制通常实施不正确,导致攻击者可以未授权访问用户帐户或敏感数据,或者执行未经授权的操作。 它通常是由于身份验证过程的实施或配置不当、密码策略薄弱、会话管理缺陷或身份验证工作流程中的其他弱点而引起的。 
  3. 对象属性级别授权已损坏。 当 API 无法在对象属性级别正确执行访问控制和授权检查时,就会出现此威胁。 如果 API 端点暴露了被视为敏感且不应被用户读取的对象的属性,它就容易受到这些攻击,这种漏洞有时被称为过度数据暴露。 如果 API 端点允许用户更改、添加或删除敏感对象属性的值(这种攻击有时称为批量分配) ,那么它也容易受到这些攻击。
  4. 不受限制的资源消耗。 这种攻击也称为资源耗尽,利用 API 实现中的弱点故意消耗过多的资源,例如 CPU、内存、带宽或其他系统资源。 这种拒绝服务 (DoS) 会降低 API 或底层系统的性能或可用性,并可能导致停机。  
  5. 功能级别授权损坏。 当 API 未能在功能或操作级别正确执行授权检查时,就会出现此威胁,从而允许攻击者访问未经授权的功能。 实施适当的授权检查可能会令人困惑,因为现代应用可以定义多种类型的功能角色和组,并涉及攻击者可以操纵的复杂用户层次结构。 
  6. 不受限制地访问敏感业务流。 当 API 缺乏适当的访问控制或授权检查时,就会发生这种攻击,从而使攻击者能够自动访问由 API 支持的敏感业务流程。这些业务流程可能支持大量购买高价值、低库存的产品(例如门票或运动鞋),这些产品可以在二级市场上加价转售。 攻击者经常使用复杂的自动化工具包重新调整攻击,如果目标的 Web 应用程序受到反自动化防御的充分保护,他们可能会转向 API 背后的目标业务逻辑。  
  7. 服务器端请求伪造(SSRF)。 当攻击者识别出接受用户提供的 URL 或对外部资源执行服务器端请求的易受攻击的 API 端点时,就会出现此漏洞。 攻击者精心设计恶意请求,指定其想要攻击的内部资源或系统的 URL。 服务器没有意识到恶意意图,向指定的 URL 执行服务器端请求,可能会暴露敏感信息或服务。 
  8. 安全配置错误。 攻击者试图找到未修补的漏洞、常见端点、以不安全的默认配置运行的服务或未受保护的文件和目录,以获取对 API 的未授权访问权限。当 API 堆栈的任何级别(从网络到应用级别)缺乏适当的安全强化,或者云服务的权限配置不当时,都可能导致此漏洞。 配置错误会影响 Web 应用程序和 API,而且随着架构不断分散并分布在多云环境中,风险也会越来越大。
  9. 库存管理不当。 API 会随着时间的推移而发生变化和更新,但过时或不安全的 API 版本可能仍在生产中,或者较旧的端点可能未打补丁地运行或使用较弱的安全要求,从而增加了安全漏洞的风险。 缺乏适当的库存管理使得很难追踪哪些版本正在使用、哪些版本已经过时或弃用以及哪些漏洞已得到解决。 影子 API 和僵尸 API 带来了巨大的风险,凸显了持续发现和自动保护的重要性。  
  10. 不安全地使用 API。 开发人员倾向于信任从第三方 API 接收的数据,尤其是知名公司提供的 API,并在输入验证和清理或传输安全方面对这些数据采用较弱的安全要求。 当通过不安全的协议访问 API 或未使用适当的加密机制时,也会发生不安全的消费,从而导致窃听、数据拦截和未授权访问敏感信息。 

集成安全控制案例

F5 解决 OWASP 安全风险

F5 支持 OWASP 基金会及其对提高软件安全性和提高多层次人们对 Web应用安全风险和漏洞的认识的贡献。 事实上,应用程序和 API 都存在一些共同的安全风险,在实施安全解决方案时需要考虑。 例如: 

  • 身份验证/授权控制薄弱  
  • 配置错误 
  • 业务逻辑滥用(撞库攻击、账户接管)  
  • 服务器端请求伪造(SSRF)。

随着应用程序的发展和 API 部署的增加,F5 提供解决方案来保护不断扩大的攻击面和新出现的威胁,从而解决 OWASP API 安全十大风险中确定的风险。 F5 Webapplication和 API 保护 (WAAP) 解决方案通过全面的保护来防御整个现代应用程序攻击面,这些保护包括 WAF、 API 安全、L3-L7 DDoS 缓解以及针对自动威胁和欺诈的机器人防御。 分布式平台让您可以轻松地在整个应用程序和 API 中部署一致的策略和扩展安全性,无论它们托管在何处,并将保护措施集成到 API 生命周期和更广泛的安全生态系统中。

F5 提供混合安全架构,可从核心到云再到边缘持续不断地保护应用程序和 API。 F5 解决方案使用威胁情报、基于 ML 的安全性和零信任原则动态发现并自动保护 API 背后的关键业务逻辑,提供在 API 驱动的数字经济中竞争所需的弹性和敏捷性。

F5 Web应用防火墙解决方案还可以阻止和缓解OWASP Top 10(一份得到广泛认可的最关键 Web应用安全风险列表)所确定的各种风险。 API 与 Web 应用程序一样,容易受到错误配置和自动威胁,并且可能成为漏洞利用、SSRF 以及试图绕过身份验证和授权控制的攻击的目标。 F5 WAF 解决方案结合了签名和行为保护,包括来自 F5 实验室的威胁情报和基于 ML 的安全性,以跟上新兴威胁;它们还可以与专门的机器人防御控制相结合。

这些解决方案减轻了在云、本地和边缘环境中一致保护应用的负担和复杂性,同时通过集中式 SaaS 基础设施简化了管理。 F5 WAF 还通过将保护措施集成到具有核心安全功能、集中编排和监督的开发框架和 CI/CD 管道中,通过单个仪表板简化了应用程序安全性,该仪表板可以 360 度查看跨分布式应用的应用程序性能和安全事件。

F5 还提供解决方案来应对OWASP 的 Webapplications自动威胁项目中概述的风险。 F5 分布式云机器人防御可防止绕过现有机器人管理解决方案的欺诈和滥用,并提供实时监控和情报以及基于 ML 的回顾性分析,以保护组织免受自动攻击,而不会带来用户摩擦或破坏客户体验。 无论攻击者如何重组,无论攻击从 Web 应用程序转向 API,还是试图通过欺骗遥测或使用人工 CAPTCHA 求解器来绕过反自动化防御,分布式云机器人防御都能保持有效性。

F5 还提供多层 DDoS 保护以实现高级在线安全,作为一种托管的、云交付的缓解服务,可以实时检测和缓解大规模网络、协议和应用程序攻击;本地硬件、软件和混合解决方案也可以提供相同的保护。 F5 分布式云 DDoS 缓解功能可在容量和特定于应用程序的 3-4 层攻击以及高级 7 层攻击到达您的网络基础设施和应用之前防御这些攻击。