一种基于网络日志的僵尸网络检测方法及系统与流程

文档序号:15846194发布日期:2018-11-07 09:04阅读:471来源:国知局
一种基于网络日志的僵尸网络检测方法及系统与流程

本发明涉及网络安全、大数据分析领域,具体涉及一种基于网络日志的僵尸网络检测方法及系统。

背景技术

僵尸网络由互联网中一些受到恶意程序的感染而被操控的设备组成,常被用于执行僵尸网络攻击和发送垃圾邮件等功能。知名的僵尸网络包括zeus,spyeye,blackenergy,citadel,kelihos,medfos,storm,waledac,skynet,zeroaccess,virut.n,rbot,andeldorado等。下面以mirai为例,介绍僵尸网络的典型行为。

自2016年8月以来,mirai恶意程序开始蔓延,逐步形成了一个庞大的僵尸网络,并制造了多起引起广泛关注的僵尸网络情报,包括2016年10月美国大量网站不可用事件,及同年11月德国电信断网事件。

mirai扫描并感染物联网设备,包括dvr、监控摄像头等。mirai僵尸网络会被用来进行有意的僵尸网络攻击,主要攻击类型包括syn泛洪、udp泛洪、vse(valvesourceengine)查询泛洪、gre泛洪、ack泛洪、伪随机dns标签前缀攻击和httpget/post/head攻击等。在寻找新肉鸡的过程中,mirai对网络的高速扫描行为会对被扫描主机和自身的僵尸主机产生无意的僵尸网络攻击效果。早期mirai扫描dvr、网络摄像头等设备的23/2323端口,利用telnet弱口令种植木马。

mirai僵尸网络包含如下角色:

1)bot(又称僵尸):扫描执行;僵尸网络执行;心跳上报;

2)scanlisten(又称report):收集扫描结果;

3)load(又称loader):植入恶意程序;

4)c2(又称c&c,cnc,主控):下发僵尸网络指令。

scanlisten开放端口tcp/48101,bot会同此端口通信以上报成功的扫描结果,进而交付load模块进行恶意程序植入。loader主机一般会开放80号端口,提供恶意代码的下载。一旦一个设备被入侵,mirai将会杀死其他蠕虫和木马程序,关闭远程服务禁止其他设备远程链接。在22,23,80端口上进行监听的端口将会被杀死。

2016年11月出现的mirai变种针对7547/5555端口扫描,利用远程命令执行漏洞,其scanlisten端口也变成了31517。这个变种的扫描行为导致了德国电信诸多路由器设备的宕机。此后,mirai程序经过多次更新,其扫描的端口号加入了23231,37777,6789,19058等。

近年来关于僵尸网络检测技术的研究成为了一个热点。蜜罐被用于对僵尸网络进行主动地探测,以了解其行为规律,以辅助进一步的检测。一般通过被动网络监测数据来发现僵尸网络的踪迹。从分析手段角度分类,被动方法主要包括基于签名的方法,基于异常的方法,基于域名的方法,和基于挖掘的方法。早期的被动网络数据包含了包载荷,近年来的工作则重点关注包头信息,利用netflow技术进行采集和处理。基于包载荷的检测方法可以达到更低的误报率,但由于存储需求大,实现困难,目前常用的包载荷数据只包括dns协议数据。

snort等ids(intrusiondetectionsystem)可通过规则配置发现僵尸网络流量,是典型的基于签名的检测方法,其缺点是只能针对已知的僵尸网络特征进行规则设计。基于异常的检测方法主要关注异常延迟、异常带宽、异常端口等流量特征,这些特征有助于僵尸网络的发现,但必须通过额外的分析才能剔除误报。由于僵尸网络常常借助于dns设施寻找主控节点,基于域名的方法在有些情况下可以有效发现僵尸网络成员。基于挖掘的方法可看做基于异常的方法的升级,通过提取更加隐含的特征,采用机器学习等手段来发现前者难以发现的踪迹。这些隐含特征包括一些时域特征,如周期性,频谱能量密度,自相似性等。这些特征能够在一定程度上识别僵尸主机同主控主机之间的心跳(beacon)行为。其他隐含特征包括空域特征,如流长短的分布,总包长取值集合,包长的熵,包数的熵,吐纳比等。

尽管学术界已经研究多年,僵尸网络的有效检测依旧是一个难题。这一方面是由于攻击者可以不断升级和改变僵尸网络的组织方式和通信规律,刻意对抗和躲避检测手段。另一方面,检测僵尸网络涉及对大量网络数据的采集、存储、管理和计算,在工程实现上具有很大的挑战性。除了通用的检测技术之外,也可以针对特定的僵尸网络,针对其专有特征研究定制性的检测手段,可以达到显著的检测效果。



技术实现要素:

本发明的目的在于,提供一种基于网络日志的僵尸网络检测方法及系统,基于大型网络的流量日志,捕获僵尸网络的活动情况,收集多种统计信息,为有效地打击、对抗僵尸网络及其幕后的犯罪团伙提供了情报基础。

本发明可应用于从网络流量日志中发现僵尸网络情报,适用于有明显流量特征的僵尸网络,如端口扫描特征和主控服务器访问特征等。

本发明采用的技术方案如下:

一种基于网络日志的僵尸网络检测方法,包括以下步骤:

1)通过分析网络日志,捕获符合僵尸网络特征的主机ip,获得僵尸网络成员列表;

2)针对每一个僵尸网络成员进行微观分析,并针对全部僵尸网络成员进行宏观统计分析,获得僵尸网络情报。

进一步地,步骤1)针对僵尸网络的多种特征,分别获得疑似僵尸网络主机成员列表,然后基于多种疑似僵尸网络主机成员列表,通过相互印证获得准确的僵尸网络成员名单。

进一步地,步骤1)捕获疑似僵尸网络成员的方式包括:如果已知目标僵尸网络所利用的漏洞对应的端口号,则将对这一端口进行网络扫描的主机认做疑似僵尸网络成员;如果已知目标僵尸网络的主控域名,则将对该域名进行多次请求的主机认作疑似僵尸网络成员。

进一步地,所述网络日志包括ip通联日志和域名访问日志;所述僵尸网络特征包括端口扫描特征、主控ip访问特征和主控域名访问特征。

进一步地,所述微观分析,包括捕获新的被感染对象,追溯感染源,以及检测ddos攻击流量;所述宏观统计分析,包括僵尸网络成员间主被控拓扑关系分析,以及僵尸网络感染疫情态势分析。

进一步地,所述捕获新的被感染对象,是捕捉h在时间t后的对外扫描行为,发现其感染的其他主机,并对疑似僵尸网络主机成员列表进行补充。

进一步地,所述追溯感染源包括:

a)对僵尸网络成员h的符合僵尸网络特征的行为进行筛选,执行时间线分析,锁定h被感染的时间t;

b)捕捉在时间t之前对h的扫描事件,筛选出成功的扫描事件;

c)分析成功的扫描事件,筛选出感染事件,提取扫描源信息,即主机h的感染源。

进一步地,所述检测ddos攻击流量,是捕捉h在时间t后对外发起的非扫描性流量,检测h是否发起ddos攻击事件,如果h对某主机持续发起不可解释的较大规模流量,则判断为ddos攻击。

一种基于网络日志的僵尸网络检测系统,其包括:

网络探针,负责采集网络流量,生成网络日志,并存储至大数据平台;

僵尸网络检测引擎,负责对存储的网络日志进行分析,检测僵尸网络情报;

规则库,负责存储用于检测僵尸网络情报的规则,供所述僵尸网络检测引擎使用;

僵尸网络分析情报库,负责存储所述僵尸网络检测引擎输出的僵尸网络情报。

进一步地,所述僵尸网络检测引擎部署于大数据平台,所述僵尸网络检测引擎包括:

配置管理模块,负责在初始化阶段加载规则库;

数据输入模块,负责周期性读取大数据平台中的网络日志,并执行预处理和格式转换,方便后续数据分析;

数据分析模块,负责分析网络日志,发现本周期内的僵尸网络情报;

数据输出模块,负责输出本周期内发现的僵尸网络情报,用于深入挖掘或可视化展示。

与现有技术相比,本发明的优点在于:

1.利用大规模通联日志和域名访问日志,可批量发现和追踪僵尸网络活动,从宏观和微观两个层面观察其蔓延态势。

2.只需要连接级别的网络日志,不需要数据包级别的日志,也不需要执行流量还原操作获得载荷特征,有效降低了大规模网络日志的存储开销。

附图说明

图1本发明提出的基于网络日志的僵尸网络检测方法的流程图;

图2本发明实施例实现的基于网络日志的僵尸网络检测系统的系统框图;

图3本发明实施例实现的僵尸网络检测引擎的组成模块示意图。

具体实施方式

下面结合附图和实施例对本发明的内容做进一步详细描述。

本发明的一个实施例提供一种基于网络日志的僵尸网络检测分析方法,其整体流程如图1所示,包括以下步骤:

(1)分析网络日志,针对僵尸网络的多种特征,捕获符合僵尸网络的流量特征的主机ip,分别获得疑似僵尸网络主机成员列表。具体捕获方法包括:如果已知目标僵尸网络所利用的漏洞对应的端口号,则对这一端口进行网络扫描的主机可认做疑似僵尸网络成员。如果已知目标僵尸网络的主控域名,则对该域名进行多次请求的主机,可认作疑似僵尸网络成员。

(2)基于多种疑似僵尸网络主机成员列表,通过相互印证,获得较为准确的僵尸网络成员名单。比如通过端口扫描和主控域名两种方式得到两个列表,然后取交集,得到一个更准确的列表。

(3)获取僵尸网络成员名单中的一个待分析僵尸网络成员h,对h的符合僵尸网络特征的行为进行时间线分析,锁定h被感染的时间t。

(4)捕捉h在时间t后的对外扫描行为,发现其感染的其他主机,对疑似僵尸网络主机成员列表进行补充。

(5)捕捉在时间t之前对h的成功扫描事件,筛选出感染事件,提取扫描源信息,即主机h的感染源;

(6)捕捉h在时间t后对外发起的非扫描性流量,检测h是否发起ddos攻击事件。如果h对某主机持续发起不可解释的较大规模流量,则判断为ddos攻击。

(7)输出对h的分析结论至情报库。

(8)针对全部僵尸网络成员名单进行宏观统计分析,如主被控关系,僵尸网络感染疫情态势分析,并输出至情报库。比如针对已掌握的僵尸网络成员名单,执行如下宏观统计分析:a)根据通信连接拓扑,还原各成员的主、被控关系。如果多个成员m1,m2,…,mn跟同一个其他成员mn+1同时发生通信,则认为mn+1为主控,m1,m2,…,mn为被控。b)根据已掌握的受感染主机数和未受感染的主机数,推断僵尸网络疫情态势。

上述方法主要可以产生以下应用效果:

1.不需要存储全部基线数据,节省存储空间,并减少基线比较过程的计算量。

2.结合大数据集群,能够有效检测大规模网络中的所有流量型僵尸网络情报。

本发明另一实施例提供一种基于网络日志的僵尸网络检测系统,图2为该系统的组成框图,包括网络探针、僵尸网络检测引擎、规则库和僵尸网络分析情报库。该系统在省级运营商网络出口采集网络流量日志,并部署大数据平台。基于该平台研发僵尸网络检测引擎,分析网络日志,并输出可能的僵尸网络攻击行为报告。下面分别说明各个部分:

1、网络探针

网络探针部署在被关注网络的出入口等关键位置,用于采集网络流量,生成netflow格式的通联记录及被动域名访问记录,并存储至大数据平台。当平台存储空间有限时,采用滚动删除的方式,保留最近2周至一个月的相关记录。

2、僵尸网络检测引擎

在大数据平台,部署僵尸网络检测引擎模块,对大数据平台中存储的流量记录采用以上方法进行分析,检测僵尸网络情报。

该僵尸网络检测引擎的架构如图3所示,其分为如下几个模块:

配置管理模块:负责在系统初始化阶段加载规则库。

数据输入模块:负责周期性读取大数据平台中的流量记录,并执行预处理和格式转换,方便后续数据分析。

数据分析模块:分析流量记录,发现本周期内的僵尸网络情报。

数据输出模块:将本周期内发现的僵尸网络情报发往其他系统,用于深入挖掘或可视化展示。

3、规则库

从外部导入规则库。规则库包括各僵尸网络所利用的漏洞信息,所扫描的端口号,所使用的主控域名等。最终将规则库应用于僵尸网络检测引擎。如果规则库中已知目标僵尸网络所利用的漏洞对应的端口号,则对这一端口进行网络扫描的主机可认做疑似僵尸网络成员。如果规则库中已知目标僵尸网络的主控域名,则对该域名进行多次请求的主机,可认作疑似僵尸网络成员。

4、僵尸网络分析情报库

僵尸网络分析情报库用于存储僵尸网络检测引擎输出的僵尸网络情报,包括已经检测到的僵尸网络成员名单,已知主控域名的使用频率,主被控关系等。

2016年11月,根据已知的mirai僵尸网络所使用的主控域名和扫描端口号,采用本发明的方法检测出多个僵尸网络主机,证明了本发明方法的可行性和有效性。其中某主机h的行为刻画如下:h主机早在mirai病毒爆发之前就在tcp/23端口上存在漏洞,经常被国外ip非法入侵。在2016年11月26日19时19分,被俄罗斯ip入侵并植入mirai,导致对外扫描tcp/23和tcp/23,并迅速通过tcp/23入侵了一台墨西哥主机。20时6分,通过tcp/2323入侵了一台美国主机。同日20时48分,恶意程序升级,开始扫描tcp/7547。22时34分,再次升级恶意程序,并在几秒钟后通过tcp/7547入侵了一台美国主机。几分钟后,停止对tcp/7547的扫描。11月27日零时2分,被植入第四个恶意程序版本。11月27日1时6分之后,停止请求对主控的域名解析,并在几分钟后停止对tcp/2323的扫描。一小时后,停止对tcp/23的扫描。此后,失去了mirai僵尸主机身份。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1