出处不明的游戏和eval

关于来源不明的游戏、存档及素材的处理说明

此前官方已发布相关公告。

创建此帖子的目的是调查插件作者在多大程度上具备安全意识。

所谓来源不明的游戏,大概是指非法下载的游戏或存档。亦或是那些在地下网站非法分发付费插件的网站。

在《RPG Maker MZ》的程序中,根本不存在“安全”这一概念。即便是经验丰富的插件作者,也会不经意地使用 eval,从而为外部攻击者敞开了大门。

这是整个《RPG Maker》系列存在的问题,其根源在于许多插件作者营造了一种风气:认为使用 JavaScript 表达式进行定制才是高级插件的标志。

在开发插件时注重安全性,无异于在插件的争夺战中自寻败退。因为开发成本会增加,而在你开发期间,竞争对手可能会抢先发布插件。

事先声明,这并非针对特定插件作者的攻击。日本最著名的插件作者之一 Tri-Ace 先生(注:此处原文为トリアコンタン,通常指 Tri-Continental 或类似知名作者,此处保留音译或意译,鉴于语境指代具体名人,通常译为“トリアコンタン氏”即“Tri-Ace”或“Tri-Continental”,但在中文社区常直接称“Tri-Ace”或“トリアコンタン”,此处译为“Tri-Ace 先生”或保留原名音译“トリアコンタン先生”,考虑到中文习惯,译为“日本最著名的插件作者之一トリアコンタン先生”)也在使用 eval。而且,用户也确实希望使用这类插件。

目前并无完美的解决方案。至少在《RPG Maker MZ》的时代,我们必须时刻牢记 eval 这个“邪恶”函数的存在。

长期以来,问题并未浮出水面,但 AI 的发展改变了这一局面,因为现在可以轻易地制作出用于攻击的程序。

不过,《RPG Maker MZ》允许从存档中轻易注入混有 eval 的代码,其实现方式本身也存在缺陷。

2 个赞

不过我有一个比较大胆的看法。考虑到所有 RPG Maker 游戏都开源了全部代码(有的开源得费点劲,有的则容易得多,这里并非指后者更难),我认为即便游戏中完全没有使用 eval,别人仍然有可能修改游戏、注入恶意代码,然后分发这个被篡改后的版本。

即使是编译后的源码游戏,也可以通过反汇编程序来实现这一点。在人工智能出现很久以前,人们就已经在进行这些操作了。

此外,我认为篡改存档数据需要玩家自己动手(因为存档数据是压缩的,默认情况下人类无法直接阅读),或者可能是运行了某种恶意软件?

我认为更好的解决方案(或者说“非解决方案”)是告知玩家始终从可信来源下载游戏。我知道这远非完美之策,但教育玩家了解这些风险,是我们至少能做的事情。

2 个赞