客服

《Screeps:World》形同开后门给黑客?玩家揭露Steam游戏支援自订程式码,爆安全漏洞还拖两年才修

通常而言,当玩家们游完一款即时战略游戏时,往往会选取单位,然后再直接对那个单位下达指令,比方说前往矿场、攻击敌人之类的。但偶尔我们也往往会因为比较笨的 AI 程式码无法正确执行指令时而感到气馁、生气。 Steam 上就有一款号称没有笨 AI 的即时战略游戏《Screeps:World》,自 2016 年发售至今已经卖超过 10 万套。这款游戏中当单位生成后并没有内建 AI,玩家可以自己编写程式码来控制那个单位的行为而回避「笨 AI」这件事,不过,却被发现这个功能可能会让有心人士直接骇进玩家的电脑,而游戏开发团队还没有第一时间处理这个漏洞,只在日前后续修复,而 Steam 官方也并未回覆相关举报。

undefined

国外一位资讯爱好者 Isaac King 在自己的个人部落格上写了一篇长文,揭露国外即时战略游戏《Screeps:Worlds》可能会让玩家电脑被骇的漏洞。这是因为,《Screeps:World》与一般的即时战略游戏不同,单位生成后如同白纸一张,没有任何 AI,所有的行为都必须由玩家自己透过内建的控制台完成,才能让单位透过玩家撰写的程式码行动,例如必须给工兵「如果旁边有矿藏就开采」这个指令,他才会采矿。


如此一来,玩家们就能自己控制单位的行为,避免即时战略玩家总会觉得「原本的 AI 设计很笨」这件事,听起来很棒。不过,问题恰恰由此而生。因为玩家在《Screeps:World》中也会透过 JavaScript 的 console.log 指令来写程式码,例如如果要单位报告搜索到的敌方的话就会是 console.log("发现敌军"+敌方单位名)。而为了让冷冰冰的程式码符合《Screeps:World》游戏中复杂万变的情况,因此游戏开发者修改了这个指令,赋予了 console.org 能够解析 HTML 标签,并且自动执行的能力。


也因此,如果有玩家恶意的将自己单位的名字命名为一串 HTML 恶意指令程式码,只要这个单位被其他玩家找到,就能自动触发,直接将这段恶意攻击程式码植入其他玩家的电脑,达到攻击其他玩家电脑的目标,再加上,由于 Steam 客户端本身的架构,因此透过注入 JavaScript 脚本的方式就能直接存取受害玩家电脑的所有档案、系统权限,形同让《Screeps:World》的特殊机制直接变成漏洞,无论自己电脑的防毒软体多强都没用。

undefined

而虽然开发团队已经透过加上一行程式码修正这个严重的资安漏洞,但他们仍认为,这并非他们游戏中的问题:「由于这涉及玩家输入的程式码,因此我们认为这并非漏洞,玩家们应该要仔细了解自己输入了什么。并且,我们也是小团队,资源非常有限,正在忙其他专案,而这个漏洞本身会造成问题的条件也很严苛,也并未收到有玩家因此受到伤害的报告。」


这点也让 Isaac King 怒批,称《Screeps:Worlds》的开发团队根本知情:「因为 console.log 指令一开始根本就不能解析 HTML 标签,他们是有意为之!」,直言开发商拖延两年才修复这个漏洞真的超夸张。不过,这个漏洞目前已经被修复了,只是对于这款游戏的 10 万名玩家来说或许也难以想像,自己当初买下游戏的决定没想到会意外成为自己帮骇客开的后门,让电脑一度暴露于风险中。

相关新闻
发现好游戏
游戏专区
游戏详情
Steam
安卓版扫码下载
扫码下载

Steam

9.8
OurPlay免费下载