CN113839948B - 一种dns隧道流量检测方法、装置、电子设备和存储介质 - Google Patents

一种dns隧道流量检测方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113839948B
CN113839948B CN202111127448.6A CN202111127448A CN113839948B CN 113839948 B CN113839948 B CN 113839948B CN 202111127448 A CN202111127448 A CN 202111127448A CN 113839948 B CN113839948 B CN 113839948B
Authority
CN
China
Prior art keywords
domain name
sequence
primary domain
host
sequence set
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
Application number
CN202111127448.6A
Other languages
English (en)
Other versions
CN113839948A (zh
Inventor
金兆岩
尚素绢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN202111127448.6A priority Critical patent/CN113839948B/zh
Publication of CN113839948A publication Critical patent/CN113839948A/zh
Application granted granted Critical
Publication of CN113839948B publication Critical patent/CN113839948B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network 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地址是否发起DNS隧道请求,得到并输出检测结果。本申请实施例提供的DNS隧道流量检测方法,由于每间隔第二预设时间段,更新各一级域名下的待检测序列集,这样,在检测时,积累了历史数据,从而降低了误报率,最终提高了检测结果的可靠新。

Description

一种DNS隧道流量检测方法、装置、电子设备和存储介质
技术领域
本发明涉及网络安全技术领域,特别涉及一种DNS隧道流量检测方法、装置、电子设备和存储介质。
背景技术
DNS协议在大多企业或组织网络环境中是必不可少的通信协议之一,为了访问互联网等资源,DNS服务器提供域名解析服务,即域名与IP地址转换。网络防护设备很少过滤、分析或屏蔽DNS,当攻击者获取服务器权限,或者服务器被恶意软件、蠕虫或木马等感染后,可以通过建立DNS隧道导致敏感信息外泄,文件、数据传输,回传控制指令以及回弹Shell等。
目前常用的检测隐蔽隧道的方法具体如下所述:
第一种方法为:基于特征匹配、流量异常等方式识别隐蔽隧道。通过构建特征库,将待检测流量报文与已有特征数据库中的特征进行匹配检测。这种方法存在误报高、且无法识别未知的DNS隐蔽隧道的缺陷。
第一种方法的特征匹配依赖于经验,存在误报、漏报高,并且无法识别未知的DNS隐蔽隧道,例如,新型DNS隧道技术可能不再引起流量暴涨。
第二种方法为:基于每一条DNS流量提取特征,通过机器学习方法,如随机森林等进行实现。
第二种方法,基于单条DNS流量会话,采用机器学习方法训练得到模型,一定程度上可以识别未知DNS隐蔽隧道,但是缺乏时间维度,缺少历史数据支撑;较短且固定时间窗内的检查会导致一定程度上的误报和漏报。
现有的DNS隧道流量检测方法,往往通过设置单条或固定截取框截取固定长度的流量数据,提取对应特征进行机器学习方法训练,生成模型后用于检测单条或者固定长度的DNS隧道流量。上述DNS隧道流量检测方法,虽然具有零规则、零依赖和维护成本低等优点。
由于现有的DNS隧道流量检测方法,在检测过程中缺少历史数据的积累过程,因此,大大地提高了检测结果误报的概率,从而使得检测结果的可靠性降低。
发明内容
基于此,有必要针对基于现有DNS隧道流量检测所存在的漏报或误报的问题,提供一种DNS隧道流量检测方法、装置、电子设备和存储介质。
第一方面,本申请实施例提供了一种DNS隧道流量检测方法,所述方法包括:
根据第一预设时间段内存储的、每个主机的IP地址对应的域名请求信息,确定各一级域名的序列集,其中,所述序列集中包含有多个与所述一级域名相关联的序列;
根据各一级域名的序列集进行训练,生成检测模型;
每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;
将各一级域名下的更新后的待检测序列集输入至所述检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并输出检测结果。
在一种实现方式中,所述方法还包括:
根据每个主机的IP地址对应的域名请求信息解析出对应的各一级域名,并基于各一级域名确定对应的各一级域名的子域名序列。
在一种实现方式中,所述方法还包括:
获取任意一个一级域名下的更新后的待检测序列集中的任意一个待检测序列对应的时间戳信息;
根据所述时间戳信息和所述第二预设时间段,判断所述待检测序列对应的时间点是否在所述第二预设时间段内,若是,则将所述待检测序列从对应的待检测序列集中删除。
在一种实现方式中,所述方法还包括:
基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列。
在一种实现方式中,各一级域名的序列集中的序列包括子域名序列、时间戳序列和由TTL值构成的TTL序列,所述基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列包括:
针对一个一级域名,从每个主机IP的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列;
遍历每一个主机的IP地址下的每一个一级域名,从每个主机的IP地址对应的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列。
第二方面,本申请实施例提供了一种DNS隧道流量检测装置,所述装置包括:
序列集确定模块,用于根据第一预设时间段内存储的、每个主机的IP地址对应的域名请求信息,确定各一级域名的序列集,其中,所述序列集中包含有多个与所述一级域名相关联的序列;
训练模块,用于根据所述序列集确定模块确定的各一级域名的序列集进行训练,生成检测模型;
更新模块,用于每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;
检测模块,用于将更新模块得到的各一级域名下的更新后的待检测序列集输入至所述检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并检测结果;
输出模块,用于输出所述检测模块得到的所述检测结果。
在一种实现方式中,所述装置还包括:
解析模块,用于根据每个主机的IP地址对应的域名请求信息解析出对应的各一级域名;
子域名序列确定模块,用于基于所述解析模块解析出的各一级域名确定对应的各一级域名的子域名序列。
在一种实现方式中,所述装置还包括:
获取模块,用于获取任意一个一级域名下的更新后的待检测序列集中的任意一个待检测序列对应的时间戳信息;
判断模块,用于根据所述获取模块获取的所述时间戳信息和所述第二预设时间段,判断所述待检测序列对应的时间点是否在所述第二预设时间段内,若是,则将所述待检测序列从对应的待检测序列集中删除。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现如上所述的方法步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现如上所述的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;以及将各一级域名下的更新后的待检测序列集输入至所述检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并输出检测结果。本申请实施例提供的DNS隧道流量检测方法,由于每间隔第二预设时间段,更新各一级域名下的待检测序列集,这样,在检测时,积累了历史数据,从而降低了误报率,最终提高了检测结果的可靠新。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本申请实施例提供的一种DNS隧道流量检测方法的流程示意图;
图2是本申请实施例具体应用场景下提供的DNS隧道流量检测方法的流程示意图;
图3是本申请实施例提供的一种DNS隧道流量检测装置的结构示意图;
图4示出了根据本申请实施例的电子设备连接结构示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合附图详细说明本公开的可选实施例。
如图1所示,是本申请实施例提供的一种DNS隧道流量检测方法的流程示意图;如图1所示,本申请实施例提供了一种DNS隧道流量检测方法,具体包括如下方法步骤:
S102:根据第一预设时间段内存储的、每个主机的IP地址对应的域名请求信息,确定各一级域名的序列集,其中,序列集中包含有多个与一级域名相关联的序列。
在本申请实施例中,对第一预设时间段对应的第一时长不做具体限制,可以根据不同应用场景对第一时长进行调整。
序列集中包含有多个与一级域名相关联的序列,还包括与序列对应的序列提取值。
在实际应用场景中,获取序列提取值的方式可以为:基于正常流量数据和隧道流量数据,提取每个主机IP对应的相同一级域名下的多个序列对应的序列特征值。
在某一具体应用场景下,提取的序列特征值可以具体如下所述:
例如,IP1基于正常域名数据一级域名abcde.com对应序列提取特征[各子域名长度平均值1,各子域名长度方差1,各子域名长度标准差1,子域名序列熵值1,时间差均值1,子域名不同个数1,不同子域名占比1];
在本申请实施例中,子域名是一级域名的下一级,例如,mail.example.com和calendar.example.com是example.com的两个子域名。
IP1基于正常域名数据一级域名mmnfr.com对应序列提取特征[各子域名长度平均值2,各子域名长度方差2,各子域名长度标准差2,子域名序列熵值2,时间差均值2,子域名不同个数2,不同子域名占比2];
IP1基于隧道域名数据一级域名xshduhsididsa.com对应序列提取特征[各子域名长度平均值3,各子域名长度方差3,各子域名长度标准差3,子域名序列熵值3,时间差均值3,子域名不同个数3,不同子域名占比3]。
正如上述所示,相对于正常域名数据的一级域名mmnfr.com的长度,隧道域名数据的一级域名xshduhsididsa.com的长度较长。
在本申请实施例中,正常流量数据是在主机在未受到外部病毒恶意攻击时的流量数据;而隧道流量数据是主机在受到外部病毒恶意攻击时的流量数据。将正常流量数据和隧道流量数据比对,隧道流量数据的数据量比正常流量数据的数据量要大很多,相对于正常流量数据的数据量,隧道流量数据的数据量往往是爆发式增长的。
在一种可能的实现方式中,本公开实施例提供的DNS隧道流量检测方法还包括以下步骤:
基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列。
在本申请实施例中,在上述提取过程所采用的提取方式为常规方式,在此不再赘述。
在一种可能的实现方式中,基于正常流量数据和隧道流量数据,提取每个主机IP对应的相同一级域名下的多个序列对应的序列特征值包括以下步骤:
基于正常流量数据和隧道流量数据获取每个主机IP的域名请求信息;
基于每个主机IP的域名请求信息,分别提取每个主机IP对应的相同一级域名下的多个序列;
基于每个主机IP对应的相同一级域名下的多个序列,提取对应的序列特征值,序列特征值包括正常域名数据序列特征值和隧道域名数据序列特征值。
在本申请实施例中,正常域名数据对应的各个序列对应的第一序列长度是可变的;隧道域名数据对应的各个序列对应的第二序列长度是可变的。
在本申请实施例中,正常流量数据和隧道流量数据参见前述相同或相似部分的描述,在此不再赘述。
在一种可能的实现方式中,各一级域名的序列集中的序列包括子域名序列、时间戳序列和由TTL值构成的TTL序列,基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列包括以下步骤:
针对一个一级域名,从每个主机IP的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列;
遍历每一个主机的IP地址下的每一个一级域名,从每个主机的IP地址对应的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列。
在本申请实施例中,子域名是一级域名的下一级,例如,mail.example.com和calendar.example.com是example.com的两个子域名。
时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。
TTL是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4报头的一个8bit字段。
在某一具体应用场景下,提取的多个序列可以具体如下所述:
例如,IP1请求一级域名baidu.com对应的子域名序列为[x1,x2,…],时间戳序列为[t1,t2,…],对应的TTL序列为[ttl1,ttl2…];
IP1请求以及域名google.com对应的子域名序列为[y1,y2,…],时间戳序列为[t11,t12,…],对应的TTL序列为[ttl11,ttl12…];
IP1请求以及域名xshduhsididsa.com对应的子域名序列为[z1,z2,z3,z4,…],时间戳序列为[t111,t112,…],对应的TTL序列为[ttl111,ttl112…]。
在一种可能的实现方式中,本公开实施例提供的DNS隧道流量检测方法还包括以下步骤:
根据每个主机的IP地址对应的域名请求信息解析出对应的各一级域名,并基于各一级域名确定对应的各一级域名的子域名序列。
在本申请实施例中,子域名是一级域名的下一级,例如,mail.example.com和calendar.example.com是example.com的两个子域名。上述解析过程所采用的解析方法为常规方法,在此不再赘述。
在一种可能的实现方式中,本公开实施例提供的DNS隧道流量检测方法还包括以下步骤:
获取任意一个一级域名下的更新后的待检测序列集中的任意一个待检测序列对应的时间戳信息;
根据时间戳信息和第二预设时间段,判断待检测序列对应的时间点是否在第二预设时间段内,若是,则将待检测序列从对应的待检测序列集中删除;这样,能够及时更新待检测序列集中的待检测序列,减少待检测序列集中的待检测序列的数据量,从而提高了检测效率。
在本申请实施例中的,对第二预设时间段对应的第二预设时长不做具体限制,可以根据不同应用场景对第二预设时长进行调整。
在一种可能的实现方式中,基于每个主机IP对应的相同一级域名下的多个序列,提取对应的序列特征值包括以下步骤:
从多个主机IP中选取任意一个主机IP作为当前主机IP;
从当前主机IP的多个一级域名中选取任意一个域名作为当前一级域名;
基于当前一级域名对应的子域名序列提取与当前子域名序列相关联的第一序列特征值;
基于当前一级域名对应的时间戳序列提取与当前时间戳序列相关联的第二序列特征值;
基于当前一级域名对应的TTL序列提取与当前TTL序列相关联的第三序列特征值。
在一种可能的实现方式中,本申请实施例提供的DNS隧道流量检测方法还包括以下步骤:
读取与当前子域名序列相关联的第一序列特征值,第一序列特征值包括;当前子域名序列对应的长度、当前子域名序列对应的熵值、当前子域名序列中所包括的不同子域名数量和当前子域名序列中的各个不同子域名的占比比例。
在一种可能的实现方式中,在基于正常流量数据和隧道流量数据获取每个主机IP的域名请求信息之后,本申请实施例提供的检测方法还包括以下步骤:
读取每个主机IP的域名请求信息,其中,每个主机IP的域名请求信息包括:每个主机IP的请求域名、每个主机IP的时间戳和每个主机IP的响应报文的TTL值;
将每个主机IP的请求域名、每个主机IP的时间戳和每个主机IP的TTL值构成对应的序列。
S104:根据各一级域名的序列集进行训练,生成检测模型。
在本申请实施例中,检测模型可以为采用XGBOOST,或随机森林方法构建的检测模型。基于XGBOOST,或随机森林方法为常规的方法,在此不再赘述。除了上述方法可以生成检测模型之外,还可以采用其它方法生成检测模型,在此不再赘述。
在本申请实施例中,训练集是由各一级域名的序列集构成的,其中,各一级域名的序列集包括对应的序列特征值。
在某一具体应用场景下,构成部分训练集的序列特征值可以具体如下所述:
例如,IP1基于正常域名数据一级域名baidu.com对应序列提取特征[各子域名长度平均值1,各子域名长度方差1,各子域名长度标准差1,子域名序列熵值1,时间差均值1,子域名不同个数1,不同子域名占比1];
IP1基于正常域名数据一级域名google.com对应序列提取特征[各子域名长度平均值2,各子域名长度方差2,各子域名长度标准差2,子域名序列熵值2,时间差均值2,子域名不同个数2,不同子域名占比2];
IP1基于隧道域名一级域名xshduhsididsa.com对应序列提取特征[各子域名长度平均值3,各子域名长度方差3,各子域名长度标准差3,子域名序列熵值3,时间差均值3,子域名不同个数3,不同子域名占比3]。
在本申请实施例中,在对检测模型进行训练及优化的过程中,对训练集和测试集的配置比例不做具体限制。例如,在某一具体应用场景中,训练集的训练样本数据与测试集的测试样本数据的比例可以为9;1。
通过训练集中的训练样本数据对初始检测模型进行训练集迭代优化,直至测试集的损失函数无限趋近于零,或者测试集的损失函数接近于恒定值为止,停止训练及迭代优化,生成优化后的检测模型。需要说明的是,在根据各一级域名的序列集进行训练,生成检测模型之后,也可以不对该检测模型进行优化。
S106:每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集。
在本申请实施例中,对每间隔第二预设时间段对应的第二时长不做具体限制,可以根据不同应用场景对第二时长进行调整。
每间隔第二预设时间段,更新各一级域名下的待检测序列集;这样,积累了历史数据,即待检测序列集是从x=x1逐渐积累成x=x1+x2+…xn的过程,有效地避免了现有技术中因为缺少时间维度的历史数据而导致的误报和漏报现象发生,从而降低了误报率,最终提升了检测结果的可靠性。
S108:将各一级域名下的更新后的待检测序列集输入至检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并输出检测结果。
如图2所示,是本申请实施例具体应用场景下提供的DNS隧道流量检测方法的流程示意图。
如图2所示,本申请实施例提供的DNS隧道流量检测方法主要分为:离线训练和在线检测。
离线训练的步骤具体如下所述:
步骤11:收集训练数据。
正常域名可以通过Wireshark软件收集多台主机在较长一段时间的主机会话报文;隧道域名可以基于常用的DNS隧道工具。
在本申请实施例中,对隧道域名进行生成并进行收集的DNS隧道工具均是常用的工具,在此不再赘述。
步骤12:提取收集训练数据信息。
将获取到报文中的域名请求相关的信息中的域名、时间戳、TTL值等组成对应的集合序列,将域名按一级域名分别提取出对应的子域名序列、分别提取对应的时间戳序列、TTL序列等,其中正常域名数据与隧道域名数据对应的序列长度是可变的;
如,IP1请求一级域名baidu.com对应的子域名序列为[x1,x2,…],时间戳序列为[t1,t2,…],对应的TTL序列为[ttl1,ttl2…];
IP1请求以及域名google.com对应的子域名序列为[y1,y2,…],时间戳序列为[t11,t12,…],对应的TTL序列为[ttl11,ttl12…];
IP1请求以及域名xshduhsididsa.com对应的子域名序列为[z1,z2,z3,z4,…],时间戳序列为[t111,t112,…],对应的TTL序列为[ttl111,ttl112…]。
步骤13:训练数据特征提取。
基于以上序列值分别提取对应的特征数据,针对子域名序列提取统计特征:长度、熵值、不同子域名数、不同子域名的占比;基于时间戳提取统计时间差特征;基于TTL序列提取平均TTL值;
如,IP1基于正常域名数据一级域名baidu.com对应序列提取特征[各子域名长度平均值1,各子域名长度方差1,各子域名长度标准差1,子域名序列熵值1,时间差均值1,子域名不同个数1,不同子域名占比1];
IP1基于正常域名数据一级域名google.com对应序列提取特征[各子域名长度平均值2,各子域名长度方差2,各子域名长度标准差2,子域名序列熵值2,时间差均值2,子域名不同个数2,不同子域名占比2];
IP1基于隧道域名一级域名xshduhsididsa.com对应序列提取特征[各子域名长度平均值3,各子域名长度方差3,各子域名长度标准差3,子域名序列熵值3,时间差均值3,子域名不同个数3,不同子域名占比3];
步骤14:训练。
将以上基于正常域名数据生成的序列对应提取的特征值和基于隧道域名数据生成对应提取的特征值送入机器学习方法进行训练,可以使用机器学习方法如XGBOOST/随机森林等,生成检测模型。
例如,送入分类器中的正常域名特征数据为[[各子域名长度平均值1,各子域名长度方差1,各子域名长度标准差1,子域名序列熵值1,时间差均值1,子域名不同个数1,不同子域名占比1],[各子域名长度平均值2,各子域名长度方差2,各子域名长度标准差2,子域名序列熵值2,时间差均值2,子域名不同个数2,不同子域名占比2]…];
异常域名特征数据为[[各子域名长度平均值3,各子域名长度方差3,各子域名长度标准差3,子域名序列熵值3,时间差均值3,子域名不同个数3,不同子域名占比3],…]。
步骤15:保存模型。
保存模型以供后续检测阶段调用。
在线检测的步骤具体如下所述:
步骤21:预测阶段与训练阶段处理类似,首先获取待检测主机IP的域名请求信息,其中包括请求域名、时间戳、响应报文的TTL值等;
步骤22:将获取到待检测主机请求的域名请求相关的信息中的域名、时间戳、TTL值等组成对应的集合序列,将域名按一级域名分别提取出对应的子域名序列、分别提取对应的时间戳序列、TTL序列等;
步骤23:基于以上序列值分别提取对应的特征数据,针对子域名序列提取统计特征:长度、熵值、不同子域名数、不同子域名的占比;基于时间戳提取统计时间差特征;基于TTL序列提取平均TTL值;
如,IP1基于域名数据一级域名xxxx.com对应序列提取特征[各子域名长度平均值,各子域名长度方差,各子域名长度标准差,子域名序列熵值,时间差均值,子域名不同个数,不同子域名占比]。
步骤24:加载训练阶段保存的模型参数进行检测该主机IP是否发起DNS隧道请求;
例如,将主机IP1基于不同一级域名提取的特征值[各子域名长度平均值,各子域名长度方差,各子域名长度标准差,子域名序列熵值,时间差均值,子域名不同个数,不同子域名占比]分别输入到模型中进行预测是否发起DNS隧道通信。
本申请实施例提供的DNS隧道流量检测方法,在对DNS隧道流量检测的过程中,考虑到了连续的行为特征,如下图2中的右半边检测部分所示,在指定的时间窗内获取检测主机对应的相同一级域名子域名组成集合序列,并将这个集合存在缓存或者数据库中;下一个指定的时间窗内获取检测主机对应的一级域名提取的序列集合,合并缓存区相同主机发起过的历史请求中相同一级域名子域名组成集合序列,再提取特征通过模型检测进行主机是否发起DNS隧道的判断。
在本申请实施例中,可以对DNS隧道流量检测方法所采用的固定时间窗可以根据不同场景的需求进行设置。在此对固定时间窗不做具体限制,但是,设置的固定时间窗不能太短,例如,5min检测一次,这样,由于一次主机发起的DNS隧道数据会被切割开,因此,导致长期低频的DNS隧道攻击难以被发现,会导致漏报现象。同样,设置的固定时间窗也不能太长,例如,若一天或者更长,则造成时效性太差,不利于异常及时上报处理。
本申请实施提供的DNS隧道流量检测方法,提出基于可变的域名请求序列,考虑了其历史维度的请求信息,随着时间的推移,请求数据的积累,检测结果会越来越准确,一定程度上减少由于单条、固定截取框而导致的误报、漏报现象。此外,对每个主机IP建立序列集合,聚焦到主机请求,考虑了不同一级域名对应的子域名序列等特征,可直接判定该主机是否发起DNS隧道域名请求。
在本申请实施例中,每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;以及将各一级域名下的更新后的待检测序列集输入至检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并输出检测结果。本申请实施例提供的DNS隧道流量检测方法,由于每间隔第二预设时间段,更新各一级域名下的待检测序列集,这样,在检测时,积累了历史数据,从而降低了误报率,最终提高了检测结果的可靠新。
下述为本申请实施例DNS隧道流量检测装置实施例,可以用于执行本申请实施例DNS隧道流量检测方法实施例。对于本申请实施例DNS隧道流量检测装置实施例中未披露的细节,请参照本申请实施例DNS隧道流量检测方法实施例。
请参见图3,其示出了本发明一个示例性实施例提供的DNS隧道流量检测装置的结构示意图。该DNS隧道流量检测装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该DNS隧道流量检测装置包括序列集确定模块302、训练模块304、更新模块306、检测模块308和输出模块310。
具体而言,序列集确定模块302,用于根据第一预设时间段内存储的、每个主机的IP地址对应的域名请求信息,确定各一级域名的序列集,其中,序列集中包含有多个与一级域名相关联的序列;
训练模块304,用于根据序列集确定模块确定的各一级域名的序列集进行训练,生成检测模型;
更新模块306,用于每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;
检测模块308,用于将更新模块306得到的各一级域名下的更新后的待检测序列集输入至检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并检测结果;
输出模块310,用于输出检测模块308得到的检测结果。
可选的,所述装置还包括:
解析模块(在图3中未示出),用于根据每个主机的IP地址对应的域名请求信息解析出对应的各一级域名;
子域名序列确定模块(在图3中未示出),用于基于解析模块解析出的各一级域名确定对应的各一级域名的子域名序列。
可选的,所述装置还包括:
获取模块(在图3中未示出),用于获取任意一个一级域名下的更新后的待检测序列集中的任意一个待检测序列对应的时间戳信息;
判断模块(在图3中未示出),用于根据获取模块获取的时间戳信息和第二预设时间段,判断待检测序列对应的时间点是否在第二预设时间段内,若是,则将待检测序列从对应的待检测序列集中删除。
可选的,所述装置还包括:
提取模块(在图3中未示出),用于基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列。
可选的,各一级域名的序列集中的序列包括子域名序列、时间戳序列和由TTL值构成的TTL序列,提取模块具体用于:
针对一个一级域名,从每个主机IP的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列;
遍历每一个主机的IP地址下的每一个一级域名,从每个主机的IP地址对应的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列。
需要说明的是,上述实施例提供的DNS隧道流量检测装置在执行DNS隧道流量检测方法时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的DNS隧道流量检测装置与DNS隧道流量检测方法实施例属于同一构思,其体现实现过程详见DNS隧道流量检测方法实施例,这里不再赘述。
在本申请实施例中,更新模块用于每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;检测模块用于将更新模块得到的各一级域名下的更新后的待检测序列集输入至检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并检测结果;以及输出模块用于输出检测模块得到的检测结果。本申请实施例提供的DNS隧道流量检测装置,由于每间隔第二预设时间段,更新各一级域名下的待检测序列集,这样,在检测时,积累了历史数据,从而降低了误报率,最终提高了检测结果的可靠新。
如图4所示,本实施例提供一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器运行计算机程序以实现如上所述的方法步骤。
本申请实施例提供了一种存储有计算机可读指令的存储介质,其上存储有计算机程序,程序被处理器执行实现如上所述的方法步骤。
下面参考图4,其示出了适于用来实现本申请实施例的电子设备的结构示意图。本申请实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有电子设备操作所需的各种程序和数据。处理装置401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM402被安装。在该计算机程序被处理装置401执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (10)

1.一种DNS隧道流量检测方法,其特征在于,所述方法包括:
根据第一预设时间段内存储的、每个主机的IP地址对应的域名请求信息,确定各一级域名的序列集,其中,所述序列集中包含有多个与所述一级域名相关联的序列;
根据各一级域名的序列集进行训练,生成检测模型;
每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;
将各一级域名下的更新后的待检测序列集输入至所述检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并输出检测结果;
每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集,包括:
在指定的时间窗内获取检测主机对应的相同一级域名子域名组成集合序列,并将这个集合存在缓存或者数据库中;下一个指定的时间窗内获取检测主机对应的一级域名提取的序列集合,合并缓存区相同主机发起过的历史请求中相同一级域名子域名组成集合序列,再提取特征通过模型检测进行主机是否发起DNS隧道的判断。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据每个主机的IP地址对应的域名请求信息解析出对应的各一级域名,并基于各一级域名确定对应的各一级域名的子域名序列。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取任意一个一级域名下的更新后的待检测序列集中的任意一个待检测序列对应的时间戳信息;
根据所述时间戳信息和所述第二预设时间段,判断所述待检测序列对应的时间点是否在所述第二预设时间段内,若是,则将所述待检测序列从对应的待检测序列集中删除。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列。
5.根据权利要求4所述的方法,其特征在于,各一级域名的序列集中的序列包括子域名序列、时间戳序列和由TTL值构成的TTL序列,所述基于每个主机的IP地址对应的域名请求信息,分别提取每个主机IP对应的同一级域名下的多个序列包括:
针对一个一级域名,从每个主机IP的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列;
遍历每一个主机的IP地址下的每一个一级域名,从每个主机的IP地址对应的域名请求信息中分别提取对应的子域名序列、对应的时间戳序列和对应的TTL序列。
6.一种DNS隧道流量检测装置,其特征在于,所述装置包括:
序列集确定模块,用于根据第一预设时间段内存储的、每个主机的IP地址对应的域名请求信息,确定各一级域名的序列集,其中,所述序列集中包含有多个与所述一级域名相关联的序列;
训练模块,用于根据所述序列集确定模块确定的各一级域名的序列集进行训练,生成检测模型;
更新模块,用于每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集;
检测模块,用于将更新模块得到的各一级域名下的更新后的待检测序列集输入至所述检测模型中检测当前主机的IP地址是否发起DNS隧道请求,得到并检测结果;
输出模块,用于输出所述检测模块得到的所述检测结果;
每间隔第二预设时间段,更新各一级域名下的待检测序列集,得到各一级域名下的更新后的待检测序列集,包括:
在指定的时间窗内获取检测主机对应的相同一级域名子域名组成集合序列,并将这个集合存在缓存或者数据库中;下一个指定的时间窗内获取检测主机对应的一级域名提取的序列集合,合并缓存区相同主机发起过的历史请求中相同一级域名子域名组成集合序列,再提取特征通过模型检测进行主机是否发起DNS隧道的判断。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
解析模块,用于根据每个主机的IP地址对应的域名请求信息解析出对应的各一级域名;
子域名序列确定模块,用于基于所述解析模块解析出的各一级域名确定对应的各一级域名的子域名序列。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取任意一个一级域名下的更新后的待检测序列集中的任意一个待检测序列对应的时间戳信息;
判断模块,用于根据所述获取模块获取的所述时间戳信息和所述第二预设时间段,判断所述待检测序列对应的时间点是否在所述第二预设时间段内,若是,则将所述待检测序列从对应的待检测序列集中删除。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1-5任一项所述的流量检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1-5中任一项所述的流量检测方法。
CN202111127448.6A 2021-09-26 2021-09-26 一种dns隧道流量检测方法、装置、电子设备和存储介质 Active CN113839948B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111127448.6A CN113839948B (zh) 2021-09-26 2021-09-26 一种dns隧道流量检测方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111127448.6A CN113839948B (zh) 2021-09-26 2021-09-26 一种dns隧道流量检测方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113839948A CN113839948A (zh) 2021-12-24
CN113839948B true CN113839948B (zh) 2023-10-24

Family

ID=78970269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111127448.6A Active CN113839948B (zh) 2021-09-26 2021-09-26 一种dns隧道流量检测方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113839948B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297083B (zh) * 2022-08-03 2023-09-12 左道明 基于数据量和行为特征的域名系统隧道检测方法和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624706A (zh) * 2012-02-22 2012-08-01 上海交通大学 一种dns隐蔽信道的检测方法
CN108848201A (zh) * 2018-06-14 2018-11-20 深信服科技股份有限公司 检测利用dns隧道传输隐秘数据的方法、系统及装置
CN109309673A (zh) * 2018-09-18 2019-02-05 南京方恒信息技术有限公司 一种基于神经网络的dns隐蔽信道检测方法
CN109474575A (zh) * 2018-09-11 2019-03-15 北京奇安信科技有限公司 一种dns隧道的检测方法及装置
CN110071829A (zh) * 2019-04-12 2019-07-30 腾讯科技(深圳)有限公司 Dns隧道检测方法、装置及计算机可读存储介质
CN110602100A (zh) * 2019-09-16 2019-12-20 上海斗象信息科技有限公司 Dns隧道流量的检测方法
CN112671759A (zh) * 2020-12-22 2021-04-16 互联网域名系统北京市工程研究中心有限公司 基于多维度分析的dns隧道检测方法和装置
CN113347210A (zh) * 2021-08-03 2021-09-03 北京观成科技有限公司 一种dns隧道检测方法、装置及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11095671B2 (en) * 2018-07-09 2021-08-17 Arbor Networks, Inc. DNS misuse detection through attribute cardinality tracking
US11595357B2 (en) * 2019-10-23 2023-02-28 Cisco Technology, Inc. Identifying DNS tunneling domain names by aggregating features per subdomain
US11606385B2 (en) * 2020-02-13 2023-03-14 Palo Alto Networks (Israel Analytics) Ltd. Behavioral DNS tunneling identification

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624706A (zh) * 2012-02-22 2012-08-01 上海交通大学 一种dns隐蔽信道的检测方法
CN108848201A (zh) * 2018-06-14 2018-11-20 深信服科技股份有限公司 检测利用dns隧道传输隐秘数据的方法、系统及装置
CN109474575A (zh) * 2018-09-11 2019-03-15 北京奇安信科技有限公司 一种dns隧道的检测方法及装置
CN109309673A (zh) * 2018-09-18 2019-02-05 南京方恒信息技术有限公司 一种基于神经网络的dns隐蔽信道检测方法
CN110071829A (zh) * 2019-04-12 2019-07-30 腾讯科技(深圳)有限公司 Dns隧道检测方法、装置及计算机可读存储介质
CN110602100A (zh) * 2019-09-16 2019-12-20 上海斗象信息科技有限公司 Dns隧道流量的检测方法
CN112671759A (zh) * 2020-12-22 2021-04-16 互联网域名系统北京市工程研究中心有限公司 基于多维度分析的dns隧道检测方法和装置
CN113347210A (zh) * 2021-08-03 2021-09-03 北京观成科技有限公司 一种dns隧道检测方法、装置及电子设备

Also Published As

Publication number Publication date
CN113839948A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
US11750659B2 (en) Cybersecurity profiling and rating using active and passive external reconnaissance
US9584541B1 (en) Cyber threat identification and analytics apparatuses, methods and systems
CN112511459B (zh) 一种流量识别方法、装置、电子设备及存储介质
CN111435393A (zh) 对象漏洞的检测方法、装置、介质及电子设备
CN113839948B (zh) 一种dns隧道流量检测方法、装置、电子设备和存储介质
CN109818972B (zh) 一种工业控制系统信息安全管理方法、装置及电子设备
CN113067802B (zh) 一种用户标识方法、装置、设备及计算机可读存储介质
CN110392032B (zh) 检测异常url的方法、装置及存储介质
CN112583827B (zh) 一种数据泄露检测方法及装置
CN113206850A (zh) 恶意样本的报文信息获取方法、装置、设备及存储介质
CN112685255A (zh) 一种接口监控方法、装置、电子设备及存储介质
CN117424743A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113839912B (zh) 主被动结合进行异常主机分析的方法、装置、介质和设备
CN114417198A (zh) 一种网络诈骗预警方法、装置、预警设备、系统
CN109714371B (zh) 一种工控网络安全检测系统
CN111371917B (zh) 一种域名检测方法及系统
CN114726579A (zh) 防御网络攻击的方法、装置、设备、存储介质及程序产品
US20230008765A1 (en) Estimation apparatus, estimation method and program
CN109933990B (zh) 基于多模式匹配的安全漏洞发现方法、装置及电子设备
CN115941432A (zh) 域名报警信息发送方法、装置、电子设备及计算机可读存储介质
CN111858782A (zh) 基于信息安全的数据库构建方法、装置、介质与设备
CN115913683B (zh) 风险访问记录生成方法、装置、设备及存储介质
CN113890866B (zh) 一种违规应用软件识别方法、装置、介质及电子设备
CN114666169B (zh) 一种扫描探测类型的识别方法、装置、设备及介质
CN114205095B (zh) 一种加密恶意流量的检测方法和装置

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