翻译 | OWASP API Top 10分析

admin 2022年2月20日19:37:55评论208 views字数 3419阅读11分23秒阅读模式


与传统的web应用程序相比,现代开发过程更具动态性,依赖于快速的交付周期,并遵循微服务框架。此类框架在很大程度上依赖于应用程序编程接口(API)作为最关键的组建之一。不幸的是,虽然API提供了许多好处,但由于API层的基本应用程序漏洞和安全风险,所以它们也是攻击的目标。


本文深入研究了OWASP API Top 10,并通过了解攻击手法和最佳实践的安全漏洞利用来避免存在对应的问题。


关于OWASP API Top 10

翻译 |  OWASP API Top 10分析


翻译 |  OWASP API Top 10分析

        OWASP Web 应用程序安全项目是一个专注于 Web 应用程序保护和安全编码实践的全球社区。

        现代应用程序是通过耦合不同的程序构建与打包为微服务。此类应用程序的松散耦合特性使应用程序编程接口 (API) 成为现代 Web 和移动开发的支柱。不幸的是,现代应用程序中大多数 Web 流量的 API 也被认为是应用程序数据的守门员。由于固有的漏洞,黑客利用多种漏洞利用去攻击 API 和连接服务来窃取敏感数据。对 API 的持续威胁导致了 OWASP API 安全Top 10 漏洞的发展——一个特定于 Web API 的安全 Top 10 漏洞。此列表突出显示了可能的安全漏洞,并提供了了解和缓解每个漏洞的解决方案。

        这篇文章探讨了关于API 安全性的 OWASP API Top 10列表。

翻译 |  OWASP API Top 10分析
翻译 |  OWASP API Top 10分析



API的漏洞风险

翻译 |  OWASP API Top 10分析



翻译 |  OWASP API Top 10分析
翻译 |  OWASP API Top 10分析

        虽然 API 为连接各种软件组件提供了一个有效的框架,但它们通常将后端数据直接暴露给了第三方,使其成为攻击的主要目标。API 从根本上设计是为了使应用程序资源开放和可用,使攻击者更方便地利用和注入恶意代码。此外,API 是免费提供的并被详细介绍如何调用的,所以黑客只要通过简单的学习了解接口情况、收集配置信息,然后就可以发起网络安全攻击。由于不安全的 API 通过扩展应用程序的表面而减缓了创新,因此企业需要通过特定的方法和策略来保护API 的安全。

翻译 |  OWASP API Top 10分析
翻译 |  OWASP API Top 10分析



OWASP API Top 10 漏洞

翻译 |  OWASP API Top 10分析


    API 安全最常见的 10 个漏洞包括:


翻译 |  OWASP API Top 10分析
翻译 |  OWASP API Top 10分析

损坏的对象级别授权

(Broken Object Level Authorization)

API 依靠对象级授权来验证合法用户的资源访问权限。API 接口接收所请求对象的 ID,然后在代码级别实施授权检查,以确保用户有权执行所请求的操作。API 通常会公开为对象提供标识符的接口。在没有对象级授权检查或实施不当的情况下,攻击者可以操纵所请求对象的 API 接口,然后无法正确验证提交请求的用户是否具有所需的资源访问权限,从而授予他们未经授权的访问权限。


未授权访问

(Broken User Authentication)

根据设计,API 接口必须暴露给外部服务,并由各种代理使用用户身份验证访问。因此,API 接口的不充分或不正确的身份验证实施允许恶意用户暂时破坏合法用户的身份验证令牌以访问敏感信息。API 接口的身份验证(https://crashtest-security.com/broken-authentication-and-session-management/)失败可能会出现多个问题。导致身份验证失败的一些常见错误配置包括:

  • 不安全的内部 API

  • 长期未更新的API 弱密钥

  • 使用 GET 参数发送敏感信息的 API 接口

  • JWT 访问令牌的令牌访问验证无效/缺少验证

  • 接口容易受到撞库攻击和暴力破解的漏洞

  • 弱口令/管理不善的密码

用户身份验证被破坏的 API接口允许恶意黑客冒充合法用户的身份,从而使原本难以利用的、较为复杂的漏洞变得更为容易与简单!


敏感信息泄漏

(Excessive Data Exposure)

在正常情况下处理用户请求时,API 接口通常依赖客户端 UI 过滤访问的数据。当用户请求访问资源时,API 接口返回存储在应用程序中的完整数据对象。然后,客户端应用程序过滤响应以仅显示用户想要查看的信息。不幸的是,开发人员经常错误地将 API 实现为通用数据源。这允许攻击者直接调用 API 来访问客户端 UI 应该过滤掉的数据。根据泄漏的内容,攻击者可以进行攻击或使用泄漏的数据来获得更多原本不属于自己的权限的数据。


缺乏资源和速率限制

(Lack of Resource and Rate Limiting)

一些 API 接口缺少默认机制来限制来自特定客户端的请求的频率和数量。黑客通过制作上传/修改大文件的请求或向 API 接口发出大量和高频率请求来获取大量数据,从而使 API 主机不堪重负。因此,在这种情况下,API服务器 的硬件可能会耗尽内存、网络带宽、CPU 、缓冲区溢出等问题。这会增加 API 服务器的消耗,减少 API 服务器可以处理的客户端数量,所以严重可能会导致拒绝服务。


自动绑定

(Mass Assignment)

当 API 将客户端提供的数据绑定到应用程序而没有适当的过滤技术时,就会存在自动绑定漏洞。开发人员使用绑定方法通过使用函数将用户输入与内部对象和代码变量绑定来加快开发周期。攻击者执行侦察以评估 API 结构和对象关系,然后探索自动绑定漏洞以更新和修改要隐藏的对象的属性。一旦他们修改了敏感对象的属性,攻击者往往会提升权限、绕过安全检查并篡改敏感数据。

浅析自动绑定漏洞  https://xz.aliyun.com/t/128


安全配置错误

(Security Misconfiguration)

(https://crashtest-security.com/ssl-and-tls-security-misconfiguration-guide/)

API 资源、应用程序基础设施和传输协议可能包含可能导致安全漏洞的错误配置。这些错误配置可能存在于 API 资源、传输协议或应用程序基础架构中。这些包括:

  • 使用无身份验证或弱身份验证的默认配置

  • 不强制执行 HTTPS

  • 不必要的 HTTP 方法

  • 错误配置的 HTTP 标头(https://crashtest-security.com/enable-security-headers/)

  • 未经处理的输入导致数据损坏

  • 数据泄露

  • 打开云存储

  • 详细的错误消息

  • 临时配置

  • 跨域资源共享

注入(Injection)

API 接口通常将用户数据作为请求参数或在其 URL 中使用。当 API 接口没有任何内置机制来区分不受信任的用户数据时,攻击者可以将恶意输入注入应用程序。攻击者还可以将这些不受信任的数据作为命令/查询的语句,诱使应用程序执行以达到访问敏感数据。缺乏正确的输入数据校验可能会导致注入攻击(https://crashtest-security.com/what-are-the-different-types-of-injection-attacks/),包括数据泄露、权限提升(https://crashtest-security.com/privilege-escalation-guide/)拒绝服务。常见的命令注入缺陷(https://crashtest-security.com/command-injection/)包括带有 API 参数的 SQL 注入、操作系统命令注入、跨站点脚本(xss)等攻击。


资产管理不当

(Improper Assets Management)

随着现代应用程序开发的快速交付周期,DevOps 团队经常将更多 API 部署到生产中,这带来了资产管理问题。首先,向后兼容的愿望迫使 DevOps 团队让旧版本的 API 继续运行。攻击者通常以此类旧版本为目标,以利用过时的安全检查。其他 API 可能不符合数据治理策略,使其成为数据暴露的关键入口点。

记录和监控不足

(Insufficient Logging & Monitoring)

大多数 API 攻击发生在一段时间内,攻击者通常会执行侦察,花时间探索漏洞并规划正确的攻击策略。所以使用正确的日志记录和监控机制(https://crashtest-security.com/insufficient-logging-monitoring-guide/),开发团队就可以在恶意操作的一开始就识别到它们的恶意攻击流量。不幸的是,大多数企业为服务器和网络事件实现了适当的日志记录,但通常缺乏足够的 API 特定日志记录机制。造成这种情况的一个关键原因是开发人员缺乏对 API 使用的洞察力。结果,开发人员错过了诸如输入失败的验证失败的身份验证检查其他应用程序的报错等这都是表明着无效的访问。在没有此类警报的情况下,攻击者可以长时间不被发现,从而使他们能够充分利用系统。

翻译 |  OWASP API Top 10分析
翻译 |  OWASP API Top 10分析



原文始发于微信公众号(山石网科安全技术研究院):翻译 | OWASP API Top 10分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月20日19:37:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   翻译 | OWASP API Top 10分析http://cn-sec.com/archives/794247.html

发表评论

匿名网友 填写信息