《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > DCA算法在僵尸网络检测中的应用
DCA算法在僵尸网络检测中的应用
来源:微型机与应用2014年第6期
杨智兴,方贤进
(安徽理工大学 计算机科学与工程学院,安徽 淮南232000)
摘要: Greensmith 根据树突状细胞机理设计实现了树突状细胞算法DCA(Dendritic Cell Algorithm),并将其用于入侵检测系统中。实验结果表明,该算法具有较高的效率,并得到了广泛的应用。本文对DCA算法进行了描述并简要介绍了其在僵尸网络检测中的应用,具有实际意义。
Abstract:
Key words :

摘  要: Greensmith 根据树突状细胞机理设计实现了树突状细胞算法DCA(Dendritic Cell Algorithm),并将其用于入侵检测系统中。实验结果表明,该算法具有较高的效率,并得到了广泛的应用。本文对DCA算法进行了描述并简要介绍了其在僵尸网络检测中的应用,具有实际意义。
关键词: 僵尸网络;DCA;入侵检测

    僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展、融合而产生的一种新型攻击方式。目前一个具有通用性的定义是:僵尸网络(botnet)是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。
    根据国家互联网应急中心2013年10月[1]公布,CN-CERT监测发现境内近740 000个IP地址对应的主机被木马或僵尸程序控制,木马或僵尸网络控制服务器IP总数为12 275个。其中,境内木马或僵尸网络控制服务器IP数量为6 763个,按地区分布数量排名前三位的分别为广东省、江苏省、云南省。境外木马或僵尸网络控制服务器IP数量为5 512个,主要分布于美国、韩国、中国台湾。其中,位于美国的控制服务器控制了境内303 588个主机IP,控制境内主机IP数量居首位,其次是位于葡萄牙和荷兰的IP地址,分别控制了境内135 178个和109 893个主机IP。
    僵尸网络的肆虐给网络安全带来了巨大的威胁,现阶段针对僵尸网络的检测研究[2]也层出不穷,本文简要介绍DCA算法在僵尸网络检测中的应用。
1 DCA算法
    人类免疫系统HIS(Human Immune System)中免疫应答是从DC开始的复杂过程。DC是一种抗原提呈细胞(APC),它从淋巴系统迁移到机体组织(Tissue),摄取抗原和蛋白质碎片,同时采集抗原所处环境中的分子作为危险信号,摄取抗原并采集信号之后从机体组织返回淋巴结(Lymph Node),并将抗原提呈给T细胞以识别抗原。另外,DC能够处理环境分子,并释放特定的细胞因子(cytokines)以影响T细胞分化过程。DC 进行决策并驱动T细胞进行免疫应答。
    Greensmith通过对DC生理功能和角色的研究,对DC行为进行建模,设计实现了DCA算法。
    DCA是基于DC群体(population)的算法[3-4],对抗原信号形式的数据流进行处理。DC群体不断更新,更新频率和种类控制与算法实现细节有关。群体中每个DC执行抗原和信号的采集。DC存储采集的抗原,并将输入信号转换为输出信号。
    DCA输入信号包括PAMP、DS(Danger Signal)、SS(Safe Signal)和IS(Inflammation Signal)。DC对输入信号进行处理,产生3种输出信号——CSM、半成熟信号(semi)和成熟信号(mat)。为了避免对复杂的实际生物信号转换机制建模,iDC信号处理使用加权求和公式来模拟,以减少计算开销,使DCA适用于实时异常检测。DC每次更新累积输出信号之后,比较CSM和迁移阈值(Migration Threshold),若CSM超过迁移阈值,则从组织删除此DC,采样周期结束,DC迁移到淋巴结进行结果分析。
    DC迁移之后进行累积输出信号评估,semi和mat浓度较大者成为细胞环境。用于对DC采集的所有抗原进行标记,标记成环境0或者1,最终用于产生MCAV,代表抗原异常程度。用户可以将其与阈值进行比较,判断抗原是否异常。
    DCA算法流程如图1所示[5]。

2 DCA算法在僵尸网络检测中的应用
    基于群体的DCA算法的输入为时间序列数据,是由信号与抗原组成的数据流。要将DCA算法应用到僵尸网络的检测中[6],最重要的是要解决算法中的时间序列输入数据的获取以及信号与抗原的映射,下面给出解决方案。
2.1 算法输入数据的获取方法
    检测算法的输入数据应能反映受害主机(即受僵尸程序或其他恶意程序感染的主机)状态。通过对僵尸程序的分析得出,僵尸网络要完成一些列的功能必须通过调用相关的系统函数才能够实现,如通信函数C、文件存取函数F和键盘状态函数K。其中通信函数包括send、sendto、recv、recvfrom、socket、connect和IcmpSendEcho;文件存取函数包括CreateFile、OpenFile、ReadFile和WriteFile;键盘状态函数包括GetAsyncKeyState、GetKeyboardState、GetKeyNameText和keybd_event。通过API调用追踪工具能很简单地得到这些函数的调用数据,作为算法的时间序列输入数据。
2.2 算法输入信号的选择、映射及归一化方法
    现阶段,僵尸网络的命令与控制信道的构建方式趋于多样化,基于不同协议构建的僵尸网络信号的选择、映射及归一化方法不尽相同,这里以基于IRC协议的僵尸网络为例,给出输入信号的选择、映射及归一化方法。
    PAMP信号的映射:把bot执行的键盘拦截活动映射为PAMP信号,该信号值来自于键盘拦截活动需调用的相关API函数的调用变化率,这些API函数包括GetAsyncKeyState、GetKeyboardState、GetKeyNameText和key-
bd_event。通过初级试验定义“Maxps=1 s内击键所产生的API函数调用的最大次数”,然后通过线性变换将Maxps映射到100作为PAMP信号的最大值。那么设PAMPt为在时间窗t内所产生的键盘状态API函数调用的数量。则在t时刻,PAMP信号的变化率可定义为:

 


2.3 算法输入数据中抗原的映射方法
    抗原有可能就是潜在的恶意进程,是系统状态的反映,它有可能就是造成系统状态改变的因素,因此将产生API函数调用的进程PID映射成抗原。
    本文简单阐述了DCA算法的机理,描述了将DCA算法应用到僵尸网络检测中各个信号量的定义。
    针对DCA算法在僵尸网络检测中应用的下一步研究,包括基于P2P协议的僵尸网络、基于HTTP协议的僵尸网络及无协议特征的僵尸网络的信号量的定义,并对实验结果进行分析。
参考文献
[1] 国家互联网应急中心.CNCERT/CC.CNCERT互联网安全威胁报告[R].[2013-10-17].http://www.cert.org.cn.
[2] 王海龙,龚正虎,侯婕.僵尸网络检测技术研究进展[J].计算机研究与发展,2010,47(12):2037-2048.
[3] 陈岳兵,冯超,张权,等.基于DCA的数据融合方法研究[J].信号处理,2011,27(1):102-105.
[4] 陈岳兵,冯超,张权,等.树突状细胞算法原理及其应用[J].计算机工程,2010,36(8):173-176.
[5] 邓小武,李森林,胡萍.树突状细胞算法形式化及其在入侵检测中的应用[J].青岛科技大学学报,2013,34(4):88-92,96.
[6] AI H Y,AICKELIN U,GREENSMITH J.DCA for bot  detection[C].Proc.of CEC′08,2008.

此内容为AET网站原创,未经授权禁止转载。