基于DCA的主动安全防御算法

2015-08-14 21:01张阳张琛唐朝京
现代电子技术 2015年15期

张阳+张琛+唐朝京

摘 要:对于目前计算机防御技术的不成熟和日益突出的网络安全问题,运用人工免疫中的DCA算法,提出一种以改进单分类器DCA算法为基础的主动安全防御算法。DCA算法作为最新的人工免疫算法,以危险信号为基础对异物进行识别,而主动安全DCA算法弱化了主观人为因素对实验结果的影响。对算法进行验证,结果表明,该算法对于smurf攻击具有较高的检测率。

关键词: 危险理论; DCA算法; 主动安全防御; smurf攻击

中图分类号: TN915.08?34 文献标识码: A 文章编号: 1004?373X(2015)15?0053?04

Defense algorithm for active safety based on DCA

ZHANG Yang, ZHANG Chen, TANG Chaojing

(School of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)

Abstract: Since the current computer defense technology is immature and the network security problem becomes more prominent, an defense algorithm for active safety based on the modified single classifier dendritic cell algorithm (DCA) is proposed. DCA is the latest artificial immune algorithm, which takes danger signal as the foundation to recognize foreign body. The active safety DCA weakened the subjective human factors influencing on the experimental results. In this paper, the algorithm is verified, and the verification results show that the algorithm has higher detection rate for the smurf attack.

Keywords: danger theory; DCA; active safety defense; smurf attack

0 引 言

主动防御系统能够自主识别影响主机正常运行的各种异常行为,相对于传统的防护体系,需要较少或极少的人工干预,因此也相对比较智能。例如,主动安全防御系统通过对外部、内部网络入侵知识的获取及运用,能够自动发现网络入侵行为;通过对本机系统调用及日志的查看,能够识别出异常进程。

然而,主动安全防御系统的研究也相对不是很成熟,随着近年来人工智能算法的深入研究,主动安全防御技术也获得了一些突破与进展,越来越多的学者把诸如蚁群算法、遗传算法、神经网络和人工免疫等运用于防御系统。

人工免疫算法在计算机安全方面的运用具有先天的优势,其模拟自然界生物的免疫进行异常检测。本文将较新的DCA算法运用于主动安全系统,结果表明,该算法具有较好的检测效果。

传统的人工免疫算法基于自我/非我模型,有时也会对非入侵行为发出错误的报警信息,造成一定的误检和漏检的发生。

危险理论基于危险信号的识别与检测技术,其中的关键技术是对危险信号的定义和提取工作。本文主要研究了危险理论中的DCA算法,首先根据攻击等特点定义危险信号,以及DCA算法中的迁移阈值、权值矩阵等参数值,由于本文重在检验算法,基于篇幅考虑故将危险信号的提取部分略去,直接使用KDD Cup99数据集进行测试。

鉴于算法的通用性,可以根据不同危险信号的定义和提取将该算法用于各种攻击行为的检测,其中包括网络蠕虫的检测与防御技术。

1 危险理论和DCA算法介绍

1.1 危险理论

传统的自体/非自体理论对于一些现象解释出现矛盾,比如,在怀孕、衰老等情况下自身发生变化,但并没引起免疫应答。免疫系统对一些明显发生细胞突变的肿瘤却不发生排斥。太多的现象使人们感到“自我和非我”起码不能完全决定机体的免疫应答。1994年Matzinger首先提出危险理论,她认为免疫系统所能区分的实际上是“从某些非我中区分出某些自我”,并且声称危险模式理论提出的不仅仅是一个新的概念,而且是一种避开区分自我和非我的方法。危险理论假定免疫系统的激活不是由非自体的检测惟一决定,也不对一个潜在的入侵做出响应,直到危险被检测到。结果显示这些危险信号是由病原感染细胞的坏死导致的。危险信号的出现与被称为抗原的潜在感染体分泌的蛋白质相结合,是引起HIS防御应答的必要条件。

1.2 DCA理论

树突状细胞(Dendritic Cell,DC)作为先天性免疫系统中专职的抗原提呈胞,能够融合处理多种环境信号,并将信号与抗原相关联,分析得到抗原的异常指标。受DC功能的启示,Greensmith等人通过对DC抗原提呈行为进行抽象建模设计实现了树突状细胞算法(Dendritic Cell Algorithm,DCA),开创了一种全新的免疫算法。

DCA的基本原理就是仿真了生物免疫中DC状态转换的过程,把DC抽象为一个类似于信号处理器的数据结构,通过线性信号处理模型模拟DC的信号处理过程,对输入信号进行计算得到输出信号决定DC的状态。

输入信号包括:

(1) PAMP表示存在异常,PAMP的增强表明存在异常的可靠度增加;

(2) DS表示可能存在异常,DS的增强表明存在异常的可能性增加,相比于PAMP的可靠度较低;

(3) SS表示异常的可能性非常小,SS的增强表明正常的可能性增加,存在异常的可能性减少,用于抵消PAMP和DS的影响。

IC用于放大前3种信号的影响。

输出信号包括:

(1) 协同刺激分子csm(co?stimulatory molecules)用于决定DC是否进行状态转换;

(2) 半成熟树突状细胞因子semi(semi?mature DC cytokines)表示抗原所处组织环境的安全程度;

(3) 成熟树突状细胞因子mat(mature DC cytokines)表示抗原所处组织环境的危险程度。

DC分化过程的抽象化表示[1],如图1所示。

2 基于DCA的主动防御算法的实现

2.1 主动防御DCA算法流程及说明

本实验采用了树突状细胞算法[2]并进行了改进,为了尽可能减小人为主观因素对结果的影响,算法对迁移阈值采用随机选取,并通过多轮处理来修正结果。

算法的伪代码如下:

输入:抗原和经过预处理的信号

输出:抗原类型和其MCAV值

初始化DC种群,在一定范围内随机选取迁移阈值;

for 每轮处理 do

for 每个抗原 do

更新组织抗原向量和信号向量

随机从DC种群选取Mc个DC

for 每个被选择的DC do

得到并存储抗原;

得到并存储该抗原的三组预处理信号;

由输入信号计算得到输出信号;

if 累积Csm≥迁移阈值then

if 累积Mat≥累积Semi then

ContextValue=1;

else

ContextValue=0;

end if

DC迁移到淋巴结;

组织中增加一个新DC;

end if

if ContextValue == 1 then

更新抗原记录;

更新DC种群;

end if

end for

end for

end for

for每个抗原 do

计算抗原的MCAV值;

对抗原进行标记处理;

end if

图1 生物分化过程抽象模型

2.2 数据预处理及说明

为了检验模型设计,本文采用KDD Cup99数据集进行测试。数据来源于kddcup.data_10_percent文件,总共包括494 021条数据,其中97 278条正常连接和396 743条攻击,10%的子集与完整数据集保持相同的统计特性。

考虑到原始数据有41个特征属性,首先需要对数据集进行简化处理。参照文献[3],通过计算相应属性间的信息熵,计算公式如下:

[Gain(S,A)=Entropy(S)-v∈Values(A)SvSEntropy(Sv)]

式中:[S]为正常/攻击类型;[A]为属性;Entropy是计算熵值。

根据各个属性间的信息熵计算结果,得到各个属性与攻击间的相关程度,选取部分属性列举见表1。

表1 正常/攻击类型与相关属性

[正常/攻击类型\&相关属性\&normal\&1,6,12,15,16,17,18,19,31,32,37\&smurf\&2,3,5,23,24,27,28,36,40,41\&neptune\&4,25,26,29,30,33,34,35,38,39\&]

综合考虑各个攻击与属性相关性[2],选取10个属性值:12,23,24,25,26,29,31,32,38,40,作为下面检测攻击的数值进行计算。

2.3 抗原及信号的定义

本文将数据集的每一条记录信息看作是一个抗原,由于算法中采用在(50,100)内随机选取迁移阈值,具有一定的随机波形特性,运行结果进行了[L]轮(在程序中具体设置)计算后给出。

DCA模型使用的信号是经过预分类和预规格化的数据源。各种信号根据应用领域的相关知识预分类为PAMP,SS(安全信号),DS(危险信号),之后需进行预规格化,以取得预期的效果。本文将PAMP,SS,DS信号统一规格化到[0,100],规格化函数定义如下:

[f(x)=0,x∈0,mxn-m×100,x∈m,n100,x∈n,+∞]

式中:[x]为原始信号值,当[x∈[m,n]]时进行线性映射,[x]的最大值和最小值分别为100和0。

定义抗原和信号如下:

抗原:494 021个数据记录;

信号:

PAMP(五个属性):serror_rate(25),srv_serror_rate(26),same_srv_rate(29),dst_host_serror_rate(38),dst_host_rerror_rate(40);

SS(三个属性):logged_in(12),srv_diff_host_rate(31),dst_host_count(32);

DS(两个属性):count(23),srv_count(24)。

定义输入到输出信号的权值矩阵(可调整)见表2。

表2 算法权值矩阵

[\&PAMP\&DS\&SS\&Csm\&2\&0\&2\&Semi\&0\&0\&2\&Mat\&2\&1\&-2\&]

3 测试结果及分析

3.1 测试结果

为了对主动防御DCA算法进行验证,选取数据集的前10 000条记录进行测试,前10 000条记录中,smurf攻击数据记录从第7 794条记录开始到第10 000条,其余均为正常数据记录。算法测试结果如图2所示。

图2是对kddcup.data_10_percent文件的前10 000个点测试的结果,分析原始数据可以看到,数据集从第7 794个数据点开始出现smurf攻击,一直到第10 000个点。

图2 算法测试结果

测试结果总体吻合,其中在前一部分出现了少部分噪点,说明算法还存在一定的误差。通过分析数据集和输出结果可得,结果在第7 794个点处准确地区分了攻击的出现,如图3所示,这也在很大程度上看出了主动安全DCA算法对smurf攻击的辨别比较准确。

3.2 测试结果性能评估

依据常用的单类分类问题的性能衡量指标的方法,下面对实验数据进行准确的性能评估。分别计算实验结果的检测率(DR),误报率(FPR)和漏报率(FNR),结果见表3。

表3 测试性能评估数据表

[Number\&Total\&TPs\&FPs\&TNs\&FNs\&\&10 000\&7 779\&8\&2173\&40\&Ratio\&TP\&FP\&TN\&FN\&\&\&0.998 973\&0.001 027\&0.981 925\&0.018 075\&\&Ratio\&DR\&FPR\&FNR\&\&\&\&0.981 925\&0.001 027\&0.018 075\&\&\&]

由算法测试评估计算结果可知,该测试的DR达到了98.19%,对于smurf攻击具有较高的检测率,而算法的FPR和FNR分别为0.1%和1.8%,由此可见,该算法对于smurf攻击的检测很有效。

图3 测试攻击开始放大图

4 结 语

本文对DCA算法进行了研究及改进,并将其应用于主动安全防御系统。作为人工免疫的最新算法,DCA算法表现出了较高的准确率,而改进算法则运用随机特性弱化了人为主观因素对危险信号的影响,提高了算法的准确性。本文在后文给出了算法用于KDD Cup99数据集的测试结果及性能评估,结果表明,该算法对smurf攻击具有较高的检测率。

鉴于算法的通用性,可以根据不同的危险信号的定义和提取而将该算法用于各种攻击行为的检测,其中包括网络蠕虫的检测与防御等技术。

参考文献

[1] ZANERO S. ULISSE, a network intrusion detection system [C]// Proceedings of 2008 the 4th Annual Workshop on Cyber Security and Information Intelligence Research. New York: ACM, 2008: 45?49.

[2] GU F, GREENSMITH J, AICKELIN U. Further exploration of the dendritic cell algorithm [C]// Proceedings of 2008 International Conference on Artificial Immune Systems. Phuket: Springer Verlag, 2008: 142?153.

[3] KAYACIK H G, ZINCIR?HEYWOOD A N, HEYWOOD M I. Selecting features for intrusion detection:a feature relevance analysis on KDD 99 intrusion detection datasets [C]// 2005 IEEE Third Annual Conference on Privacy, Security and Trust. New Brunswick: IEEE, 2005: 75?80.

[4] NIEMI O P, LEVOMAKI L, MANNER M. Dismantling intrusion prevention systems [C]// Proceedings of 2012 ACM SIGCOMM Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication. New York: ACM, 2012: 285?286.

[5] 卢天亮.基于人工免疫系统的恶意代码检测技术研究[D].北京:北京邮电大学,2013.

[6] 王维,张鹏涛,谭营,等.一种基于人工兔疫和代码相关性的计算机病毒特征提取方法[J].计算机学报,2011,34(2):204?215.