基于通信相似度的僵尸网络节点检测方法
2018-12-25金渝筌谢彬朱毅
金渝筌,谢彬,朱毅
基于通信相似度的僵尸网络节点检测方法
金渝筌1,2,谢彬1,朱毅2
(1. 中国工程物理研究院电子工程研究所,四川 绵阳 621900; 2. 四川大学,四川 成都 610065)
目前,僵尸网络检测方法大多依靠对僵尸网络通信活动或通信内容的分析,前者对数据流的特征进行统计分析,不涉及数据流中的内容,在检测加密类型方面具有较强优势,但准确性较低;后者依赖先验知识进行检测,具有较强的准确度,但检测的通用性较低。因此,根据杰卡德相似度系数定义了通信相似度,并提出了一种基于用户请求域名系统(DNS,domain name system)的通信相似度计算方法,用于基于网络流量的僵尸网络节点检测。最后,基于Spark框架对所提出的方法进行了实验验证,实验结果表明该方法可以有效地用于僵尸网络节点检测。
僵尸网络;相似度检测;DNS流量检测;网络安全
1 引言
自僵尸网络1993年被首次提出至今已经过了很长时间,但是攻击者不断更新僵尸网络的隐藏、逃匿、加密等技术,致使研究人员对僵尸网络的探索从未停止。僵尸网络使攻击者拥有了一个攻击平台,利用这个平台攻击者可以发起各类攻击从而造成各类安全问题:①发起分布式拒绝服务攻击(DDoS,distributed denial of service),相比拒绝服务攻击,使用僵尸网络发起分布式拒绝服务攻击更具威胁,如Mirai僵尸网络造成了“美国断网”事件;②发送垃圾邮件,如Rustock僵尸网络,其每天可发送近300亿垃圾邮件;③窃取资源,僵尸网络可以从僵尸主机中窃取包括个人信息、敏感数据、计算资源等各类网络资源;④恶意软件发布,僵尸网络可以用作恶意软件的发布平台,如著名的Zeus[1]就是恶意软件的发布平台。目前,越来越多的攻击者利用僵尸网络进行各种恶意攻击,僵尸网络的检测已成为网络安全研究人员所关注的重点之一,研究僵尸网络检测技术对于学术和工程实践均具有重要意义。
本文针对僵尸网络的通信特点,根据杰卡德相似度系数(Jaccard系数)定义了通信相似度,并对DNS通信数据进行分析,提出了基于用户请求DNS的通信相似度的僵尸网络检测方法。且通过实验验证了该方法能够有效地用于僵尸网络节点的检测。
2 相关研究
学者在研究僵尸网络的过程中对其定义略有不同,方滨兴等[2]认为僵尸网络是一种通过入侵网络空间内若干非合作用户终端构建的、可被攻击者远程控制的通用计算平台;诸葛建伟等[3]认为僵尸网络是攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络;Hoque等[4]认为僵尸网络是指一系列由恶意实体控制感染了恶意软件的主机实体。从整体而言,僵尸网络由3个部分组成:僵尸主机(Bots)、攻击者(Botmaster)以及远程控制方法。僵尸主机是指对于被入侵事件并不知情的僵尸网络受控主机。攻击者是指对僵尸网络具有实际操控权的控制者。远程控制方法即命令与控制(C&C,command and control)信道,是指攻击者用来对僵尸主机发布命令的方法。僵尸网络起源于帮助IRC网络聊天室的管理员高效管理网络的程序“Eggdrop”[5],而1998年出现的GTBot则是第一个恶意僵尸网络。时至今日依然有部分僵尸网络使用IRC协议进行通信,如Chuck Norris、LightAidra、Tsunami等[6]。
僵尸网络检测技术是为了发现僵尸网络的存在,并且检测出其中部分僵尸主机节点[2]。目前,僵尸网络检测技术主要分为5种类型:基于蜜网进行捕获分析、基于通信内容的僵尸网络检测、基于异常行为的僵尸网络检测、基于安全设备日志的僵尸网络检测以及基于网络流量分析的僵尸网络检测。
基于通信内容的僵尸网络检测是指通过深度报文识别(DPI,deep packet inspect)等技术使用预先设置的特征码进行正则匹配或规则匹配,从而发现僵尸网络。该方法常用于各大厂商(如Cisco、华为、深信服等)的防火墙等安全设备中,其检测效率高、精度准,但是需要维护庞大的僵尸网络特征库并实时更新,对新出现的僵尸网络检测效果较差。
基于异常行为的僵尸网络检测是指通过识别网络中主机的异常通信行为对僵尸网络进行检测的方法。北京邮电大学的王新良提出了一种基于指纹特征自提取的僵尸网络检测方法,并结合僵尸网络流统计特征和僵尸网络行为特征对僵尸网络进行检测,大幅度提升了僵尸网络检测率。Zeidanloo等[7]基于同一个僵尸网络的数据分组具有一些相同的特征这一判断,对数据分组的主机地址、端口号、数目等特征进行了分析,然后通过比较计算得到僵尸网络流量的相似性并以此进行检测。基于异常行为的僵尸网络检测由于需要对攻击行为进行预先研究和分析,不适用于检测新型僵尸网络。
基于安全设备日志的僵尸网络检测是指通过邮件网关日志、防火墙日志等安全设备日志分析,建立安全事件与僵尸网络之间的关联,从而对僵尸网络进行检测。Gu等[8]基于同一局域网中Bots网络行为在时空上的关联性假设,结合扫描、二进制文件下载、spam等异常事件日志进行关联分析,提出了IRC、HTTP流量中僵尸网络的识别方法。邓国强[9]提出了一种邮件行为异常和邮件内容相似性匹配相结合的僵尸网络检测方法,该方法不仅可以发现多个具有一定规模的僵尸网络,还能用于垃圾邮件检测。
基于网络流量分析的僵尸网络检测是通过网络流量分析,检测网络中是否存在僵尸网络C&C通信,并通过C&C信道的检测和分析定位僵尸主机,发现僵尸网络。Narang等[10]基于正常P2P通信成员与僵尸网络P2P通信成员之间特征不同,提出了一种对网络会话进行统计分析的检测僵尸网络的方法。此方法可以对加密的僵尸网络进行检测,但因其忽略了大量信息,对于一些隐蔽性较强的僵尸网络检测率不高。张维维等[11]从域名的依赖性和使用位置两方面刻画DNS活动行为模式,并基于有监督的多分类器模型提出了一种DAOS算法,该算法可以有效地检测僵尸网络、钓鱼网站以及垃圾邮件等恶意活动。
在上述僵尸网络检测方法中,网络流量分析方法是一种非侵入式方法,以旁路方式部署在小型网络边界及骨干网上,既可以细粒度地监测特定用户网络,又可以并发检测僵尸网络,是当前主流的僵尸网络检测方法之一,也是本文用于研究僵尸网络节点检测的方法。
3 基于通信相似度的僵尸网络节点检测
本节首先简要介绍了僵尸网络结构、杰卡德相似系数等概念;然后基于杰卡德相似度系数定义了通信相似度,并提出了用于僵尸网络节点检测的基于DNS流量的检测方法;最后基于Spark框架对提出的僵尸网络节点检测方法进行了实现和验证。
3.1 相关概念
3.1.1 僵尸网络结构
目前在僵尸网络研究中,其结构主要分为3种模式:集中模式、纯P2P模式以及混合模式,如图1所示。
图1 僵尸网络结构
集中模式采用客户端–服务器(C/S)模式,在该模式中所有的僵尸主机与控制服务器连接获取控制命令,如图1(a)所示。在纯P2P模式中每个僵尸主机既充当僵尸程序的客户端也充当僵尸网络的服务器,如图1(b)所示。混合模式的僵尸网络结构将僵尸网络分为多层,既具有专门的控制服务器又使用僵尸主机作为客户端和服务器,如图1(c)所示。其中,使用分层结构混合模式的僵尸主机为本文检测内容。
3.1.2 杰卡德相似度系数
那么,集合、的杰卡德相似度系数可以表示为
集合、的杰卡德距离可以表示为
3.2 僵尸网络节点通信相似度定义
僵尸网络中的僵尸主机节点在产生共同活动(如DDoS攻击、垃圾邮件发送等)时,其节点会产生共同或类似的网络通信行为,基于此提出了使用僵尸网络节点通信相似度对僵尸网络进行检测的方法。由于主机在通信过程中大多情况下使用DNS服务,因此本文的通信相似度检测基于DNS流量进行,即通信相似度是指客户机在DNS服务中请求域名的相似度。
本文中僵尸网络节点通信相似度定义如下。
3.3 基于通信相似度的计算方法
由于杰卡德相似度系数不考虑用户评分的影响,本文仅计算符号度量或布尔值度量的个体间的相似度,对杰卡德相似度系数的计算进行了修改以适应僵尸网络节点通信相似度的计算。
僵尸网络节点相似度计算方式如下。
3.4 基于Spark的计算方法实现
本文使用Spark实现僵尸网络节点的通信相似度计算,其计算流程如图2所示。首先从DNS流量中获取所需信息,包括客户端IP、请求域名以及请求域名次数;然后将提取的信息以客户端IP为主要键值进行笛卡尔积计算形成客户端与集合的数据集,接着分别计算每对节点的通信相似度;最后过滤出节点通信相似度大于0.9的IP对作为最终输出结果。
图2 节点通信相似度计算流程
在僵尸网络节点相似度计算过程中,计算量往往较大,而且在计算过程中会使用笛卡尔积进行数据关联操作,这会使计算数据以平方倍数增加,造成无法计算或计算时间过长的问题。针对该问题,本文对僵尸网络节点相似度在Spark中的计算流程进行优化,使计算时间下降到可计算范围内。优化后的节点通信相似度计算流程如图3所示。
算法实现的具体步骤如下。
步骤1 读取DNS流量。
步骤2 提取DNS流量中的有效信息,包括客户端IP、请求域名、客户端请求域名次数以及客户端请求DNS次数。
步骤3 根据客户端请求DNS次数的对数结果将数据进行分块。
步骤4 对每一个分块计算其自身以及相邻分块的笛卡尔积。
步骤5 对步骤4的计算结果求取相似度。
步骤6 获取相似度不小于0.9的数据计算结果,并将所有计算结果进行union操作。
步骤7 输出最终计算结果,节点通信相似度计算完毕。
本文主要考虑通过IP请求DNS的次数对数据进行分割,以减少进行笛卡尔积计算后数据的增量。本文中的节点通信相似度计算在杰卡德相似度系数计算基础上充分考虑了用户的评分情况,其计算结果与用户使用DNS的次数呈正相关,当用户使用次数具有较大差异时,其节点通信相似度不可能较大。基于此,某DNS服务器在2017年2月1日至2月10日对用户请求分布进行了统计,统计结果如图4所示。
图3 基于Spark的通信相似度计算实现流程
图4 IP请求次数与IP平均数分布
由图4可以看出,IP请求DNS服务次数与IP数目呈现明显的幂律分布,因此本文采用IP请求次数的对数进行数据分割。再使用分割后的数据集求取其自身与相邻分割模块的笛卡尔积,然后计算其相似度并按照相似度大于0.9的条件对处理数据进行筛选,最后将处理结果进行union操作,输出最终的节点通信相似度检测结果。
3.5 计算方法有效性验证
3.5.1 实验数据说明
本文中所有数据采集、实验过程,以及使用的DNS流量数据均基于网络业务与安全态势大数据分析平台[13]。该平台部署了Hadoop实现对网络流量的大规模存储,同时通过Spark、MapReduce等计算框架实现网络安全大数据分析。对于数据存储主要使用HDFS、Hive、MySQL等存储组件,其中,HDFS和Hive负责大规模数据的分布式存储,MySQL用于存储平台分析结果和少量分析配置信息。
3.5.2 节点通信相似度有效性验证实验
1) 实验数据集
为了验证算法的有效性,本文使用2017年3月21日的DNS流量数据进行计算,网络业务与安全态势大数据分析平台显示当日数据出现了小规模的DNS异常请求,其为DDoS攻击事件。在当日数据中发现有24个IP在DNS请求上具有极强的通信相似性,如图5所示,图中24个IP大量访问部分域名,且访问内容具有很强的相似度。此次攻击与本文提出的僵尸网络节点通信的相似度非常相似。
图5 2017年3月21日疑似DDoS攻击事件
2017年3月21日的DNS流量数据规模如表1所示。
表1 节点通信相似度有效性验证数据规模
2) 实验结果与分析
根据本文提出的节点通信相似度算法,对2017年3月21日的DNS流量进行统计,并以IP为点,相似度不小于0.9为边建立关系图,如图6所示。图中圈内为24个根据网络业务与安全态势大数据分析平台找出的DDoS攻击IP,即僵尸网络节点。
图6 节点相似度关系
由此,通过本文提出的节点通信相似度算法可以检测出僵尸网络。此外,圈外还存在大量IP相似关系,经分析其行为与24个事先找出的IP行为十分相似,但访问量低,非DDoS攻击,即非僵尸网络节点。综上,本文提出的节点通信相似度算法是一种有效的僵尸网络节点检测方法。
3.5.3 优化算法有效性验证实验
1) 实验数据与环境
为了验证优化算法的有效性,本文使用2017年3月21日的DNS流量数据进行计算,其数据规模如表1所示。为进行算法优化先后的对比,需要保证优化前后算法运行环境的一致性,因此本实验中对Spark程序的运行环境进行了限定,具体配置如表2所示。
表2 Spark程序运行环境
2) 评价标准
3) 实验结果与分析
根据本文提出的节点相似度算法及其优化算法,分别对2017年3月21日DNS流量进行统计,其时间消耗如图7所示,根据式(6)计算可得其算法速度提升率为1756.60%,因此,本文提出的优化方案大大降低了算法时间消耗。
图7 计算时间消耗
对于Spark shuffle消耗,本实验也做了相关统计,其结果如图8所示,根据式(7)计算得出shuffle减少率为83.33%,因此,本文提出的优化方案大大降低了在Spark计算中的shuffle消耗。综上所述,本文提出的僵尸网络节点相似度优化算法是有效的。
图8 shuffle消耗量
4 结束语
本文根据杰卡德相似度系数定义了通信相似度,并提出了一种基于用户DNS流量请求的通信相似度计算方法,用于僵尸网络节点检测。该方法基于Spark框架进行了实现,并基于网络业务与安全态势大数据分析平台的网络流量监控数据进行了验证,验证结果表明该方法可以有效地用于僵尸网络节点的检测。
本文中对节点通信相似度的计算以及拓扑结构分析过程,由于数据量庞大、特征时间跨度较大以及算法未能分布式实现等问题,仅对单日的数据进行检测与发现。对于威胁性更大、处于爆发阶段的僵尸网络需要在尽量短的时间内实现其检测和发现,因此,未来将针对算法和特征进一步实现优化,使其可以分布式、实时地对僵尸网络进行检测。
[1] FALLIERE N, CHIEN E. Zeus: king of the bots, 2009[EB/OL]. http://www. symantec. com/content/en/us/ enterprise/ media/ security_ response/whitepapers/zeus_king_of_bots. pdf. 2014: 07-30.
[2] 方滨兴, 崔翔, 王威. 僵尸网络综述[J]. 计算机研究与发展, 2011, 48(8): 1315-1331
FANG B X, CUI X, WANG W. Survey of botnets[J]. Journal of Computer Research and Development, 2011, 48(8): 1315-1331..
[3] 诸葛建伟, 韩心慧, 周勇林, 等. 僵尸网络研究[J]. 软件学报, 2008, 19(3): 702-715
ZHUGE J W, HAN X H,ZHOU Y L, et al. Research and Development of Botnets[J]. Journal of Software, 2008, 19(3): 702-715
[4] HOQUE N, BHATTACHaryya D K, KALITA J K. Botnet in DDoS attacks: trends and challenges[J]. IEEE Communications Surveys & Tutorials, 2015, 17(4):2242-2270.
[5] IRC Eggdrop: open source bot[EB/OL]. http://www.eggheads.org/, 1993.
[6] 李可. 基于行为分析的僵尸网络对抗技术研究[D]. 北京邮电大学, 2017.
LI K. Research on botnet countermeasure technology based on behavior analusis[D]of Posts and Telecommunications, 2017.
[7] ZEIDANLOO H R, MANAF A B A. Botnet detection by monitoring similar communication patterns[J]. International Journal of Computer Science & Information Security, 2010, 7(3): 88-96.
[8] GU G, ZHANG J, LEE W. BotSniffer: detecting botnet command and control channels in network traffic[J]. Computer Science and Engineering, 2008.
[9] 邓国强. Spamming botnet网络行为分析及检测算法设计与实现[D].华中科技大学, 2013.
DENG G Q. Network behavior analysis of the spamming botnet and the design and implementation of spamming botnet detection algorithms[D]. Huazhong University of Science and Technology, 2013
[10] NARANG P, RAY S, HOTA C, et al. PeerShark: detecting peer-to-peer botnets by tracking conversations[J]. Medical & Biological Engineering & Computing, 2014, 51(10):1105-1119.
[11] 张维维, 龚俭, 刘尚东, 等. 面向主干网的DNS流量监测[J]. 软件学报, 2017, 28(9): 2370-2387.
ZHANG W W, GONG J, LIU S D,et al. DNS surveillance on backbone[J]. Journal of Software, 2017, 28(9): 2370-2387
[12] 嵇威华, 吕国芳. 基于广义Jaccard系数处理冲突证据方法[J]. 控制工程, 2015(1): 98-101.
JI W H, LV G F. Conflicting evidence combination method based on generalized Jaccard coefficient[J]. Control Engineering of China, 2015(1): 98-101
[13] 王煜骢, 陈兴蜀, 罗永刚, 等. NTCI-Flow:一种可扩展的高速网络流量处理框架[J]. 四川大学学报(工程科学版), 2017(s1): 168-174.
WANGY C, CHEN X S, LUOY G, et al. NTCI-Flow: a scalable high-speed network traffic processing framework[J]. Journal Sichuan University (Adanced Engineering Sciences) 2017(s1): 168-174.
Method of botnet network nodes detection base on communication similarity
JIN Yuquan1,2, XIE Bin1, ZHU Yi2
1. Institute of Electronic Engineering in China Academy of Engineering Physics, Mianyang 621900, China 2. Sichuan University, Chengdu 610065, China
At present, the botnet detection method mostly relies on the analysis of the network communication activity or the communication content. The former carries on the statistical analysis to the characteristic of the data flow, does not involve the content in the data flow, has the strong superiority in the detection encryption type aspect, but the accuracy is low. The latter relies on the prior knowledge to examine, has the strong accuracy, but the generality of detection is low. The communication similarity was defined according to Jaccard similarity coefficient, and a method of calculating communication similarity based on user request DNS (domain name system) was proposed, which was used for botnet node detection based on network traffic. Finally, based on the spark framework, the experimental results show that the proposed method can be used in the detection of botnet nodes effectively.
botnet, similarity detection, DNS flow detection, network security
TP393
A
10.11959/j.issn.2096-109x.2018078
金渝筌(1979-),男,四川三台人,硕士,中国工程物理研究院电子工程研究所工程师,主要研究方向为网络安全和应用软件安全。
谢彬(1966-),女,四川安岳人,硕士,中国工程物理研究院电子工程研究所高级工程师,主要研究方向为信息安全、软件安全、安全保密测评。
朱毅(1991-),男,四川内江人,四川大学硕士生,主要研究方向为网络安全、大数据分析。
2018-09-17;
2018-09-30
谢彬,jinfire@qq.com