对 Detection of Malicious Code Variants Based on Deep Learning 的简单理解

文章的核心技术主要包括三种:

1.把恶意代码转换成灰度化图像

2.利用卷积神经网络对图像进行识别和分类,能够自动提取恶意软件图像的特征.

3.使用蝙蝠算法来解决不同恶意软件家族之间的数据不平衡问题。

Index Terms—
Malware variants 恶意软件变体
grayscale image 灰度图像
deep learning 深度学习
convolution neural network 卷积神经网络
bat algorithm 蝙蝠算法

恶意检测(Malware detection)方法包括:

1.静态检测static analysis:通过分解恶意软件代码并分析其执行逻辑。

2.动态监测dynamic analysis:通过在安全的虚拟环境或沙箱 (专业的虚拟类软件) 中执行恶意代码来分析恶意代码的行为。
以上两种都是基于特征的检测方法(feature-based detection methods)。

使用数据挖掘 data mining methods 检测恶意代码,效率更高。
(数据挖掘(Data Mining)是通过分析每个数据,从大量数据中寻找其规律的技术)

Challenges:

1.根据恶意代码的特征来检测恶意代码的方法(静态检测,动态检测,或者更高效的机器学习检测)在检测恶意代码变元和未知恶意代码时效率变得很低。而将恶意软件可视化的方法可以处理代码混淆问题,但复杂的图像纹理特征提取需要很高的时间成本。此外,这些特征提取方法在大数据集情况下也显示出了较低的效率。
建立一个恶意软件检测的挑战就是去建立 一个能高效,自动的提取特征的模型 。
(The challenge for building malware detection models is to find a means for extracting features effectively and automatically.)

2.数据不平衡问题带来了另一个挑战。代码的变化在不同的代码族之间有很大的不同。
要建立一个通用的检测模型。
(The challenge is to build a universal detection model that can deal with the huge volume of variations, so that it can work well
across malware families)

Contribution:

  1. 介绍了一种把恶意软件二进制代码转换成一张图片的方法,从而将 恶意检测问题 转化成 图片分类 问题。
  2. 提出了一种用 卷积神经网络 检测恶意软件变体的新颖方法。
  3. 为了解决不同恶意软件家族之间的数据不平衡问题,设计了一种基于蝙蝠算法的有效的数据平衡方法。
  4. 大量的实验结果显示我们的方法在恶意软件检测方面是很高效的。

相关工作:

A :基于分析特征的恶性软件检测 Malware Detection Based on Feature Analysis:

静态检测Static analysis:分析恶性代码的方法。不过静态方法很容易被迷惑的技巧欺骗。为了解决这个问题,提出了一种利用 跟踪语义 来表征恶意软件行为的新型恶意软件检测算法。这种算法与迷惑的指令搏斗(eg:重新分配指令、插入垃圾代码和注册重新分配)。而该方法仅限于指令级的特征提取和分析。此外,模式匹配是复杂的。

跟踪语义:我的理解是标记每一步的迷惑指令。然后利用其标记而检测代码的恶意性。

动态检测Dynamic analysis:通过基于评估其行为监视分析其运行时APP的特征,例如访问私有数据和使用受限制的API呼叫。给定这些信息后,会建立起一个行为检测器。而这种方法也受限于仍然受到为产生 不可靠结果 而制定的各种对策 的挑战。此外,由于计算开销大,动态分析也很耗时,当暴露在一个大数据集中时会导致效率低下。

不可靠结果:我的理解是检测器将APP访问私有数据和使用受限制的API呼叫检测错误,而产生了错误的结果,从而建立了错误的参数。

B: 恶意代码可视化

Yoo等人利用 自组织地图 去可视化电脑病毒。
Trinius等人用 树状图 和 线程图 去检测恶意软件并对其进行分类。
Goodall等人将 不同恶意软件分析工具 的结果汇总到一个 视觉环境 中,增加了单个恶意软件工具检测覆盖率的脆弱性。
Nataraj等人提出了一种基于二元纹理分析的恶意软件检测可视化方法,首先他们将恶意软件可执行文件(malware executable file)转化为灰度图像,然后他们根据这些 图像的纹理特征 来识别恶意软件,并获得与动态检测相同的检测效果。
Hen等人将恶意软件二进制信息转换成彩色图像矩阵,并采用图像处理方法对恶意软件进行分类。

C:恶意软件检测图像处理技术

Nataraj等人用 GIST算法(搜索树算法) 去挖掘恶意软件图像的特征,但是这个算法要花费大量的时间。
Daniel等人提出了一种基于 剪切算法 和 遗传算法 的 图像融合算法。(拥有更高效的融合质量)

不过这两种方法都需要大量的时间消耗。
“”"
GIST算法(搜索树算法):就是一种通用索引机制,能有效支持数据类型和查询谓词的可扩展,在数据库中引入新的数据类型时能提供对新的数据类型索引的支持。(其实就是能够起到很好的搜索索引作用的算法)
剪切算法:一种能减少CPU和内存的使用量的算法。
遗传算法:一种解决最优化的一种搜索启发式算法。
“”"

D:基于深度学习的恶意软件检测方法

Yuan等人推出了一种在线恶意软件检测原型系统,他们的模型通过学习从静态分析和动态分析的安卓应用程序中提取的特征,获得了很高的准确性。
David等人提出了一种类似但更有说服力的方法,不需要恶意软件行为的类型,他们的模型基于深层信仰网络deep belief network (DBN),用于自动恶意软件签名生成和分类。

利用卷积神经网络检测恶意软件

1:将恶意代码转化为灰度化图像。

2:设计用于检测灰度图像的卷积神经网络。
(过程如下图)

将代码灰度化图像
一个恶意软件二进制位字符串可以被分解成许多长度为8位的子字符串,每个子字符串可以看做是一个像素,然后根据特定给的固定的宽度(图像的高度由文件的大小决定),恶意代码就可以转化成一幅灰度图片。
(以下根据经验观察,为不同大小的文件提供一些推荐的图像宽度)
在这里插入图片描述

不同的恶意软件族的灰度图像也是不同的,而相同族的恶意软件灰度图像是差不多的。
(据此引发用卷积神经网络检测恶意软件的想法)
在这里插入图片描述

基于CNN的恶意软件图像分类
把图像看作是网络的输入。与传统的识别算法相比,该方法不受复杂特征提取和数据重构的限制。
在这里插入图片描述
第一次提取前者的有用信息后,增强其信号并减少其噪声,后者就可以减少数据的处理量,同时保留有用的信息。然后,有几个完全连接的层将一个二维特征转换为一个符合分类器标准的一维特征。最后,分类器对恶意软件图像进行识别和排序。根据自己的特点分成不同的类。
恶意软件图像数据平衡
提出了一种基于智能优化算法(即基于BAT算法的动态重采样)的数据均衡方法,解决了不同恶意软件家庭值之间的数据不平衡问题。

1.图像数据增强技术
在这里插入图片描述
适当的数据增强方法可以有效地避免过拟合问题。使用原始图像数据的转换(改变图像像素的位置并确保特征保持不变) 生成新数据。如旋转/反射,翻转,缩放,缩小,比例,对比度,噪声和颜色转换都是图像的增强手法。然而,一些图像通过不适当的过渡(即过度轮换)丢失一些不信息。左下角看到的图像缺乏Swizzor.gen!E家族的纹理特征(底部是黑点)。

2.基于BAT算法的数据均衡

在这里插入图片描述

(以上数据不均衡的问题,会导致分类器的分类性能出现很大的偏差,而为此问题提出了用蝙蝠算法(BAT算法)解决数据不均衡问题。)
(蝙蝠算法:该算法是一种基于迭代的优化技术,初始化为一组随机解,然后 通过迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强了局部搜索。)
针对权重组合问题,提出了一种基于BAT算法的动态重采样方法。一些研究者将BAT算法应我们用它对多个恶意软件家族的抽样权值进行修正。在模型训练过程中,为了适当地平衡样本,根据每个时期的权重对每一个类别进行重放。训练模型的精度是一个目标函数。优化的目的是在精度达到设定阈值时,找到蝙蝠的最优位置。

OK,以上。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值