核心业务的小程序化,带来了更多的安全风险:
对小程序JS代码中的结构化控制流进行扁平化混淆;使清晰的结构化代码流程,变成复杂且不可阅读、调试分析代码;采用随机混淆算法,增加攻击者静态分析难度。
JSVMP,JavaScript Virtual Machine Protect,JS代码虚拟化保护技术。国内独家实现,以梆梆安全自定义“JS语言”替代原有“JS语言”,将客户的JS代码转换为梆梆JS语言代码,只有通过“Bangcle JS虚拟机”才能够理解并运行被保护的代码。
左侧为源代码,没有任何保护右侧为虚拟化加固后的代码。
右侧为虚拟加固后的代码,攻击者无法理解和使用原JS指令进行调试分析,同时代码注释会在加固过程中去掉,防止被恶意利用。
对函数名、变量名、常量名等关键字随机化命名混淆,增加代码分析难度;
可指定代码中关键字过滤策略。
在小程序JS代码内插入调试行为监测卫兵;当攻击者进行调试分析时,将触发调试监测卫兵,立即终止调试行为,使攻击者无法进一步调试分析;关闭调试信息日志直接输出到浏览器控制台,增加调试分析难度。
无论涉及到的业务轻重,小程序代码都应该进行加固保护;裸奔的代码,就是敞开着让黑客随意攻击;对于Android、iOS应用开发者,更应该三位一体,做好小程序的加固保护。