恶意JavaScript代码检测文献阅读(二)

《JSAC: A Novel Framework to Detect Malicious JavaScript via CNNs over AST and CFG》

《JSAC:一种基于AST和CFG的CNNs恶意JavaScript检测框架》

作者:Hongliang Liang, Yuxing Yang, Lu Sun, Lin Jiang

简介:作者的创新点在于用AST(抽象语法树)和CFG(控制流图)作为语法和语音特征提取,再用树卷积和图卷积进行处理,最后得到的两个特征合并后分类。

一、加入CFG的原因

不同程序可能形成相同的AST,如下图所示:

恶意JavaScript代码检测文献阅读(二)_第1张图片

二、模型结构

对于要处理的JS代码文件,JSAC模型先构建出它的AST和CFG。一方面,用单层神经网络模型以学习AST中不同的结点类型对应的分布向量表示,并将AST的结点映射为这些学习到的分布式向量;另一方面,随机初始化了CFG中指令类型的分布式向量,CFG的指令根据不同类型被映射为对应的分布式向量。

恶意JavaScript代码检测文献阅读(二)_第2张图片

JSAC模型应用了能够处理树结构的TBCNN模型和能够处理图结构的GBCNN模型。AST的分布式向量表示被送入TBCNN,有该模型对程序的语法信息进行分析,并从中提取出语法特征;CFG的分布式向量表示送入GBCNN模型,由该模型对程序的语义信息进行分析,并提取语义特征。最后TBCNN和GBCNN都应用了动态池化方法,以固定特征向量的维度。

之后,语法特征向量和语义特征向量被进一步合并起来。

最后,JSAC模型的输出层是若干全连接层,并应用softmax函数映射输出结果。

三、总结

这篇文章引入了CFG,并用对应的CNN去处理,这是很不错的创新点。但是之后将两个特征进行合并,这其实是不太友好的。文章将JS文件转化为AST用的是开源工具Esprima。CFG是通过AST得到的,但是过程代码是作者修改GitHub上进行的,修改后的代码并未开源。

你可能感兴趣的:(#恶意Javascript检测)