APP下载

DCA算法在僵尸网络检测中的应用

2014-07-25杨智兴方贤进

网络安全与数据管理 2014年6期
关键词:时间差僵尸调用

杨智兴,方贤进

(安徽理工大学 计算机科学与工程学院,安徽 淮南232000)

僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展、融合而产生的一种新型攻击方式。目前一个具有通用性的定义是:僵尸网络(botnet)是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。

根据国家互联网应急中心2013年10月[1]公布,CNCERT监测发现境内近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]。

图1 DCA算法流程

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和 keybd_event。通过初级试验定义“Maxps=1 s内击键所产生的API函数调用的最大次数”,然后通过线性变换将Maxps映射到100作为PAMP信号的最大值。那么设PAMPt为在时间窗t内所产生的键盘状态API函数调用的数量。则在t时刻,PAMP信号的变化率可定义为:

(1)Danger信号的映射:由于 bots直接对 botmaster的命令响应,因此发送和接收数据的微小时间差都可观测到。因此将Danger信号定义为对每个进程拦截send和recv函数调用的网络发送和接收数据的时间差。设定一个临界范围(0,Maxds)表示异常响应时间,如果响应时间落在临界范围则表示很快的响应时间,并被认为是危险的。Danger信号的计算公式如下:

其中 Trecv,send为执行 recv和 send函数调用的时间差。

(2)Safe信号的映射:由于 bots发送给botmaster信息使用send函数调用,或者bots发起SYN/UDP Flooding攻击使用sendto和socket函数调用,这都会在短时间内产生大量的函数调用。因此定义(Rangess1,Rangess2)为调用两个连续通信函数的时间差,例如(send,send)、(sendto,sendto)、(socket,socket)。然后将这些时间差归一化转换成范围[0,10],再划分成3个子范围。Safe信号的计算公式如下:

其中ΔT就是调用两个连续通信函数的时间差。

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.

猜你喜欢

时间差僵尸调用
量子定位系统中符合计数与到达时间差的获取
笔记本电脑“僵尸”
核电项目物项调用管理的应用研究
你愿意当吸血鬼还是僵尸?
基于BP网络的GIS局部放电声电联合检测故障定位方法
立体声音乐节目后期制作中声像定位的探讨
基于系统调用的恶意软件检测技术研究
在舌尖上筑牢抵御“僵尸肉”的防火墙
厘米级室内无线定位方法研究
App已死?80%的僵尸应用带来的困惑