导语:本文描述了一类安全漏洞,此类安全漏洞漏洞是一个由于在HTTP API设计和实施过程中可能出现的安全情况,这些漏洞可能会被用于绕过网络安全策略并启用数据交换或未经授权的API。

基于非浏览器的跨域HTTP请求攻击

截至本文发布时,此漏洞还没有发布CVE编号,如果有CVE编号的消息,我将第一时间进行后续报道。

此类安全漏洞漏洞是一个由于在HTTP API设计和实施过程中可能出现的安全情况,这些漏洞可能会被用于绕过网络安全策略并启用数据交换或未经授权的API。

由于此漏洞依赖于Google Cloud Storage SDK,所以当前版本的rclone用户可能会受到此次攻击的影响, Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。如果用户使用rclone sync命令在不同的Google云端存储分区之间转移数据,则会创建一种攻击环境,即Google Cloud Storage API服务器选择的任意URL的完整内容将以静默方式发送给Google。

广义上讲,此漏洞是一个混淆代理问题,因此它会影响那些依赖登录权限进行访问控制的进程,此攻击建立在Joey Hess在CVE-2018-10857 (更多信息点此)中发现和披露的漏洞之上。

构建非浏览器应用程序的开发人员并不能从现代web浏览器提供的安全域隔离框架中获益,他们仍然有责任考虑并减少跨信任域进行意外交互的机会。

漏洞攻击场景

1.对由API服务器选择的URL执行操作的API客户端;

2.在API服务器提供的URL重定向的API客户端上执行任务;

使用易受中间人攻击的网络传输的API客户端,不仅会受到一般黑客的攻击,而且还会受到能够控制API服务器的攻击者的攻击,也能受到能够执行中间人攻击的攻击者的攻击。

已知受影响的API

1.Google云端存储;

2.Backblaze推出的云存储服务B2;

3.Yandex.Disk云存储服务;

Google Cloud提供的Python&Go SDK都易受此攻击的影响,此漏洞也可能适用于其他云存储API。

攻击示例详解

在RESTful API实现的上下文中,具有API服务器控制权的攻击者,会向客户端返回一个他们希望客户端推送或提取数据的URL。或者,API服务器使用HTTP重定向来使客户端与API服务器选择的URL进行交互。

这使得攻击者可以让客户端从攻击者指定的URL中请求数据,进而将得到的数据用于不同的信任域,从而使得数据泄露。在将数据发送到任意URL的客户端中,该漏洞可以使得攻击者将PUT或POST请求发送到系统设计人员可能认为无法访问的URL中。

客户端经常可以访问那些保密的URL,不过某些软件可以使用 ‘file://’ 语法来允许访问任意系统文件,托管在本地或私有IP地址上的URL经常无需身份验证即可被访问。在云环境中,169.254.169.254端的可用数据有时会包含一些凭证,这些凭证可以创建重要的权限升级机会,此时任何通过权威认证的数据都会被暴露。

缓解措施

1.创建可安全访问的网址或网址格式的白名单;

2.在应用程序的适当抽象级别实施同源策略,选择适当的信任域。

3.避免在重定向的URL中进行操作,如果进行了URL重定向,请仔细考虑。

4.不要接受任何来自远程服务器的任意URL,在客户端生成所有URL,使用URL命名策略有助于搞清楚何时跨越信任域。

5.只使用不容易受到中间人攻击的配置,如果使用HTTPS,请确保进行适当的证书验证。

6.特别要注意DNS重新绑定攻击,注意IPv4、IPv4和IPv6的IP空间映射。