查看原文
其他

暴雪游戏悄悄修复所有玩家均受影响的 DNS 重绑定漏洞

代码卫士 2022-04-06

 聚焦源代码安全,网罗国内外最新资讯!

作者:Catalin Cimpanu 和 Tavis Ormandy

翻译:360代码卫士团队


谷歌著名的安全研究员 Tavis Ormandy 在所有暴雪 (Blizzard) 游戏中装载的 Blizzard Update Agent 中发现了一个 DNS 重绑定漏洞,它可让任意人员以暴雪的更新服务器身份通过并发送恶意文件,欺骗Update Agent 将其当作游戏更新运行。

Ormandy 201712月初将该漏洞告知暴雪公司。

漏洞运作原理

Ormandy在发布的漏洞报告中指出,所有的暴雪游戏都会安装一个共享工具 Blizzard Update Agent,据称暴雪每个月的活跃用户是5亿人,这些人应当都安装了这个工具。这个 Agent 工具创建了一个监听本地主机端口 1120  JSON RPC 服务器,并接受安装、卸载、更改设置、更新以及其它和维护相关选项的命令。暴雪使用一个自定义验证计划来确保 RPC 源于合法来源,如下:

这个端点未经验证即可获得许可,但其它所有的请求都必须拥有一个有效的“授权”头部信息,而响应中应具有该口令。和这类所有的 HTTP RPC 计划一样,网站能向带有 XMLHttpRequest() 的守护进程发送请求,但 Ormandy 认为理论上,这些请求都会遭忽视,因为它们必须证明能读写授权属性。

Ormandy 认为,由于 DNS 重绑定攻击的存在,这种设计根本行不通。任何网站都能轻易创建一个网站经授权可以与之通信到的 DNS 名称,随后将其解析到本地主机。Ormandy 发现他能借助浏览器向一名用户传播恶意 JavaScript 攻击这台服务器并将 Agent 的更新服务器重绑定到恶意服务器上。

也就是说,任何网站均可向 Agent 发送权限命令。

暴雪悄悄推出 Update Agent 补丁

Ormandy 昨天在推特上公布了该漏洞的存在,他注意到暴雪公司在1222日停止和他的通信后修复了这个漏洞。Ormandy 对暴雪公司拒绝开展更多的沟通行为以及该公司未向他询问补丁意见而感到不满。

Ormandy 对打补丁进程表示不满

Ormandy 表示,暴雪公司饶了一大圈为暴雪 Update Agent(版本5996)推出补丁。

他表示,暴雪 Update Agent 拿取向 JSON RPC 服务器发送命令的 app 的名称,计算一个32位的 FNV-1a 字符串哈希,并将其和不允许查询 JSON RPC 服务器的 app 列表进行比对。浏览器似乎被黑名单化。

Ormandy 指出,“我提议他们将主机名白名单化,但显然他们认为这个解决方案太优雅简单了。我对于暴雪在未通知或咨询我的情况下就推出补丁的行为感到不满。这个计划中明显存在的缺陷就是黑名单需要是完整的且得到维护,因此我认为未来它会崩溃或者对于使用不常见浏览器的用户而言会发生这种状况。”

暴雪的一名发言人随后澄清称,基于 EXE 的黑名单“实际上已经老旧而且我们不打算用它解决这个问题。”但发言人并未披露暴雪公司是如何修复这个漏洞的。虽然目前尚未披露补丁详情,但暴雪公司表示他们恢复了和 Ormandy 的沟通。目前尚不清楚他们是否邀请 Ormandy 评审该补丁以确保 Update Agent 补丁代码不会以另外一种方式导致用户易遭攻击。

很多其它 app 或也易受这类攻击影响

Ormandy 还公布了一份针对暴雪 Update Agent 发动 DNS 重绑定攻击的 PoC。另外他还公布了另外一篇针对其它 app执行通用 DNS 重绑定攻击的 PoC。研究人员可借此找到易受这类缺陷攻击的其它 app

Ormandy此前曾发现 Transmission BitTorrent 客户端也易受类似 DNS 重绑定缺陷的攻击。另外,他表示未来将查看其它大型游戏(安装量超过1亿次)中是否存在安全缺陷。




关联阅读


热门 Transmission BitTorrent 客户端现严重缺陷,导致电脑遭远程控制


本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。


原文链接:

https://www.bleepingcomputer.com/news/security/blizzard-fixes-dns-rebinding-flaw-that-put-all-the-companys-users-at-risk/

https://bugs.chromium.org/p/project-zero/issues/detail?id=1471&desc=3


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存