基于深度神经网络的恶意软件变体检测方法研究

文章目录

  • 前言
  • 一、介绍
  • 二、提出方法
    • 1.虚拟沙箱环境模拟
    • 2.基于卷积神经网络恶意代码检测模型
      • 改进的卷积神经网络恶意代码检测方法
  • 三、实验评估
  • 四、总结


前言

首先本文改进了基于CNN算法的串行化检测方案,然后利用改的CNN算法对API序列进行建模分析,挖掘更多的变异序列的局部相关信息,最后实现恶意代码变体检测。


一、介绍

目前代码检测的方法大多数研究都是基于特征提取的方法,通过提取特征例如:字节码,汇编码,PE结构或恶意代码动态执行结果,并采用各种机器学习算法完成对恶意代码变体检测。例如:一个恶意代码检测方法就是提取恶意代码反汇编文件的操作码序列转化为一个点阵图作为特征进行检测[1]。基于偏最小二乘和核向量机的未知恶意代码检测[2]。
传统的信息安全保护方法不能满足有效的保护工业信息安全,因此有必要采用安全可控的恶意代码检测技术去解决工业信息安全问题。

本文采用了虚拟沙盒环境+卷积神经网络模型+动态仿真。通过构造一个安全可控的虚拟沙盒环境,获取API调用行为,网络行为,恶意代码运行过程中生成的文件。分析文件整个生命周期的行为特征,识别威胁和漏洞,暴露隐藏的攻击。


二、提出方法

1.虚拟沙箱环境模拟

将操作系统与硬件相结合,对多个系统进行编译和移植,搭建一个安全可靠的环境。虚拟沙箱模拟将采用重定向技术对其攻击行为进行虚拟化,并将对本机的未知威胁转移到云端。通过模拟真实用户的计算机环境,模拟主流安全可控的软件应用场景,可以收集到更全面的样本行为。

2.基于卷积神经网络恶意代码检测模型

本文主要针对API序列数据,改进了基于卷积神经网络算法的串行化检测方案,利用改进的模型对API序列进行建模和分析,挖掘出更多的变异序列的局部相关信息,从而实现对恶意代码变体的检测。

对于动态API序列提取,遍历所有文件中动态行为日志得到所有动态行为都可以作为词典。对所有API的所有原型函数进行编码,获得了从动态行为到标签ID的映射,在添加一个未知标签来处理以后的事件。每一个API都表示为一个向量,在初始阶段由随机数组成,转发动态更新序列矩阵。如果单词向量已经是一个经过训练的模型,它也可以直接以静态的方式输入到下一层而不需要更新。

改进的卷积神经网络恶意代码检测方法

首先在嵌入层将API词汇表嵌入到一个低维向量中。卷积层使用大小不同的卷积对嵌入的词向量进行卷积。池化层将卷积层的结果转化为长特征向量。全连接层根据惩罚层的惩罚协议进行反向传播,更新字向量和卷积核参数,最后根据softmax 层的输出结果进行分类。

改进后的算法流程如下:
a) 利用Densenet模型对恶意代码库进行处理,将恶意代码库中的恶意代码映射到文件灰度图像中,提取其灰度图像特征;
b) 利用层次聚类、密度聚类、K均值聚类等通用聚类算法,对恶意代码灰度图像的特征进行聚类,并基于微软MSE恶意代码分析设备恶意代码族注释进行聚类结果分析;
c) 构造卷积神经网络训练灰度图像识别模型,并设置网络结构参数和训练参数;
d) 在数据预处理阶段,利用Densenet模型将恶意代码文件划分为多个部分。然后,将恶意代码的每个部分映射到灰度图像上;
e) 在训练阶段,利用标记的恶意代码族文件和分割的灰度图像集对卷积神经网络模型进行训练,并对分类模型进行交叉验证和评价;
f) 在检测阶段,根据输入的待检测PE文件,利用Densenet模型将恶意代码文件划分为多个部分,每个部分转化为一个灰度图像,并将该文件及其划分的灰度图像输入到卷积神经网络CNN分类模型中,根据模型的输出结果判断待测恶意代码是否为恶意代码,确定恶意代码族。
该模型框架如图所示:基于深度神经网络的恶意软件变体检测方法研究_第1张图片


三、实验评估

本实验选取CNCERT数据集中12000个未知威胁码作为实验对象,以检测准确率和检测时间为标准,对本文提出的改进的基于卷积神经网络的恶意代码检测方法进行了测试,并在此数据集上测试了每种方法的性能。本文的方法高于现有的其他的方法。

四、总结

下一步的研究方向是实现静态与动态相结合的恶意代码分析与检测方法的创新。

你可能感兴趣的:(恶意软件,神经网络)