APP下载

人工免疫算法在恶意代码检测中的应用研究

2016-10-13张福勇

东莞理工学院学报 2016年3期
关键词:检测器自体生命周期

张福勇

(东莞理工学院 计算机学院, 广东东莞 523808)



人工免疫算法在恶意代码检测中的应用研究

张福勇

(东莞理工学院计算机学院, 广东东莞523808)

随着恶意代码复杂度的提高,要求恶意代码检测方法不仅能实现高效的检测,而且要具有很好的鲁棒性来应对可能出现的迷惑检测策略。研究了“两代”人工免疫算法——否定选择算法(NSA)和树突细胞算法(DCA),在运行时恶意代码检测中的应用。通过捕获程序运行时产生的IRP请求序列来实现恶意代码的检测。实验结果表明,NSA是一种有效的运行时恶意代码检测方法,而DCA的检测结果存在很大的不确定性。

人工免疫系统,恶意代码检测,否定选择算法,树突细胞算法

恶意代码的数量增加之快已使得传统的检测方法不能满足需求[1]。因此,安全专家将注意力集中到了更高效和更具鲁棒性的运行时恶意代码检测技术上,通过分析程序运行时的行为来区分正常程序和恶意代码。

人工免疫系统(Artificial Immune System, AIS)是受生物免疫系统(Biological Immune System, BIS)启发而产生的智能计算方法。AIS发展初期主要是模仿适应性免疫系统而产生的自体/非自体(Self/Nonself)理论。Forrest等人[2]根据自体/非自体思想提出了否定选择算法(Negative Selection Algorithm, NSA),用于异常进程的检测。近年来,出现了新一代AIS——受内在免疫系统启发而产生的树突细胞算法(Dentritic Cell Algorithm, DCA)[3]。

对两代AIS在恶意代码检测中的优缺点进行研究,分析了在不同检测环境下两代AIS的检测率。文章第1部分介绍了两代AIS在异常检测中的应用情况;第2部分对两代AIS算法进行了介绍;第3部分解释了实验中采用的IRP序列的产生,并说明NSA中的检测器和DCA中的信号产生策略;第4部分给出实验结果并进行分析;最后,讨论两代AIS在恶意代码检测方面的优缺。

1 相关工作

第一代AIS的核心算法是NSA,由Forrest等人[2]提出,并首先应用于Unix系统的异常进程检测。后来,NSA发展了多个版本,包括real-valued NSA、随机real-valued NSA、检测器大小可变real-valued NSA等。

第一代AIS还包括另外一个重要算法——克隆选择算法(Clonal Selection Algorithm, CSA)[4]。NSA与CSA的结合,使得第一代AIS广泛应用于信息安全、模式识别、故障诊断、机器学习等多个领域。

第二代AIS是基于危险理论(Danger Theory)[5]的思想。Aickelin等人[6]分析了将危险理论应用于网络入侵检测的可行性。Greensmith等人[3]提出了基于危险理论的cDCA(classic DCA),并成功应用于乳腺癌数据集的分类。随后,DCA被应用于入侵检测相关领域[7]。

DCA也出现了几个更新版本,Gu等人[8]提出采用抗原倍乘(Antigen Multiplier)和时间窗口(Time-windows)来提高DCA的检测率和鲁棒性。Greensmith等人[9]提出了dDCA(deterministic DCA),dDCA精简了cDCA中采用的多个复杂参数,并采用了更加简单的信号处理方式。Fang等人[10]对DCA的时间复杂度进行了理论分析。

2 人工免疫算法

AIS经过多年的发展已经出现了很多的算法,本节仅对文中用到的NSA和DCA进行详细介绍。

2.1否定选择算法

否定选择算法是对机体免疫细胞成熟过程的模拟,算法包括两个阶段:自体耐受和识别阶段。首先随机生成大量候选检测器,然后,候选检测器经过自体耐受过程去除匹配自体的检测器,最终成为成熟检测器;识别阶段采用成熟检测器检测未知抗原。算法的描述如下:

随机生成大量的候选检测器;

While成熟检测器的数量未达到设定值do

从候选检测器中随机选择一个检测器;

If 该检测器不与任何一个自体抗原匹配

Then将此检测器加入到成熟检测器集合;

Else丢弃此检测器;

End If

End While

For 每一个未知抗原 do

If 任一成熟检测器匹配未知抗原

Then 认为此抗原为非自体;

End If

End For

2.2树突细胞算法

输入:未知抗原和信号

输出:抗原类型α和MCAVα

设定DC数量;

初始化DCs();

While 存在输入数据 do

Switch 输入数据类型 do

Case 未知抗原

antigenCounter++;

cellIndex=antigenCounter%DCsize;

序号为cellIndex的DC提呈此抗原;

End Case

Case 信号

计算csm和k;

For 每一个DCdo

DC.lifespan-=csm;

DC.sumK+=k;

IfDC.lifespan<=0 Then

记录DC提呈的抗原和sumK;

重置DC;

End If

End For

End Case

End Switch

End While

For 每一种抗原类型α do

计算MCAVα;

End For

3 数据集

收集了100个恶意代码和100个正常Windows可执行文件。恶意代码包括病毒、木马和蠕虫,所有恶意代码和正常文件均为Win32portable executable(PE)格式。

3.1IRP请求序列

在运行时恶意代码检测方面,研究人员普遍采用API调用序列进行检测。但多数API调用的捕获工具运行在用户态,只能捕获用户态的API调用,对内核态的API调用就无能为力,因此无法检测采用驱动技术调用内核API的恶意代码。

鉴于此,我们开发了一个基于内核驱动技术的IRP请求捕获工具MBMAS[11]。它可以捕获程序运行时创建的进程信息,以及每个进程对文件系统操作的IRP请求信息,并可以将捕获的信息以XML格式进行存储。图1是MBMAS的用户态界面。

图1 IRP请求捕获工具

IRP请求的捕获是在一台新安装的Windows XP虚拟机中进行的,并且每运行完一个样本即将虚拟机恢复到新安装时的状态。在进行IRP请求捕获时,将同一进程的IRP请求连成一个序列。

我们对捕获的所有IRP类型进行了统计,发现共存在30种不同类型的IRP请求。我们用唯一的字符代替每一种IRP类型,以降低复杂度,方便后续处理。

3.2检测器与特征提取

对于NSA,我们选用n-gram作为检测器。匹配规则为字符串匹配算法,只要未知序列中存在与检测器相同的n-gram即认为匹配。前期实验表明n=3时可以取得最佳的检测效果,因此,本文取n=3。

自体耐受过程采用100个正常文件运行得到的IRP请求序列作为抗原。由于总的检测器数量并不大(303),因此直接生成3-gram的全排列作为候选检测器,成熟检测器最大值也设定为303,以达到最佳的检测效果。

本文采用类似文献[12]的n-gram信息增益法对IRP请求序列进行预处理,得到DCA所需的信号。同样选取n=3,信息增益的计算公式为:

(1)

同文献[12],选取具有最大信息增益的500个3-gram来计算信号值。并将危险信号值归一化为0~100,安全信号值归一化为0~66。

4 实验分析

为了检验两代AIS在恶意代码检测中的效果,首先进行了下面两个实验:实验1将正常序列和恶意序列分开存放,即前100个序列为正常序列,后100个序列为恶意序列;实验2将正常序列和恶意序列交叉存放,即一个正常序列后跟一个恶意序列。分别采用NSA和DCA进行检测。

实验参数设置如下:对于NSA,采用3-gram的全排列作为候选检测器,成熟检测器最大值为303。对于DCA,设定DC数量为100,生命周期范围为300~500,信号权重与2.2节中算法描述的相同(见表1),MCAV门限为0.5,大于0.5即为恶意,否则为正常。

表1 信号权重(实验1,2,3)

表2 实验1检测结果 %

表3 实验2检测结果 %

表2为实验1的运行结果。从结果中可以看出,按实验1的数据存放方式,DCA可以得到高于NSA的检测率。两种方法都存在一个误报。

由表3的结果可以看出,实验2中NSA得到与实验1同样的结果,表明对于NSA数据的排列方式不会影响其检测结果。但DCA却仅得到了61 %的检测率,而且误检率为37 %。原因很可能是由于DCA对环境非常敏感。实验1中正常和恶意序列放在一起,检测时周围环境的信号量要么以安全信号为主(正常序列),要么以危险信号为主(恶意序列),所以很容易将两者区分开。但实验2中的排列方式使得安全信号和危险信号交叉出现,两者的值相互抵消,无法进行区分。

为了验证DCA中的生命周期和信号权重对检测结果的影响,采用实验2的数据进行了如下两个实验:实验3设定表1所示信号权重,测试不同生命周期的检测结果;实验4设定表4所示信号权重,测试不同生命周期的检测结果。得到的结果如表5和表6所示:

表4 信号权重(实验4)

表5 实验3检测结果 %

表6 实验4检测结果 %

由实验3和实验4的结果可以看出DCA的生命周期和信号权重的值对检测结果有很大的影响。特别要注意的是实验4中在生命周期为200~300时得到了与实验1一样高的检测率,但两者的数据排列、信号权重、生命周期值均不同。由此可以说明,使用DCA时需要针对不同的数据给予不同的信号权重和生命周期才有可能达到较高的检测率。但在实际应用中我们很难事先知道待检测数据的排列情况,所以DCA在恶意代码检测中存在很大的不确定性。

5 结语

采用程序运行时产生的IRP请求序列作为抗原,对NSA和DCA在恶意代码检测中的效果进行分析。实验结果表明,NSA在恶意代码检测中表现出了较高的检测率和很强的鲁棒性。而DCA对待检测数据的排列、信号权重和生命周期值都非常敏感,检测结果存在很大的不确定性。DCA的不确定性主要表现在以下方面:

1)DCA缺乏统一的信号产生机制,不同的信号产生方式会对检测结果有很大影响。

2)DCA没有标准的信号权重计算机制,信号的权重根据不同的数据集需要做很大调整才可以达到较高检测率。

3)DCA中生命周期值也会对检测结果有很大影响,但算法中也没有可以确定生命周期的方法。

DCA方法的上述缺陷使得其无法应用于真实环境。因此还需对树突细胞的功能进一步挖掘,抽象出更加完善的DCA。

[1]Symantec. 2014 Internet security threat report, 2014 [EB/OL]. http://www.symantec.com/security_response/publications/threatreport.jsp?om_ext_cid=biz_socmed_twitter_facebook_marketwire_linkedin_2013Apr_worldwide_ISTR18.

[2]Forrest S, Perelson A S, Allen L, et al. Self-Nonself discrimination in a computer [C]// The IEEE Symposium on Research in Security and Privacy. Oakland: IEEE, 1994: 202-212.

[3]Greensmith J, Aickelin U, Cayzer S. Introducing dendritic cells as a novel immune-inspired algorithm for anomaly detection [C]// LNCS, ICARIS. Heidelberg: Springer, 2005, 3627: 153-167.

[4]LN De Castro, FJ Von Zuben. The clonal selection algorithm with engineering application [C]// Proceedings of GECCO Workshop on Artificial Immune Systems and Their Applications. Las Vegas: CiteSeer, 2000: 36-37.

[5]Matzinger P. Tolerance, danger and the extended family [J]. Annual Review of lmmunology, 1994, 12: 991-1045.

[6]Aickelin U, Bentley P, Cayzer S, et al. Danger theory: the link between AIS and IDS? [C]// LNCS, ICARIS. Heidelberg: Springer, 2003, 2787: 147-155.

[7]王亚芹,梁意文,刘赛. 基于树突状细胞算法的应用层DDoS攻击检测[J]. 计算机工程与设计.2015,36(4):841-845.

[8]Gu F, Greensmith J, Aickelin U. Further exploration of the dendritic cell algorithm: antigen multiplier and time windows [C]// LNCS, ICARIS. Heidelberg: Springer, 2008, 5132: 142-153.

[9]Greensmith J, Aickelin U. The deterministic dendritic cell algorithm [C]// LNCS, ICARIS. Heidelberg: Springer, 2008, 5132: 291-303.

[10]FANG Xian-jin, WANG Li. Theoretical investigation on the dendritic cells algorithm [J]. Journal of Beijing Institute of Technology. 2014, 23(3): 401-406.

[11]Zhang FuYong, Qi DeYu, Hu JingLin. MBMAS: a system for malware behavior monitor and analysis [C]// 2009 International Symposium on Computer Network and Multimedia Technology (CNMT), Wuhan, China, 2009.

[12]Manzoor S, Shafiq M Z, Tabish S M, et al. A sense of ‘danger’ for windows processes [C]// LNCS, ICARIS. Heidelberg: Springer, 2009, 5666: 220-233.

The Application of Artificial Immune Algorithms in Malware Detection

ZHANG Fuyong

(Computer College, Dongguan University of Technology, Dongguan 523808, China)

With the improvement of malicious code complexity, requirements of malware detection method can not only achieve efficient detection, but also have good robustness to cope with the possible confusion test strategy. This paper investigates “both generations” artificial immune algorithms, that is, negative selection algorithm (NSA) and dentritic cell algorithm (DCA), applied in run-time malware detection, which is realized by capturing IRP sequence during the running program. Experimental results reveal that NSA is a practical algorithm for malware detection, while DCA has great uncertainty in detection accuracy.

artificial immune system; malware detection; negative selection algorithm; dentritic cell algorithm

2015-06-03

广东省教育科学规划课题(14JXN029)。

张福勇(1982—),男,山东龙口人,讲师,博士,主要从事软件测试、信息安全研究。

TP393

A

1009-0312(2016)03-0039-06

猜你喜欢

检测器自体生命周期
动物的生命周期
全生命周期下呼吸机质量控制
从生命周期视角看并购保险
民用飞机全生命周期KPI的研究与应用
车道微波车辆检测器的应用
一种雾霾检测器的研究与设计
低损伤自体脂肪移植技术与应用
自体骨髓移植联合外固定治疗骨折不愈合
自体脂肪颗粒移植治疗面部凹陷的临床观察
一体化火焰检测器常见故障分析