Azure API 管理缺陷突出了 API 开发中的服务器端请求伪造风险

这篇具有很好参考价值的文章主要介绍了Azure API 管理缺陷突出了 API 开发中的服务器端请求伪造风险。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Azure API 管理缺陷突出了 API 开发中的服务器端请求伪造风险,网络研究院,azure,microsoft,API,开发,风险

 

微软最近修补了其 Azure API 管理服务中的三个漏洞,其中两个漏洞启用了服务器端请求伪造 (SSRF) 攻击,这些攻击可能允许黑客访问内部 Azure 资产。

概念验证漏洞用于突出开发人员在尝试为自己的 API 和服务实施基于黑名单的限制时可能犯的常见错误。

Web API 已成为现代应用程序开发不可或缺的一部分,尤其是在云中。它们允许服务进行通信和交换数据,非浏览器客户端(例如移动应用程序和物联网设备)可以代表用户安全地访问数据和执行操作,并且公司可以抽象出旧的服务器后端并快速将它们与现代应用程序和服务互连。

API 是标准化的并且易于交互,而不是依赖于不是为 Web 构建的自定义和遗留协议。

近年来,随着公司在生产中快速推出 API,针对它们的攻击数量激增,因为攻击者越来越意识到不安全的 API 可能会提供进入数据库和内部基础设施的后门。

据全球内容交付网络提供商 Akamai 称,与 2021 年相比,2022 年针对 API 和 Web 应用程序的攻击数量增长了 2.5 倍。SSRF 是过去两年涌现的攻击媒介之一。Microsoft Exchange 服务器中的 ProxyLogon、ProxyNotShell 和 OWASSRF 缺陷是被大量利用的著名示例。

在过去的两年里,Akamai 发现攻击尝试和授权漏洞扫描流量都在稳步增加,这些流量在 Microsoft Exchange 以外的软件中寻找 SSRF 漏洞。

此外,我们每天都看到平均有 1400 万次 SSRF 尝试探测我们的 App & API Protector 客户的 Web 应用程序和 API,这表明该向量的流行程度越来越高。值得注意的是这种增长以及 SSRF 开发对组织造成的潜在影响。

通过 Azure API 管理代理的 SSRF

Microsoft 的 Azure API Management 是一项服务,它允许公司将托管在 Azure 上或其私有网络内的服务公开为 API 并对其进行监控。它是一项针对 API 开发人员的服务,由 API 网关、管理平面和开发人员门户组成。

在 SSRF 攻击中,攻击者必须找到一种方法来使用应用程序的功能作为访问内部资源的代理,搭载服务器的特权位置和访问内部网络。换句话说,如果应用程序或 API 允许用户提供 URL,然后将抓取该 URL 并返回响应,则如果不采取额外的安全措施,则可能会发生 SSRF 攻击。

Azure API 管理有这样的功能。它允许用户为预期通过他们部署的 API 交换的 JSON 或 XML 数据的结构指定模式。然而,据安全公司 Ermetic 的研究人员称,该服务还可以通过向用户提供的 URL 发出请求来指示自动确定架构,此功能称为“从 URL 导入”。

一旦你指定了模式的 URL,Azure API 管理 CORS 代理就会通过向指定的 URL 发送 HTTP 请求来检索模式,研究人员在他们的报告中说。

跨源资源共享 (CORS) 是一种基于 HTTP 标头的机制,它允许 Web 服务器向浏览器指示允许加载脚本等资源的其他源(服务器)。这种情况下的 CORS 代理会拦截请求并修改 CORS 标头,以确保允许 portal.azure.com 和其他服务器之间的跨域请求。

一旦发现此功能,Ermetic 研究人员便考虑提供 http://localhost 或 http://127.0.1.1(环回地址)作为远程 URL,以获取模式以查看 CORS 代理是否会在内部到达服务器本身,实现SSRF。这导致了 HTTP 403 错误(禁止访问),表明存在黑名单。

然后研究人员注册了一个名为 localhost.me 的域,然后编辑其 DNS 记录以指向 127.0.1.1。因此,当 CORS 代理尝试访问 http://localhost.me 时,它会首先解析 DNS 并尝试访问返回的 IP 地址,该地址绕过黑名单指向自身。这奏效了。CORS 代理返回的响应是 HTTP 错误 404(未找到页面),这意味着服务器不再拒绝请求但没有可提供的页面。

研究人员还发现,他们可以在请求中添加自定义标头,这些标头将由 CORS 代理代理到目标服务器,从而为更复杂的攻击打开大门。然后他们尝试在不同的端口号上访问内部服务器,而不是默认的 80,以探测其他服务是否可能在自定义端口上运行,并注意到当他们尝试包括“300”的端口号时,例如 300、3000 或 30000 ,他们再次收到错误 403 Forbidden。

研究人员说:“我们了解到,如果专门针对这些端口存在正则表达式 [正则表达式],那么一些重要的服务必须在这些端口上侦听。”

正则表达式是可用于构建黑名单的搜索和匹配规则。例如,该规则可以匹配请求中包含术语 localhost 和由 300 组成的端口号的任何 URL。研究人员推断,如果存在正则表达式,它必须应用于请求标头中名为“Ocp-Apim-Url”的值,该值定义了 CORS 代理到达的 URL。因此,他们使用指向他们控制的域的 URL,然后将代理重定向回 http://localhost:30001。

这有效并再次绕过黑名单,允许研究人员发现和访问不同端口号上的内部服务:30001 - 开发人员门户的经过身份验证的视图,30004 - Azure 的管理 API,30005 - Azure 的 Kudu API 管理,30006 - 未发布的开发人员站点(未经身份验证)。Kudu是为 Azure App Service 的一些管理功能提供支持的引擎,Azure App Service 是一种用于在 Azure 上托管和部署 Web 应用程序的服务。

SSRF 漏洞揭示黑名单弱点作为防御

这个通过 CORS 代理的 SSRF 漏洞类似于 Orca Security 的研究人员在 11 月份在同一服务中发现的漏洞。Ermetic 在 12 月向 Microsoft 报告了它的发现,并认为它可能是同一个漏洞。然而,他们的漏洞利用绕过了 Microsoft 在 Orca 报告原始缺陷后实施的修复,使其成为一个单独的漏洞。这凸显了依靠正则表达式等黑名单技术作为这些类型功能的防御机制的困难,因为总是有多种方法可以绕过它们。

Ermetic 研究人员并没有就此停止他们的分析,并发现了第二个 SSRF,这次是在 Azure API 管理托管代理中——一个不同的代理,用于在创建 API 时为 API 动态配置后端服务 URL。

“当从用户指定的前端发送请求时,请求将被发送到入站处理代理,然后再发送到指定的后端,”研究人员说。在此过程中,代理将根据用户定义的入站和出站处理策略对请求进行修改。

研究人员发现,用户可以将 set-backend-service 策略配置为指向 http://localhost 而不是他们真正的 API 后端服务 URL,从而欺骗代理将从 API 前端接收到的请求定向到它自己。

“由于我们可以控制前端和入站处理策略,我们可以使用我们选择的 HTTP 动词/方法和自定义标头发送 SSRF,”他们说。“我们能够访问内部 HTTP 端口 80 以进行 POC [概念验证]。”

对于这两个漏洞,研究人员停止了调查,以避免对内部服务和基础设施造成损害,或者避免通过通常需要身份验证的 SSRF 探测访问敏感数据的风险。

API Management Developer Portal中的路径遍历漏洞 

最后,研究人员还能够在导致路径遍历的 API 管理开发人员门户中找到不受限制的文件上传功能。这有可能影响最终用户部署的任何自托管 API 管理开发人员门户以及他们自己的基础设施。

“我们发现 Azure 不会验证上传文件的文件类型和路径,”研究人员说。“经过身份验证的用户可以遍历上传文件时指定的路径,将恶意文件上传到开发人员门户服务器,并可能使用 DLL 劫持、iisnode 配置交换或任何其他相关攻击媒介在其上执行代码。”文章来源地址https://www.toymoban.com/news/detail-641784.html

到了这里,关于Azure API 管理缺陷突出了 API 开发中的服务器端请求伪造风险的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 服务器管理平台开发(2)- 设计数据库表

    服务器管理平台开发(2)- 设计数据库表

    本篇文章主要对数据管理平台数据库表设计进行介绍,包括单库多表设计、SQL语句、视图构造等 设备品牌、序列号、型号等使用业务主表进行记录,逻辑磁盘、PCI设备可能出现1对N的情况,分别使用PCI设备表、Mac地址表、逻辑磁盘表、应用程序表、登录日志表进行记录 构建虚

    2024年01月22日
    浏览(9)
  • Azure微软云(部署一台虚拟机云服务器)

    Azure微软云(部署一台虚拟机云服务器)

    1.1 概述 Azure是Microsoft的云计算平台,提供了超过100多种服务,是世界第二大的云计算服务商。 1.2 虚拟机 Azure微软云中,虚拟机分为 Linux虚拟机 和 Windows虚拟机 创建的方法也分为多种方法,以是官方创建虚拟机的参考文档 Auzre CLI : Linux Windows Azure PowerShell: Linux windows 门户:

    2024年02月02日
    浏览(13)
  • 前端开发服务器中的 Proxy 代理跨域实现原理解读

    前端开发服务器中的 Proxy 代理跨域实现原理解读

    各位朋友你们好,我是 桃小瑞 ,微信公众 @ 桃小瑞 。在这给大家拜个晚年,祝各位朋友新年快乐。 在前端的开发过程中,尤其是在浏览器环境下,跨域是个绕不开的话题,相信每个前端都会涉及到这个问题,记住的就直接手敲解决跨域问题,记不住的就只能问度娘了。😂😂

    2024年01月16日
    浏览(9)
  • VS Code基于服务器中的docker的开发环境配置

    VS Code基于服务器中的docker的开发环境配置

    当然可以在vscode中直接下载Dev Containers插件,在连接到服务器之后,在Dev Containers中找到相应的docker连接后直接进行开发。 此时你就会看到你服务器上所有正在运行的docker容器(必须要保证你想要开发的docker容器此时的状态是正在运行),然后点击对应的docker容器连接即可,

    2024年02月11日
    浏览(6)
  • 通过azure学生认证拿到一年服务器使用权

    通过azure学生认证拿到一年服务器使用权

    通过azure学生认证 因为国内备案被迫找其他服务器 开始我买了一个华为的服务器,大家都知道,在国内,服务器是需要备案的。如果你备案过的话,就知道这个是非常麻烦的事情。时间久不说。过程也是非常的繁琐。这个繁琐的过程,完全打消了我企图使用域名访问正常访问

    2024年02月09日
    浏览(10)
  • 【Microsoft Azure 的1024种玩法】三十七.通过Azure Virtual Machines实现远程连接本地内网服务器(内网穿透)

    【Microsoft Azure 的1024种玩法】三十七.通过Azure Virtual Machines实现远程连接本地内网服务器(内网穿透)

    frp 是一种快速反向代理,可帮助我们将 NAT 或防火墙后面的本地内网服务器暴露给 Internet,让我们通过 Internet直接远程访问本地的内网服务器,本篇文章主要是向大家介绍了如何利用Azure Virtual Machines来实现内外网穿透,当我们在外边想要远程家里或者单位内网电脑及服务器时

    2024年02月08日
    浏览(4)
  • 【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求

    【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求

    使用Azure API Management, 想对一些固定的IP地址进行访问次数的限制,如被限制的IP地址一分钟可以访问10次,而不被限制的IP地址则可以无限访问?   最近ChatGPT爆火,所以也把这个问题让ChatGPT来解答,然后人工验证它的回答正确与否? 根据对APIM Policy的文档参考, choose 和 rat

    2023年04月24日
    浏览(7)
  • 一个.Net开发的功能强大、易于使用的流媒体服务器和管理系统

    一个.Net开发的功能强大、易于使用的流媒体服务器和管理系统

    推荐一个视频管理系统,非常适合个人或者公司打造视频网站。 这是基于.Net Core开发的,跨平台的开源项目;支持多种音视频格式,如MP3、MP4、AVI、WMV、FLV等;支持本地管理与远程管理,让管理员可以轻松的管理视频资源。 而且该项目还提供多平台的客户端,支持Web、桌面

    2024年02月05日
    浏览(5)
  • 【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github

    【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github

    前面的文章我们搭建了微信公众号开发的服务器,写了一点代码。后面肯定会对代码不断的完善和迭代,那怎样维护这些代码呢? 可以通过GitHub进行维护和版本管理。 本文主要带你从0开始构建起服务器和GitHub仓库之间的联系。 本文假设你已经略懂基本的 git 指令: git init

    2024年02月02日
    浏览(13)
  • 【Azure】微软 Azure 基础解析(六)计算服务中的虚拟机 VM、虚拟机规模集、Azure Functions 与 Azure 容器(ACI)

    【Azure】微软 Azure 基础解析(六)计算服务中的虚拟机 VM、虚拟机规模集、Azure Functions 与 Azure 容器(ACI)

    本系列博文还在更新中,收录在专栏:「Azure探秘:构建云计算世界」 专栏中。 本系列文章列表如下: 【Azure】微软 Azure 基础解析(三)描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx 【Azure】微软 Azure 基础解析(四)Azure核心体系结构组件之数据中心、区域与区域

    2024年02月07日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包