maplestory吧 关注:45,921贴子:442,294
  • 10回复贴,共1

【MapleStory】科普文章系列之nexon如何防御未授权程序入侵

只看楼主收藏回复

这系列文章是wiki群卡卡提到,有意做这个系列的文章,翻译后能让大家了解冒险岛是如何防御未授权的应用程序侵害冒险岛的,这篇文章首发在maplestory的韩服,原文链接如下:
https://blog.maplestory.nexon.com/%EB%A9%94%EC%9D%B4%ED%94%8C%EC%8A%A4%ED%86%A0%EB%A6%AC-%EB%B9%84%EC%9D%B8%EA%B0%80-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%B0%A9%EC%96%B4%ED%95%98%EA%B8%B0/
以下是翻译正文。
1、为什么maplestory要关注hack和宏
所有的游戏都有游戏规则,而这些规则必须对所有玩家都是公平的。未经授权的程序(例如外挂程序)可以打破这一普遍规则,破坏游戏中的经济系统和生态系统本身,所以冒险岛以及所有游戏都在拼尽全力应对黑客和宏等非法程序。在这篇文章中,我想介绍一下关于冒险岛(maplestory)我们在防御未授权程序方面所做的努力、试错和改进过程。
2、了解hack与宏
首先,必须区分hack和宏指令 。如果hack是癌细胞,宏就是坏习惯。hack是没用的!必须无条件清除,但宏需要更慎重的应对。两者都以不公平的方式对游戏服务产生不利的影响,但相对hack行为能造成更大的损害,因此我们正在采取强有力的措施。 根据运营政策,一旦发现黑客行为可立即永久封停账号,宏则采用累计处罚方式,根据违规次数增加处罚天数。当然,如果重复宏检测,将永久封停。
3、hack防御
关于hack防御,主要分为以下三大块。
1、CRC校验2、客户端混淆3、NGS(Nexon游戏安全,即nexon game security)我们正在构建客户端防篡改hack防御机制,包括数据和客户端代码区的CRC校验,混淆保护客户端代码,NGS除了上述两种之外还包括各种防御逻辑。为了应对游戏更新后新代码或数据的添加,加强并添加了CRC校验逻辑,同样添加并应用了混淆处理。 NGS与 Nexon Game Core Response Team 密切联系,以加快更新和补丁集的应用,以提高利用率。特别是增加了使用NGS检测的自动惩罚机制,对于有大量可疑日志的用户,我们通过自动跟踪系统识别hack行为动向来快速响应。
4、宏防御
使用服务器端行为模式相似度检测(LCP=Longest Common Prefix Algorithm),这块主要应用了相似度算法(即你的行为如果越接近坏人,会将你匹配成开了辅助的恶意用户)。

过去,对于宏防御,我们决定计算与用户模式的相似度。逻辑在游戏服务器中,模式使用从客户端发送的数据包。作为参考,数据包中有很多信息。打怪升级、拾取物品、移动地图、移动通道等重要信息都在里面。但它失败了。宏主要用于狩猎,因为狩猎相关的数据包具有高度的相似性,很难将宏脚本与一般用户区分开来。人类区分宏的只是狩猎移动路线、技能使用点等细微之处,但相似之处并不突出。
5、按键输入模式检测
这块典型的有按键精灵,以前,很多用户使用Auto Hotkey等按键记录程序,但即使他们不会使用宏程序,任何人都可以通过键盘提供的按键模式记录功能来使用宏。此外,由于这种硬件方法无法被NGS检测到,因此实际上没有办法防御它。但是,这种负面效果非常大。狩猎地图是有限的,不管是谁看到都是宏,但是自然是因为它占据了24小时的地图。因此,我们不是检查宏播放模式的相似性,而是检查键盘输入值的模式。不可能屏蔽所有的宏,但是常用的键盘宏是可以防御的。当然,使用宏用户也在进化。已经发现了各种形式,例如使用多个键盘、组合屏幕键盘或使用软件键盘。这种玩法给出了另一种提示,用于开发新的宏检测模型。同时,玩耍的方式也逐渐多样化,乍一看很难与人类区分开来。随着攻击和防御的重复,大多数基于硬件的宏都面临着局限性,攻击者可以选择一种程序类型来为宏模式赋予更多可变性。但是,程序相对容易被发现,使用非法程序是帐户被永久封停的一个原因。
6、鼠标模式检测
与键盘宏检测类似,我们使用鼠标事件的宏功能添加了检查逻辑。人类模式在从一点移动到另一点时没有恒定的速度。有时它会加速,有时会减速。宏形态的特征是当它们从一点移动到另一点时速度稳定下降。最初是为了防御拍卖行的自动买卖宏而开发的,除了拍卖行外,游戏中使用的鼠标宏也被检测到。当然,还不能说是完美的,研究和改进工作正在进行中。
7、测谎仪–检测防御
韩语测谎仪(CAPTCHA:全自动区分计算机和人类的公共图灵测试)比英语更难自动禁用。因此,使用宏的用户会创建测谎仪警报并手动将其关闭。所以,通知是必不可少的,搜索测谎仪UI图像创建通知,配合说韩语进行远程输入。由于这是一种使用 AutoHotkey 进行图像搜索的方法,因此将UI设为半透明,并且随机更改颜色。随着识别UI中特定模式的图像搜索方法的发现,也出现了针对它的防御措施。测谎仪的屏幕不是方方正正的,而是随机性很强的加强版。但是,只有在怀疑使用宏时才会触发该版本的测谎仪。

如果您查看测谎仪检测的原因,大约有 20% 是断开连接。 换句话说,测谎仪会先断开连接然后自动重新连接游戏。
另一方面,大部分测谎仪检测时长超过了验证码输入时间,测谎仪检测可以说未找到画面上的测谎仪。
8、符文自动解除防御
在冒险岛中,符文存在于高级狩猎地图中。符文会周期性地被召唤到地图上的随机位置,通常由用户会解除它们,因为它们在解除时可以获得有助于狩猎的增益(例如增加经验值、释放AOE技能、增加伤害)。另一方面,自动解除符文的宏被我们忽略了
我们决定将此方面用于宏防御,并在2017 年4 月的补丁中添加了“诅咒符文”效果。换句话说,如果你不开启符文,你将受到减少经验和掉率降低的惩罚
正如预期的那样,宏用户开始使用图像搜索来自动解除符文,我们稍微修改了箭头并使用随机颜色进行防御。宏用户对此也有反应,不仅是图片搜索,还有图片黑白后的相似度计算。再一次,在防御工作中,我们正在进行一项额外的防御工作,使图像本身随机化。

9、业务防御
多台PC和IP防御
多台PC对于工作室的运作是必不可少的,冒险岛不允许多开,所以我们尽量禁用校验码或者使用虚拟机(vm)。我们通过不断更新NGS和游戏内检查代码来抵御这种情况。还有一些情况是使用VPN来规避每个IP 的登录限制,在这种情况下我们可以使用NGS日志记录进行跟踪。
多账户防御
而业务中多账户是绝对必要的。当然,你需要有多个账户,但如果你的账户被永久封停,你应该可以创建一个新账户。过去,离开Nexon帐户后创建新帐户可以洗掉封停历史,但我们通过留下新的标记来记录是否有黑客行为。有购买和使用别人身份证注册游戏账号的情况,但卖家通常会在验证自己的身份后使用便宜的手机创建一个帐户。使用廉价手机的身份盗号问题也是一个社会问题。 Nexon正在准备应对措施,同时尽量减少对普通用户造成的不便。测谎仪通知和监控工人防御“蘑菇游戏”
与使用英文验证码方法的海外服务不同,国内(这里指韩国)Maple被认为很难自动禁用韩国测谎仪。然而,在工作场所,监控人员正在手动禁用测谎仪。因此,我们开发并应用了额外的“蘑菇游戏”测谎仪,这是一种将可疑用户收集为工作室并立即触发测谎仪的方法,与激活相比,检测率非常高。与一般的测谎仪相比,蘑菇游戏测谎仪的检测率非常高,因为它针对的是工作场所的可疑用户。

上面的图是一个简单的蘑菇游戏。您必须输入四次正确答案。

这个图是最高难度,蘑菇游戏。为移动物体添加了透明度,并在背景中插入了干扰图像搜索方法的图像。难度每日增减,视激活该检测的情况而定。根据使用者的熟练程度,如果你把简单的蘑菇游戏解得好,难度会逐渐增加,你会解出困难的蘑菇游戏。大多数用户发现很难在最高难度级别体验蘑菇游戏(我也不想体验)。现有验证码方法的测谎仪超时结束的结果比例很高。另一方面,大多数蘑菇游戏测谎仪的结果都是链接失败。也就是说,有可能收到通知,但不可能取消。如前所述,同时激活蘑菇游戏测谎仪很重要。因此,需要一种可以同时在全世界启动测谎仪的系统,于是开发了“狙击测谎仪” 。
10、加强监控
1、基于日志的监控
为了在出现问题时能够快速响应,对游戏整体的监控非常重要,为了加强监控,加强了基于日志的异常检测和发送通知邮件,针对游戏商品和部署了各种错误日志。
2.用户数据包转存储
通过分析客户端发送的数据包,你可以看到他们是如何播放或操纵它们的。所以,我正在使用一个功能,将特定用户的数据包保留为游戏服务器日志。难道不能重现用户使用此游戏的方式吗?我很期待。然而,由于每个游戏更新补丁都会添加或更改新数据包,因此即使自动化,也存在管理问题并且分析起来并不容易。
3、自动跟踪系统开发
事实上,检查是否使用外挂或宏的用户的最快方法是观看实际的游戏场景。但是,要查找和查看用户处于哪个世界以及频道和地图在哪里并不容易。因此,我们开发了一个自动跟踪和监控可疑用户的系统。每个世界都存在跟踪器,并且正在监视整个世界。四五年前,外挂用户很多,对开发外挂防御逻辑和监控非常有用。最近又开发了一个核查系统,不断有用户被封停,所以外挂用户数量在逐步减少,利用率也比以前低,但可以说是目前外挂防御系统的起点。这是一个好的开始。
11、制裁(封号)
也许外挂防御最难的事情是误封号。如果没有100%的错误识别,就很难制定外挂防御逻辑。如果发生错误识别,则该逻辑在下一次服务器检查之前不可用。在最坏的情况下,如果逻辑没有开/关功能,您可能需要检查服务器。所以很难跟上黑客工具/外挂的更新。 由于冒险岛是一个长期的服务,并且以与过去类似的方式进行黑客攻击而不是新的黑客攻击,因此大多数都有异常检测日志。但是,由于游戏更新而导致错误识别的情况下,由于对被制裁的部分进行了异常处理,因此仅保留日志的情况很多。因此,除了新的黑客检查逻辑外,我们还将现有的黑客相关日志更改为新开发的黑客日志控制 。通过这种方式,可以在不检查的情况下更改制裁方法和标准,从而可以在发现黑客工具、外挂时迅速做出反应。主要功能包括激活测谎仪、拍摄视频、断开连接和锁定帐户。
黑名单用户分数系统
众多检测逻辑留下的日志被聚合成统计数据和分数。对综合得分高的冒险岛账号进行详细分析,并创建并应用新的制裁标准或模型。也就是说,既然我们是从排名靠前的方式回应的,就算你长时间玩得不正常,没有被发现,也说不定哪天会被突然制裁(封号)。
Living Bot (LBD,Live Bot Detection)
LBD是Nexon 开发和使用的基于数据的滥用(业务、外挂)反制解决方案。LBD开发了游戏直播的滥用响应体验作为检测规则,以便在多款游戏中使用。因此,可以减少人力/基础设施的重复造轮子,并通过共享技术/知识/平台来形成快速响应新模式。LBD在数据可以识别的所有区域创建检测规则,通过数据分析和人工发现模式发现检测区域。示例包括聚类游戏中的行为日志以检测你开启游戏是在什么区域,或分析交易网络以识别是否为工作室商人等等。目前,LBD的检测结果与HackRank系统是联动的,用于检测封号。
NGS(Nexon游戏安全)
作为适用于大多数Nexon游戏的游戏安全系统,检测并拦截非法程序、异常游戏访问、客户端篡改等。目前,我们正在对与开启游戏相关非法程序的用户进行自动封号。
真相室系统
这是一个系统,如果被用于宏防御的测谎仪发现,如果被发现则会在一段时间内限制游玩。当普通用户被测谎仪意外发现时,它可以防止帐户被封禁,并且可以有效地保护使用宏的现场情况。
限制使用个人识别码创建冒险岛账号
删除后,账号对创建没有任何限制,因此几乎可以无限创建帐户。个人识别码旨在改善这些不合理性,有效制裁恶意用户,有望提高外挂和宏防御的整体效能。如前所述,低价手机自认证漏洞的补全工作也在进行中。
12、整理起来


到目前为止,大多数针对黑客和宏的防御措施都在功能上分为“模块化” 。你将如何找到目标人物?如何判断误判?制裁会怎样?如果你考虑一下,这是很自然的,但如果从设计之初就没有考虑“模块化” ,新的工作或与外部模块的联动可能会很麻烦或不可能。 事实上,不可能从一开始就完全彻底地防御外挂、宏脚本。这是因为黑客工具也在不断更新。正在尝试通过重命名可执行文件或重新构建来规避检测。Nexon的通用模块、NGS 、滥用检测系统、基于游戏日志统计的hack行为排名系统各具特色又相通。该系统通过互补关系中的稳步协作不断发展。MapleStory想做的方向是创建一个可以快速响应新的黑客工具和宏的框架,这项工作仍在进行中。虽然不完美,但我们正在不断改进和发展我们的高级hack/宏观检测系统。 以上,我介绍了maplestory中防止未授权程序的方法。谢谢Gion Kim,拥有15年经验的直播服务程序员
分享这篇文章也是想让大家了解关于冒险岛的检测机制,理解游戏中的一些行为,帮助大家更好的游戏。
本文分享自 【菠菜maplestory碎碎念】 gongzhong号


IP属地:云南本楼含有高级字体1楼2023-06-23 03:30回复
    我直接给个解决方案吧:
    键盘宏现在会被检测,只能自己编译q语言写入宏u盘(接口模拟键盘接口)里面。
    躲避检测的方式就是在两个按键下添加随机触发的判断条件(即每按一次有30-60%的触发宏的概率,具体自己设置)
    延时(随机)的触发早就不管用了
    此方法仅仅适用于小地图来回刷怪和键盘操作比较尴尬的职业,比如爆破,链子妈,刀飞,狂龙,夜行等
    稍微懂一点编程的应该不难编写,宏u盘和键盘宏和键盘精灵不一样


    IP属地:广东来自Android客户端2楼2023-06-23 14:46
    回复
      如果上面一个不管用了
      那只能用兼顾深度学习和cv来制作一款界面和按键之间的交互程序。
      界面读取模拟直播程序界面读取,按键操作这个不知道能不能直接调用键盘操作。
      github上已经有大佬做了类似的开源软件,但是需要自己调整,以及提高电脑显卡的配置。个人感觉比较繁琐,工作室也不会花这么大的成本。而且整体还不成熟。


      IP属地:广东来自Android客户端3楼2023-06-23 14:52
      回复
        整体来说影响这个游戏的最大危机是随着显卡的提升,刷怪的方式能轻松被ai取代。而宏的影响只会提高游戏体验,减少关节炎。脚本的话虽说会被针对,但整体有封号的可能性,用的人也没有普及,所以是不会影响游戏趋势


        IP属地:广东来自Android客户端4楼2023-06-23 14:58
        回复
          有点意思。这游戏可能还未来得及被玩家抛弃,就被各类辅助程序毁掉。因为开发辅助程序的成本很小,但是防御辅助程序的成本很大,而且一旦人工智能的工具成熟到随便一个入门的程序员都能使用时,这就难以打击了。


          IP属地:广东来自iPhone客户端5楼2023-06-23 19:55
          收起回复
            icue 暗杀钱炸也会被检测吗


            IP属地:美国来自iPhone客户端6楼2023-06-26 12:38
            收起回复