Page 128 - 《软件学报》2020年第11期
P. 128
3444 Journal of Software 软件学报 Vol.31, No.11, November 2020
( ,G
⎡ SG 1 1 ),..., ( ,S G G ⎤ 1 n ) ⎡ y 1 ⎤
⎢ ⎥ ⎢ ⎥
K = ⎢ ( SG 2 ,G 1 ),..., (S G 2 ,G n ⎥ ) → ⎢ y 2 ⎥ (9)
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎣ ( SG n ,G 1 ),..., (S G n ,G n ⎦ ) ⎣ y n⎦
检测任务就是一个未知的程序需检测出其类别恶意还是正常.给定数据流图 G,根据特征子图库映射成图
向量,将该图向量与训练样本进行相似性度量获得相似向量 v=(S(G,G 1 ),…,S(G,G n )),将该向量放入分类器,而分
类器在训练阶段建立好核矩阵 K 到标签集 Y 的映射,据此来确定向量 v 的类别.
5 实 验
本文实验有两个目的:首先,评估我们方法的准确性和有效性;其次,我们探讨了方法中的各个参数对结果
的影响.
实验中使用 Cuckoo Sandbox [16] 捕获样本原始的系统行为记录,并从中提取数据流图.恶意程序集来自开放
的恶意程序数据库 VXHeaven(VXHeaven:http://vxheavens.com/),我们选择蠕虫、后门和特洛伊木马等 4 类作为
实验对象,这里的类别是依据程序名划分的,而最终是检测恶意和正常程序,即使出现类别错误,但并不影响检
测结果.正常程序是来自信息安全课程学生提交的可执行 exe 文件.由于相关数据的缺乏,我们将对正常的、可
执行文件的收集任务交由本科生完成.提交程序种类繁多,完全是可以模拟正常情况电脑的运行状况.鉴于一些
程序并不能正常运行在虚拟平台中,实验最后,我们随机选择了可以完全运行的恶意和正常程序各 300 份,一共
600 份.
5.1 结果和讨论
在恶意和正常这个二分类问题:True Positive(TP)表示恶意程序样本正确分类为恶意,False Negative(FN)表
示恶意样本错误分类为正常;同时,True Negative(TN)表示正常样本正确分类为正常,False Positive(FP)表示正常
样本错误分类为恶意.其中,精度(accuracy)表示分类正确的样本数占样本总数的比例,而查准率(precision)、查全
率(recall)和 F1 分别定义为
TP ⎫
P = ⎪
TP + FP ⎪
TP ⎪
R = ⎬ (10)
TP + FN ⎪
⋅⋅
2 PP ⎪
F 1 = ⎪
P + R ⎭
与 MDC [11] 方法对同一数据集进行了各种性能测试,数据集中随机选取 90%的数据用于训练,剩余 10%的数
据用于测试,实验重复了 10 次且取平均值作为最终结果.
准确性:符号(1)、符号(2)分别表示矩阵 M 的计算的两种方法,从表 2 中可以明显看出,DMBSS(2)检测率高
于 MDC 方法,而 DMBSS(1)略微低于 MDC 方法.造成这种现象的原因,我们认为,方法(1)对子图的相似度计算太
过简单,而使用更加复杂的深度图内核来计算子图间的相似性,却使检测效果出现明显的提高.因而我们可以认
为,子图间的相关性考虑对检测效果的提升是明显的.
Table 2 Performance comparison between two methods
表 2 两种方法的性能比较
Accuracy Precision Recall F1 Extract time(s) Train time(s) Detect time(s)
MDC 0.938±0.023 0.934±0.019 0.937±0.022 0.941±0.021 − 46.3±2.5 1.28±0.19
DMBSS(1) 0.932±0.021 0.931±0.016 0.935±0.025 0.933±0.012 13.5±1.4 18.3±2.1 1.07±0.04
DMBSS(2) 0.948±0.019 0.952±0.026 0.947±0.017 0.948±0.020 13.5±1.4 17.8±1.7 0.63±0.01
有效性:虽然我们的方法多了对子图的处理过程,即子图提取和表示,但总体上,我们的方法时间开销更小.
因为我们通过提取待测程序数据流图的所有子图,之后按逆拓扑标识方法映射成字符串,然后与子图库中特征