一种基于搜索引擎的命令控制节点地址查找机制的制作方法

文档序号:14490656阅读:194来源:国知局
一种基于搜索引擎的命令控制节点地址查找机制的制作方法

本发明涉及网络空间安全领域领域,具体涉及一种基于搜索引擎的命令控制节点地址查找机制。



背景技术:

近年来,由僵尸网络(botnet)与高级持续性威胁(advancedpersistentthreat,apt)引发的网络安全事件层出不穷,不仅影响广大网民的利益,还危及我国公共互联网安全运行,给政府和国家信息安全带来严重危害。

僵尸网络与高级持续性威胁核心思想都是借助专用恶意代码感染智能手机、平板、计算机等设备,使这些设备变成可受控节点(bot),攻击者通过命令与控制(commandandcontrol,c&c)节点对这些bot进行管理,bot从这些c&c节点上获得攻击者发布的指令以对指定目标实施信息窃取,ddos攻击、电子邮件轰炸、网络钓鱼欺骗、会话劫持等恶意行为。

可见,c&c节点是连接攻击者与若干bot之间的″接头地点″。bot只有在发现c&c节点并与之正常通信后,才能被攻击者控制和使用,否则其威胁性和危险性大大降低,不具备实用价值。因此,发现并获取c&c节点信息(如ip地址,域名等)决定botnet能够正常运作的前提。从目前公开发表的文献来看,已揭示的bot查找c&c节点信息方式可分为以下四类:

固定ip或者域名:c&c节点的ip地址或域名预先以硬编码、配置文件等形式存在于恶意代码中,bot直接与这些ip地址或域名对应的c&c节点通信,并加入相应的僵尸网络,mega-d,rustock是此种方式的典型代表。该方式的缺点是c&c节点的ip地址或域名可采用黑名单方法进行过滤和拦截,c&c节点容易被追踪和关停。

domain-flux:是指bot使用恶意代码自身内嵌的域名生成算法(domaingenerationalgorithm,dga)产生包括c&c节点域名在内的大量″伪随机″域名,然后从中选取部分或全部进行dns解析访问以试图与其中真正的c&c节点取得通信。conficker、pushdo、bobax均使用此技术。尽管该方式具有较好地隐蔽性和抗关停能力,但产生的dns流量仍存在明显特征,可在局部范围内被检测与阻断。

fast-flux:其原理是事先将一些具有公共ip地址的bot伪装成代理bot,其它bot与c&c节点的通信请求和应答都必须通过这些代理bot传递。为增强可用性和隐蔽性,代理bot的ip地址也不断在变化。但目前已有针对fast-flux的识别和检测,并取得了较好效果。

p2p发现方式:bot利用p2p协议自身的动态发现机制来寻找c&c节点信息,如phatbot、nugache均属于此种方式。该方式存在匿名性差问题,通过被检测出的bot节点容易暴露c&c节点或其它bot信息,很多学者也已提出对该方式的识别和检测方案。



技术实现要素:

针对上述方式的缺点,也为了符合apt和僵尸网络中恶意代码获取c&c节点信息的潜伏性和隐蔽性特点,本发明提供了一种基于搜索引擎的命令控制节点地址查找机制,攻击者事先通过免费博客发布以日期md5值为标题、命令控制节点ip地址为内容的博文,感染恶意代码的主机以该日期md5值为关键字访问搜索引擎并得到搜索记录集合,对该记录集合进行top-k排序后,选取排名前k条与含有命令控制节点ip地址博文相关的记录,并从此k条记录的摘要部分提取命令控制节点ip地址,。

为实现上述目的,本发明采取的技术方案为:

基于搜索引擎的命令控制节点地址查找机制,包括发布模块(publishmodule)、搜索模块、关键字生成模块、噪音记录过滤、信息提取与转换模块,攻击者(指僵尸网络控制者或apt执行者)通过发布模块将c&c节点信息(本申请使用ip地址)以博文的形式发布在事先申请开通的多个博客上,并且这些博文可被搜索引擎收录;当恶意代码感染设备变为bot后,该bot从关键字生成模块产生的与所述博文相关的关键字列表中选取关键字,并利用搜索模块访问搜索引擎后得到serp,接着通过噪音信息过滤模块滤除serp中的噪音记录而筛选出摘要部分含有c&c节点地址的记录,最后信息提取与转换模块从筛选出记录的摘要部分提取c&c节点的ip地址,并将ip地址格式转换为二进制格式,以完成bot发现和获取c&c节点地址的过程。

其中,所述发布模块用于攻击者将最新的c&c节点ip地址发布在能被搜索引擎收录的web页面上,为bot查找c&c节点ip地址提供数据来源。

其中,所述搜索模块用于从关键字列表klist[]中选择关键字,针对不同搜索引擎构造检索url(uniformresourcelocator)字符串并提交给相应的搜索引擎,同时对返回的搜索结果页面中的记录进行解析,抽取每条记录的题目、链接和摘要部分,形成记录数据集。

其中,所述噪音记录过滤采用top-k查询法对记录数据集进行处理,具体过程如下:

s1、计算记录数据集合中每条记录的得分:假设集合r={ii:1≤i≤n},其中ii表示记录数据集合中一条记录所对应的得分向量,且ii={s1,s2,s3},n表示记录数据集合中记录总数;由于每条记录由标题(title),链接(link)和摘要(abstract)组成,因此s1,s2,s3分别表示ii所代表记录中title、link、abstract对应的得分,均为数值型;s1,s2,s3值的计算过程如下:设置s1的值为title中关键字的总长度,s2的值为link部分含有字符串″blog″的总长度,s3的值为abstract中关键字的总长度;

s2、设置权值向量:

假设权值向量w=(w1,w2,...,wv),且满足

其中,we∈[0,1],1≤e≤v,v为ii的维度,且v=3;

设置title、link、abstract的得分s1,s2,s3之间对应的权值关系为:w1<w2=w3;

s3、执行top-k查询:

在top-k查询问题中,对于任意的e(1≤e≤v),如果ii[e]≥ij[e],则查询函数必须满足f(ii)≥f(ij);采用常用的加权和函数作为查询函数f,如式(2)所示:

f(ii)值越大表示在降序排序中的位置越靠前;因此,对集合r执行top-k查询就是返回f(i1)-f(in)中最大的前k个值,此k个值所对应的记录是有效记录的可能性较大,以完成对噪音记录的过滤。

其中,所述信息提取和转换利用模式匹配算法在此k条记录的abstract部分查找与提取ip地址信息字符串,并判断其合法性,之后将合法的ip地址信息字符串转换成二进制格式,以便bot直接访问该ip地址对应的c&c节点。

本发明具有以下有益效果:

该机制可通过多种搜索引擎发现并能准确地提取命令控制节点信息。

附图说明

图1为本发明实施例基于se搜索引擎的c&c节点地址查找机制原理图。

图2为本发明实施例中各搜索引擎serp中有效记录数量随时间变化的关系。

图3为本发明实施例中关键字长度d和顺序对各搜索引擎搜索效果的影响;

图中,(a)为自左向右;(b)为自右向左。

图4为本发明实施例中k值变化对搜索结果准确率的影响。

具体实施方式

为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明实施例提供了一种基于se的c&c节点信息发现机制,包括发布模块(publishmodule)、搜索模块、关键字生成模块,噪音记录过滤、信息提取与转换模块,攻击者(指僵尸网络控制者或apt执行者)通过发布模块将c&c节点信息(本申请使用ip地址)以博文的形式发布在事先申请开通的多个博客上,并且这些博文可被搜索引擎收录;当恶意代码感染设备变为bot后,该bot从关键字生成模块产生的与所述博文相关的关键字列表中选取关键字,并利用搜索模块访问搜索引擎后得到serp,接着通过噪音信息过滤模块滤除serp中的噪音记录而筛选出摘要部分含有c&c节点地址的记录,最后信息提取与转换模块从筛选出记录的摘要部分提取c&c节点的ip地址,并将ip地址格式转换为二进制格式,以完成bot发现和获取c&c节点地址的过程。

所述发布模块用于攻击者将最新的c&c节点ip地址发布在能被搜索引擎收录的web页面上,为bot查找c&c节点ip地址提供数据来源。

本申请此处通过在internet上常用博客(blog)中发表博文来实现发布模块功能。攻击者可事先使用同一个用户名申请开通n(本申请中n=10)个不同的免费博客,当攻击者需要更新c&c节点ip地址信息时,将最新的c&c节点ip地址以博文的形式发布此n个免费博客上即可。此过程需要注意以下3点:

(1)为便于bot通过搜索引擎查找含有c&c节点ip地址的记录,攻击者在发布含有c&c节点信息的博文时,直接采用bot产生的搜索关键字作为博文标题,c&c节点ip地址信息作为博文内容。

(2)根据观察serp中的记录可知,记录的摘要部分仅能显示从博文内容开始处的部分字符,而不能显示所有的博文内容(这主要取决于搜索引擎的摘要抽取算法)。因此,作为博文内容的c&c节点ip地址信息条数不宜过多(本申请最多不超过10条)。

(3)为满足(2),降低全部c&c节点ip地址被同时暴露的风险,可将多条c&c节点ip地址信息分为n组,采用(1)中的方法构造博文blog1-blogn,分别发布在n个博客上。

关键字生成模块

关键字是bot通过搜索引擎对含有c&c节点ip地址博文记录进行搜索的词条,也是攻击者发布c&c节点ip地址博文的标题。关键字生成模块所产生的关键字一方面应具有独特性,以尽量减少serp中与c&c节点ip地址不相关记录的数量;另一方面也应具有随机性,以降低被检测和追踪的可能性,此外,关键字生成算法的时空复杂度应该较低以便于bot在有限资源内运行计算。本申请此处采用日期(格式为yyyy-m-d,如″2014-12-6″)的md5(message-digestalgorithm5)值作为关键字生成算法,如算法1所示。

为控制关键字产生的速度,降低因bot过于频繁使用关键字搜索而导致流量异常时被检测和追踪的可能性,算法1中设定每天仅生成12个关键字。同时,为尽量提高serp中有效记录的数量与准确性,bot将使用整个日期md5值作为搜索的词条进行搜索操作,而避免使用部分md5值。

所述搜索模块用于从关键字列表klist[]中选择关键字,针对不同搜索引擎构造检索url(uniformresourcelocator)字符串并提交给相应的搜索引擎,同时对返回的搜索结果页面中的记录进行解析,抽取每条记录的题目、链接和摘要部分,形成记录数据集。

在构造检索url字符串时,虽然针对不同搜索引擎可添加许多不同参数,但基本的检索url字符串组成格式对各搜索引擎是一致的,仅仅在是在参数名称上略有差异。例如,google的基本检索url字符串为http://www.google.com/search?q=″+keyword+″&num=20″,而baidu则为http://www.baidu.com/s?word=″+keyword+″&rn=20″,其中keyword为klist[]中的关键字。对比这两个url字符串可以看出,对于搜索功能和搜索使用的关键词条,google使用参数″search″和″q″来表示,而在baidu则使用参数″s″和″word″表示,虽然参数名称不同,但含义基本相同。其他搜索引擎的检索url字符串构造方法与此类似,不再赘述。

另外,将包含klist[]中关键字的检索url字符串提交给各搜索引擎、对搜索引擎返回的搜索结果页面中记录进行解析等工作可借用jsoup库来完成。

噪音记录过滤模块

利用搜索模块所得到的记录数据集包含两部分:含有c&c节点ip地址信息的博文记录(称为有效记录)和其它不相关记录(称为噪音记录),由于噪音记录与有效记录可能会随性地地出现在serp中,排列顺序缺乏规律性,为方便bot从有效记录的摘要部分提取c&c节点ip地址信息,应将serp中有效记录聚集在一起,尽量排除噪音记录的干扰。本申请此处采用top-k查询法对记录数据集进行处理,具体过程如下:

首先计算记录数据集合中每条记录的得分。假设集合r={ii:1≤i≤n},其中ii表示记录数据集合中一条记录所对应的得分向量,且ii={s1,s2,s3},n表示记录数据集合中记录总数。由于每条记录由标题(title),链接(link)和摘要(abstract)组成,因此s1,s2,s3分别表示ii所代表记录中title、link、abstract对应的得分,均为数值型。s1,s2,s3值的计算过程如下:通过搜索结果观察可知,含有c&c节点ip地址信息的有效记录中,搜索关键字主要出现在该记录的title与abstract部分,字符串″blog″主要出现在link部分。这是有效记录区别于噪音记录的显著特征。因此,本申请设置s1的值为title中关键字的总长度,s2的值为link部分含有字符串″blog″的总长度,s3的值为abstract中关键字的总长度。

其次,设置权值向量。假设权值向量w=(w1,w2,...,wv),且满足

其中we∈[0,1],1≤e≤v,v为ii的维度,且v=3。本申请通过观察不同搜索引擎对同一关键字搜索结果发现当有效记录abstract和url分别包含了关键字和字符串″blog″时,该有效记录title部分可能包含关键字,也可能没有关键字,即关键字和字符串″blog″在有效记录abstract和link部分出现频率大于关键字在title部分中出现的频率。据此,本申请设置title、link、abstract的得分s1,s2,s3之间对应的权值关系为:w1<w2=w3。

最后,执行top-k查询。在top-k查询问题中,对于任意的e(1≤e≤v),如果ii[e]≥ij[e],则查询函数必须满足f(ii)≥f(ij)。可见,查询函数f通常为一个单调递增函数。本申请此处采用常用的加权和函数作为查询函数f,如式(2)所示:

f(ii)值越大表示在降序排序中的位置越靠前。因此,对集合r执行top-k查询就是返回f(i1)-f(in)中最大的前k个值。此k个值所对应的记录是有效记录的可能性较大,以完成对噪音记录的过滤。

所述信息提取和转换利用模式匹配算法在此k条记录的abstract部分查找与提取ip地址信息字符串,并判断其合法性,之后将合法的ip地址信息字符串转换成二进制格式,以便bot直接访问该ip地址对应的c&c节点。

本申请在互联网上使用同一账号申请开通了10个免费博客,如表1所示。为实现发布模块功能,本申请借助浏览器chrome-v39.0.2171.95m和插件tab-snap-v1.2.9对表1中的10个博客主页批量打开,在利用事先注册好的账户名和密码完成登陆后,统一使用日期的md5值作为博文标题,c&c节点ip地址作为博文内容(格式为″ip地址:端口号″,并使用空格分隔)在表1博客中进行博文的撰写及发布。

表1用于发布c&c节点ip地址的免费博客

本申请在eclipse-1.5.0环境下,采用java语言实现了关键字生成模块、搜索模块、top-k算法及信息提取和转换模块,以模拟bot通过搜索引擎发现和获取c&c节点ip地址信息的工作过程。实验所用计算机的配置为:pentiumg6402.8ghz(cpu),4gb(内存),500gb(硬盘),windows732bit(操作系统)。

收录时间是指从发布模块完成c&c节点ip地址信息发布后至搜索引擎的serp中第一个含有c&c节点ip地址信息的有效记录出现时所经历的时间,而收录数量是指搜索引擎的serp中出现的有效记录个数。此处用这两个指标来衡量搜索引擎对表1博客中含有c&c节点ip地址信息博文的搜索效果。

本申请首先利用关键字生成算法产生一组日期的md5值作为关键字(keyword),并将每个keyword和一些随机ip地址分别作为博文标题和内容,通过发布模块分别发布于表1的免费博客。自发布过程结束时刻起,本申请在每天固定时段内通过搜索模块将每个keyword分别在google、baidu、必应及好搜4种搜索引擎进行搜索操作,记录serp中有效记录的数量,该过程持续进行30天,并计算此数量的平均值,统计结果如图2所示。

从该图所示结果来看,好搜收录时间为0天,即在信息发布当天就能成功收录一个含有c&c信息的博客,是4种搜索引擎中收录时间最短的。其次是谷歌和百度,收录时间均为1天,表现较差的为必应,收录时间长达6天。虽然4种搜索引擎在收录时间存在较大差异,但多数搜索引擎的收录时间都需花费1天以上。与已揭示的四类bot查找c&c节点ip地址信息方式相比(见引言部分),本申请所提方式的c&c节点ip地址信息在搜索引擎的serp出现过程较为缓慢,bot并不能在这些c&c节点ip地址信息发布后通过搜索引擎立刻发现和获得c&c节点ip地址信息。因此,本申请认为这个特点与apt及僵尸网络中对恶意代码具有潜伏期的要求较为吻合,可增强恶意代码的隐蔽性。

在收录数量方面,4种搜索引擎总体上随着时间的推移都有所增加,尤其百度和谷歌的增幅较为明显,但4种搜索引擎最终的收录数量趋于稳定。在发布时间为30天时,谷歌收录数量稳定在6个,收录效果较好,相比之下,百度、好搜和必应的收录数量较少,收录效果稍差。但bot仍能从这些较少的收录结果中获取c&c节点ip地址信息。

关键字长度及顺序对搜索效果的影响

本申请首先按照自左向右的方向,选取每个keyword中不同长度字符串作为新的搜索关键字在4种搜索引擎进行测试,统计同一长度字符串所对应的有效记录数量,并计算其平均值,结果如图3(a)所示。可以看出,随着关键字长度的增加,各搜索引擎搜的serp中含有c&c节点ip地址博文的有效记录数量也增加,当用整个keyword作为关键字时,有效记录数量达到最大值。因此,选取整个日期的md5值作为关键字搜索时,才能保证较好的搜索效果。

另外,改变选取关键字的方向也不能改善搜索结果。图3(b)给出了自右向左选取每个keyword中不同长度字符串作为新的搜索关键字时的实验结果。很显然,在d为8、16及24时,从google,baidu和bing搜索得到的有效记录数量总和为2,与图3(a)中相同。同时,从haosou得到的有效记录数量也有所减少。因此与图3(a)相比,从相反的方向选取不同长度搜索关键字对提高搜索效果并无作用。

阈值k对噪音记录过滤效果的影响

随着时间的推移,各搜索引擎所收录的含有c&c节点ip地址信息博文的有效记录数量可能会增加,噪音记录数量也会增加。本申请使用top-k算法可较为准确地将有效记录安排在靠前的k个排名中,以便有效过滤噪音记录数量,方便bot进行提取c&c节点ip地址信息。

图4展示了不同k值对各搜索引擎serp使用top-k算法所得到的结果准确率的影响(其中设置w=(w1,w2,w3)=(0.2,0.4,0.4)),此处准确率表示含有c&c节点ip地址信息的有效记录在排名靠前的k个记录中所占的数量比例。从实验结果来看,使用top-k算法处理不同搜索引擎结果的准确率对k值变化较为敏感。google对应的k值取值范围较大,为1≤k≤6,其他搜索引擎的k值取值范围均为k≤3。整体上,随着k值增大,各搜索引擎的准确率呈降低趋势,即排名前k个记录中,噪音记录所占比例不断增大。因此,应对不同搜索引擎搜索能力和收录机制的差异,设置不同的k值,才能保证较高准确率。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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