CN113179260B - 僵尸网络的检测方法、装置、设备及介质 - Google Patents
僵尸网络的检测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113179260B CN113179260B CN202110440240.3A CN202110440240A CN113179260B CN 113179260 B CN113179260 B CN 113179260B CN 202110440240 A CN202110440240 A CN 202110440240A CN 113179260 B CN113179260 B CN 113179260B
- Authority
- CN
- China
- Prior art keywords
- domain name
- address
- abnormal
- main
- main domain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 121
- 230000002159 abnormal effect Effects 0.000 claims abstract description 242
- 230000004044 response Effects 0.000 claims abstract description 112
- 238000012216 screening Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000012549 training Methods 0.000 claims description 61
- 230000015654 memory Effects 0.000 claims description 18
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 238000010801 machine learning Methods 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000002372 labelling Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 14
- 230000004907 flux Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 230000003203 everyday effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007123 defense Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种僵尸网络的检测方法、装置、设备及介质。该方法包括:根据DNS流量数据获取与各源IP地址对应的域名响应信息;根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,及与各备选受控IP地址分别匹配的第一异常主域名;根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名间的相似度,在各成功访问主域名中提取第二异常主域名并获取与之对应的主控IP地址;在各备选受控IP地址中获取成功访问每个主控IP地址的受控IP地址,并将其和与主控IP地址对应的受控IP地址确定为僵尸网络。在上述技术方案中,通过域名分析确定僵尸网络,降低了检测成本,提高了检测效率和准确度。
Description
技术领域
本发明实施例涉及网络安全技术领域,尤其涉及一种僵尸网络的检测方法、装置、设备及介质。
背景技术
随着互联网全球化的发展,接入互联网的主机越来越多,网络中的僵尸网络、恶意软件等问题也对网络安全造成了巨大的威胁。其中,僵尸网络(Botnet),指的是采用一种或多种传播手段,将大量主机感染僵尸程序(bot程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
目前,关于僵尸网络的检测,主要是通过蜜罐或威胁情报获取僵尸网络的恶意程序样本,采用沙箱技术和反汇编等方式进行样本分析,提取相应的检测特征,并将僵尸网络的检测特征部署于NTA(Network Terminal Appliance,网络终端设备)、IDS(IntrusionDetection Systems、入侵检测系统)、IPS(Intrusion Prevention System,入侵防御系统)或者防火墙等网络安全防护检测设备上。但由于蜜网和蜜罐的部署复杂,高质量的威胁情报价格较高,导致只有少数大型机构才能采用这种方式对僵尸网络进行检测,同时,海量的样本又需要大量的专业安全分析人员进行分析,延长了检测时间。因此,如何降低僵尸网络的检测成本,提高检测效率和准确度是亟待解决的问题。
发明内容
本发明实施例提供一种僵尸网络的检测方法、装置、设备及介质,以降低僵尸网络的检测成本,提高检测效率和准确度。
第一方面,本发明实施例提供了一种僵尸网络的检测方法,包括:
根据DNS(Domain Name System,域名系统)流量数据,获取与各源IP(InternetProtocol,网际协议)地址对应的域名响应信息;
根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
第二方面,本发明实施例还提供了一种僵尸网络的检测装置,包括:
域名响应信息获取模块,用于根据DNS流量数据,获取与各源IP地址对应的域名响应信息;
备选受控IP地址及第一异常主域名获取模块,用于根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名;
主控IP地址获取模块,用于根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
僵尸网络确定模块,用于在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的僵尸网络的检测方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的僵尸网络的检测方法。
本发明实施例提供的技术方案中,根据DNS流量数据,获取与各源IP地址对应的域名响应信息,根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名,然后根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名并获取与之对应的主控IP地址,在各备选受控IP地址中获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址确定为僵尸网络,通过对DNS流量数据中与各源IP地址对应的域名进行分析,确定主控IP地址和受控IP地址,进而确定僵尸网络,降低了僵尸网络的检测成本,提高了检测效率和准确度。
附图说明
图1是本发明实施例一中的一种僵尸网络的检测方法的流程示意图;
图2是本发明实施例二中的一种僵尸网络的检测方法的流程示意图;
图3是本发明实施例三中的一种僵尸网络的检测装置的结构示意图;
图4是本发明实施例四中的一种计算机设备的硬件结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
为了便于理解,将本发明实施例的主要发明构思进行简述。
在僵尸网络中,攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机(即受控主机)将通过一个控制信道接收攻击者的指令。僵尸网络大多数使用了Domain Flux技术或Fast Flux技术,其中,Domain Flux技术是动态改变和分配多个域名到一个或多个IP地址,Fast Flux技术是将域名映射到一个IP地址池,频繁地更换域名和IP地址之间的映射关系。这两种技术都依赖于DNS,实现域名与IP地址的动态变化,极大程度地提高了僵尸网络的健壮性,同时也进一步增大了僵尸网络的检测防护难度。
由于传统僵尸网络中C&C(Command and Control,命令与控制)服务器的域名或IP地址为硬编码,具有固定且数量有限的特点,因此网络安全防御人员可以通过逆向掌握该部分内容后,对其进行有效的屏蔽,阻断其命令控制途径,使其失去控制源并逐渐消亡,从而导致整个僵尸网络陷入瘫痪,这种方式称为“中心节点失效”。为了避免上述情况的发生,攻击者将Domain Flux技术应用到僵尸网络中。在Domain Flux中,受控主机可以利用DGA(Domain Generation Algorithm,域名生成算法)动态生成多个可变化的域名,通过不断变换域名和域名解析的IP地址的方式,使攻击者与受控主机的通信节点也是动态变化的,能够有效逃避网络安全防御人员的监控和封堵,因此导致网络安全防御的难度进一步加大。
在Domain Flux中,DGA是一种利用随机字符(即种子,如日期、社交网络搜索热词、随机数或字典等)来生成域名,由受控主机逐个发起DNS请求尝试进行通信连接,从而逃避域名检测的技术手段。DGA先由种子的输入,经过算法生成一串字符串,然后再增加TLD(TagLibrary Description,标签库描述符)即可以得到生成的最终域名,生成的域名可以称为AGD(Algorithmically Generated Domain,算法生成域名)。在这些生成的域名中,只要存在能够使受控主机通过域名连接到C&C服务器(即主控主机)的域名,则可以完成通信控制。然而,针对Domain Flux的防御需要屏蔽大量的AGD,导致僵尸网络的检测成本极大,且检测效率较低。
基于上述思考,发明人针对如何基于DNS流量数据对应用Domain Flux技术的僵尸网络进行有效检测,并降低僵尸网络的检测成本的问题,创造性地提出了一种僵尸网络的检测方法,具体包括:
根据DNS流量数据,获取与各源IP地址对应的域名响应信息;
根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
实施例一
图1是本发明实施例一提供的一种僵尸网络的检测方法的流程图,本发明实施例可适用于基于DNS流量数据对应用Domain Flux技术的僵尸网络进行检测的情况,该方法可以由本发明实施例提供的僵尸网络的检测装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。
如图1所示,本实施例提供的一种僵尸网络的检测方法,具体包括:
S110、根据DNS流量数据,获取与各源IP地址对应的域名响应信息。
DNS,即域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库。
DNS流量数据,指的是对主机发送的DNS请求进行解析后得到的流量数据。可以理解的是,计算机设备在访问某个域名指向的资源之前,需要向DNS服务器查询域名对应的IP地址以进行后续连接,这个过程即为DNS解析,僵尸网络可以使用DNS解析获取C&C服务器(即主控主机)的IP地址,接收攻击指令。因此,基于DNS流量数据,可以对通过在DNS解析过程中记录的访问日志进行分析的方式,实现对僵尸网络的检测,示例性的,可以对各源IP地址对应的DNS请求进行识别与解析,以得到所有DNS流量数据中含有的访问域名的信息。
源IP地址,指的是发出DNS请求的主机所对应的IP地址。
域名响应信息,指的是DNS解析后返回给客户端的响应信息,在本发明实施例中,域名响应信息可以是DNS解析后返回给与源IP地址对应的主机的DNS响应报文。由于源IP地址对应的主机在发送DNS请求后,通过DNS服务器将域名响应信息返回至源IP地址对应的主机,在域名响应信息中包含了DNS请求中的所有内容,因此可以仅对与各源IP地址对应的域名响应信息进行分析,忽略DNS请求中的内容。其中,域名响应信息中的字段至少可以包括查询请求/响应标志位字段、操作码字段和响应状态字段;查询请求/响应标志位字段(QR),用于指示域名响应信息(即DNS响应报文)中是否有请求内容;操作码字段(Opcode),用于指示DNS查询方式,如标准查询或反向查询等;响应状态字段(Rcode),用于指示DNS的解析结果。
根据DNS流量数据,获取与各源IP地址对应的域名响应信息。
需要说明的是,DNS解析过程在短时间内可能产生大量的DNS流量数据,这无形中增加了服务器的内存压力,因此在本发明实施例中,可以针对应用Domain Flux技术的僵尸网络的实际检测需求,对DNS流量数据进行优化,具体的,可以优化DNS流量数据的数据结构,将所需的数据字段数量降至最低,以提高僵尸网络的检测效率。示例性的,DNS流量数据中的数据字段可以如表1所示。
表1 DNS流量数据中的数据字段
进一步的,在S110中获取与各源IP地址对应的域名响应信息之前,还可以包括:对DNS流量数据进行筛选,并在得到筛选后的DNS流量数据后,执行S110。
在一般的网络环境下,恶意的DNS流量数据往往只占据极小的一部分,而大多数的DNS流量数据都是正常的访问流量。因此,作为一种可选的实施方式,可以通过预设的白名单,对DNS流量数据进行筛选,过滤其中包含正常的域名或源IP地址的数据流量,有效地减少了检测的数据量,提高了检测效率。
对于一个域名来说,可以将其拆分为三个部分,即顶级域名、主域名和子域名,示例性的,当域名为“www.baidu.com”时,其顶级域名为“.com”,主域名为“baidu”,子域名为“www”,通过顶级域名和主域名即可确定一个域名的归属。因此,在通过预设的白名单,对DNS流量数据进行筛选时,可以将域名中的顶级域名和主域名进行组合,并通过预设的白名单进行过滤。其中,预设的白名单可以采用目前该领域主流网站中的公开数据,如Alexa或Chinaz等国内外网站,同时预设的白名单中还可以包括国际互联网域名以及国内具有特色的域名等。
作为另一种可选的实施方式,还可以根据域名响应信息中的字段,对DNS流量数据进行筛选。具体的,可以根据域名响应信息中的字段及对应的字段值,在DNS流量数据中筛选出符合以下条件的DNS流量数据:查询请求/响应标志位字段的字段值为1(即QR=1)、操作码字段的字段值为0(即Opcode=0),以及响应状态字段的字段值为0或3(即Rcode=0or3);其中,QR=1,表示有请求内容的域名响应信息;Opcode=1,表示标准查询,去掉IP地址反向查询;Rcode=0,表示DNS的响应状态为NOERROR,即DNS解析成功;Rcode=3,表示DNS的响应状态为NXDOMAIN,即DNS解析的域名不存在,也就是失效域名。
S120、根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名。
域名响应结果,指的是DNS在解析域名时的解析结果,可以根据域名响应信息中的操作码字段,确定域名响应结果。
受控IP地址,指的是被僵尸程序感染的主机的IP地址,即僵尸网络中受控主机的IP地址。
备选受控IP地址,指的是根据各域名响应信息中的域名响应结果,得到的所有可能是僵尸网络中的受控主机的IP地址。
第一异常主域名,指的是各备选受控IP地址对应DNS请求中的访问域名的主域名。在本发明实施例中,第一异常主域名可以是通过DGA生成的,且域名响应信息中的响应状态为域名不存在的主域名。
根据各域名响应信息中的域名响应结果,确定所有可能感染僵尸程序的受控主机的IP地址,作为备选受控IP地址,并获取与各备选受控IP地址分别匹配的第一异常主域名。
可选的,根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名,可以包括:针对每个源IP地址,分别获取域名响应信息中域名响应结果为域名不存在的拒绝访问域名,并获取各拒绝访问域名的主域名作为拒绝访问主域名;针对每个拒绝访问主域名进行异常域名检测,识别拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名;统计与每个源IP地址分别对应的第一异常主域名的数量值,并将数量值超过预设数量值门限的源IP地址确定为备选受控IP地址。
拒绝访问域名,指的是域名响应结果为域名不存在的访问域名,即在源IP地址对应的域名响应信息中,响应状态字段的字段值为3的源IP地址所对应的访问域名。应用Domain Flux技术的僵尸网络的核心特点就是通过DGA生成大量的域名,并通过DNS请求获得主控主机的IP地址,为了保证受控主机能够成功连接到主控主机,受控主机会在短时间内不断请求解析生成的域名,但由于僵尸网络的主控主机的能力有限,只会在生成的域名中随机解析几个域名,因此就会存在大量域名解析失败的情况,即域名响应结果为域名不存在的情况。
拒绝访问主域名,指的是将拒绝访问域名拆分后,得到的主域名部分。
异常域名检测,指的是对拒绝访问主域名进行检测,识别拒绝访问主域名是否是通过DGA生成的主域名。若识别拒绝访问主域名是通过DGA生成的主域名,则将该主域名作为与其源IP地址对应的第一异常主域名。
预设数量值门限,指的是用来确定源IP地址是否为备选受控IP地址的一个具体数值,当与源IP地址对应的第一异常主域名的数量值超过预设数量值门限时,则可以确定该源IP地址为备选受控IP地址。
针对每个源IP地址对应的域名响应信息,可以根据响应状态字段获取拒绝访问域名,并将各拒绝访问域名的主域名作为拒绝访问主域名,然后对每个拒绝访问主域名进行异常域名检测,得到与每个源IP地址分别对应的第一异常主域名,即得到各源IP地址分别对应的通过DGA生成的拒绝访问主域名,将与源IP地址对应的第一异常主域名的数量值超过预设数量值门限的源IP地址,确定为备选受控IP地址。
如果仅对每个域名的主域名进行异常域名检测,根据检测结果识别该主域名是否是被成功解析的通过DGA生成的主域名,则可能会存在该主域名虽然很可能是通过DGA生成的,但无法进一步确定该主域名就是被利用在僵尸网络中的主域名。针对上述情况,考虑到应用Domain Flux技术的僵尸网络可以在短时间内通过DGA生成大量的域名,并让主控主机不断尝试连接生成的域名,但主控主机只会从中解析几个域名,导致存在大量的域名响应结果为域名不存在的拒绝访问域名的情况,因此可以在检测通过DGA生成的域名时,如果发现在短时间内某个源IP地址出现了大量域名响应结果为域名不存在的域名响应信息,以及对应的拒绝访问主域名被识别为第一异常主域名的数量大于预设数量值门限时,则可以将该源IP地址确定为备选受控IP地址,之后再对备选受控IP地址做进一步分析,从而确定受控IP地址。
进一步的,针对每个拒绝访问主域名进行异常域名检测,识别拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名,可以包括:将各拒绝访问主域名分别输入至异常域名检测模型中,并根据异常域名检测模型的输出结果,识别拒绝访问主域名中包括的第一异常主域名。
其中,异常域名检测模型用于识别通过域名生成算法生成的异常域名。
在对每个拒绝访问主域名进行异常域名检测时,可以将各拒绝访问主域名分别输入至异常域名检测模型中,当异常域名检测模型的输出结果指示为生成主域名时,则该拒绝访问主域名为第一异常主域名。
可选的,在将各拒绝访问主域名分别输入至异常域名检测模型中之前,还可以包括:获取多个域名训练样本;域名训练样本中包括:域名以及域名是否为异常域名的标注结果;对各域名训练样本的主域名进行编码,得到与各域名训练样本分别对应的域名训练样本向量;根据域名训练样本向量对预设的机器学习模型进行模型训练,记录每次模型训练得到的评价参数,当评价参数满足预设条件时,得到异常域名检测模型。
域名训练样本,指的是用于训练机器学习模型,使机器学习模型能够具有识别异常域名能力的数据。域名训练样本中可以包括:域名以及域名是否为异常域名的标注结果。在本发明实施例中,对于标注结果为异常域名的域名训练样本(即黑样本),可以包括:360网络安全研究院(360netlab)中采用不同的DGA生成的第一类域名,以及GitHub网站上采用不同的DGA生成的第二类域名。其中,第一类域名包括44种家族类型,且每天生成的各家族类型的域名数量在几十个至几十万个之间,每天生成的域名总数量约为125万个,其中相比于前一天新增的域名数量约为5万个;第二类域名包括13种家族类型。对于标注结果为非异常域名的域名训练样本(即白样本),可以使用预设的白名单中包括的域名,本发明实施例对此不做具体限定。
需要指出的是,为了提高异常域名检测模型对异常域名的识别准确度以及异常域名的检测效率,可以根据域名训练样本中各种家族类型的域名进行优化,主要包括以下三个方面:
第一方面,从表2中不难发现,suppobox、pizd以及nymain_num这三种家族类型的域名是由两个英文单词直接拼接而成的,或通过“-”将至少两个英文单词进行拼接而成的。由于这三种家族类型的域名与其他家族类型的域名存在明显差异,故可以不将这三种家族类型的域名作为域名训练样本,而是可以对这三种家族类型的域名中常用的单词进行整理,得到异常域名单词集合,在对每个拒绝访问主域名进行异常域名检测之前,根据异域名单词集合,对每个拒绝访问主域名进行单词匹配;
表2部分域名及其所属家族类型
域名(domain) | 所属家族类型(family) |
wouldwonder | suppobox |
rememberwonder | suppobox |
rememberdiscover | suppobox |
journeyindustry | suppobox |
escapenation | pizd |
eearlypleasure | pizd |
escapepleasure | pizd |
eearlynearly | pizd |
shaft-criterion | nymain3 |
stops-hash | nymain4 |
unitsknowledge | nymain5 |
wiredgraph | nymain6 |
第二方面,对于shifu这类家族类型的域名,其在短期内没有通过DGA新生成的域名,因此可以将shifu这类家族类型的域名添加至域名黑名单中,在对每个拒绝访问主域名进行异常域名检测之前,先根据域名黑名单,对拒绝访问主域名进行筛选,提高异常域名的检测效率;
第三方面,对于一些家族类型,虽然每天都会生成新的域名,但是在当天生成的所有域名中数量占比较低,在将这些家族类型的域名作为黑样本进行模型训练时,导致这些家族类型的域名在异常域名检测模型中的召回率(即被正确识别是否为异常域名的比例)较差,例如,virut家族类型的域名的占比在整体中仅为0.8%,但是其每天会生成9300条新的域名,且有效期为一天,占当天新生成的域名总数量的22%,但是异常域名检测模型对这类家族类型的域名的召回率仅为13.5%。因此,针对这些家族类型的域名,可以有针对性地增加与之对应的域名训练样本的数量,以提高模型训练的精度。
域名训练样本向量,指的是对各域名训练样本进行拆分后,将得到的各主域名进行编码后得到的数据。
预设的机器学习模型,指的是在生成异常域名检测模型时,预先选择的一个机器学习模型。在本发明实施例中,预设的机器学习模型可以采用LSTM(Long Short TermMemory,长短期记忆网络),它是RNN(Recurrent Neural Networks,循环神经网络)的一种特殊类型,在生成异常域名检测模型时,可以使用LSTM学习域名的特征。
评价参数,用于决定预设的机器学习模型的训练程度。
预设条件,指的是用来确定预设的机器学习模型是否完成训练的一个条件,当评价参数满足预设条件时,则可以确定预设的机器学习模型已完成训练,得到异常域名检测模型。
在生成异常域名检测模型时,可以对各域名训练样本的主域名进行编码,得到各域名训练样本向量后,根据域名训练样本向量对预设的机器学习模型进行模型训练,当某次模型训练得到的评价参数满足预设条件时,即可退出训练,得到异常域名检测模型。
示例性的,获取多个域名训练样本,并对各域名训练样本进行拆分,得到各域名训练样本的主域名,将各主域名输入至编码层(Embedding Layer),对各域名训练样本的主域名进行编码,相当于对各主域名进行数据降维,并将得到的与各域名训练样本分别对应的域名训练样本向量转换为固定大小,然后将转换后的域名训练样本向量输入预设的机器学习模型中,应用LSTM的网络层进行模型训练,使预设的机器学习模型在域名训练样本向量中学习特征;在模型训练期间,为了防止过拟合情况的发送,可以通过辍学层(DropoutLayer)随机断开一定比例(如50%的)的神经元连接,再通过全连接层(Dense Layer)将学习到的主域名特征映射到样本空间,之后由采用sigmoid激活函数的激活层(ActivationLayer),将权值转换成二分类结果,即可以得到模型的输出结果;此外,还可以设置模型的训练次数最多为25次,记录每次模型训练得到的评价参数,例如AUC(Area Under Curve)的数值,若相隔两次模型训练后得到的AUC值没有增加,则可认为评价参数满足了预设条件,此时退出模型训练过程,得到异常域名检测模型,其中,在模型训练过程中,损失函数可以采用对数损失函数,优化器可以采用RMSProp算法。
进一步的,本发明实施例对生成的异常域名检测模型的识别效果进行了分析,具体如下:
由于白样本的数量相对有限,且在短时间内较难获取大量的新增样本,而360netlab每天都能够发布大量新生成的黑样本。因此,异常域名检测模型主要针对黑样本进行识别,尤其是对通过DGA新生成的黑样本的识别效果进行了测试。随机选取四天内通过DGA新生成的域名,并通过异常域名检测模型分别对每天新生成的域名进行识别后,得到的召回率如表3所示。
表3域名识别后的召唤率
将本发明实施例中生成的异常域名检测模型,与现有技术中的一些可用于对通过DGA生成的域名进行识别的模型或算法进行对比,得到的域名识别结果如表4所示。其中,异常域名检测模型与开源LSTM模型的区别在于:在生成异常域名检测模型时,针对57种家族类型的域名,采用了优化后的域名训练样本进行模型训练。
表4不同模型或算法的域名识别结果
此外,针对两天内通过DGA新生成的域名,采用不同模型或算法进行异常域名检测后,得到的黑样本召回率如表5所示。
表5不同模型或算法的黑样本召回率
根据表3、表4和表5中得到的测试结果,不难发现,采用异常域名检测模型识别通过DGA生成的异常域名的准确率和召回率较高,且对通过DGA新生成的域名的识别效果稳定。本发明实施例中,当使用Intel(R)Xeon(R)CPU E5-2620 v4(2.10GHz)配置的CPU运行异常域名检测模型时,可以达到每秒钟识别2947个域名的速度;当采用NVIDIA GeForce GTX1080Ti GPU配置的CPU运行异常域名检测模型时,可以达到每秒钟识别4467个域名的速度。
S130、根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址。
成功访问域名,指的是域名响应结果为DNS解析成功的访问域名,即在源IP地址对应的域名响应信息中,响应状态字段的字段值为0的源IP地址所对应的访问域名.
拒绝访问主域名,指的是将成功访问域名拆分后,得到的主域名部分。
第二异常主域名,指的是被判断为是通过DGA生成的,且域名响应信息中的响应状态为DNS解析成功的主域名。
主控IP地址,指的是受控主机通过域名连接到的C&C服务器的IP地址,即僵尸网络中主控主机的IP地址。
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中,提取被判断为是通过DGA生成的主域名,作为第二异常主域名,并获取与第二异常主域名对应的主控IP地址。
可选的,根据各备选受控IP地址的成功访问主域名与的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,可以包括:获取全部与各备选受控IP地址匹配的成功访问主域名以及第一异常主域名;获取与第一异常主域名对应的比对主域名特征;分别计算各成功访问主域名与比对主域名特征之间的相似度,并根据相似度计算结果,在成功访问主域名中筛选得到第二异常主域名。
比对主域名特征,指的是在第一异常主域名中提取的特征数据,用于确定成功访问主域名与匹配的第一异常主域名之间的相似度。示例性的,比对主域名特征至少可以包括:第一异常主域名中英文与数字的比例或第一异常主域名中的子域名级数。
相似度计算结果,指的是各成功访问主域名与比对主域名特征之间的相似度大小。
对于所有的与各备选受控IP地址匹配的成功访问主域名以及第一异常主域名,在获取与第一异常主域名对应的比对主域名特征之后,分别计算各成功访问主域名与比对主域名特征之间的相似度,当相似度计算结果符合一定条件时,将该成功访问主域名作为第二异常主域名,故可以在所有与各备选受控IP地址匹配的成功访问主域名中,筛选得到被判断为是通过DGA生成的主域名。
作为一种可选的实施方式,在分别计算各成功访问主域名与比对主域名特征之间的相似度时,可以采用最为经典的基于划分聚簇方式的快速聚类(K-means)算法。K-means算法,即在最小化误差函数的基础上,将数据划分为预定数量的类别,该算法适用于大量数据的分类处理,它在数据集中根据一定策略选择K个点作为每个簇的初始聚类中心点,然后观察剩余的数据,并将其划分至距离K个聚类中心点最近的簇中,当将数据划分成K个簇后,即完成了一次划分,但由于形成的新簇并不一定是最好的划分结果,因此在生成的新簇中,可以重新计算每个簇的聚类中心点并重新进行划分,直至每次划分的结果保持不变。在实际应用中往往经过很多次迭代仍然达不到每次划分结果保持不变,甚至因为数据的原因,根本无法达到终止条件,为了避免这种情况的发生,可以预先设置一个最大到的迭代次数,当划分次数达到最大迭代次数时,终止划分。
示例性的,将全部与各备选受控IP地址匹配的成功访问主域名记为name1,将全部与各备选受控IP地址匹配的第一异常主域名记为name2,获取name2的比对主域名特征,根据比对主域名特征,选择K个点作为各簇的初始聚类中心点,将name1中的每个成功访问主域名分配至距离它最近的聚类中心点,然后在划分后形成的新簇中,分别计算各成功访问主域名和与其匹配的聚类中心点间的距离,选择一个新的成功访问主域名作为新的聚类中心点,并对成功访问主域名重新聚类,直至达到预设的最大迭代次数或所有的成功访问主域名不再被重新划分,对于被聚类至其中任一个簇中的name1数据,即为在成功访问主域名中筛选得到第二异常主域名。
由于应用Domain Flux技术的僵尸网络的受控主机每天都会通过DGA生成大量的域名,但是其中只有少数的域名能够被成功解析,通过成功解析的域名连接到主控主机,在确定备选受控IP地址后,还需要进一步确定被成功解析的域名有哪些,由于无法实现预知第一异常主域名有哪些种类,因此可以采用K-means算法计算各成功访问主域名与获取与第一异常主域名对应的比对主域名特征之间的相似度,进而在成功访问主域名中找到是通过DGA生成的主域名,即确定第二异常主域名。
S140、在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
将成功访问每个主控IP地址的备选受控IP地址,确定为受控IP地址,则由各主控IP地址和与主控IP地址对应的受控IP地址构成的网络,即为僵尸网络。在一个僵尸网络中,往往会在多个受控主机上部署相同的DGA,因此具有相同主控IP地址的受控IP地址,很可能同属于一个僵尸网络,也即一个僵尸网络中可以有多个受控主机和多个主控主机。
本发明实施例提供的技术方案,根据DNS流量数据,获取与各源IP地址对应的域名响应信息,根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名,然后根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名并获取与之对应的主控IP地址,在各备选受控IP地址中获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址确定为僵尸网络,通过对DNS流量数据中与各源IP地址对应的域名进行分析,确定主控IP地址和受控IP地址,进而确定僵尸网络,降低了僵尸网络的检测成本,提高了检测效率和准确度。
实施例二
图2是本发明实施例二提供的一种僵尸网络的检测方法的流程图。本实施例在上述实施例的基础上进行具体化,其中,可以将根据DNS流量数据,获取与各源IP地址对应的域名响应信息,具体为:
获取设定时间区间内的DNS流量数据;
将时间区间划分为多个时间单元,并在每个时间单元内获取与各源IP地址对应的域名响应信息;
根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名,可以包括:
在每个时间单元内,获取各备选受控IP地址以及与备选受控IP地址匹配的第一异常主域名;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在每个时间单元内,获取第二异常主域名,并分别获取与各第二异常主域名分别对应的第一备选主控IP地址;
根据与每个时间单元分别对应的第一备选主控IP地址,获取主控IP地址。
进一步的,根据与每个时间单元分别对应的第一备选主控IP地址,获取主控IP地址,可以包括:
获取与每个第一备选主控IP地址分别对应的第二异常主域名;
在全部第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址;
在各第二备选主控IP地址中,筛选得到在各时间单元中的出现频率超过预设频率阈值的主控IP地址。
如图2所示,本实施例提供的一种僵尸网络的检测方法,具体包括:
S210、获取设定时间区间内的DNS流量数据。
其中,设定时间区间,指的是获取的DNS流量数据所对应的时间范围。例如,获取5小时的DNS流量数据。
针对实际的现网数据来说,每小时产生的DNS流量数据数以亿计,即使通过预设的白名单进行域名过滤,可能还会约有三分之一的DNS流量数据需要进行分析,如果直接对这些DNS流量数据进行分析检测,对服务器的内存将会是很大的挑战,而且也会增加检测的时间,因此可以选取设定时间区间内的DNS流量数据进行分析,以提高僵尸网络的检测效率。
由于僵尸网络具有持续性的保持连接的特点,当设定时间区间的选取过小时,对僵尸网络的持续性行为无法起到较好的检测,而选取过大的设定时间区间时,会增加僵尸网络的检测所消耗的时间,可选的,设定时间区间可以是1小时。
S220、将时间区间划分为多个时间单元,并在每个时间单元内获取与各源IP地址对应的域名响应信息。
其中,时间单元,指的是将时间区间划分后得到的多个连续且不重合的小时间区间,例如,当时间区间为1小时时,可以将时间区间划分为3个时间单元,即1至20分钟为第一个时间单元,21至40分钟为第二个时间单元,41至60为第三个时间单元。
S230、在每个时间单元内,获取各备选受控IP地址以及与备选受控IP地址匹配的第一异常主域名。
S240、根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址。
S250、在每个时间单元内,获取第二异常主域名,并分别获取与各第二异常主域名分别对应的第一备选主控IP地址。
其中,第一备选主控IP地址,指的是与第二异常主域名对应的所有可能是僵尸网络中的主控主机的IP地址。
S260、获取与每个第一备选主控IP地址分别对应的第二异常主域名。
S270、在全部第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址。
其中,第二备选主控IP地址,指的是解析到至少两个第二异常主域名的第一备选主控IP地址。
为了降低检测主控IP地址的误报率,可以将对应于至少两个第二异常主域名的第一备选主控IP地址,标记为第二备选主控IP地址。
S280、在各第二备选主控IP地址中,筛选得到在各时间单元中的出现频率超过预设频率阈值的主控IP地址。
其中,预设频率阈值,指的是用来确定第二备选主控IP地址是否为主控IP地址的一个具体数值,当第二备选主控IP地址在各时间单元中的出现频率超过预设频率阈值时,则可以确定该第二备选主控IP地址为主控IP地址。
由于僵尸网络中的主控主机的资源一般是有限的,主控主机在通过DGA生成的域名中随机解析几个域名,此时成功解析的域名与主控IP地址在数量上的对应关系通常为多对一,因此如果解析到相同源IP地址的不同主域名的数量大于1个的话,则该解析域名的IP地址很有可能是主控IP地址。但是,如果以单一的时间周期去检测僵尸网络中的主控IP地址,即只检测一段时间内成功解析不同的通过DGA生成的主域名的数量大于1个的IP地址,并将该IP地址确定为主控IP地址,则检测出的主控IP地址很有可能只是在检测结果中显示该IP地址是异常的,但是该IP地址只存在于这一检测时间段内,在之后的时间里就不再出现,那么该主控IP地址是不具备持续性的;并且,也有可能存在某些正常用户将多个域名设置为同一个源IP地址的情况。一般来说,一个用户请求解析哪些域名是随机的,所以得到的解析域名的IP地址也是随机的,而僵尸网络中的主控主机为了能够保持与受控主机的连接,其对应的主控IP地址是会在较长的时间段内持续存在,因此,对于不具备持续性的解析域名的IP地址,不能确定其为僵尸网络中的主控IP地址。
为了解决上述问题,本发明实施例中,在获取设定时间区间内的DNS流量数据之后,可以将时间区间划分为多个时间单元,并在每个时间单元内获取与各源IP地址对应的域名响应信息,即不以单一的时间周期去检测僵尸网络中的主控IP地址,而是将检测时间周期拆分为多个连续不重合的小的时间单元,并对每个时间单元进行检测,将各个时间单元中检测出的第一备选主控IP地址进行筛选得到第二备选主控IP地址后,计算在检测时间周期内,各第二备选主控IP地址的出现频率,如果出现频率超过预设频率阈值,则说明该第二备选主控IP地址能够在很长的时间内都被解析到,从而可以将其确定为真正的主控IP地址。
S290、在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
作为一种具体的实施方式,获取一小时内的DNS流量数据,以10分钟为单元将时间区间划分为6个时间上互不重合的时间单元,这样既不会因为拆分的时间单元的时间范围过小而增加僵尸网络的检测时间,也不会因为过长的时间范围而没有达到拆分时间单元的目的,同时还避免了服务器加载数据时占用过多的内存,也提高了僵尸网络的检测效率。在将一小时划分为6个时间单元后,执行如下操作:
S21、在每个时间单元内获取与各源IP地址对应的域名响应信息。
S22、在每个时间单元内,针对每个源IP地址,分别获取域名响应信息中域名响应结果为域名不存在的拒绝访问域名,并获取各拒绝访问域名的主域名作为拒绝访问主域名。
在正常的DNS请求中,10分钟内请求解析的域名个数一般为几十个左右,至多也不会超过300至500个,因此在获取域名响应信息中域名响应结果为域名不存在的拒绝访问域名之后,可以统计拒绝访问域名的数量值,将数量值超过预设数量阈值(如1000个)的拒绝访问域名筛选出来,并获取筛选得到的各拒绝访问域名的主域名作为拒绝访问主域名,然后执行S23。
S23、将各拒绝访问主域名分别输入至异常域名检测模型中,并根据异常域名检测模型的输出结果,识别拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名。
S24、统计与每个源IP地址分别对应的第一异常主域名的数量值,当数量值超过与每个源IP地址分别对应的拒绝访问域名的数量值的一半时,将该源IP地址确定为备选受控IP地址。
S25、将全部与各备选受控IP地址匹配的成功访问主域名记为name1,将与全部各备选受控IP地址匹配的第一异常主域名记为name2,获取与name2对应的比对主域名特征,分别计算name1中各成功访问主域名与比对主域名特征之间的相似度。
S26、判断相似度计算结果是否超过预设的相似度阈值,若是,则将匹配的成功访问主域名确定为第二异常主域名,并获取与第二异常主域名对应的主控IP地址,若否,则不对匹配的成功访问主域名进行处理。
假设预设的相似度阈值为0.7时,如果name1中的某个成功访问主域名与比对主域名特征之间的相似度计算结果超过0.7,则可以将该成功访问主域名确定为第二异常主域名,如果name1中的某个成功访问主域名与比对主域名特征之间的相似度计算结果没有超过0.7,则不对该成功访问主域名进行处理,通过S26可以在各备选受控IP地址的成功访问主域名中,提取出可能是通过DGA生成的主域名,并得到解析该域名的主控IP地址。
S27、在每个时间单元内,获取第二异常主域名,并分别获取与各第二异常主域名分别对应的第一备选主控IP地址;在全部第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址。
S27还可以是:在每个时间单元内,获取第二异常主域名,并分别获取与各第二异常主域名分别对应的第一备选主控IP地址,在每个时间单元内得到的全部第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址。也就是在对一小时内的DNS流量数据处理完成后,可以得到在每个时间单元内获取的第二备选主控IP地址。
S28、在各第二备选主控IP地址中,将在各时间单元中的出现频率超过预设频率阈值的第二备选主控IP地址确定为主控IP地址。
其中,预设频率阈值可以是75%,当在各时间单元中的出现频率超过75%时,表示在一小时的时间区间内,至少有45分钟的时间都有域名解析到该第二备选主控IP地址,能够满足僵尸网络中主控主机的持续性特点,因此可以将在各时间单元中的出现频率超过75%的第二备选主控IP地址确定为主控IP地址。
S29、在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
根据已经确定的主控IP地址,在一小时的时间区间内,将所有成功解析到主控IP地址的备选受控IP地址,确定为受控IP地址。由于在同一个僵尸网络中可能会有多个主控主机,因此可以认为成功解析到相同主控IP地址的受控IP地址同属于一个僵尸网络,即将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。
上述技术方案,将获取的DNS流量数据对应的时间区间划分为多个时间单元,并根据各时间单元内与各源IP地址对应的域名响应信息,在每个时间单元内获取各备选受控IP地址以及与其匹配的第一异常主域名,然后根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在每个时间单元内获取第二异常主域名,并分别获取与各第二异常主域名分别对应的第一备选主控IP地址,之后在所有的第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址,将在各时间单元中的出现频率超过预设频率阈值的第二备选主控IP地址确定为主控IP地址,根据主控IP地址确定受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址确定为僵尸网络,通过将时间区间划分为多个时间单元后对僵尸网络中的主控IP地址进行检测,有效地排除了不具有持续性主控IP地址,降低了僵尸网络检测结果的误报率,并且根据主控IP地址和受控IP地址确定僵尸网络,降低了僵尸网络的检测成本,提高了检测效率和准确度。
实施例三
图3是本发明实施例三提供的一种僵尸网络的检测装置的结构示意图,本发明实施例可适用于基于DNS流量数据对应用Domain Flux技术的僵尸网络进行检测的情况,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。
如图3所示,该僵尸网络的检测装置具体包括:域名响应信息获取模块310、备选受控IP地址及第一异常主域名获取模块320、主控IP地址获取模块330以及僵尸网络确定模块340。其中,
域名响应信息获取模块310,用于根据DNS流量数据,获取与各源IP地址对应的域名响应信息;
备选受控IP地址及第一异常主域名获取模块320,用于根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名;
主控IP地址获取模块330,用于根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
僵尸网络确定模块340,用于在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
本发明实施例提供的技术方案,根据DNS流量数据,获取与各源IP地址对应的域名响应信息,根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名,然后根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名并获取与之对应的主控IP地址,在各备选受控IP地址中获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址确定为僵尸网络,通过对DNS流量数据中与各源IP地址对应的域名进行分析,确定主控IP地址和受控IP地址,进而确定僵尸网络,降低了僵尸网络的检测成本,提高了检测效率和准确度。
作为一种可选的实施方式,备选受控IP地址及第一异常主域名获取模块320,包括:拒绝访问主域名获取单元、第一异常主域名获取单元以及备选受控IP地址确定单元,其中,
拒绝访问主域名获取单元,用于针对每个源IP地址,分别获取域名响应信息中域名响应结果为域名不存在的拒绝访问域名,并获取各所述拒绝访问域名的主域名作为拒绝访问主域名;
第一异常主域名获取单元,用于针对每个拒绝访问主域名进行异常域名检测,识别所述拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名;
备选受控IP地址确定单元,用于统计与每个源IP地址分别对应的第一异常主域名的数量值,并将数量值超过预设数量值门限的源IP地址确定为备选受控IP地址。
进一步的,第一异常主域名获取单元,具体用于将各所述拒绝访问主域名分别输入至异常域名检测模型中,并根据所述异常域名检测模型的输出结果,识别所述拒绝访问主域名中包括的第一异常主域名;其中,所述异常域名检测模型用于识别通过域名生成算法生成的异常域名。
可选的,主控IP地址获取模块330,具体用于获取全部与各备选受控IP地址匹配的成功访问主域名以及第一异常主域名;获取与所述第一异常主域名对应的比对主域名特征;分别计算各所述成功访问主域名与所述比对主域名特征之间的相似度,并根据相似度计算结果,在所述成功访问主域名中筛选得到第二异常主域名。
作为另一种可选的实施方式,域名响应信息获取模块310,具体用于获取设定时间区间内的DNS流量数据;将所述时间区间划分为多个时间单元,并在每个时间单元内获取与各源IP地址对应的域名响应信息;
备选受控IP地址及第一异常主域名获取模块320,包括:第一备选主控IP地址获取单元以及主控IP地址获取单元,其中,
第一备选主控IP地址获取单元,用于在每个时间单元内,获取各备选受控IP地址以及与备选受控IP地址匹配的第一异常主域名;根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;在每个时间单元内,获取第二异常主域名,并分别获取与各所述第二异常主域名分别对应的第一备选主控IP地址;
主控IP地址获取单元,用于根据与每个时间单元分别对应的第一备选主控IP地址,获取所述主控IP地址。
进一步的,主控IP地址获取单元,具体用于获取与每个第一备选主控IP地址分别对应的第二异常主域名;在全部第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址;在各第二备选主控IP地址中,筛选得到在各时间单元中的出现频率超过预设频率阈值的所述主控IP地址。
可选的,备选受控IP地址及第一异常主域名获取模块320,还包括:异常域名检测模型生成单元,其中,异常域名检测模型生成单元,用于在将各所述拒绝访问主域名分别输入至异常域名检测模型中之前,获取多个域名训练样本;所述域名训练样本中包括:域名以及所述域名是否为异常域名的标注结果;对各所述域名训练样本的主域名进行编码,得到与各所述域名训练样本分别对应的域名训练样本向量;根据所述域名训练样本向量对预设的机器学习模型进行模型训练,记录每次模型训练得到的评价参数,当所述评价参数满足预设条件时,得到所述异常域名检测模型。
上述僵尸网络的检测装置可执行本发明任意实施例所提供的僵尸网络的检测方法,具备执行僵尸网络的检测方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的硬件结构示意图,如图4所示,该计算机设备包括:
一个或多个处理器410,图4中以一个处理器410为例;
存储器420;
所述计算机设备中的处理器410和存储器420可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本发明实施例中应用于计算机设备的一种僵尸网络的检测方法对应的程序指令,包括:
根据DNS流量数据,获取与各源IP地址对应的域名响应信息;
根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
处理器410通过运行存储在存储器420中的软件程序指令,从而执行主机的各种功能应用以及数据处理,即实现上述实施例中应用于计算机设备的任意一种僵尸网络的检测方法。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的一种僵尸网络的检测方法:也即,该程序被处理器执行时实现:
根据DNS流量数据,获取与各源IP地址对应的域名响应信息;
根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、Smalltalk、C++),还包括常规的过程式程序设计语言(诸如“C”语言或类似的程序设计语言)。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN)),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种僵尸网络的检测方法,其特征在于,包括:
根据域名系统DNS流量数据,获取与各源网际协议IP地址对应的域名响应信息;
针对每个源IP地址,分别获取域名响应信息中域名响应结果为域名不存在的拒绝访问域名,并获取各所述拒绝访问域名的主域名作为拒绝访问主域名;
针对每个拒绝访问主域名进行异常域名检测,识别所述拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名;
统计与每个源IP地址分别对应的第一异常主域名的数量值,并将数量值超过预设数量值门限的源IP地址确定为备选受控IP地址;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
2.根据权利要求1所述的方法,其特征在于,针对每个拒绝访问主域名进行异常域名检测,识别所述拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名,包括:
将各所述拒绝访问主域名分别输入至异常域名检测模型中,并根据所述异常域名检测模型的输出结果,识别所述拒绝访问主域名中包括的第一异常主域名;
其中,所述异常域名检测模型用于识别通过域名生成算法生成的异常域名。
3.根据权利要求1所述的方法,其特征在于,根据各备选受控IP地址的成功访问主域名与的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,包括:
获取全部与各备选受控IP地址匹配的成功访问主域名以及第一异常主域名;
获取与所述第一异常主域名对应的比对主域名特征;
分别计算各所述成功访问主域名与所述比对主域名特征之间的相似度,并根据相似度计算结果,在所述成功访问主域名中筛选得到第二异常主域名。
4.根据权利要求1所述的方法,其特征在于,根据DNS流量数据,获取与各源IP地址对应的域名响应信息,包括:
获取设定时间区间内的DNS流量数据;
将所述时间区间划分为多个时间单元,并在每个时间单元内获取与各源IP地址对应的域名响应信息;
根据各域名响应信息中的域名响应结果,在各源IP地址中筛选得到备选受控IP地址,以及与各备选受控IP地址分别匹配的第一异常主域名,包括:
在每个时间单元内,获取各备选受控IP地址以及与备选受控IP地址匹配的第一异常主域名;
根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
在每个时间单元内,获取第二异常主域名,并分别获取与各所述第二异常主域名分别对应的第一备选主控IP地址;
根据与每个时间单元分别对应的第一备选主控IP地址,获取所述主控IP地址。
5.根据权利要求4所述的方法,其特征在于,根据与每个时间单元分别对应的第一备选主控IP地址,获取所述主控IP地址,包括:
获取与每个第一备选主控IP地址分别对应的第二异常主域名;
在全部第一备选主控IP地址中,筛选得到对应至少两个第二异常主域名的第二备选主控IP地址;
在各第二备选主控IP地址中,筛选得到在各时间单元中的出现频率超过预设频率阈值的所述主控IP地址。
6.根据权利要求2所述的方法,其特征在于,在将各所述拒绝访问主域名分别输入至异常域名检测模型中之前,还包括:
获取多个域名训练样本;所述域名训练样本中包括:域名以及所述域名是否为异常域名的标注结果;
对各所述域名训练样本的主域名进行编码,得到与各所述域名训练样本分别对应的域名训练样本向量;
根据所述域名训练样本向量对预设的机器学习模型进行模型训练,记录每次模型训练得到的评价参数,当所述评价参数满足预设条件时,得到所述异常域名检测模型。
7.一种僵尸网络的检测装置,其特征在于,包括:
域名响应信息获取模块,用于根据DNS流量数据,获取与各源IP地址对应的域名响应信息;
拒绝访问主域名获取单元,用于针对每个源IP地址,分别获取域名响应信息中域名响应结果为域名不存在的拒绝访问域名,并获取各所述拒绝访问域名的主域名作为拒绝访问主域名;
第一异常主域名获取单元,用于针对每个拒绝访问主域名进行异常域名检测,识别所述拒绝访问主域名中包括的第一异常主域名,并获取与每个源IP地址分别对应的第一异常主域名;
备选受控IP地址确定单元,用于统计与每个源IP地址分别对应的第一异常主域名的数量值,并将数量值超过预设数量值门限的源IP地址确定为备选受控IP地址;
主控IP地址获取模块,用于根据各备选受控IP地址的成功访问主域名与匹配的第一异常主域名之间的相似度,在各成功访问主域名中提取第二异常主域名,并获取与第二异常主域名对应的主控IP地址;
僵尸网络确定模块,用于在各备选受控IP地址中,获取成功访问每个主控IP地址的受控IP地址,并将每个主控IP地址和与主控IP地址对应的受控IP地址,确定为僵尸网络。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110440240.3A CN113179260B (zh) | 2021-04-21 | 2021-04-21 | 僵尸网络的检测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110440240.3A CN113179260B (zh) | 2021-04-21 | 2021-04-21 | 僵尸网络的检测方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113179260A CN113179260A (zh) | 2021-07-27 |
CN113179260B true CN113179260B (zh) | 2022-09-23 |
Family
ID=76924213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110440240.3A Active CN113179260B (zh) | 2021-04-21 | 2021-04-21 | 僵尸网络的检测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113179260B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401246B (zh) * | 2021-12-27 | 2024-09-13 | 中国电信股份有限公司 | 访问域名的方法及装置 |
CN114615310B (zh) * | 2022-03-01 | 2024-08-06 | 天翼安全科技有限公司 | 一种维护tcp连接的方法、装置及电子设备 |
CN115208679B (zh) * | 2022-07-14 | 2023-12-08 | 软极网络技术(北京)有限公司 | 一种基于蜜阵协同的攻击者ip的防御方法和防御系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800746A (zh) * | 2010-02-04 | 2010-08-11 | 成都市华为赛门铁克科技有限公司 | 检测僵尸网络中控制主机域名的方法、装置和系统 |
CN107733867A (zh) * | 2017-09-12 | 2018-02-23 | 北京神州绿盟信息安全科技股份有限公司 | 一种发现僵尸网络及防护的方法和系统 |
CN108768917A (zh) * | 2017-08-23 | 2018-11-06 | 长安通信科技有限责任公司 | 一种基于网络日志的僵尸网络检测方法及系统 |
CN109698814A (zh) * | 2017-10-23 | 2019-04-30 | 中国电信股份有限公司 | 僵尸网络发现方法及僵尸网络发现装置 |
CN112118249A (zh) * | 2020-09-11 | 2020-12-22 | 江苏云柜网络技术有限公司 | 基于日志和防火墙的安全防护方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897714B (zh) * | 2016-04-11 | 2018-11-09 | 天津大学 | 基于dns流量特征的僵尸网络检测方法 |
CN109391602B (zh) * | 2017-08-11 | 2021-04-09 | 北京金睛云华科技有限公司 | 一种僵尸主机检测方法 |
US11025648B2 (en) * | 2017-09-21 | 2021-06-01 | Infoblox Inc. | Detection of algorithmically generated domains based on a dictionary |
US11374897B2 (en) * | 2018-01-15 | 2022-06-28 | Shenzhen Leagsoft Technology Co., Ltd. | CandC domain name analysis-based botnet detection method, device, apparatus and medium |
US10979451B2 (en) * | 2018-02-14 | 2021-04-13 | Cisco Technology, Inc. | Autonomous domain generation algorithm (DGA) detector |
US11012414B2 (en) * | 2019-04-30 | 2021-05-18 | Centripetal Networks, Inc. | Methods and systems for prevention of attacks associated with the domain name system |
CN110336789A (zh) * | 2019-05-28 | 2019-10-15 | 北京邮电大学 | 基于混合学习的Domain-flux僵尸网络检测方法 |
CN111131260B (zh) * | 2019-12-24 | 2020-09-15 | 邑客得(上海)信息技术有限公司 | 一种海量网络恶意域名识别和分类方法及系统 |
CN112261004B (zh) * | 2020-09-27 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种Domain Flux数据流的检测方法及装置 |
CN112492059A (zh) * | 2020-11-17 | 2021-03-12 | 国家计算机网络与信息安全管理中心 | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 |
-
2021
- 2021-04-21 CN CN202110440240.3A patent/CN113179260B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800746A (zh) * | 2010-02-04 | 2010-08-11 | 成都市华为赛门铁克科技有限公司 | 检测僵尸网络中控制主机域名的方法、装置和系统 |
CN108768917A (zh) * | 2017-08-23 | 2018-11-06 | 长安通信科技有限责任公司 | 一种基于网络日志的僵尸网络检测方法及系统 |
CN107733867A (zh) * | 2017-09-12 | 2018-02-23 | 北京神州绿盟信息安全科技股份有限公司 | 一种发现僵尸网络及防护的方法和系统 |
CN109698814A (zh) * | 2017-10-23 | 2019-04-30 | 中国电信股份有限公司 | 僵尸网络发现方法及僵尸网络发现装置 |
CN112118249A (zh) * | 2020-09-11 | 2020-12-22 | 江苏云柜网络技术有限公司 | 基于日志和防火墙的安全防护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113179260A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113179260B (zh) | 僵尸网络的检测方法、装置、设备及介质 | |
Vinayakumar et al. | Scalable framework for cyber threat situational awareness based on domain name systems data analysis | |
CN109450842B (zh) | 一种基于神经网络的网络恶意行为识别方法 | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
US10193929B2 (en) | Methods and systems for improving analytics in distributed networks | |
Zhao et al. | Malicious Domain Names Detection Algorithm Based on N‐Gram | |
Marchal et al. | PhishStorm: Detecting phishing with streaming analytics | |
US20180109494A1 (en) | Behavior analysis based dns tunneling detection and classification framework for network security | |
Chen et al. | DNS covert channel detection method using the LSTM model | |
Niu et al. | Identifying APT malware domain based on mobile DNS logging | |
CN113949527B (zh) | 异常访问的检测方法、装置、电子设备及可读存储介质 | |
US10122722B2 (en) | Resource classification using resource requests | |
US10965553B2 (en) | Scalable unsupervised host clustering based on network metadata | |
US10911477B1 (en) | Early detection of risky domains via registration profiling | |
US11689550B2 (en) | Methods and apparatus to analyze network traffic for malicious activity | |
Nguyen et al. | DGA botnet detection using collaborative filtering and density-based clustering | |
Soltanaghaei et al. | Detection of fast-flux botnets through DNS traffic analysis | |
CN114024761B (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
CN112583827B (zh) | 一种数据泄露检测方法及装置 | |
US20210174199A1 (en) | Classifying domain names based on character embedding and deep learning | |
CN117354024A (zh) | 基于大数据的dns恶意域名检测系统及方法 | |
WO2024068238A1 (en) | Malicious domain name detection | |
WO2016173327A1 (zh) | 用于检测网站攻击的方法和设备 | |
CN111371917B (zh) | 一种域名检测方法及系统 | |
CN112261004B (zh) | 一种Domain Flux数据流的检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |