基于机器学习的JavaScript恶意代码检测方案研究
【摘要】:随着互联网的高速发展与浏览器性能的不断提升,各类新型Web应用与网站数量呈现明显的上升趋势。近年来,使用JavaScript编写的恶意代码层出不穷,高速发展的前端技术更带来了新的恶意代码攻击手段。如何准确识别各类JavaScript恶意代码对保证用户安全显得尤为重要。本文对基于机器学习的JavaScript恶意脚本检测方案进行了改进,通过实验验证了改进的JavaScript恶意脚本检测方案对JavaScript脚本及包含恶意脚本的HTML页面均可以进行高效准确的检测。具体成果有:1.提出了基于JavaScript代码特征及HTML与JavaScript交叉特征的恶意代码检测方案。该方案通过对AST抽象语法树及DOM树的分析,从JavaScript代码自身及与其交互的HTML两方面分别进行了特征提取,对传统的基于多特征的JavaScript代码检测方案进行了改进。经验证该检测方案具有更高的准确率和执行效率,可以对恶意代码进行有效的检测。2.提出了针对基于URL分割技术的JavaScript恶意代码的检测方案。该方案通过对let、const、复杂对象变量的检测扩展了变量声明的提取范围,基于二叉树结构改进了字典对象,并通过对模板字符串、join等复杂函数的检测扩展了变量拼接的检测范围。根据对比实验验证,改进后的方案对此类恶意代码具有更好的检测效果。3.对基于HTML5的新型JavaScript恶意代码提出了相应的恶意代码检测方案。该方案对使用localStorage等进行混淆的恶意代码进行了混淆特征提取,对使用ServiceWorker等执行恶意行为的代码进行了恶意特征提取。实验结果显示该检测方案能够对HTML5新型恶意代码进行有效检测。