Advertisement

【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

阅读量:

会议:2016年IEEE第40届计算机软件与应用年度会议COMPSAC
单位:日本的 Nagoya University 和 NTT安全平台实验室

0. 总览

问题背景 :如今,恶意软件和高级软件攻击的增加正在成为一个严重的问题,未经安全供应商确定的未知恶意软件经常用于这些攻击,并且保护终端免受其感染变得困难。因此,需要针对感染后的对策。有一些恶意软件感染检测方法专注于来自恶意软件的流量数据。然而,仅使用交通数据很难完美地检测感染,因为它模仿良性交通。该文提出了基于可能受感染终端中的过程行为的恶意软件过程检测方法。
解决对策 :通过训练递归神经网络(RNN)来提取过程行为的特征。然后训练卷积神经网络(CNN)来对由训练的RNN提取的特征生成的特征图像进行分类。
关键词 :恶意软件感染检测;神经网络;进程行为;

实验样本 :本研究共收集了81份恶意软件进程日志文件(源自NTT Secure Platform Laboratories的26个恶意软件样本中提取),同时从同一来源中获得了69份正常程序的进程日志记录。
实验分析流程 :通过分析这些恶意与正常程序的行为模式,在初步处理后运用RNN模型提取出各程序行为的独特特征表现形式。随后将这些特征图像输入到预训练的卷积神经网络模型中进行迭代优化,并采用五折交叉验证法对模型性能进行评估以获得最优分类效果。
性能评估结果 :在最优配置下,该系统的AUC值达到了0.96。

1. 数据概述

该组织机构收集了来自不同来源的一批恶意程序行为日志数据,并将这些程序行为归类为多个系列以便后续分析研究。其中,在该组织机构所记录的日志数据中存在46份符合第一条标准的样本信息;有33份符合第二条标准的信息样本;仅有2份符合第三条标准的情况记录。

  1. 安排恶意软件文件(同名)的行为。
  2. 导致过程1发生的结果。
  3. 根据步骤一和步骤二的数据生成恶意代码。

我们应用Cuckoo Sandbox以检测该过程是否满足条件2或3。恶意程序文件在Cuckoo Sandbox中运行,并监控恶意软件进程行为以确定生成和注入的进程。

– 表 I –

字段 说明
Time Operation执行时间
Process Name Process名
PID Operation的PID
Event Operation名
Path Operation执行时所在路径
Result 执行结果状态
Detail 参数等信息

该系统按预先设定的时间间隔,在固定时长和持续时间内追踪所有已执行进程的行为。该文章利用Process Monitor来跟踪ReadFile、RegSetValue以及Thread Start等操作。Result收集了Operation的各种结果状态信息,并包括SUCCESS、ACCESS DENIED以及FILE NOT FOUND等情况。

该文章进行了五分钟的时间段记录,并每隔五分钟重复此过程十次。生成具有不同PID对应的所有进程的日志文件。每个记录的日志均包含表I所列示的七个项目。基于事件与结果的信息输入来完成恶意软件分类,并对参与进程进行识别标记。Operation被指定为一系列Event与Result集合。

日志生成环境

恶意软件程序受Process Monitor监控,在Windows系统上运行。INetSim2模拟了一个虚拟化的Internet环境,并将其运行于虚拟服务器上。INetSim能够模仿真实的互联网服务如HTTP、SMTP、DNS和FTP等业务功能。Windows XP系统的所有网络流量被传输至虚拟服务器,并由后者返回响应数据。

Logging environment.

2. 方法概述

流程的行为由文件管理等各种活动组成,这些活动由多个操作组成。当我们将流程行为记录为API调用序列时,单个API调用表示流程的操作,多个API调用表示活动,整个记录的API调用表示流程的行为。这种分层结构类似于一篇作文,一篇作文由各种句子组成,每个句子由多个单词组成。因此我们可以通过语言模型提取过程行为的特征,利用RNN提取进程行为特征。将提取的特征向量转换为图像,再通过CNN对这些图像进行分类。

Overview of proposed method.

具体训练流程分为四个阶段:
(1) 监控进程运行情况并生成相应的日志记录;
(2) 利用获取的日志数据训练RNN模型以建立行为语言模型;
(3) 对收集到的日志数据经过处理后利用RNN提取关键特征,并将其转化为视觉化的特征图像;
(4) 通过CNN对提取得到的特征图像进行识别和分类任务,并判断其性质是恶意软件还是正常软件。

A. RNN(LSTM)特征提取

基于行为语言模型构建的研究中所采用的LSTM(长短期记忆)算法具有显著的优势

Flow of RNN training.
B. 生成特征图像

通过训练RNN模型对特征序列进行处理以输出特征图像。 因为日志文件中各Operation的长度不一而导致矢量序列长度不统一,在这种情况下必须将这些矢量序列转换为固定长度的图像以满足后续CNN模型的需求。

在这里插入图片描述
在这里插入图片描述

fk表示统一尺寸下的图像特征矩阵中的元素;N表示指明了特征图像的高度以及对应矩阵F的具体长度;pk代表k-th个向量集合中尾部数值;进而可知,在W维空间中定义了一个固定的三维向量序列,并将其可被表示为一个形状为M×N×P³³³³¹¹¹¹³³³³¹¹¹¹阶张量的数据结构。

Flow of feature extraction.

利用sigmoid函数对矩阵F中的每个元素进行转换至[0,1]区间后进行处理运算生成256级灰度图像。 最终输出得到的矩阵F 被用作特征图像矩阵

C. 训练CNN

该特征图像矩阵被用作训练CNN网络的数据源,并根据恶意与良性标记进行分类处理;模型包含两层卷积池化层、一层全连接层以及输出层;如图所示的结构展示了整个CNN网络架构。

Structure of the CNN.

分别表示良性与恶意度的变量是y0和y1。通过sigmoid函数Sig(y1)推算出该恶意软件样本发生的概率。

在这里插入图片描述

3. 实验结果

在进行RNN训练时,研究人员采用了44份恶意软件行为日志与39份正常程序行为日志作为训练数据(确保了正负样本的比例相同)。基于从该RNN模型生成的150个特征图像序列,在采用5折交叉验证的技术下进行CNN的训练与性能评估。其中约有120张图像用于模型的训练工作,剩余的图像则作为每一轮交叉验证中的验证集。为了全面评估不同配置对分类器性能的影响,在调整以下关键参数时:包括RNN模型的隐藏层宽度、CNN输入矩阵的空间尺寸以及卷积池化层的设计参数w

Parameter settings of the RNN.
Parameter settings of the CNN.

采用AUC指标对模型的性能进行验证

Class classification problem.

实验结果如下:

ROC curves of each condition.
Example of analyzed feature vectors.

我们可以看出,Condation 2表现最好。AUC达到0.96。

总结:

通过运用LSTM模型处理进程日志文件中的数据来提取其关键特性信息,并基于这些特性信息生成相应的可视化图形。随后,在生成这些可视化图形后运用CNN模型来识别并分析恶意软件与良性软件的核心特性,并最终达到区分恶意软件与良性软件的目的。The approach of converting process logs into image representations, followed by machine learning techniques, can sometimes be a viable strategy. However, in this study, the dataset is limited in size and the number of observable behaviors is also constrained, making it challenging to build an effective large-scale deep neural network model.

全部评论 (0)

还没有任何评论哟~