据,在8月7日,忍无可忍的安全研究员Vasily Kravets选择他发现的一个0day漏洞,而且这个漏洞还是存在于那个与许多玩家紧密相关的:Steam Windows客户端上。这一漏洞可以让任何“用户”通过简单的代码获取LOCALSYSTEM权限然后为所欲为。
这一漏洞基于“Steam Client Service”,既使是一些无权限“用户”也可以启动或停止这一服务。这样就带来一个问题,这一服务会自动批准一些注册表改动。如果被恶意使用的话,这些键有可能通过Symlink链接到其他服务项之下,让用户可以“借用”管理员权限下自由运行/停止一些自己想运行的exe文件,甚至可以让它们在Windows Installer Service(msiserver)下运行。
外媒按照他提供的方法在虚拟机中使用无权限“用户”成功在“ C:\Windows\System32\”建立了一个文件,据称,整个过程中没有弹出Windows User Account Control(UAC),并且只用了数分钟就完成了,甚至只需要Steam客户端,连游戏都没有安装。
然而发现者Vasily通过漏洞众测公司HackerOne反馈这一漏洞后,所得到的回复却是“超出适用范围”,Valve认为“这种攻击需要在用户的本地文件系统的任意位置放置文件的能力”。但经过外媒测试也可以发现,借助Symlink也可以实现这一工作,而发现者Vasily自然也不同意这种说法。
因此他和HackerOne的工作人员进行了讨论,另一位工作人员在确认完这一报告后,最终向Valve反馈了这一问题。但没过几周,他从第三位HackerOne员工那又收到了“拒绝”的结果。他在原有的理由中又追加了一条“攻击需要物理接触用户设备的能力”。
不过第二条原因对于一个游戏平台而言,就更不成问题了。既使对方没法亲自给你的电脑装上他的东西,但是心怀恶意的“开发者”就有可能创造出一个免费“游戏”,吸引一些不明就里的人们主动下载。在前段时间,Steam上就曾出现过名为《Pay for Picture》的“拼图”游戏,不仅使用盗来的擦边球图片,根据评测区的反馈,这一游戏还在后台进行“挖矿”行为,好在经过举报已经彻底下架了,但开发商Mola Game似乎还有着创造其他类似“游戏”的动向,当然这些都是后话了。
回到Vasily的话题上,两次遭拒的他,决定不再依靠外援,除了直接公开已经别无他法。他向HackerOne发出了最后通牒:等到7月30日之后,他就会公开这一漏洞。虽然有这样的声明,但是他并没有在8月立即公开。可笑的是,还没等他公开,他却在8月2号收到了HackerOne的警告:禁止他公开这一漏洞,尽管他们曾“反复声明”这一漏洞“超出适用范围”,并且Valve自家也“觉得”这一问题无足轻重。
这甚至不是人们第一次提出这一漏洞了,早在2015年就有人将提交到了公共漏洞及暴露数据库CVE中,在Vasily公布后,这一漏洞也被收录到了中。Vasily称,这一漏洞很容易发现,但他是第一个分析研究这一漏洞的人。在8月6号,Steam又进行了一次更新,但是问题依然没有被修复。
在他发布漏洞的文章最后他还写道“这篇文章原本打算在7月30号就发布(这是我在发出漏洞报告时给出的45天的截止日期)但是2周之后的7月20日,一个人出现并且告诉我这份报告被标为‘不适用’。他们还关闭了关于这一漏洞的讨论帖,却不给我任何解释,甚至,他们还不希望我将漏洞公开。同时,Valve也没有给我任何回应。不,老兄,不应该是这样的吧。既然你们不尊重我的工作,那么我也没必要尊重你们的了,我没有任何理由不公开这一漏洞。或许我会被HackerOne封禁,即便如此我也不会失望。”
不过这并不是说使用Steam就是不安全的,你也没有必要卸载Steam,只不过在购买一些不明来源的游戏时需要更加谨慎一些。外媒目前联系了valve,但目前还没有受到回应,如果之后事情有所发展,请关注我们的后续报道。
在最新的Beta版客户端中已经修复了通过Symlink扩大权限的机制,如果你需要的话可以在Steam设置>>账户>>参与测试中选择参与Steam Beta Update来进行更新。