当前位置:网站首页>知物由学 | 小游戏的安全风险在哪里?
知物由学 | 小游戏的安全风险在哪里?
2022-07-27 15:50:00 【网易易盾】
受全球疫情影响,从2020年春节开始,小游戏用户开始暴增。除了微信小程序之外,快手、抖音、百度等平台相继上线小游戏。
小游戏满足了用户打发碎片化时间的需求,也可以对产品的社交关系进行反哺。因此,与大体积的手游相比,小游戏小巧玲珑,不过多占用手机资源,具有快速“安装”或无需安装的特点。其玩法简单,通常以休闲益智类主题为主,深受用户喜欢。当然,小游戏不仅是指以小程序形式加载的游戏,也包括安装包体积很小的游戏,例如白鹭、cocos2djs引擎编写的游戏。
在商业变现可观的背景下,原创小游戏被很多不怀好意的不法分子盯上,或被友商窃取了部分代码资源,或被插入一些广告恶意链接。本文将解答小游戏的风险藏在哪里?如何开展针对性的治理,确保小游戏的底层安全?
01 小游戏暗藏风险
代码被篡改将引发一系列问题,最常见的情况是游戏被盗版、广告泛滥,甚至给玩家带来隐私风险与经济损失。
1.1 盗版层出不穷
客户端研发人员对盗版行为深恶痛绝。一般情况下,不法分子通过获取.wxapkg文件,使用网上成熟的反编译工具进行解包,接着修改代码加之“换皮”,对部分的图片资源进行替换,轻松抄袭原创小游戏。
以曾经风靡一时的“合成大西瓜”为例,如果在微信上搜索对应的小程序,大量名称相似的同类型小游戏映入眼帘,大致如下:

此外,在3dmgame上进行搜索,以cocos2d打包安装包形式呈现的“合成大西瓜”对应版本不时出现,许多被修改为XX版:

由此可见,小游戏存在严重的盗版风险。最大的风险来自于对一些“原始的游戏”进行“二次改包”,快速打包形成新的安装包,意图空手套白狼,也不乏在其中加入一些恶意代码的行为。
总的来说,资源盗版一直以来是部分游戏的痛点,由于小程序结构的简单性,攻击者可以在不修改任何代码的情况下,直接在解包出来的文件中对资源进行窃取,继而重新打包进行发布。诸如此类的违法操作在行业中已是屡见不鲜。
1.2 广告无所不包
我们打开一款火爆的小游戏,总会在几秒内看到一个跳转的广告链接,大多以推广其他游戏为目的。
目前,一个小游戏中往往接入了形形色色的广告,有的是推广广告,有的是恶意广告,或者是修改正版的广告为自己的广告。玩家并不清楚广告的真正来源。除此之外,整个游戏过程中,一些诱导性的广告和分享行为相继出现,使得用户没有办法判断此广告的真正目的。由此看见,小游戏防篡改迫在眉睫。
02 小游戏安全解决方案
为了化解上述风险,易盾提供全新的小游戏解决方案。这里小游戏不仅仅指的是小程序端的安全问题,也包括在不同平台上发行的APK小游戏包,进行全面的安全保护。
2.1 代码保护
盗版的出现以及恶意链接与广告的植入,多是由于第三方获取了客户端代码逻辑,并在代码中修改与增加恶意内容。易盾为代码提供JS的保护,增加代码被分析的门槛,功能包括对于JS中关键代码的控制流混淆,变量名混淆,字符串加密,动态反调试,反格式化等功能,并通过不同的加固组合兼顾到性能,以下是代码保护前后的比较:
保护前:

保护后:

2.2 资源加密
小游戏apk资源
我们可以对apk里面的资源进行加密保护,包括png,.jpg,.js,.html,.json等资源文件,防止资源被盗取。此外,我们对于白鹭和cocos2djs引擎中的资源进行加密处理,并可以通过黑白名单兼顾灵活性。
小程序资源
由于小程序结构特殊,该类型游戏资源可以采用动态分包下发的方式增强安全性,即对于小程序中的资源进行加密,并使用自己唯一的特征进行解密,比如appid等。另一种方式是在图片中植入自己的水印特征,防止有意的攻击者进行改包。
数据保护
数据直接呈现给用户,尤其是用户的重要数据,保护数据是防盗的关键点之一。小程序可以通过随机更新版本,来迭代更新密钥,安全地设计密钥所在的位置,密钥随机多态地更新,以增加盗版者的破解成本。这种方式让盗版分子不能获得正确的数据,及时动态防范。
边栏推荐
- 数据库超话(一)
- The whole process of neural network construction is finally completed! Can't you come to me~
- Database hyperphone (I)
- Gree "not cool": the giant lawsuit ended and was reduced by large dealers. Is it too late for the new battlefield of air conditioning?
- Can oracle-linux-7.9 support oracle-19c ACFs file system?
- shell常见命令(1)——变量大小写转换
- 公网域名如何解析到内网IP服务器——快解析域名映射外网访问
- 二舅的外甥和他的学生们
- Initial polymorphism
- 面试官:什么是脚手架?为什么需要脚手架?常用的脚手架有哪些?
猜你喜欢

Notes on standardized management of "ancestral warehouse" of meituan meal

Fast analysis combined with Haidian medicine

Gods at dusk, "cat trembles" bid farewell to the big V Era

An analysis of CPU explosion of a smart logistics WCS system in.Net

JSP自定义标签(下)

如何开发一款在线Excel表格系统(上)

交换机和路由器技术-03-交换机基本配置

Array of C language

C语言怎么学?这篇文章给你完整答案

选择体育场馆的LED显示屏时应该注重哪些方面
随机推荐
【Codeforces】 A. Computer Game
Windows与网络基础-15-本地安全策略
【单片机】2.3 AT89S52的CPU
Wechat applet realizes location map display and introduces map map without navigation
卷积神经网络——YOLOV2(YOLO9000)论文翻译
Lichuang EDA - PCB layout (IV)
帮扶、提振、担当,第六届土巴兔718全民家装节的新价值和意义
How to resolve the public domain name to the intranet IP server -- quickly resolve the domain name and map the Internet access
Some suggestions for writing original technical articles
With the arrival of large displacement hard core products, can the tank brand break through the ceiling of its own brand?
JDBC连接数据库读取前台无法显示数据
Array of C language
每条你收藏的资讯背后,都离不开TA
数据库超话(三)
卷积神经网络——SSD论文翻译
快解析结合华途文档加密软件
The 7-year-old boy broke his finger by AI robot just because he played chess too fast?
细数国产接口协作平台的六把武器!
Rare discounts on Apple's official website, with a discount of 600 yuan for all iphone13 series; Chess robot injured the fingers of chess playing children; Domestic go language lovers launch a new pro
JS to realize the right-click menu bar function