具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
DDOS,Distributed Denial of Service,分布式拒绝服务攻击;
Bot,robot,僵尸工具,Bot是可以自动执行预定义的功能、可以被预定义的命令所远程控制、并具有一定人工智能的程序;
Zombie,僵尸主机,含有Bot或其他远程控制程序,可被攻击者远程控制的计算机;
Botnet,僵尸网络,是指采用一种或多种传播手段使大量主机感染僵尸Bot程序,从而在控制者和被感染主机(即僵尸主机)之间所形成的一个可一对多控制的网络;
IP,Internet Protocol,网络协议;
DPI,Deep Packet Inspection,深度包检测,所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测”仅分析IP数据包的层4以下的内容(包括源地址、目的地址、源端口、目的端口以及协议类型),而DPI除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容。目前,DPI可分为单包匹配和多包匹配两种方式:对于大部分IP数据包,通过对IP数据包中的一个网络报文的特征就能进行检测。传统方法是遍历规则树,将报文与每个规则进行逐一匹配。而对于部分IP数据包,仅靠检测单个报文无法准确检测,这时需要分析一条流的多个报文才能准确检测;
DN,Domain Name,域名,域名是因特网上某一台计算机或计算机组的名称,用于在数据传输时标识其电子方位(有时也指地理位置);
DNS,Domain Name Service,域名服务;
DNS,Domain Name System,域名服务***,某一台计算机或计算机组既可以使用域名标识也可以使用IP地址标识。用户更愿意使用便于记忆的域名,而路由器则只使用长度固定、有层次结构的IP地址。为协调这两种不同的需求,需要一个域名与IP地址互换的目录服务,这就是域名服务***的主要任务;
DNS,Domain Name Server,域名服务器,域名服务器是装有域名服务***的主机。
僵尸网络构成了一个攻击平台,其基本网络结构如图1所示,攻击者利用这个平台可以有效地发起各种各样的攻击行为,可以导致整个基础信息网络或者重要应用***瘫痪,也可以导致大量机密或个人隐私泄漏,还可以用来从事网络欺诈等其他违法犯罪活动。DDOS、发送垃圾邮件、窃取秘密、滥用资源是已经发现的利用Botnet发动的攻击行为,这些行为无论对整个网络还是用户自身都造成了比较严重的危害。随着将来出现各种新的攻击类型,Botnet还可能被用来发起新的未知攻击。因此探索有效的Botnet检测及监控方法是非常必要的。
前已述及Bot程序中通常带有控制主机的域名信息。参见图2,发明人发现:一般情况下,僵尸主机每次上线会向域名服务器发送IP地址查询DNS请求报文,域名服务器再将该域名相对应的IP地址放在DNS应答报文中返回,僵尸主机即可根据DNS应答报文中的IP地址与控制主机进行通信,发送各种IP数据包。
发明人同时发现:控制主机的域名信息轻易不会发生变化。这是因为一旦控制主机的域名信息发生更改,Zombie将无法凭借自身Bot带有的原域名信息找到控制主机。即使控制主机可以在更改域名前将新域名信息发给僵尸主机,但由于无法保证在控制主机发送该信息时,所有的Zombie都在线,因此存在损失Zombie数量的风险。上述这些决定了控制主机的域名轻易不会发生变化。本发明实施例即根据这一特点进行设计。
图3示出了本发明实施例提供的检测僵尸网络中控制主机域名的一种方法,该方法至少包括以下步骤:
S31、根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
S32、获取并解析域名服务器针对IP地址查询或域名查询的域名服务DNS请求报文而返回的DNS应答报文,从中获取所述IP地址对应的域名。
为便于理解,现对DNS请求报文与DNS应答报文加以简单介绍。DNS请求报文与DNS应答报文均属于网络报文(为称呼方便,现将DNS请求报文与DNS应答报文统称为DNS报文),并均由12字节的报头和4个长度可变的字段(查询问题、回答、授权和额外信息四个字段)组成,其一般格式如下表所示:
表1
其中的查询问题字段主要由问题名、问题类型和查询类型组成:
问题名通常是要查找的名字,是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为0结束,长度为0的标识符为根标识符。每个标识符最大长度为63,整个查询名不定长,不需填充字符。例如,如要查找的域名为www.heike.com,该域名被表达为:[3|w|w|w|5|h|e|i|k|e|3|c|o|m|0],而如域名为44.33.88.123.in-addr.arpa,则被表达为:[2|4|4|2|3|3|2|8|8|3|1|2|3|7|i|n|-|a|d|d|r|4|a|r|p|a|0];
问题类型通常为查询类型,即根据域名查询IP地址的类型(该类型的DNS请求报文为IP地址查询DNS请求报文),当然,也可以是反向查询,即根据IP地址查询域名的类型(该类型的DNS请求报文为域名地址查询DNS请求报文);
查询类型通常添为1,表示互联网地址。
至于DNS报文的回答字段则通常记录了针对上述查询问题字段所作出的回答,也即当查询问题字段的问题名是域名时(即根据域名查询IP地址),回答字段记录的内容为该域名对应的IP地址,而当查询问题字段的问题名是IP地址时(即根据IP地址反查询域名)回答字段记录的内容为该IP地址对应的域名。
可以理解的是,DNS请求报文中的回答字段一般为空,而DNS应答报文的查询问题字段和回答字段一般均不为空,也可以说,DNS应答报文反映了IP地址与域名的对应关系。
步骤S32即利用了DNS应答报文的特点,从域名服务器返回的DNS应答报文中获取控制主机IP地址对应的域名。
由于控制主机的域名信息不变,因此,尽管控制主机的IP地址很有可能在每次上线时发生变化,但其域名却不会发生变化,即域名与控制主机为一对一的关系,从而可以获取唯一的控制主机标识,并为后续的处理奠定下良好的基础。例如:对僵尸网络的控制主机的域名实施屏蔽,以更直接、快速地避免其他计算机加入到僵尸网络中。
在本发明另一实施例中,上述检测方法还可包括如下步骤:
根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
根据所述信息确定所述僵尸网络的拓朴结构。
在确定了僵尸网络的拓朴结构后,可根据该拓朴结构对僵尸网络进行监控甚至反控制僵尸网络。
与上述检测僵尸网络中控制主机域名的方法相对应,本发明实施例还提供了一种网络设备,图4示出了该网络设备401的一种结构,包括:
检测单元402,用于根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的IP地址;
第一获取单元403,用于获取并解析域名服务器针对IP地址查询或域名查询的域名服务DNS请求报文而返回的DNS应答报文,从中获取所述IP地址对应的域名。
在本发明另一实施例中,上述网络设备还可包括第二获取单元和确定单元,其中,第二获取单元可用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;而确定单元可用于根据上述信息确定所述僵尸网络的拓朴结构。
在本发明另一实施例中,参见图5,上述网络设备401还可包括老化单元501和存储单元502,其中:
老化单元501用于在获取到上述域名后,老化当前检测,或者,在超过当前检测的开始时间预定时间段后仍未获取到所述域名时,老化当前检测。
存储单元502用于存储上述域名、IP地址或开始时间中任意一个或任意组合。
另外,老化单元501和/或存储单元502也可独立于检测单元402和第一获取单元403之外,在此不作赘述。
上述域名、IP地址、开始时间中任意一个或任意组合可记录在预设的监控表、word文档、写字板等中,并保存于存储单元502中。
鉴于DNS请求报文分为IP地址查询和域名查询两种类型,因此上述域名检测方法具体可划分为两种子方法,下面将分别对这两种子方法进行介绍:
域名检测子方法一:
参见图6,域名检测子方法一至少包括下述步骤:
S61、根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的IP地址;
S62、从所述网络报文中查找所述域名服务器针对所述僵尸网络中僵尸主机的IP地址查询DNS请求报文而返回的DNS应答报文;
S63、解析所述DNS应答报文,从中获取所述IP地址对应的域名。
在本发明另一实施例中,参见图6,上述检测方法还可包括如下步骤:
S64、根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
S65、根据所述信息确定所述僵尸网络的拓朴结构。
一般的,每一主机查询的DNS报文会自然老化掉,因此只要不下线,主机隔段时间就会向DNS发送DNS请求报文,而DNS也会返回DNS应答报文。也就是说,通常情况下总会有IP数据包中包含DNS应答报文。但有时由于种种原因,会长时间找不到域名服务器针对Botnet的Zombie的IP地址查询DNS请求报文返回的DNS应答报文,也就无法获取到控制主机的域名。在这种情况下,为少占用检测资源,可在超过当前检测的开始时间预定时间段后仍未获取到所述域名时,老化当前检测。当然,还可在获取到域名后,老化当前检测。
与上述域名检测子方法一相对应,参见图7,本发明实施例还提供了一种网络设备701,该设备包括检测单元702和第一获取单元703,第一获取单元703又包括查找子单元704和解析子单元705,其中:
检测单元702用于根据网络报文检测出Botnet,并获取该Botnet中控制主机的IP地址;
查找子单元704用于从上述网络报文中查找域名服务器针对上述Botnet中Zombie的IP地址查询DNS请求报文而返回的DNS应答报文;
解析子单元705,用于解析所述DNS应答报文,从中获取所述IP地址对应的域名。
在本发明其他实施例中,网络设备701还可包括第二获取单元和确定单元,其中,第二获取单元用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;而确定单元则用于根据所述信息确定所述僵尸网络的拓朴结构。
上述网络设备还可包括老化单元和存储单元,其中,老化单元用于在获取到上述域名或确定僵尸网络的拓朴结构后,老化当前检测,或者,在超过当前检测的开始时间预定时间段后仍未获取到所述域名或确定僵尸网络的拓朴结构时,老化当前检测;存储单元用于存储上述域名、IP地址或开始时间中任意一个或任意组合。
在具体实现时,网络设备701的功能可具体由DPI设备、网关设备或其他网络设备加以实现,并可部署于网络的直路或旁路上。对于网络报文的获取,可采用抓包等现有技术手段加以实现等等。
之前已说明,域名、IP地址、开始时间中任意一个或任意组合可记录在预设的监控表中。在本发明实施例中,使用预设的监控表对某一僵尸网络中控制主机的域名进行检测可以有多种方式,下面将结合不同方式进行详细描述:
方式一:
请参见图8,检测过程包括如下步骤:
S81、在预设的监控表上记录下当前检测的开始时间;
假定预设的监控表格式如表2或表3所示:
表2
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
表3
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
|
T3 |
其中,CCIP一列记录的是已检测出的控制主机IP地址,CCDomain一列记录的是IP地址对应的域名字串,InsertTime一列记录的是***某一次/当前检测的时间,即某一次/当前检测的开始时间。
完成步骤S81后,监控表更新为表4或表5:
表4
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
|
|
T4 |
表5
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
S82、获取网络报文;
S83、根据网络报文检测出僵尸网络,并获取Botnet中控制主机的IP地址;
S84、查找上述网络报文中是否有域名服务器针对上述Botnet中Zombie的IP地址查询DNS请求报文返回的DNS应答报文,如果是,转S86,否则,转S85;
S85、判断此时是否已超过当前检测的开始时间预定时间段(如24小时),如果是,转步骤S810,否则,返回步骤S82;
S86、解析上述DNS应答报文;
S87、将DNS应答报文中的IP地址与监控表已记录的IP地址进行对比,判断监控表中的IP地址是否与DNS应答报文中的IP地址相重复,如果是,转步骤S88,否则,转步骤S89;
S88、补全上述IP地址与域名的对应关系;
假定DNS应答报文中IP地址与域名的对应关系为IP3-D4,此时,DNS应答报文中的IP3与预设的监控表中的IP3重复,当T4与T3之间的时间差不大于预定值,如24小时,保留T3,将D4添入预设的监控表中IP3所对应的CCDomain一列,预设的监控表更新为表6或表7:
表6
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3,D4 |
T3 |
表7
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D4 |
T3 |
当T4与T3之间的时间差大于预定值时,用T4取代T3,将D4添入监控表中,监控表更新为表8或表9:
表8
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3,D4 |
T4 |
表9
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D4 |
T4 |
S89、将DNS应答报文中的IP地址和域名分别添入监控表中;
假定DNS应答报文中IP地址与域名的对应关系为IP4-D4,此时,DNS应答报文中的IP4与监控表中所记录的IP地址并不重复,将IP4和D4分别添入监控表中,监控表更新为表10或表11:
表10
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
IP4 |
D4 |
T4 |
表11
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
|
T3 |
S810、老化当前检测;
S811、上报监控表。
方式二:
请参见图9,该方式包括如下步骤:
S91、记录当前检测的开始时间;
假定预设的监控表格式如下表所示:
表12
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
完成步骤S91后,预设的监控表更新为:
表13
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
|
|
T4 |
S92、获取网络报文;
S93、根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
S94、查找上述网络报文中是否有域名服务器针对上述Botnet中Zombie的IP地址查询DNS请求报文返回的DNS应答报文,如果是,转S96,否则,转S95;
S95、判断此时是否已超过当前检测的开始时间预定时间段(如24小时),如果是,转步骤S910,否则,返回步骤S92;
S96、解析上述DNS应答报文;
S97、将DNS应答报文中的域名与监控表已记录的域名进行对比,判断监控表中的域名是否与DNS应答报文中的域名相重复,如果是,转步骤S98,否则,转步骤S99;
S98、补全IP地址和域名的对应关系;
假定DNS应答报文中IP地址与域名的对应关系为IP4-D3,此时,DNS应答报文中的D3与监控表中的D3重复,当T4与T3之间的时间差不大于预定值,如24小时,保留T3,将IP4添入CCIp一列,监控表更新为:
表14
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3,IP4 |
D3 |
T3 |
而当T4与T3之间的时间差大于预定值时,将T3替换成T4,将IP4添入CCIp一列,监控表更新为:
表15
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3,IP4 |
D3 |
T4 |
S99、将DNS应答报文中的IP地址和域名分别添入监控表中;
假定DNS应答报文中IP地址与域名的对应关系为IP4-D4,此时,DNS应答报文中的域名D4与监控表中所记录的域名并不重复,将IP4和D4分别添入监控表中,监控表更新为:
表16
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
IP4 |
D4 |
T4 |
S910、老化当前检测;
S911、上报监控表。
与上述检测子方法一相对应,参见图10,本发明实施例同时还公开了一种监控僵尸网络的方法,包括以下步骤:
S101、根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的网络协议IP地址;
S102、从所述网络报文中查找所述域名服务器针对所述僵尸网络中僵尸主机的IP地址查询DNS请求报文而返回的DNS应答报文;
S103、解析所述DNS应答报文,从中获取所述IP地址对应的域名;
S104、根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
S105、根据所述信息确定所述僵尸网络的拓朴结构;
S106、根据上述拓朴结构和域名对所述僵尸网络进行监控。
由于控制主机的域名信息不变,因此,尽管控制主机的IP地址很有可能在每次上线时发生变化,但其域名却不会发生变化,即域名与控制主机为一对一的关系,从而可以获取唯一的控制主机标识,并为后续的处理奠定下良好的基础。另外,本发明实施例以域名作为监控依据,从而不会出现在不同的IP地址对应同一控制主机的情况下会误判成存在多个僵尸网络的问题,使僵尸网络的监控变得简单。
为少占用监控资源,在超过当前监控的开始时间预定时间段时,可终止当前监控。具体包括两种情况:在超过预定时间(如24小时)时,仍未获取到所述域名或确定僵尸网络的拓朴结构时,可终止当前监控。即使获取到了域名或确定了僵尸网络的拓朴结构,出于成本节约的目的,每一次监控都有其自身的寿命,一旦超时,也要对当前监控进行终止。
而上述域名、IP地址、开始时间中任意一个或任意组合可记录在预设的监控表、word文档、写字板等中。
与上述监控方法相对应,本发明实施例还提供了一种监控僵尸网络的***,参见图11,包括前台***111和后台***112,前台***111包括:
检测单元113,用于根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
查找子单元114,用于从上述网络报文中查找域名服务器针对上述Botnet中Zombie的IP地址查询DNS请求报文而返回的DNS应答报文;
解析子单元115,用于解析上述DNS应答报文,从中获取所述IP地址对应的域名;
后台***112包括:
第二获取单元116,用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
确定单元117,用于根据所述信息确定所述僵尸网络的拓朴结构;
监控单元118,用于根据上述拓朴结构和域名对所述僵尸网络进行监控。
与上述监控方法相对应,参见图12,本发明实施例还提供了一种网络监控设备121,该设备包括:
检测单元122,用于根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的IP地址;
查找子单元123,用于从上述网络报文中查找域名服务器针对上述Botnet中Zombie的IP地址查询DNS请求报文而返回的DNS应答报文;
解析子单元124,用于解析上述DNS应答报文,从中获取所述IP地址对应的域名;
第二获取单元125,用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
确定单元126,用于根据所述信息确定所述僵尸网络的拓朴结构;
监控单元127,用于根据上述拓朴结构和域名对所述僵尸网络进行监控。
在其他实施例中,网络监控设备121还可包括终止单元和存储单元,其中,终止单元用于在超过当前监控的开始时间预定时间段时,终止当前监控;存储单元用于存储上述域名、IP地址、当前监控的开始时间中任意一个或任意组合。
在具体实现时,网络监控设备121具体可为DPI设备、网关设备或其他可实现上述功能的网络设备。
域名检测子方法二:
参见图13,域名检测子方法二至少包括以下步骤:
S131、根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的IP地址;
S132、向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
S133、接收所述域名服务器返回的DNS应答报文;
S134、解析所述DNS应答报文,从中获取所述IP地址对应的域名。
由于控制主机的域名信息不变,因此,尽管控制主机的IP地址很有可能在每次上线时发生变化,但其域名却不会发生变化,即域名与控制主机为一对一的关系,从而可以获取唯一的控制主机标识,并为后续的处理奠定下良好的基础。另外,由于在检测出控制主机的IP地址后,本发明实施例直接向域名服务器查询该IP地址对应的域名,而不是等待域名服务器返回给僵尸主机的DNS应答报文,当长时间找不到域名服务器返回给上述Botnet中Zombie的DNS应答报文时,本实施例所提供的方法更具时间节约的优势。
在本发明另一实施例中,上述域名检测子方法二还可包括如下步骤:
根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
根据所述信息确定所述僵尸网络的拓朴结构。
为了少占用检测资源,上述方法还可在获取到所述域名后,老化当前检测。当然,也可在超过当前检测的开始时间预定时间段后仍未获取到所述域名时,老化当前检测。
上述域名、IP地址、开始时间中任意一个或任意组合可记录在预设的监控表、word文档、写字板等中。
与上述域名检测子方法二相对应,参见图14,本发明实施例还提供了一种网络设备141,该设备包括检测单元142和第一获取单元143,第一获取单元143又包括发送子单元144、接收子单元145和解析子单元146,其中:
检测单元142用于根据网络报文检测出Botnet,并获取该Botnet中控制主机的IP地址;
发送子单元144,用于向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
接收子单元145,用于接收所述域名服务器返回的DNS应答报文;
解析子单元146,用于解析所述DNS应答报文,从中获取所述IP地址对应的域名。在具体实现时,网络设备141或第一获取单元143可凭借内置的域名反查***来向域名服务器反查IP地址对应的域名。
在本发明其他实施例中,网络设备141还可包括第二获取单元和确定单元,其中,第二获取单元用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;而确定单元则用于根据所述信息确定所述僵尸网络的拓朴结构。
在本发明不同实施例中,使用预设的监控表进行僵尸网络中控制主机的检测域名可以有多种方式,下面将结合该不同方式,对本发明实施例进行详细描述:
方式一:
请参见图15,该方式包括如下步骤:
S151、记录当前检测的开始时间;
假定预设的监控表格式为表17或表18:
表17
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
表18
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
|
T3 |
完成步骤S151后,预设的监控表更新为表19或表20:
表19
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
表20
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
|
T3 |
|
|
T4 |
S152、根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
S153、向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
S154、判断是否收到域名服务器返回的DNS应答报文,如果是,转S156,如果否,转S155;
S155、判断发送DNS请求报文的次数是否超过预定次数(如3次),如果是,转步骤S1510,如果否,返回步骤S153;
S156、解析域名服务器返回的DNS应答报文,从中获取IP地址对应的域名;
S157、将DNS应答报文中的IP地址与监控表已记录的IP地址进行对比,判断监控表中的IP地址是否与DNS应答报文中的IP地址相重复,如果是,转步骤S158,如果否,转步骤S159;
S158、补全上述IP地址与域名的对应关系;
假定DNS应答报文中IP地址与域名的对应关系为IP3-D4,此时,DNS应答报文中的IP3与监控表中的IP3重复,当T4与T3之间的时间差不大于预定值,如24小时,保留T3,将D4添入监控表中IP3所对应的CCDomain一列,监控表更新为表21或表22:
表21
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
表22
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D4 |
T3 |
当T4与T3之间的时间差大于预定值时,将T3替换成T4,将D4添入监控表中IP3所对应的CCDomain一列,监控表更新为表23或表24:
表23
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3,D4 |
T4 |
表24
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D4 |
T4 |
S159、将DNS应答报文中的IP地址和域名分别添入监控表中;
假定DNS应答报文中IP地址与域名的对应关系为IP4-D4,此时,DNS应答报文中的IP4与监控表中所记录的IP地址并不重复,将IP4和D4分别添入监控表中,监控表更新为表25或表26:
表25
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
IP4 |
D4 |
T4 |
表26
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
|
T3 |
IP4 |
D4 |
T4 |
S1510、老化当前检测;
S1511、上报监控表。
方式二:
请参见图16,该方式包括如下步骤:
S161、记录当前检测的开始时间;
假定预设的监控表格式为表27:
表27
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
完成步骤S161后,预设的监控表更新为表28:
表28
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
|
|
T4 |
S162、根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
S163、向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
S164、判断是否收到域名服务器返回的DNS应答报文,如果是,转S166,如果否,转S165;
S165、判断发送DNS请求报文的次数是否超过预定次数(如3次),如果是,转步骤S1610,如果否,返回步骤S163;
S166、解析域名服务器返回的DNS应答报文,从中获取IP地址对应的域名;
S167、将DNS应答报文中的域名与监控表已记录的域名进行对比,判断是否相重复,如果是,转步骤S168,如果否,转步骤S169;
S168、补全IP地址和域名的对应关系;
假定DNS应答报文中IP地址与域名的对应关系为IP4-D3,此时,DNS应答报文中的D3与监控表中的D3重复,当T4与T3之间的时间差不大于预定值,如24小时,保留T3,将IP4添入CCIp一列,监控表更新为:
表29
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3,IP4 |
D3 |
T3 |
而当T4与T3之间的时间差大于预定值时,将T3替换成T4,将IP4添入CCIp一列,监控表更新为:
表30
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3,IP4 |
D3 |
T4 |
S169、将DNS应答报文中的IP地址和域名分别添入监控表中;
假定DNS应答报文中IP地址与域名的对应关系为IP4-D4,此时,DNS应答报文中的域名D4与监控表中所记录的域名并不重复,将IP4和D4分别添入监控表中,监控表更新为:
表31
CCIp |
CCDomain |
InsertTime |
IP1 |
D1 |
T1 |
IP2 |
D2 |
T2 |
IP3 |
D3 |
T3 |
IP4 |
D4 |
T4 |
S1610、老化当前检测;
S1611、上报监控表。
与上述检测子方法二相对应,参见图17,本发明实施例同时还公开了监控僵尸网络的一种方法,包括以下步骤:
S171、根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的网络协议IP地址;
S172、向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
S173、接收所述域名服务器返回的DNS应答报文;
S174、解析所述DNS应答报文,从中获取所述IP地址对应的域名;
S175、根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息确定与具有上述域名的控制主机相连接的所有网络设备属于同一僵尸网络;
S176、根据所述信息确定所述僵尸网络的拓朴结构;
S177、根据上述拓朴结构和域名对所述僵尸网络进行监控。
可见,在检测出控制主机的IP地址,本发明实施例直接向域名服务器查询该IP地址对应的域名,而不是等待域名服务器返回给僵尸主机的DNS应答报文,从而节约了等待时间。尽管控制主机的IP地址很有可能在每次上线时发生变化,但由于控制主机的域名与控制主机为一对一的关系,从而可以获取唯一的控制主机标识,并为后续的处理奠定下良好的基础。另外,本发明实施例以域名作为监控依据,从而不会出现在不同的IP地址对应同一控制主机的情况下会误判成存在多个僵尸网络的问题,使僵尸网络的监控变得简单。
为少占用检测资源,可在超过当前监控的开始时间预定时间段时,终止当前监控,或者,在发送所述DNS请求报文预定次数后仍未收到DNS应答报文时,终止当前监控。
与上述监控方法相对应,本发明实施例还提供了一种监控僵尸网络的***,参见图18,该***包括前台***181和后台***182。
前台***181包括检测单元183和第一获取单元184,而第一获取单元184又包括发送子单元185、接收子单元186和解析子单元187:
检测单元183,用于根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
发送子单元185,用于向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
接收子单元186,用于接收所述域名服务器返回的DNS应答报文;
解析子单元187,用于解析所述DNS应答报文,从中获取所述IP地址对应的域名;
后台***182包括:
第二获取单元188,用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
确定单元189,用于根据所述信息确定所述僵尸网络的拓朴结构;
监控单元1810,用于根据上述拓朴结构和域名对所述僵尸网络进行监控。
与上述监控方法相对应,参见图19,本发明实施例还提供了一种网络监控设备191,该设备包括:
检测单元192,用于根据网络报文检测出僵尸网络,并获取该僵尸网络中控制主机的IP地址;
发送子单元193,用于向域名服务器发送查询所述IP地址对应域名的DNS请求报文;
接收子单元194,用于接收所述域名服务器返回的DNS应答报文;
解析子单元195,用于解析所述DNS应答报文,从中获取所述IP地址对应的域名;
第二获取单元196,用于根据网络报文获取与具有所述域名的控制主机相连接的网络设备的信息;
确定单元197,用于根据所述信息确定所述僵尸网络的拓朴结构;
监控单元198,用于根据上述拓朴结构和域名对所述僵尸网络进行监控。在其他实施例中,网络监控设备191还可包括终止单元和存储单元,其中,终止单元用于在超过当前监控的开始时间预定时间段时,终止当前监控;存储单元用于存储上述域名、IP地址、当前监控的开始时间中任意一个或任意组合。
在具体实现时,网络设备191具体可为DPI设备、网关设备或其他可实现上述功能的网络设备。
与上述检测僵尸网络中控制主机域名的方法相对应,本发明实施例同时还提供了一种检测僵尸网络中控制主机域名的***,该***具有以上所有实施例中任一实施例的网络设备和域名服务器,其中:
网络设备用于根据网络报文检测出僵尸网络、获取所述僵尸网络中控制主机的网络协议IP地址,以及获取并解析针对IP地址查询或域名查询的域名服务DNS请求报文而返回的DNS应答报文,从中获取所述IP地址对应的域名;
域名服务器用于接收IP地址查询或域名查询的域名服务DNS请求报文,以及返回DNS应答报文。
与上述检测僵尸网络中控制主机域名的方法相对应,本发明实施例同时还提供了另一种检测僵尸网络中控制主机域名的***,参见图20,该***包括DPI设备201和网关设备202,DPI设备201包括检测单元203,网关设备202包括第一获取单元204,其中:
检测单元203用于根据网络报文检测出僵尸网络,并获取所述僵尸网络中控制主机的IP地址;
第一获取单元204用于获取并解析域名服务器针对IP地址查询或域名查询的域名服务DNS请求报文而返回的DNS应答报文,从中获取所述IP地址对应的域名。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。