基于深度学习的JavaScript恶意代码检测技术研究与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测技术研究与实现
JavaScript(JS)是网络开发中最为广泛应用的脚本语言,也是最常被攻击者利用的语言之一,这使恶意JS代码检测成为了安全领域的热点问题。近年来,机器学习在多个领域取得了令人瞩目的进展,研究者提出了一些基于机器学习的恶意JS代码检测方法。然而,这些方法通常将JS视作一种自然语言而非程序语言,并应用自然语言处理的模型和方法进行研究。虽然自然语言和程序语言存在相似之处,但这些方法忽略了程序语言独有的语法信息和语义信息。本文提出了一个恶意JS代码检测模型JSAC。JSAC模型结合了深度学习技术和程序分析方法以分析JS程序中的语法和语义信息,并依据这两类信息对程序进行恶意性检测。具体来说,对于一个JS程序,JSAC模型生成出它的抽象语法树(Abstract Syntax tree,AST)和控制流图(Control Flow Graph,CFG);再将AST中的结点和CFG中的指令转换为向量表示;接着JSAC模型将这两类向量分别送入基于树结构的卷积神经网络模型和基于图结构的卷积神经网络模型,从中提取语法特征和语义特征;最后,提取出的两类特征向量被合并到一起以用作分类检测。本文在包含有69523个有效JS文件的数据集上进行了充分的实验和评估,结果显示JSAC模型取得了比目前己有的4个机器学习模型更好的效果,包括98.71%的准确率、98.83%的精确率、98.64%的召回率和98.73%的F1分数。评估结果还证明了在分类检测过程中语法特征和语义特征各自的贡献。
JavaScript(JS)是网络开发中最为广泛应用的脚本语言,也是最常被攻击者利用的语言之一,这使恶意JS代码检测成为了安全领域的热点问题。近年来,机器学习在多个领域取得了令人瞩目的进展,研究者提出了一些基于机器学习的恶意JS代码检测方法。然而,这些方法通常将JS视作一种自然语言而非程序语言,并应用自然语言处理的模型和方法进行研究。虽然自然语言和程序语言存在相似之处,但这些方法忽略了程序语言独有的语法信息和语义信息。本文提出了一个恶意JS代码检测模型JSAC。JSAC模型结合了深度学习技术和程序分析方法以分析JS程序中的语法和语义信息,并依据这两类信息对程序进行恶意性检测。具体来说,对于一个JS程序,JSAC模型生成出它的抽象语法树(Abstract Syntax tree,AST)和控制流图(Control Flow Graph,CFG);再将AST中的结点和CFG中的指令转换为向量表示;接着JSAC模型将这两类向量分别送入基于树结构的卷积神经网络模型和基于图结构的卷积神经网络模型,从中提取语法特征和语义特征;最后,提取出的两类特征向量被合并到一起以用作分类检测。本文在包含有69523个有效JS文件的数据集上进行了充分的实验和评估,结果显示JSAC模型取得了比目前己有的4个机器学习模型更好的效果,包括98.71%的准确率、98.83%的精确率、98.64%的召回率和98.73%的F1分数。评估结果还证明了在分类检测过程中语法特征和语义特征各自的贡献。