CN110071829B - Dns隧道检测方法、装置及计算机可读存储介质 - Google Patents

Dns隧道检测方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN110071829B
CN110071829B CN201910295145.1A CN201910295145A CN110071829B CN 110071829 B CN110071829 B CN 110071829B CN 201910295145 A CN201910295145 A CN 201910295145A CN 110071829 B CN110071829 B CN 110071829B
Authority
CN
China
Prior art keywords
matrix
dns
dns tunnel
mahalanobis distance
normal
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
CN201910295145.1A
Other languages
English (en)
Other versions
CN110071829A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910295145.1A priority Critical patent/CN110071829B/zh
Publication of CN110071829A publication Critical patent/CN110071829A/zh
Application granted granted Critical
Publication of CN110071829B publication Critical patent/CN110071829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • 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]
    • 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
    • H04L63/1425Traffic logging, e.g. anomaly detection

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隧道检测方法及装置,所述方法包括:获取所采集的流量数据,所述流量数据是根据终端对局域网中DNS服务器发起的DNS查询行为生成的;从所述流量数据中提取得到特征向量;基于DNS隧道检测模型提供的正常流量矩阵,通过所述DNS隧道检测模型计算所述特征向量与所述正常流量矩阵之间的马氏距离,所述DNS隧道检测模型是通过所述DNS服务器的历史流量数据进行模型训练生成的;根据所述马氏距离对所述流量数据进行DNS隧道异常识别。本发明提供的DNS隧道检测方法及装置有效解决了现有技术中因设定规则易被绕过而导致DNS隧道存在漏检的问题。

Description

DNS隧道检测方法、装置及计算机可读存储介质
技术领域
本发明涉及网络安全技术领域,特别涉及一种DNS隧道检测方法、装置及计算机可读存储介质。
背景技术
DNS隧道是指利用DNS查询过程建立起的隐蔽信道进行数据传输。根据DNS协议,如果局域网中DNS服务器上未查询到终端所访问的访问域名,通过局域网外的DNS服务器进行查询,最终返回查询结果。也即是说,通过局域网中DNS服务器实现了局域网中终端与外部之间的通信。
基于DNS隧道的特点,存在DNS隧道被恶意利用的情况,例如通过隧道工具利用DNS隧道进行远程控制、数据窃取。因此,对DNS隧道进行检测对于识别网络安全威胁至关重要。
现有技术中,通过设定规则来进行DNS隧道检测,设定规则例如:请求访问域名的长度大于预设值、请求访问域名的频域大于预设值,但是对于此种检测方法,攻击者可以通过修改域名长度、请求频率等规则中所涉及的特征来绕过设定规则,导致DNS隧道检测的准确性不高。
因此,现有技术中存在因设定规则易被绕过而导致DNS隧道存在漏检的问题。
发明内容
为了解决相关技术中存在的问题,本发明提供了一种DNS隧道检测方法、装置及计算机可读存储介质。
第一方面,一种DNS隧道检测方法,所述方法包括:
获取所采集的流量数据,所述流量数据是根据终端对局域网中DNS服务器发起的DNS查询行为生成的;
从所述流量数据中提取得到特征向量;
基于DNS隧道检测模型提供的正常流量矩阵,通过所述DNS隧道检测模型计算所述特征向量与所述正常流量矩阵之间的马氏距离,所述DNS隧道检测模型是通过所述DNS服务器的历史流量数据进行模型训练生成的;
根据所述马氏距离对所述流量数据进行DNS隧道异常识别。
第二方面,一种DNS隧道检测装置,所述装置包括:
获取模块,用于获取所采集的流量数据,所述流量数据是根据终端对局域网中DNS服务器的访问行为生成的;
提取模块,用于从所述流量数据中提取得到特征向量;
计算模块,用于基于DNS隧道检测模型提供的正常流量矩阵,通过所述DNS隧道检测模型计算所述特征向量与所述正常流量矩阵之间的马氏距离,所述DNS隧道检测模型是通过所述DNS服务器的历史流量数据进行模型训练生成的;
异常识别模块,用于根据所述马氏距离对所述流量数据进行DNS隧道异常识别。
第三方面,一种DNS隧道检测装置,所述装置包括:
处理器;及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现以上所述的方法。
第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
通过本发明的利用局域网中DNS服务器的历史流量数据训练生成的DNS隧道检测模型来计算流量数据所对应特征向量与正常流量矩阵之间的马氏距离,并基于马氏距离来进行DNS隧道异常识别。一方面基于DNS隧道检测模型来进行DNS隧道异常识别,有效解决了现有技术中基于设定规则容易被攻击者绕过的问题,保证了DNS隧道检测的准确性;另一方面,基于局域网中DNS服务器的历史流量数据训练生成的DNS隧道检测模型适应于局域网中的实际流量环境,使得DNS隧道检测模型可以适应于不同的检测环境中,基于检测环境中流量数据进行训练,具有通用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本发明所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种服务器的框图;
图3是根据一示例性实施例示出的一种DNS隧道检测方法的流程图;
图4是图3对应实施例的步骤S150之前步骤在一实施例中的流程图;
图5是图4对应实施例的步骤S230在一实施例中的流程图;
图6是图5对应实施例的步骤S217在一实施例中的流程图;
图7是图4对应实施例的步骤S250在一实施例中的流程图;
图8是对矩阵进行压缩的压缩示意图;
图9是步骤S130在一实施例中的流程图;
图10是步骤S170在一实施例中的流程图;
图11是步骤S170在另一实施例中的流程图;
图12是正态分布的概率分布函数的示意图;
图13是图10对应实施例的步骤S175在一实施例中的流程图;
图14是根据一示例性实施例示出的一种DNS隧道检测装置的框图;
图15是根据另一示例性实施例示出的一种DNS隧道检测装置的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本发明所涉及的实施环境的示意图。该实施环境包括:位于局域网中的内部DNS服务器300、至少一终端100和检测服务器400,以及终端100所要访问域名对应的外部DNS服务器500。
根据DNS协议,当用户在终端100中输入所要访问网址的访问域名后,先通过内部DNS服务器300根据访问域名进行DNS查询,如果内部DNS服务器300中未查询到,内部DNS服务器300将通过局域网的防火墙向局域网外的DNS服务器发出查询请求,通过大量的重定向,请求到访问域名对应的外部DNS服务器500进行查询,并将查询结果返回至内部DNS服务器300,进而返回至终端100。
在这个过程中,通过内部DNS服务器300构建了终端100和外部DNS服务器500之间隐秘的DNS隧道。按照DNS协议,防火墙未对内部DNS服务器300向外传输的DNS查询请求进行处理,因此,通过所构建的DNS隧道终端可以穿透防火墙与外部进行通信。基于这一特点,通过内部DNS服务器所构建的DNS隧道易出现被恶意利用的情况,例如利用通过隧道工具通过DNS隧道进行远程控制甚至窃取数据。
基于此,在本发明中,在局域网中部署检测服务器400,通过检测服务器400按照本发明的技术方案,对内部DNS服务器300的流量数据进行DNS隧道检测,从而检测出通过DNS隧道所传输的异常流量数据,并进行DNS隧道告警。
图2是根据一示例性实施例示出的一种服务器的框图。服务器200可以作为图1实施例中的检测服务器400。
需要说明的是,该服务器200只是一个适配于本发明的示例,不能认为是提供了对本发明使用范围的任何限制。该服务器200也不能解释为需要依赖于或者必须具有图2中示出的示例性的服务器200中的一个或者多个组件。
该服务器200的硬件结构可因配置或者性能的不同而产生较大的差异,如图2所示,服务器200包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。
其中,电源210用于为服务器200上的各硬件设备提供工作电压。
接口230包括至少一有线或无线网络接口231、至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,用于与外部设备通信。
存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作***251、应用程序253或者数据255等,存储方式可以是短暂存储或者永久存储。其中,操作***251用于管理与控制服务器200上的各硬件设备以及应用程序253,以实现中央处理器270对海量数据255的计算与处理,其可以是WindowsServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM、FreeRTOS等。应用程序253是基于操作***251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图2中未示出),每个模块都可以分别包含有对服务器200的一系列计算机可读指令。数据255可以是所采集的内部DNS服务器的历史流量数据等。
中央处理器270可以包括一个或多个以上的处理器,并设置为通过总线与存储器250通信,用于运算与处理存储器250中的海量数据255。
如上面所详细描述的,适用本发明的服务器200将通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来实现网页信息获取方法。
此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明,因此,实现本发明并不限于任何特定硬件电路、软件以及两者的组合。
图3是根据一示例性实施例示出的一种DNS隧道检测方法的流程图。该DNS隧道检测方法用于图1所示实施环境的检测服务器400。如图3所示,该DNS隧道检测方法,可以由检测服务器400执行,可以包括以下步骤:
步骤S110,获取所采集的流量数据,流量数据是根据终端对局域网中DNS服务器发起的DNS查询行为生成的。
如上所描述,按照DNS协议,当用户在局域网中的终端上输入所要访问网址的访问域名时,终端先向局域网中的内部DNS服务器发起DNS查询请求,以获得访问域名对应的IP地址,在局域网中的内部DNS服务器未查询到时,通过局域网外的DNS服务器进行DNS查询,并将查询结果通过局域网中的内部DNS服务器返回至终端。
也即是说,DNS隧道是基于终端请求局域网中的内部DNS服务器进行DNS查询所构建的,终端向局域网中的内部DNS服务器发起DNS查询请求的行为即为DNS查询行为。
基于所构建的DNS隧道,终端与局域网外的DNS服务器(即终端所要访问域名所对应的DNS服务器)进行数据传输,在所构建的DNS隧道中传输的数据即为所要进行DNS隧道检测的流量数据。
在具体实施例中,实时采集局域网中DNS服务器的流量,然后对所采集的流量进行聚合、过滤。所进行的聚合,是根据DNS隧道的双方(即终端和终端所访问的访问域名)和统计时间来进行。例如根据所采集到的流量,统计终端A与访问域名B在指定时间段C之内的流量数据。在步骤S110中,所获取的流量数据也是所统计的指定时间段内某一终端通过DNS隧道与访问域名之间的流量数据。当然指定时间段可以根据实际需要进行设定,例如半个小时、一个小时等,在此不进行具体限定。
步骤S130,从流量数据中提取得到特征向量。
所获取的流量数据中包括在指定时间段内终端每次基于DNS隧道对访问域名的访问时长、在指定时间段内的访问次数、每次访问期间所传输数据的数据量、访问域名的域名信息(例如访问域名的名称、域名级数、每一级的子域名等)、访问过程中的DNS记录等。
为了构建流量数据的特征向量,基于DNS隧道的特点,预先设定所要提取的DNS隧道特征。DNS隧道特征是用于描述基于DNS隧道的通信行为的数据。
特征向量是对流量数据的向量表示,具体而言,是对从流量数据中所提取的DNS隧道特征的向量表示。即,在根据流量数据提取到DNS隧道特征之后,对所提取的DNS隧道特征进行数值映射,构建得到流量数据的特征向量。
在一实施例中,从数据流量中提取的DNS隧道特征可以是以下DNS隧道特征中的一种、多种或者全部:
会话总访问时长、会话总流量、大包占比、小包占比、上行下行比、子域名总数、访问时长均值、访问时长方差、访问间隔时间均值、访问间隔时间方差、域名平均级数、子域名平均长度、子域名不同字符平均占比、每级子域名最长平均长度、子域名中数值平均占比、子域名的熵、A记录的占比、AAAA记录的占比、CNAME记录的占比、NS记录的占比、MX记录的占比、TXT记录的占比、PTR记录的占比、other记录的占比。
其中A记录是指用来指定主机名(或访问域名)对应IP地址的记录。
NS记录是域名服务器记录,即用来指定由哪个DNS服务器来进行域名解析。
MX记录是邮件交换记录,用于电子邮件***发邮件时根据收信人的地址后缀来定位邮件服务器。
CNAME记录是别名记录,例如同一目标服务器可能有两个及以上的域名名称,别名记录即记录该目标服务器的全部域名名称。
TXT记录指主机名或域名的说明。
PTR即pointer的简写,用于将一个IP地址映射到对应的域名。PTR记录是指解析IP地址到域名名称的记录。
AAAA记录:用来指定主机名(或域名)对应的IPv6地址(例如:ff06:0:0:0:0:0:0:c3)的记录。
Other记录指域名解析记录类型中除上述所列举的记录类型外的其它记录类型,例如显性URL记录,隐性URL记录、SRV记录等。
在其他实施例中,还可以提取除上述所列举的DNS隧道特征外的其他DNS隧道特征,在此不进行具体限定。
步骤S150,基于DNS隧道检测模型提供的正常流量矩阵,通过DNS隧道检测模型计算特征向量与正常流量矩阵之间的马氏距离,DNS隧道检测模型是通过DNS服务器的历史流量数据进行模型训练生成的。
正常流量矩阵是根据局域网中DNS服务器的历史流量数据按照步骤S130所构建得到。
在具体实施例中,构建正常流量矩阵的历史流量数据也是根据终端和所访问域名以及访问时间进行聚类之后的数据,即对所采集的流量数据进行分组,例如历史流量数据中的分组包括终端B1与访问域名C1在12:00-13:00内的流量数据、终端B1与访问域名C1在15:00-16:00内的流量数据、终端B2与访问域名C2在9:00-10:00内的流量数据等。
从而,对于历史流量数据中的每一组数据,进行DNS隧道特征提取,构建得到正常流量矩阵。
马氏距离用于描述特征向量与正常流量矩阵之间的差异程度。在本发明的技术方案中,通过正常流量矩阵来表征在局域网中DNS隧道中的正常流量数据,从而所计算得到的马氏距离即反映了流量数据与正常流量数据之间的差异程度。
DNS隧道检测模型是根据所在局域网的DNS服务器的历史流量数据进行无监督训练生成的。即在进行模型训练之前,不需要对作为训练样本的历史流量数据进行标签标注,而直接通过历史流量数据继续训练。模型训练的过程详见下文描述。
模型训练所生成的DNS隧道检测模型,基于训练使用的历史流量数据构建了正常流量矩阵,从而,DNS隧道检测模型基于流量数据的特征向量和正常流量矩阵计算马氏距离。
步骤S170,根据马氏距离对流量数据进行DNS隧道异常识别。
所进行的DNS隧道识别即识别通过DNS隧道所传输的流量数据为进行DNS查询的正常流量数据,还是基于DNS隧道传输其他数据的异常流量数据(又称为DNS隧道流量)。如果流量数据为异常流量数据,则说明所构建的DNS隧道(终端和访问域名所对应的DNS服务器之间所构建的DNS隧道)为异常DNS隧道。
如上所描述,所计算得到的马氏距离表征了流量数据的特征向量与正常流量矩阵的差异程度,因而,若所得到的马氏距离较大,则表明流量数据所对应特征向量与正常流量矩阵差异较大,那么流量数据可能为通过DNS隧道传输的异常流量数据;反之,若计算的马氏距离较小,则说明流量数据所对应特征向量与正常流量矩阵的差异小,则流量数据可能为正常流量数据。
在现有技术中,如果对局域网中内部DNS服务器的流量数据不进行监控,则可能出现通过DNS协议所构建的DNS隧道传输恶意数据,例如传输病毒、木马、通过DNS隧道进行远程控制、以及窃取数据等。通过本发明的技术方案,在识别出流量数据为DNS隧道上的异常流量数据,从而,进行告警。
在本发明的技术方案中,将DNS隧道检测模型部署到局域网的网络环境中进行训练,即根据局域网中内部DNS服务器的历史流量数据进行训练,从而,使得训练后的DNS隧道检测模型适应于局域网中的流量数据,提高对DNS隧道异常识别精度,保证了DNS隧道检测的准确性,有效解决了现有技术中因设定规则易被绕过所导致的DNS隧道检测准确度不高的问题。
在现有技术中,还存在:通过进行标签标记的训练样本对DNS隧道检测模型进行有监督训练,然后将训练之后的DNS隧道检测模型部署到所要进行DNS隧道检测的网络环境中,以进行DNS隧道检测。
对于通过有监督训练生成的DNS隧道检测模型进行DNS隧道检测的方式,一方面,有监督的训练方式基于采集正样本(即DNS隧道流量)和负样本。然而,由于真实的正样本较难获得,一般通过DNS隧道工具来构造DNS隧道流量。而DNS隧道工具构造的DNS隧道流量单一,从而导致训练之后的DNS隧道检测模型对非DNS隧道工具的DNS隧道流量的检测能力不足,导致检测准确度低。
另一方面,训练检测模型的负样本有限且没有通用性,且DNS隧道检测模型是先线下训练,在部署到实际网络环境中进行DNS隧道检测,实际中不同网络环境中的正常流量差异较大。从而,导致训练获得的DNS隧道检测模型在不同网络环境下的检测准确度差异较大,存在在某些网络环境中存在检测能力不足的缺点。
而通过本发明的技术方案,将DNS隧道检测模型在所部署的网络环境中进行训练,即通过网络环境中的流量数据(相对于所要进行DNS隧道流量识别的流量数据即为历史流量数据)进行训练。从而,在根据训练构建得到正常流量矩阵之后,即进行对局域网中的内部DNS服务器的流量数据进行DNS隧道检查的,一方面,不需要特意进行正样本和负样本的采集和构造,另一方面,将DNS隧道检测模型部署于实际的工作的网络环境下进行训练,保证DNS隧道检测模型可以自适应于工作的网络环境下,保证DNS隧道检测的准确度。
在具体实施例中,为了保证DNS隧道检测模型对工作网络环境的适应性,按照设定的时间间隔使DNS隧道检测模型在所在的网络环境中进行重新训练,以适应变化的工作网络环境。其中工作网络环境的变化主要体现在网络环境(即DNS服务器所在的局域网)中流量的变化,因此,按照设定的时间间隔,根据局域网中DNS服务器的最新的历史流量数据对DNS隧道检测模型进行更新训练,使得更新训练后的DNS隧道检测模型适应于最新的局域网中的流量数据。
在一实施例中,如图4所示,步骤S150之前,还包括:
步骤S230,获取DNS服务器的历史流量数据作为训练样本,构建正常流量矩阵。
如上所描述,按照终端与访问域名对历史流量数据进行聚类分组,从而,将历史流量数据中每一组数据作为一个训练样本,获得若干个训练样本。
历史流量数据的获取,也是基于采集局域网中DNS服务器的流量获得。
如上所描述,正常流量矩阵用于表征局域网中DNS服务器的正常流量,基于训练样本构建,以检测出通过局域网中DNS服务器构建的DNS隧道中的异常流量数据。
步骤S250,构建基础模型,并根据正常流量矩阵对基础模型进行模型训练,得到DNS隧道检测模型。
基础模型是基于所要计算的马氏距离而通过所采集局域网中DNS服务器的流量数据所构建得到的。
在进行基础模型的训练之前,为模型训练构建损失函数和初始化基础模型的模型参数,从而,以历史流量数据为训练数据进行迭代训练,并在训练过程中调整基础模型的模型参数,直至调整之后的模型参数使损失函数收敛,将进行模型参数调整之后的基础模型作为DNS隧道检测模型。
在一实施例中,如图5所示步骤S230包括:
步骤S231,基于DNS隧道的特点,从每一训练样本中提取得到对应的DNS隧道特征。
从训练样本中所要提取的DNS隧道特征与从流量数据中所提取的DNS隧道特征一致,例如从训练样本和流量数据中均提取以上所列举的全部DNS隧道特征。
步骤S233,由从每一训练样本所提取的DNS隧道特征,生成训练样本的特征向量。
训练样本的特征向量即所提取的DNS隧道特征的向量表示。
步骤S235,以每一训练样本的特征向量为行向量,构建得到样本流量矩阵。
步骤S237,对样本流量矩阵进行去噪处理,获得正常流量矩阵
所进行的去噪处理即是将样本流量矩阵中正样本对应的特征向量除去,保留负样本所对应的特征向量。将样本流量矩阵中除去正样本的特征向量之后的矩阵作为正常流量矩阵。从而,避免正样本对所计算的马氏距离的影响。
在一实施例中,如图6所示,步骤S217包括:
步骤S310,通过Robust PCA算法对样本流量矩阵进行矩阵分解,得到低秩矩阵和稀疏矩阵。
假设样本流量矩阵为Y,Robust PCA算法的分析模型如下所示:
Figure BDA0002026234890000111
从而实现了将样本流量矩阵Y分解为矩阵L和矩阵S,其中,矩阵L是一个低秩矩阵,是近似真实的值,S是一个稀疏矩阵,是一个误差矩阵。在具体实施例中,可以通过迭代阈值算法、加速近端梯度算法、增广拉格朗日乘子算法等方式计算出低秩矩阵L和稀疏矩阵S。
步骤S330,对稀疏矩阵中的行向量进行求和运算,将运算结果作为行向量所对应训练样本的误差。
步骤S350,根据对应误差小于设定误差的行向量,构建得到正常流量矩阵。
通过上述步骤,实现了从样本流量矩阵中将正样本所对应的特征向量移除,保留负样本所对应的特征向量,构建得到正常流量矩阵。基于正常流量矩阵来计算马氏距离,从而保证所计算马氏距离的准确性。
在一实施例中,如图7所示,步骤S250中模型训练的步骤包括:
步骤S251,对正常流量矩阵进行奇异值分解,获得对应于正常流量矩阵的分解矩阵。
奇异值分解(Singular Value Decomposition,SVD)即将m*n阶的正常流量矩阵X分解为m阶正交矩阵U、n阶正交矩阵V以及m*n的对角阵S:
Xm×n=Um×mSm×nVn×n T (1-2)
其中,S=diag(σ12,......,σr),σi>0(i=1,2,......,r),r=rank(X),对角阵S为正常流量矩阵X的奇异值矩阵。
通过上述分解过程,将正常流量矩阵X进行矩阵分解即获得三个分解矩阵:m阶正交矩阵U、n阶正交矩阵V以及m*n的对角阵S,正交矩阵U又称为正常流量矩阵X的左奇异向量,正交矩阵V又称为正常流量矩阵的右奇异向量。
步骤S253,对分解矩阵进行压缩,得到压缩矩阵,作为基础模型的参数。
对于正常流量矩阵的奇异值矩阵S,对角线上的元素为正常流量矩阵X的奇异值,其他元素为零,且在奇异值矩阵S中,对角线上的奇异值按照从大到小排列,而且奇异值减少得很快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例,因此,可以用最大的r个奇异值和对应的左右奇异向量来近似描述矩阵,即:
Figure BDA0002026234890000121
在具体实施例中,r的取值按照设定的比例来进行取值,设定的比例即设定压缩所得的矩阵Sr×r中奇异值之和占分解所得奇异值矩阵Sm×n全部奇异值之和的比例,例如将比例设为0.95,从而,根据所设定的比例和奇异值矩阵Sm×n即可求的k,进而分别计算得到分解矩阵Um×m、Sm×n和Vn×n的压缩矩阵:Um×r、Sr×r(即后文中提到的Sr)、Vr×n(即后文提到的Vr)。图8是对矩阵Um×m、Sm×n和Vn×n进行压缩的示意图。
步骤S255,判断基础模型的参数是否使基础模型对应的损失函数收敛。
若为是,执行步骤S257,由基础模型收敛得到DNS隧道检测模型。
若为否,则执行步骤S258,基于正常流量矩阵对基础模型的参数进行迭代更新。直至更新后的基础模型的参数使举出模型对应的损失函数收敛。
如上所描述,在进行模型训练之前,根据采集的流量数据构建基础模型,并为基础模型构建损失函数,进行基础模型的模型参数的初始化,基于此进行基础模型的训练。
在训练过程中,不断调整基础模型的模型参数,直至基础模型的损失函数收敛。在本发明的技术方案中,将以压缩后的矩阵作为基础模型的模型参数,基础模型的参数的调整基于通过历史流量数据所构建的正常流量矩阵,也即是说,模型参数的调整实际上是通过对正常流量矩阵的更新调整实现。
在一实施例中,在步骤S251之前还包括:
对正常流量矩阵进行归一化处理,使奇异值分解基于归一化处理后的正常流量矩阵。
如上所描述,正常流量矩阵是由从负样本中所提取的DNS隧道特征构建得到。所提取的DNS隧道特征为独立同分布的随机变量。基于从众多训练样本以及所进行DNS隧道检测的流量数据中所提取的DNS隧道特征,计算得到每一DNS隧道特征,计算每一DNS隧道特征的均值和标准差。
假设,所提取的DNS隧道特征分别为A1,A2,A3...Ai,i为所提取DNS隧道特征的个数,正常流量矩阵由j个负样本的DNS隧道特征构成,正常流量矩阵
Figure BDA0002026234890000131
正常流量矩阵中的xk1(1≤k≤j)为从该负样本中所提取获得Ak的数字表征。
设计算得到A1,A2,A3...Ai的均值分别为:μ123...μi,标准差分别为:σ123,...σi,根据每一DNS隧道特征的均值和方差对正常流量矩阵进行归一化,归一化的正常流量矩阵为:
Figure BDA0002026234890000132
通过进行归一化处理,使正常流量矩阵中的元素的绝对值关系转换成某种相对值关系,简化了马氏距离的计算,提高了计算效率。
在一实施例中,如图9所示,步骤S130包括:
步骤S131,基于DNS隧道的特点,从流量数据中提取出若干DNS隧道特征。
步骤S133,由若干DNS隧道特征生成流量数据的特征向量。
构建流量数据的特征向量的过程与构建训练样本的特征向量的过程相似,详见上文描述。
在一实施例中,步骤S150包括:
基于DNS隧道检测模型,根据公式:
Figure BDA0002026234890000141
(其中y=Vr T(x-μ)) (1-4)
来计算特征向量与正常流量矩阵的马氏距离。
其中,m为特征向量与正常流量矩阵的马氏距离。
x为特征向量;μ为特征向量中DNS隧道特征的均值所构成的均值向量;Vr为矩阵V的前r列矩阵,Sr为由矩阵S的前r项对角线元素得到的矩阵,矩阵V和矩阵S是对正常流量矩阵进行奇异值分解得到的分解矩阵,矩阵Vr和Sr是对矩阵V和矩阵S进行压缩得到的矩阵。
在DNS隧道检测模型的训练过程中,基于所构建的正常流量矩阵获得了使DNS隧道检测模型的损失函数收敛的矩阵Vr和Sr,从而,DNS隧道检测模型通过公式
Figure BDA0002026234890000142
即可计算得到流量数据的特征向量与正常流量矩阵的马氏距离。
在一实施例中,如图10所示,步骤S170包括:
步骤S171,由马氏距离映射得到分数。
由于马氏距离是无界的,计算所得的马氏距离可能是无穷大,因此,将马氏距离映射到一个有限的区间,例如[0,100],从而通过将马氏距离映射得到的分数来反映马氏距离的大小。
将马氏距离通过如下的公式进行分数映射:
Figure BDA0002026234890000143
Score即为通过马氏距离m所映射得到的分数;A是根据所设定的有限区间来设定的,例如将马氏距离映射到[0,100]这一区间,则A取值为100;k和m0通过对两个给定马氏距离的分数来求得,例如将马氏距离m1映射为1分,将马氏距离m2映射为99分,从而,根据将给定的m1和1,以及m2和99代入上述公式计算得到k和m0
步骤S173,如果分数超过设定分数,则识别出流量数据来自于异常DNS隧道。
即,为所映射得到的分数预设设定分数,对于超过设定分数的马氏距离所对应分数,则视为该马氏距离所对应流量数据来自于异常DNS隧道。反之,如果分数未超过设定分数,则视为该马氏距离所对应流量数据为正常流量数据。
步骤S175,对流量数据所对应访问域名进行DNS隧道告警,访问域名为终端的DNS查询行为所请求查询的域名。
对于流量数据而言,始于局域网的终端根据所访问域名向内部DNS服务器发起DNS查询请求,因而,对于局域网中的终端而言,基于DNS隧道所存在的安全威胁来源于访问域名所在的域名服务器,因而,在进行DNS隧道告警时,提示用户哪些访问域名对终端存在安全威胁,即对流量数据所对应访问域名进行告警。
通过将马氏距离进行分数映射之后,根据设定分数来对马氏距离所对应流量数据进行DNS隧道识别,将无界的马氏距离映射到一个有限区间,从而提高了对流量数据进行DNS隧道识别的识别精度,同时也提高了识别效率。
在一实施例中,如图11所示,步骤S173之后,还包括:
步骤S174,根据为马氏距离所构建的概率分布函数,对流量数据所对应的马氏距离进行异常检测。
若检测马氏距离为异常马氏距离,则执行步骤S175,根据所识别出来自于异常DNS隧道的流量数据,向局域网的监控端进行DNS隧道告警。
为流量数据所计算得到的马氏距离近似正态分布,从而,结合正态分布的概率分布函数设定正常马氏距离的范围,即若所计算得到的马氏距离在该范围内,则视为该马氏距离为正常马氏距离,反之,则为异常马氏距离。其中所设定的正常马氏距离的范围可以根据马氏距离所符合正态分布的均值和标准差来进行设定。
在一具体实施例中,基于3σ准则来设定正常马氏距离的范围。对于符合正态分布的随机变量的分布函数如图12所示。在3σ准则中,数值分布在(μ-3σ,μ+3σ)中的概率为0.9973,因此,对于分布在(μ-3σ,μ+3σ)范围外的数值,则视为异常。
对应的,将马氏距离的值位于(μs-3σss+3σs)范围内的视为正常马氏距离,而位于该范围外的马氏距离视为异常马氏距离。μs为马氏距离这一随机变量所符合正态分布的均值,σs马氏距离所符合正态分布的标准差。从而,如果计算所得的马氏距离在(μs-3σss+3σs)范围内,则该马氏距离为正常马氏距离,反之,则为异常马氏距离。
对于异常马氏距离,则执行步骤S175,而对于正常马氏距离,则不进行告警。
结合根据马氏距离所映射的分数和对马氏距离进行异常检测结果,对于分数超过设定分数且马氏距离为异常马氏距离的流量数据,进行DNS隧道告警,从而提高DNS隧道检测的精度。
在一实施例中,如图13所示,步骤S175包括:
步骤S410,根据流量数据的特征向量,计算特征向量中每一DNS隧道特征的权重。
对于流量数据的特征向量x=(x1,x2,x3,...,xi),i为DNS隧道特征的数量,按照以下公式:
Figure BDA0002026234890000161
计算得到xk所在DNS隧道特征的特征权重ck
步骤S430,根据所计算得到的权重,确定权重超过设定权重的DNS隧道特征。
步骤S450,根据所确定的DNS隧道特征为流量数据所对应访问域名生成DNS隧道告警消息,通过DNS隧道告警消息对访问域名进行DNS隧道告警。
通过所计算得到DNS隧道特征的权重,并根据权重超过设定权重的DNS隧道特征生成DNS隧道告警消息,从而,用户可以通过DNS隧道告警消息获知是哪些DNS隧道特征导致该流量数据的马氏距离较大而对该流量数据的访问域名进行告警的,从而保证了DNS隧道告警的可解释性。
在一实施例中,在步骤S450之前,还包括:
根据所配置的误报过滤条件,对待进行告警的访问域名进行过滤。
若访问域名不满足误报过滤条件,则执行步骤S450。
所配置的误报过滤条件可以根据局域网中内部DNS服务器中的实际网络流量来进行配置。
通过所配置的误报过滤条件来过滤掉虽然流量数据来自于异常DNS隧道,但是不存在安全威胁的访问域名,从而提高DNS隧道告警的有效性。
在一应用场景中,虽然终端与访问域名之间通过DNS隧道传输数据,但是所传输的数据对局域网中的终端是无安全威胁的,例如所传输的数据是用于进行反馈的数据。也即是说,该流量数据对应的访问域名对于终端是不存在安全威胁的,那么也不需要对该访问域名进行DNS隧道告警。因此在这一场景中,可以通过配置误报过滤条件,来将不存在安全威胁的访问域名从待进行告警的访问域名中过滤掉。所配置的误报过滤条件,例如白名单,对于白名单上的访问域名不进行DNS隧道告警。
在另一场景中,结合到内部DNS服务器中的实际网络流量,发现:存在安全威胁的流量数据中,引起马氏距离较大的DNS隧道特征为:DNS隧道特征A1、A2和A3,而对于除DNS隧道特征A1、A2和A3外的其它DNS隧道特征,即使权重大于设定权重,也是不存在安全威胁的。因此可以通过配置误报过滤条件,例如指定DNS隧道特征,即在流量数据的指定DNS隧道特征的权重超过设定权重时,才对该流量数据所对应访问域名进行告警,而在流量数据中权重超过设定权重的DNS隧道特征中不包括指定DNS隧道特征时,则不进行告警。
下述为本发明装置实施例,可以用于执行本发明上述检测服务器400执行的DNS隧道检测方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明DNS隧道检测方法实施例。
图14是根据一示例性实施例示出的一种DNS隧道检测装置900的框图,该DNS隧道检测装置900可以用于图1所示实施环境的检测服务器400中,执行上述任一方法实施例的全部或者部分步骤。
如图14所示,该检测服务器400装置900包括但不限于:获取模块110、提取模块130、计算模块150和异常识别模块170。
其中,获取模块110,用于获取所采集的流量数据,流量数据是根据终端对局域网中DNS服务器发起的DNS查询行为生成的。
提取模块130,用于从流量数据中提取得到特征向量。
计算模块150,用于基于DNS隧道检测模型提供的正常流量矩阵,通过DNS隧道检测模型计算特征向量与正常流量矩阵之间的马氏距离,DNS隧道检测模型是通过DNS服务器的历史流量数据进行模型训练生成的。
异常识别模块170,用于根据马氏距离对流量数据进行DNS隧道异常识别。
上述装置中各个模块的功能和作用的实现过程具体详见上述DNS隧道检测方法中对应步骤的实现过程,在此不再赘述。
可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序,例如图2的中央处理器270所执行的存储在存储器250中的程序。
在一实施例中,DNS隧道检测装置还包括但不限于:正常流量矩阵构建模块和DNS隧道检测模型生成模块。
其中,正常流量矩阵构建模块,用于获取DNS服务器的历史流量数据作为训练样本,构建正常流量矩阵。
DNS隧道检测模型生成模块,用于构建基础模型,并根据正常流量矩阵对基础模型进行模型训练,得到DNS隧道检测模型。
在一实施例中,正常流量矩阵构建模块,包括但不限于:第一DNS隧道特征提取单元、第一特征向量生成单元、样本流量矩阵构建单元和去噪处理单元。
其中,第一DNS隧道特征提取单元,用于基于DNS隧道的特点,从每一训练样本中提取得到对应的DNS隧道特征。
第一特征向量生成单元,用于由从每一训练样本所提取的DNS隧道特征,生成训练样本的特征向量。
样本流量矩阵构建单元,用于以每一训练样本的特征向量为行向量,构建得到样本流量矩阵。
去噪处理单元,用于对样本流量矩阵进行去噪处理,获得正常流量矩阵。
在一实施例中,去噪处理单元,包括但不限于:第一矩阵分解单元、误差计算单元和正常流量矩阵构建单元。
其中,第一矩阵分解单元,用于通过Robust PCA算法对样本流量矩阵进行矩阵分解,得到低秩矩阵和稀疏矩阵。
误差计算单元,用于对稀疏矩阵中的行向量进行求和运算,将运算结果作为行向量所对应训练样本的误差。
正常流量矩阵构建单元,用于根据对应误差小于设定误差的行向量构建得到正常流量矩阵。
在一实施例中,DNS隧道检测模型生成模块,包括但不限于:奇异值分解单元、矩阵压缩单元、DNS隧道检测模型获得单元和迭代更新单元。
其中,奇异值分解单元,用于对正常流量矩阵进行奇异值分解,获得对应于正常流量矩阵的分解矩阵。
矩阵压缩单元,用于对分解矩阵进行压缩,得到压缩矩阵,作为基础模型的参数。
DNS隧道检测模型获得单元,用于如果基础模型的参数使基础模型对应的损失函数收敛,则由基础模型收敛得到DNS隧道检测模型。
迭代更新单元,用于如果基础模型的参数使未基础模型对应的损失函数收敛,基于正常流量矩阵对基础模型的参数进行迭代更新。
在一实施例中,DNS隧道检测模型生成模块,还包括但不限于:归一化单元。
其中,归一化单元,用于对正常流量矩阵进行归一化处理,使奇异值分解基于归一化处理后的正常流量矩阵。
在一实施例中,提取模块,包括但不限于:第二DNS隧道特征提取单元和第二特征向量生成单元。
其中,第二DNS隧道特征提取单元,用于基于DNS隧道的特点,从流量数据中提取出若干DNS隧道特征。
第二特征向量生成单元,用于由若干DNS隧道特征生成流量数据的特征向量。
在一实施例中,计算模块,包括但不限于:计算单元。
其中,计算单元,用于基于DNS隧道检测模型,根据公式
Figure BDA0002026234890000201
计算特征向量与正常流量矩阵的马氏距离。
其中,m为特征向量与正常流量矩阵的马氏距离。
y=Vr T(x-μ),x为特征向量;μ为特征向量中DNS隧道特征的均值所构成的均值向量;Vr为矩阵V的前r列矩阵,Sr为由对角矩阵S的前r项对角线元素所构成的对角矩阵,矩阵V和矩阵S是对正常流量矩阵进行奇异值分解得到的分解矩阵,矩阵Vr和Sr是对矩阵V和对角矩阵S进行压缩得到的矩阵。
在一实施例中,异常识别模块,包括但不限于:映射单元、识别单元和告警单元。
其中,映射单元,用于由马氏距离映射得到分数。
识别单元,用于如果分数超过设定分数,则识别出流量数据来自于异常DNS隧道。
告警单元,用于对流量数据所对应访问域名进行DNS隧道告警,访问域名为终端的DNS查询行为所请求查询的域名。
在一实施例中,异常识别模块,还包括但不限于:异常检测单元。
其中,异常检测单元,根据为马氏距离所构建的概率分布函数,对流量数据所对应的马氏距离进行异常检测。
若检测马氏距离为异常马氏距离,则跳转至告警单元。
在一实施例中,告警单元,包括但不限于:权重计算单元、特征确定单元和DNS隧道告警消息生成单元。
其中,权重计算单元,用于根据流量数据的特征向量,计算特征向量中每一DNS隧道特征的权重。
特征确定单元,用于根据所计算得到的权重,确定权重超过设定权重的DNS隧道特征。
DNS隧道告警消息生成单元,用于根据所确定的DNS隧道特征为流量数据所对应访问域名生成DNS隧道告警消息,通过DNS隧道告警消息对访问域名进行DNS隧道告警。
在一实施例中,告警单元,还包括但不限于:过滤单元。
其中,过滤单元,用于根据所配置的误报过滤条件,对待进行告警的访问域名进行过滤。
若访问域名不满足误报过滤条件,则跳转至DNS隧道告警消息生成单元。
上述装置中各个模块/单元的功能和作用的实现过程具体详见上述DNS隧道检测方法中对应步骤的实现过程,在此不再赘述。
可选的,本发明还提供一种DNS隧道检测装置,该DNS隧道检测装置可以用于图1所示实施环境的检测服务器400中,执行以上任一方法实施例所示的DNS隧道检测方法的全部或者部分步骤。如图15所示,DNS隧道检测装置1000包括但不限于:处理器1001及存储器1002。
其中,存储器1002上存储有计算机可读指令,计算机可读指令被处理器1001执行时实现以上方法实施中任一项的方法。
其中,可执行指令被处理器1001执行时实现以上任一实施例中的方法。其中可执行指令比如是计算机可读指令,在处理器1001执行时,处理器通过与存储器之间所连接的通信线/总线1003读取存储于存储器中的计算机可读指令。
该实施例中的处理器执行操作的具体方式已经在有关该DNS隧道检测方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上任一方法实施例的方法。该存储介质例如包括但不限于指令的存储器,上述指令可由服务器的中央处理器执行以完成上述DNS隧道检测方法。
该实施例中的处理器执行操作的具体方式已经在有关该DNS隧道检测方法的实施例中进行了详细描述,此处将不做详细阐述说明。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (13)

1.一种DNS隧道检测方法,其特征在于,所述方法包括:
获取所采集的流量数据,所述流量数据是根据终端对局域网中DNS服务器发起的DNS查询行为生成的;
从所述流量数据中提取得到特征向量;
基于DNS隧道检测模型提供的正常流量矩阵,通过所述DNS隧道检测模型计算所述特征向量与所述正常流量矩阵之间的马氏距离,所述DNS隧道检测模型是按照设定的时间间隔以所述DNS服务器的最新的历史流量数据作为训练样本进行模型训练生成的,所述DNS隧道检测模型提供的正常流量矩阵是基于作为所述DNS隧道检测模型的训练样本的最新的历史流量数据构建得到的;其中,所述DNS隧道检测模型是通过如下过程得到的:获取所述DNS服务器最新的历史流量数据作为训练样本,构建所述正常流量矩阵;构建基础模型,对所述正常流量矩阵进行奇异值分解,获得对应于所述正常流量矩阵的分解矩阵;对所述分解矩阵进行压缩,得到压缩矩阵,作为所述基础模型的参数;如果所述基础模型的参数使所述基础模型对应的损失函数收敛,则由所述基础模型收敛得到所述DNS隧道检测模型;
根据所述马氏距离对所述流量数据进行DNS隧道异常识别,其中,所述根据所述马氏距离对所述流量数据进行DNS隧道异常识别,包括:结合根据马氏距离所映射的分数和对马氏距离进行异常检测结果,对于分数超过设定分数且马氏距离为异常马氏距离的流量数据,进行DNS隧道告警。
2.如权利要求1所述的方法,其特征在于,所述获取所述DNS服务器的最新的历史流量数据作为训练样本,构建所述正常流量矩阵,包括:
基于DNS隧道的特点,从每一所述训练样本中提取得到对应的DNS隧道特征;
由从每一训练样本所提取的DNS隧道特征,生成所述训练样本的特征向量;
以每一训练样本的特征向量为行向量,构建得到样本流量矩阵;
对所述样本流量矩阵进行去噪处理,获得所述正常流量矩阵。
3.如权利要求2所述的方法,其特征在于,所述对所述样本流量矩阵进行去噪处理,获得所述正常流量矩阵,包括:
通过Robust PCA算法对所述样本流量矩阵进行矩阵分解,得到低秩矩阵和稀疏矩阵;
对所述稀疏矩阵中的行向量进行求和运算,将运算结果作为所述行向量所对应训练样本的误差;
根据对应误差小于设定误差的行向量,构建得到所述正常流量矩阵。
4.如权利要求1所述的方法,其特征在于,所述根据所述正常流量矩阵对基础模型进行模型训练,得到所述DNS隧道检测模型,还包括:
对所述正常流量矩阵进行归一化处理,使所述奇异值分解基于归一化处理后的正常流量矩阵。
5.如权利要求1至4任一项所述的方法,其特征在于,所述从所述流量数据中提取得到特征向量,包括:
基于DNS隧道的特点,从所述流量数据中提取出若干DNS隧道特征;
由若干DNS隧道特征生成所述流量数据的特征向量。
6.如权利要求1至4任一项所述的方法,其特征在于,所述基于DNS隧道检测模型提供的正常流量矩阵,计算所述特征向量与所述正常流量矩阵之间的马氏距离,包括:
基于所述DNS隧道检测模型,根据公式
Figure FDA0003279596390000021
计算所述特征向量与所述正常流量矩阵的马氏距离;
其中,m为所述特征向量与所述正常流量矩阵的马氏距离;
y=Vr T(x-μ),x为所述特征向量;μ为所述特征向量中DNS隧道特征的均值所构成的均值向量;Vr为矩阵V的前r列矩阵,Sr为由对角矩阵S的前r项对角线元素所构成的对角矩阵,矩阵V和矩阵S是对所述正常流量矩阵进行奇异值分解得到的分解矩阵,矩阵Vr和Sr是对矩阵V和对角矩阵S进行压缩得到的矩阵。
7.如权利要求1至4任一项所述的方法,其特征在于,所述根据所述马氏距离对所述流量数据进行DNS隧道异常识别,包括:
由所述马氏距离映射得到分数;
如果所述分数超过设定分数,则识别出所述流量数据来自于异常DNS隧道;
对所述流量数据所对应访问域名进行DNS隧道告警,所述访问域名为所述终端的所述DNS查询行为所请求查询的域名。
8.根据权利要求7所述的方法,其特征在于,所述如果所述分数超过设定分数,则识别出所述流量数据来自于异常DNS隧道之后,所述方法还包括:
根据为马氏距离所构建的概率分布函数,对所述流量数据所对应的马氏距离进行异常检测;
若检测所述马氏距离为异常马氏距离,则执行所述对所述流量数据所对应访问域名进行DNS隧道告警的步骤。
9.如权利要求7所述的方法,其特征在于,所述对所述流量数据所对应访问域名进行DNS隧道告警,包括:
根据所述流量数据的特征向量,计算所述特征向量中每一DNS隧道特征的权重;
根据所计算得到的权重,确定权重超过设定权重的DNS隧道特征;
根据所确定的DNS隧道特征为所述流量数据所对应访问域名生成DNS隧道告警消息,通过所述DNS隧道告警消息对所述访问域名进行DNS隧道告警。
10.如权利要求9所述的方法,其特征在于,所述根据所确定的DNS隧道特征为所述流量数据所对应访问域名生成DNS隧道告警消息之前,所述方法还包括:
根据所配置的误报过滤条件,对待进行告警的所述访问域名进行过滤;
若所述访问域名不满足所述误报过滤条件,则执行所述根据所确定的DNS隧道特征为所述流量数据所对应访问域名生成DNS隧道告警消息的步骤。
11.一种DNS隧道检测装置,其特征在于,所述装置包括:
获取模块,用于获取所采集的流量数据,所述流量数据是根据终端对局域网中DNS服务器发起的DNS查询行为生成的;
提取模块,用于从所述流量数据中提取得到特征向量;
计算模块,用于基于DNS隧道检测模型提供的正常流量矩阵,通过所述DNS隧道检测模型计算所述特征向量与所述正常流量矩阵之间的马氏距离,所述DNS隧道检测模型是按照设定的时间间隔以所述DNS服务器的最新的历史流量数据作为训练样本进行模型训练生成的,所述DNS隧道检测模型提供的正常流量矩阵是基于作为所述DNS隧道检测模型的训练样本的最新的历史流量数据构建得到的;其中,所述DNS隧道检测模型是通过如下过程得到的:获取所述DNS服务器最新的历史流量数据作为训练样本,构建所述正常流量矩阵;构建基础模型,对所述正常流量矩阵进行奇异值分解,获得对应于所述正常流量矩阵的分解矩阵;对所述分解矩阵进行压缩,得到压缩矩阵,作为所述基础模型的参数;如果所述基础模型的参数使所述基础模型对应的损失函数收敛,则由所述基础模型收敛得到所述DNS隧道检测模型;
异常识别模块,用于根据所述马氏距离对所述流量数据进行DNS隧道异常识别,其中,所述根据所述马氏距离对所述流量数据进行DNS隧道异常识别,包括:结合根据马氏距离所映射的分数和对马氏距离进行异常检测结果,对于分数超过设定分数且马氏距离为异常马氏距离的流量数据,进行DNS隧道告警。
12.一种DNS隧道检测装置,其特征在于,所述装置包括:
处理器;及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的方法。
CN201910295145.1A 2019-04-12 2019-04-12 Dns隧道检测方法、装置及计算机可读存储介质 Active CN110071829B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910295145.1A CN110071829B (zh) 2019-04-12 2019-04-12 Dns隧道检测方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910295145.1A CN110071829B (zh) 2019-04-12 2019-04-12 Dns隧道检测方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110071829A CN110071829A (zh) 2019-07-30
CN110071829B true CN110071829B (zh) 2022-03-04

Family

ID=67367688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910295145.1A Active CN110071829B (zh) 2019-04-12 2019-04-12 Dns隧道检测方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110071829B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111683096A (zh) * 2020-06-10 2020-09-18 北京天融信网络安全技术有限公司 一种基于域名服务协议的数据处理方法及电子设备
CN112640392B (zh) * 2020-11-20 2022-05-13 华为技术有限公司 一种木马检测方法、装置和设备
CN112953916B (zh) * 2021-01-29 2023-01-03 丁牛信息安全科技(江苏)有限公司 异常检测方法和装置
CN113660212B (zh) * 2021-07-26 2022-11-29 北京天融信网络安全技术有限公司 一种实时检测dns隧道流量的方法及装置
CN113839948B (zh) * 2021-09-26 2023-10-24 新华三信息安全技术有限公司 一种dns隧道流量检测方法、装置、电子设备和存储介质
CN114422476B (zh) * 2021-12-28 2023-09-22 互联网域名***北京市工程研究中心有限公司 防止cname缓存污染的方法及装置
CN115348188B (zh) * 2022-10-18 2023-03-24 安徽华云安科技有限公司 一种dns隧道流量检测方法、装置、存储介质及终端

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702660A (zh) * 2009-11-12 2010-05-05 中国科学院计算技术研究所 异常域名检测方法及***
CN101841435A (zh) * 2010-01-18 2010-09-22 中国科学院计算机网络信息中心 Dns查询流量异常的检测方法、装置和***
CN103001825A (zh) * 2012-11-15 2013-03-27 中国科学院计算机网络信息中心 Dns流量异常的检测方法和***
US9003518B2 (en) * 2010-09-01 2015-04-07 Raytheon Bbn Technologies Corp. Systems and methods for detecting covert DNS tunnels
EP2112800B1 (en) * 2008-04-25 2017-12-27 Deutsche Telekom AG Method and system for enhanced recognition of attacks to computer systems
CN108400972A (zh) * 2018-01-30 2018-08-14 北京兰云科技有限公司 一种异常检测方法和装置
CN109218124A (zh) * 2017-07-06 2019-01-15 杨连群 Dns隧道传输检测方法和装置
CN109474575A (zh) * 2018-09-11 2019-03-15 北京奇安信科技有限公司 一种dns隧道的检测方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103326894B (zh) * 2013-05-29 2016-12-28 深信服网络科技(深圳)有限公司 Dns隧道检测的方法和装置
US9794229B2 (en) * 2015-04-03 2017-10-17 Infoblox Inc. Behavior analysis based DNS tunneling detection and classification framework for network security
US9967227B2 (en) * 2015-11-11 2018-05-08 Fastly, Inc. Enhanced content route selection in content delivery networks
US10462159B2 (en) * 2016-06-22 2019-10-29 Ntt Innovation Institute, Inc. Botnet detection system and method
US10432651B2 (en) * 2017-08-17 2019-10-01 Zscaler, Inc. Systems and methods to detect and monitor DNS tunneling
CN107733851B (zh) * 2017-08-23 2020-05-01 刘胜利 基于通信行为分析的dns隧道木马检测方法
CN109309673A (zh) * 2018-09-18 2019-02-05 南京方恒信息技术有限公司 一种基于神经网络的dns隐蔽信道检测方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2112800B1 (en) * 2008-04-25 2017-12-27 Deutsche Telekom AG Method and system for enhanced recognition of attacks to computer systems
CN101702660A (zh) * 2009-11-12 2010-05-05 中国科学院计算技术研究所 异常域名检测方法及***
CN101841435A (zh) * 2010-01-18 2010-09-22 中国科学院计算机网络信息中心 Dns查询流量异常的检测方法、装置和***
US9003518B2 (en) * 2010-09-01 2015-04-07 Raytheon Bbn Technologies Corp. Systems and methods for detecting covert DNS tunnels
CN103001825A (zh) * 2012-11-15 2013-03-27 中国科学院计算机网络信息中心 Dns流量异常的检测方法和***
CN109218124A (zh) * 2017-07-06 2019-01-15 杨连群 Dns隧道传输检测方法和装置
CN108400972A (zh) * 2018-01-30 2018-08-14 北京兰云科技有限公司 一种异常检测方法和装置
CN109474575A (zh) * 2018-09-11 2019-03-15 北京奇安信科技有限公司 一种dns隧道的检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于DNS分析恶意行为检测的研究;白凡;《电信网技术》;20170815(第8期);全文 *

Also Published As

Publication number Publication date
CN110071829A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110071829B (zh) Dns隧道检测方法、装置及计算机可读存储介质
US9386028B2 (en) System and method for malware detection using multidimensional feature clustering
CN109951477B (zh) 一种基于威胁情报检测网络攻击的方法和装置
US10476753B2 (en) Behavior-based host modeling
US20220210172A1 (en) Detection of anomalies associated with fraudulent access to a service platform
US10367842B2 (en) Peer-based abnormal host detection for enterprise security systems
US11522916B2 (en) System and method for clustering networked electronic devices to counter cyberattacks
CN113904795B (zh) 一种基于网络安全探针的流量快速精确检测方法
CN117216660A (zh) 基于时序网络流量集成异常点和异常集群检测方法及装置
US10476754B2 (en) Behavior-based community detection in enterprise information networks
CN111835681A (zh) 一种大规模流量异常主机检测方法和装置
CN110765329B (zh) 一种数据的聚类方法和电子设备
CN112351018A (zh) Dns隐蔽信道检测方法、装置及设备
Nalavade et al. Evaluation of k-means clustering for effective intrusion detection and prevention in massive network traffic data
CN114189348A (zh) 一种适用于工控网络环境的资产识别方法
CN113706100A (zh) 配电网物联终端设备实时探测识别方法与***
CN111291078B (zh) 一种域名匹配检测方法及装置
JP6930663B2 (ja) デバイス識別装置およびデバイス識別方法
Ferman et al. Machine learning challenges for IOT device fingerprints identification
CN115037532B (zh) 基于异构图的恶意域名检测方法、电子装置及存储介质
JP2019061399A (ja) デバイス識別装置およびデバイス識別方法
EP2991305B1 (en) Apparatus and method for identifying web page for industrial control system
Zhou et al. Fingerprinting IIoT devices through machine learning techniques
WO2018217259A2 (en) Peer-based abnormal host detection for enterprise security systems
CN114189346A (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