【获取 2023 Unity Open Day 北京站演讲 PPT】
张本梁:下面和大家分享一下我们团队在游戏安全领域AI方面的尝试和落地。
第一块,做游戏安全比较核心的是情报信息的收集。我们必须知道我们的对手——做外挂、打金等黑灰产团队的情报信息,这是我们关注的一个重点。这类情报是比较海量的,开源、闭源分析的信息处理人力成本是非常高的,导致很多信息都存在数据库里,没办法实际落地利用。
我们开始尝试使用AIGC对情报平台、情报引擎进行一定优化,国内绝大部分情报来源于IM,像QQ这种聊天工具里的情报信息,海外情报来源也比较多元化。这些信息原本是通过人工挖掘,成本比较高,现在我们尝试采用AI方式尝试挖掘。目前我们只是在尝试中,没有把AI情报拉起来,这只是个demo的验证。游戏运营团队人员获得的情报信息比较有限,我们通过AIGC的方式给他们提供工具,他们向AIGC询问的时候,我们把情报信息进行整理,再把整理的情报信息返回给运营同学,帮助他们了解黑产的情况。
第二是AI在游戏外挂检测方面的落地方案。目前外挂的检测主要以传统的方式,AI只是一个辅助,帮助在某些场景下做进一步分析。比如MMO游戏有很多点击类外挂,我们比较容易获取到某一个场景和某一个玩法的玩家点击数据,可以通过这些点击数据去把模型训练出来,区别出正常玩家和外挂玩家的点击轨迹,通过聚类就可以识别出来正常玩家和外挂玩家。
同时,有一些是工作室或者使用同一个外挂的玩家,他们在某个场景的点击轨迹可以聚类出来,每个颜色是每个玩家的点击行为,虽然有噪点信息,但是在相同工作室、相同外挂环境存在点击信息的聚类,通过这些聚类可以做挖掘或者外挂工具的溯源。
第二个是移动轨迹,点击行为获取的是键鼠信息,同时可以获取玩家的运行轨迹。挂机脚本和真人会存在一些差异性,我们可以通过这个差异性去识别出具体外挂玩家。这主要是为了解决循环任务、自动化脚本。这是在MMO里已经落地的方案。
对于对抗比较激烈的FPS游戏也有一些落地的AI方案。举个例子,透视是通过外挂修改游戏的内存渲染,实现透视的功能,我们可以获取到玩家的游戏相关界面,通过AI识别出染色以及线条,去标注出这部分作弊的玩家。这种方法比较大地提高了运营效率。外挂对游戏体验公平性影响比较大,通过AI的方式可以实时快速定位到外挂玩家,保障公平性。
再一个是自瞄类外挂。FPS游戏除了透视以外,最大的威胁来自于自瞄。特别是这几年AI火爆之后,很多自瞄外挂采用AI作弊。FPS游戏是人与人的对战,比较好用开源人脸识别的算法定位敌方的肢体、头像,控制鼠标移到头部的中心位置或者鼻子、眼睛等位置做到自瞄。
我们分析了不同枪械、点射或连射方式的后坐力或其他表现的差异,在不同武器、不同射击方式时需要训练不同的模型。比如在表现层,不同的枪械和不同的枪击方式在频率、准星移动频次或者相对位置都存在规律,通过这些规律聚焦出作弊玩家,这是目前AI在自瞄外挂方面的解决方案。
情报和外挂更多是单维度聚焦,以区分外挂玩家或者正常玩家。AI目前用到最多的是团伙的检测,因为单个人的检测通过常规方法也能做到,但是团伙需要大量的数据分析,包括某一个玩家多个时间维度的数据,或者一个时间段多个玩家的数据,以聚焦它是否是一个团伙。这时候需要AI比较多,目前落地主要分为三块:第一是工作室帐号的过滤,第二是工作室群体的圈定,第三是工作室画像。
工作室账号的过滤首先是通过已有数据,比如之前历史识别到了这个设备IP、手机号、帐号存在过作弊行为,有黑名单机制。第二是所在的场景本身是否异常,我们将一些欺骗性的脚本或者手机墙等环境标注出嫌疑,利用黑产库批量行为模型去做标签。第三是我们会通过外挂,这个游戏玩家在固定时间之内可能在某些外挂上,我们会进一步标记到这个玩家的设备维度嫌疑,通过外挂环节信息聚焦团伙。这有两个概念,我们可以通过外挂或者环境的信息聚焦成一个团伙,但是把它聚焦成一个团伙之后,不一定能够确定它使用外挂。比较专业的工作室团队的作弊方式或外挂工具是很难通过情报捕获到的。
对于工作室群体圈定,举个简单的例子。一个手机墙上面有100台设备同时玩这个游戏或者使用某个固定外挂。很多游戏团伙喜欢用同一个型号的手机,因为分辨率比较固定,传感器各方面的数值都存在一定共性。我们通过设备维度以及使用外挂的维度去圈定设备是否是一个工作室团伙。但是这其实没办法很好识别出来这些工作室到底干了什么事情,这时候需要对工作室的属性进行绘制,需要业务数据。
这是从下往上迭代和递进的关系,首先,通过玩家创建日志、登录日志、经验变化日志等信息,把团伙信息更聚焦。然后,再检测交易数据或者商场购买日志,通过玩家的交易行为可以聚焦出来他是初始号还是其他工作室的团伙。AI通过不同的游戏、不同的维度、不同的场景训练的模型会有一定差异性,更高阶的定制是根据副本和任务信息等做更进一步的场景划分。
下面举一个例子。玩家和玩家之间存在一些关系,比如交易关系、好友关系、组队关系、聊天关系,基于这些关系,我们对工作室团伙进行了分类。专门刷资源的叫“资源号”,比如有100个资源号,资源积累到一定数量后聚到一个金主号,金主号不停把自己的金币卖给买金的号。资源号不会聊天,它更多是直接做主线任务、日常任务等,它在关系网上会和这个团伙里的其他资源号进行组队或者聊天;金主号会和资源号有一定关系,同时和金主爸爸有一些沟通。
我们可以通过这些关系模型进行关系模型分析训练,最后在这些关系模型里挖掘出异常关系。比如右下角像雪花一样的是比较典型的打金团伙关系图谱,这些小点是资源号去打金,把资源一层层汇总到最后一个号,最后一个号和其他的金主爸爸购买和兑现现金等等,这是比较清晰的它们的层级关系。
还有一种方式是获取玩家服务端数据日志信息。对于游戏的玩法大体可以分为主线玩法、日常玩法和剧情玩法,比如副本之类的。在不同的玩法之下,正常玩家和外挂玩家在行为上会存在一定差异性,外挂玩家的行为比较规整。再就是获取时间,指这个玩法和上一个玩法的时间差值。再一个是获取技能释放的次数和其他游戏等级等行为数据。正常玩家过一个副本的操作比较灵活,释放的技能或者使用的物品道具相对比较少,但是外挂脚本比较死板,会堆砌技能和资源进行打击。
通过正常玩家和外挂玩家在行为上以及不同玩法的差异可以做聚类。右图是左上角和右下角两个点比较聚焦,这时会聚焦它是异常玩家。通过服务器数据日常交易可以定位多开、定制外挂、同步器、跨环境等异常行为。
我们目前正在尝试使用AIGC方式。第一,很多外挂都使用AI,我们只能通过AI的方式打击AI。AIGC的ChatGPT出现以后大大降低了制作外挂的成本,但做安全的同学很难把策略经验一一告知不太清楚安全的同学,这时就需要通过AI决策给他们提供打击或治理的建议。第二点,在团伙检测上,我们会持续努力通过更少数据更快聚焦到团伙。第三点,AI的溯源,采用AI的方式可以迅速找到外挂黑产的最上面源头是哪里。第四点,未知作弊的挖掘,这是目前遇到最大的困难。我们检测或者了解到的都是已知外挂形式,目前是结合玩家的举报尝试通过AI更好定位到异常玩家。
我分享的内容大概就是这么多。