当前位置:网站首页>知物由学 | 小游戏的安全风险在哪里?
知物由学 | 小游戏的安全风险在哪里?
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等。另一种方式是在图片中植入自己的水印特征,防止有意的攻击者进行改包。
数据保护
数据直接呈现给用户,尤其是用户的重要数据,保护数据是防盗的关键点之一。小程序可以通过随机更新版本,来迭代更新密钥,安全地设计密钥所在的位置,密钥随机多态地更新,以增加盗版者的破解成本。这种方式让盗版分子不能获得正确的数据,及时动态防范。
边栏推荐
- High cost, difficult to implement, slow to take effect, what about open source security?
- Today's sleep quality record 82 points
- What are VO, do, dto and Po
- How difficult the interview is! I was forced to survive the six rounds of interview of ant financial! Almost out (interview resumption)
- MySQL view and stored procedure
- Database hyperphone (II)
- 【数据库系统概论(王珊)】第1章——绪论
- 【Codeforces】 A. Computer Game
- 面试官:什么是脚手架?为什么需要脚手架?常用的脚手架有哪些?
- DDD(领域驱动设计)分层架构
猜你喜欢

JSP custom tag (bottom)

Are those who are absent from the written examination shortlisted for the teacher recruitment interview? Henan Xiangfu: the statistics of individual candidates' scores are wrong

交换机和路由器技术-02-以太网交换机工作原理

【Codeforces】 A. Computer Game

How to restrict root remote login so that ordinary users have root privileges

Explain the pile of binary trees in detail
![[single chip microcomputer] 2.1 hardware composition of AT89S52 single chip microcomputer](/img/8d/27d99bf7a94e59f158ba952e9239bd.png)
[single chip microcomputer] 2.1 hardware composition of AT89S52 single chip microcomputer

How to resolve the public domain name to the intranet IP server -- quickly resolve the domain name and map the Internet access

Cow! His secret is to reproduce the paper in 2 hours——

Today's sleep quality record 82 points
随机推荐
From digitalization to intelligent operation and maintenance: what are the values and challenges?
帮扶、提振、担当,第六届土巴兔718全民家装节的新价值和意义
High cost, difficult to implement, slow to take effect, what about open source security?
【数据库系统概论(王珊)】第11章 并发控制
Help, boost and take responsibility, the new value and significance of the 6th Tuba rabbit 718 national home decoration Festival
一文理解分布式开发中的服务治理
[OBS] newsocketloopenable network optimization
卷积神经网络之卷积计算过程个人理解
KMP template - string matching
Windows与网络基础-15-本地安全策略
MLX90640 红外热成像仪测温传感器模块开发笔记(七)
How difficult the interview is! I was forced to survive the six rounds of interview of ant financial! Almost out (interview resumption)
MySQL: Functions
Helm install kubevela complete makefile script content
Some suggestions for writing original technical articles
Layout of flutter
Following the example of IE, is the decline of Firefox inevitable?
Chery omenda is also too similar to Chang'an uni-t, but does it look like it? Is the product power like it?
卷积神经网络——YOLOV2(YOLO9000)论文翻译
Functions of C language