几天前,一种新型的金币/物品骗局流传开来。通常在MMORPGs(大型多人网络角色扮演游戏)中的欺骗通过社会工程学技术实现,如攻击者声称其具有游戏内物品(例如坐骑),然后将假冒的物品代码卖给一个潜在的受害者以获取游戏货币。但是,这种最新攻击不仅涉及了社会工程学,还依赖于先前的魔兽世界接口中的非法功能的滥用。
新型攻击
想象一下以下情况:一个游戏角色,以一个受欢迎的协会成员的方式出现,然后接近你的游戏角色,并且承诺分享一些很酷的东西给你,如稀有坐骑(一种动物,可以乘坐和改善你的行进速度)、武器等等。而实际上,很有可能攻击者并没有这些物品,也没有这些物品的有效代码。当然,随后受害者也没有得到任何有效的代码和物品。但是,陷阱是:攻击者可能会成功地说服玩家在聊天窗口中输入一个命令:
/run RemoveExtraSpaces=RunScript
魔兽世界的接口(如操作栏、聊天窗口和其他图形元素等所有2D的接口)和扩展(如改进接口)都是用Lua脚本语言写的。上面这行命令的等号两边,RemoveExtraSpaces还有RunScript都是合法的函数,并且是魔兽世界Lua API的一部分。但是,如果在你的聊天窗口中输入这行代码的话,会改变魔兽世界接口的行为。
这个命令到底做了什么?
/run是一个将下面的文本解释为一个Lua脚本的命令
RemoveExtraSpaces是一个内置函数,用来删除文本中不必要的空格
RunScript是一个将文本作为Lua代码执行的函数(类似于/run命令)
为什么这是一个威胁呢?
玩家接收到的每一条聊天消息都会调用函数RemoveExtraSpaces。上述命令用RunScript函数来替换RemoveExtraSpaces函数, 这在软件开发中称为钩子。一旦覆盖掉原来的函数,那么每一个新的聊天消息都会被解释为Lua代码,并立即执行。场景如下:
不知情的玩家会在自己的聊天窗口中输入给定的命令,因为外国的游戏角色听起来会非常令人信服,如果他说了类似“输入这个代码,神奇的事情将会发生”这样的话。而结果却是相反的,玩家并不会得到一些魔法物品,而是把自己变成了受害者:
不知情的玩家准备“发送”这行邪恶的代码
攻击者给受害者发送一条聊天消息
这条“聊天消息”被解释为Lua代码并执行
如上所示,看起来这种滥用是一个相当无害的例子。但实际上,这意味着攻击者现在可以远程控制受害者的接口。这非常类似于普通的特洛伊木马在电脑上显示的行为——它们冒充一些有用的东西,然后展开它们的恶意行为。在实际情况中,攻击者并不是创建一个包含 “测试”文本的消息框,而是会运行一个不同的脚本,这个我们将在下一节中解释。
(责任编辑:安博涛)