一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

DNS隧道识别方法、DNS隧道识别装置、存储介质与流程

2022-11-23 09:24:47 来源:中国专利 TAG:

dns隧道识别方法、dns隧道识别装置、存储介质
技术领域
1.本发明涉及网络安全技术,特别涉及dns隧道识别方法、dns隧道识别装置、存储介质。


背景技术:

2.现有的dns(域名系统)隧道检测技术,主要采取dga(域名生成方法)域名判断、威胁情报匹配、机器学习判断等方式,具有许多不足,难以满足网络安全的纵深防御体系需要。
3.具体而言,单从域名的信息熵、长度等特征辨别dga域名,进而认为是dns隧道。这种dns隧道检测技术,准确度低,未考虑dns隧道的其他特征。威胁情报匹配则依赖威胁情报的准确度,一旦威胁情报有假或失效,则影响dns隧道判断。在已有的机器学习方式中,特征考虑不全面,准确度低。现有的dns隧道检测技术缺乏高效的正常请求排除机制,存在正常情况误判,易将cdn(内容分发网络)、waf(web应用防火墙)等厂商cname(别名)牵引域名误认为是dns隧道流量。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种能够提高dns隧道识别的准确率的dns隧道识别技术。
5.根据本发明的一个方面,提供一种dns隧道识别方法,包括:
6.dns隧道检测模型建立步骤,模拟dns隧道来传输dns隧道数据,抓取所模拟的dns隧道数据和正常网站的正常dns数据,将所抓取的dns隧道数据和正常dns数据按照倒数第二级域名进行分组,对按照倒数第二级域名分组后的每组数据分别提取特征,将每组数据的特征作为训练数据进行训练而建立dns隧道检测模型;
7.dns隧道疑似度阈值计算步骤,抓取正常dns数据中的与dns隧道数据相似的数据,将所抓取的与dns隧道数据相似的数据按照倒数第二级域名进行分组,对按照倒数第二级域名分组后的每组数据分别提取特征,将每组数据的特征分别输入到所建立的dns隧道检测模型来得到各组数据的输出值,将各组数据的dns隧道检测模型的输出值中的最大值作为dns隧道疑似度第一阈值;以及
8.dns隧道检测步骤,对待检测dns数据提取特征,将待检测dns数据的特征输入到所建立的dns隧道检测模型来得到待检测dns数据的输出值,当待检测dns数据的dns隧道检测模型的输出值高于dns隧道疑似度第一阈值时判断为待检测dns数据是dns隧道数据。
9.根据本发明的另一个方面,提供一种dns隧道识别装置,包括:
10.存储器,其上存储有指令;以及
11.处理器,被配置为执行存储在所述存储器上的指令,以执行上述dns隧道识别方法。
12.根据本发明的另一个方面,提供一种计算机可读存储介质,包括计算机可执行指
令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行上述dns隧道识别方法。
13.根据本发明,通过制造dns隧道数据并抓取、分组、提取特征、训练来建立dns隧道检测模型,并利用正常dns数据中的与dns隧道数据相似的数据计算dns隧道疑似度阈值,从而能够提高dns隧道的检测精度,降低误判率,提升了网络安全的深度检测能力。
附图说明
14.图1是本发明实施方式的dns隧道检测模型的训练过程。
15.图2是本发明实施方式的dns隧道疑似度阈值的计算过程。
16.图3是本发明实施方式中的实时进行dns隧道检测的检测过程。
17.图4是本发明实施方式中的每隔一定时间进行dns隧道检测的检测过程。
18.图5示出了能够实现dns隧道识别装置的计算设备500的示例性配置
具体实施方式
19.下面结合附图,详细说明本发明的具体实施方式。
20.在本发明实施方式中,首先通过训练来建立dns隧道检测模型,然后利用所建立的dns隧道检测模型计算dns隧道疑似度阈值,在实际检测时,利用所建立的dns隧道检测模型和所计算出的dns隧道疑似度阈值,判断待检测dns数据是否为dns隧道。
21.图1是本发明实施方式的dns隧道检测模型的训练过程。
22.步骤s101,模拟dns隧道来传输dns隧道数据,抓取所模拟的dns隧道数据和正常网站的正常dns数据。
23.作为正常网站的正常dns数据,可以抓取例如网络中世界排名前100网站的dns数据。
24.在本实施方式中,可以抓取预定数量的dns隧道数据和预定数量的正常dns数据,也可以抓取预定时间窗内的dns隧道数据和预定时间窗内的正常dns数据,关于抓取的数据数目和时间窗的大小,在此不做限定。
25.步骤s102,将所抓取的dns隧道数据和正常网站的正常dns数据按照倒数第二级域名进行分组,得到按倒数第二级域名分组后的数据。
26.在dns中,域名是由多个点“.”分割的字符串组成,例如,“www.baidu.com”。在本实施方式中,第一个点之前的字符串称为末级域名,第一个点之后的字符串称为倒数第二级域名。例如,当域名是www.baidu.com的情况下,末级域名是“www”,倒数第二级域名是“baidu.com”。
27.步骤s103,对按照倒数第二级域名分组后的每组数据,分别提取特征。在本实施方式中,提取与dns的记录类型有关的特征、与dns请求有关的特征以及与dns响应有关的特征,例如提取如下特征:
28.1)记录类型占比特征
29.记录类型占比特征是与dns的记录类型有关的特征。在本实施方式中,记录类型占比特征是指dns的记录类型各自占所有记录类型的比例。在此,dns的记录类型例如在与dns相关的rfc文档中定义,作为dns的记录类型,例如有a(address,ip地址)、aaaa(ipv6地址)、
ns(name server,域名服务器)、soa(start of authority record,起始授权)、mx(mail exchanger,邮件交换)、cname(canonical name,别名)、srv(服务记录)、cert(证书)等记录类型。在本实施方式中,例如计算a、aaaa、ns、soa、mx、cname、srv、cert记录类型各自占所有记录类型的比例。
30.2)末级域名请求名称信息熵特征
31.末级域名请求名称信息熵特征是与dns请求有关的特征。在本实施方式中,使用公式计算末级域名请求名称信息熵h(u),其中,u为末级域名请求名称,h(u)为末级域名请求名称信息熵,pi为末级域名请求名称u中的第i个字母在末级域名请求名称信息中出现的概率,n为末级域名请求名称u中的字母的总数。
32.3)回复项信息熵特征
33.回复项信息熵特征是与dns响应有关的特征。在本实施方式中,使用公式计算回复项信息熵,其中,w为回复项,k(w)为回复项信息熵,qi为回复项w中的第i个字母在回复项信息中出现的概率,m为回复项中的字母的总数。
34.4)末级请求域名长度特征
35.末级请求域名长度特征是与dns请求有关的特征。在本实施方式中,将使用零均值标准化算法对末级请求域名长度进行处理得到的值作为末级请求域名长度特征。
36.5)回复项长度特征
37.回复项长度特征是与dns响应有关的特征。在本实施方式中,将使用零均值标准化算法对回复项长度进行处理得到的值作为回复项长度特征。
38.6)末级域名响应时间特征
39.末级域名响应时间特征是与dns响应有关的特征。在本实施方式中,末级域名响应时间是指,在单次的末级域名请求中,从收到响应的时间减去发出请求的时间而得到的值。
40.7)末级域名最大ttl(生存时间)特征
41.末级域名最大ttl特征是与dns请求有关的特征。在本实施方式中,获取一个时间窗口内的末级域名的ttl的最大值作为末级域名最大ttl。例如,α
max
=max(αi),αi表示一个时间窗口内的第i个末级域名的ttl,α
max
表示一个时间窗口内的末级域名的ttl的最大值。
42.8)倒数第二级域名查询qps(每秒查询率)特征
43.倒数第二级域名查询qps(每秒查询率)特征是与dns请求有关的特征。在本实施方式中,使用公式计算一个时间窗口内的倒数第二级域名查询qps,其中,sec为时间窗口长度,req为该时间窗口内的请求总数。
44.9)末级域名历史出现率特征
45.末级域名历史出现率特征是与dns请求有关的特征。在本实施方式中,使用公式计算一个时间窗口内的末级域名历史出现率,其中,α为一个时间窗口内的末级域名历史出现率,β为一个时间窗口内的末级域名历史出现总次数,γ为一个时间窗口内的倒数第二级域名历史请求总次数。
46.10)末级域名缓存率特征
47.末级域名缓存率特征是与dns请求有关的特征。在本实施方式中,使用公式
计算一个时间窗口内的末级域名缓存率特征,其中,δ为一个时间窗口内的末级域名缓存率,ε为一个时间窗口内的localdns向上查询总数,(为一个时间窗口内的客户端请求总数。
48.在本实施方式中,提取上述特征中的至少一个特征即可。所提取的特征不限于上述特征,也可以对上述特征进行适当调整,只要能够反映dns的记录类型、请求以及响应的特征,则可以采用任意的形式。
49.步骤s104,将每组数据的特征作为训练数据进行训练而建立dns隧道检测模型。
50.在本实施方式中,可以使用随机森林等机器学习算法或者svm(支持向量机)等传送算法建立dns隧道检测模型。模型的训练方式可以采用现有的任意方式,在此不做特别限定。
51.在本发明实施方式中,在对dns数据进行分组时,按照倒数第二级域名进行分组,这符合dns隧道运行模式,最大程度地达到按可疑dns隧道分组的目的,从而能够更恰当地训练出适于检测dns隧道的dns隧道检测模型。在本发明实施方式中,作为在训练dns隧道检测模型时利用的特征,采用了dns的记录类型、请求以及响应的特征,从而dns特征分析全面,能够更恰当地训练出适于检测dns隧道的dns隧道检测模型。
52.图2是本发明实施方式的dns隧道疑似度阈值的计算过程。
53.步骤s201,抓取正常dns数据中的与dns隧道数据相似的数据。
54.作为与dns隧道数据相似的数据,例如有知名cdn(内容分发网络)、对象存储、waf(web应用防火墙)、scdn(安全内容分发网络)的dns数据、家用ddns(动态域名系统)数据等。
55.在本实施方式中,可以抓取预定数量的与dns隧道数据相似的数据,也可以抓取预定时间窗内的与dns隧道数据相似的数据,关于抓取的数据数目和时间窗的大小,在此不做限定。
56.步骤s202,将所抓取的与dns隧道数据相似的数据按照倒数第二级域名进行分组,得到按倒数第二级域名分组后的数据。
57.步骤s203,对按照倒数第二级域名分组后的每组数据,分别提取特征。所提取的特征同在训练过程中提取的特征,在此不再详细描述。
58.步骤s204,将每组数据的特征分别输入到在训练过程中建立的dns隧道检测模型,将dns隧道检测模型的输出值中的最大值作为dns隧道疑似度阈值p1。
59.步骤s205,设置比所述dns隧道疑似度阈值p1大的dns隧道疑似度阈值p2。
60.dns隧道疑似度阈值p2的设置是可选项。在本发明实施方式中,可以只求出一个dns隧道疑似度阈值p1,也可以在求出dns隧道疑似度阈值p1之后,再设置比dns隧道疑似度阈值p1大的dns隧道疑似度阈值p2。也就是说,在只利用一个dns隧道疑似度阈值p1进行dns隧道检测时,本步骤s205可以省略;在利用两个dns隧道疑似度阈值p1,p2进行dns隧道检测时,执行步骤s205。
61.在本发明实施方式中,利用正常dns数据中的与dns隧道数据相似的数据来计算dns隧道疑似度阈值p1,极大地降低了正常dns数据的误报率,降低了对特殊网络服务的误报率。通过进一步设置比dns隧道疑似度阈值p1大的dns隧道疑似度阈值p2,能够进一步降低正常dns数据的误报率。
62.在本发明实施方式中,利用如图1所示的训练过程所建立的dns隧道检测模型和如图2所示的计算过程所计算出的dns隧道疑似度阈值,判断待检测dns数据是否为dns隧道。
在实际检测dns数据是否为dns隧道时,可以实时进行检测,也可以每隔一定时间进行检测。
63.图3是本发明实施方式中的实时进行dns隧道检测的检测过程。
64.步骤s301,抓取待检测dns数据。
65.步骤s302,判断所抓取的待检测dns数据是否为已知白名单dns数据,如果是,则返回到步骤s301,否则进入步骤s303。
66.在本实施方式中,已知白名单dns数据例如是人工设置的白名单数据。在本实施方式中,步骤s302是可选步骤。通过该可选步骤s302,可以避免将作为白名单数据人工设置的dns隧道数据检测为非法的dns隧道数据。例如在合法或者善意地利用dns隧道来传输数据的情形下,可以设置本步骤s302来避免检测。
67.步骤s303,提取待检测dns数据的特征。所提取的特征同在训练过程中提取的特征,在此不再详细描述。
68.步骤s304,将待检测dns数据的特征输入到在训练过程中建立的dns隧道检测模型,得到输出值。
69.步骤s305,比较dns隧道检测模型的输出值与dns隧道疑似度阈值p1,如果dns隧道检测模型的输出值高于dns隧道疑似度阈值p1,则进入到步骤s306,如果dns隧道检测模型的输出值低于dns隧道疑似度阈值p1,则进入到步骤s308。
70.步骤s306,比较dns隧道检测模型的输出值与dns隧道疑似度阈值p2,如果dns隧道检测模型的输出值高于dns隧道疑似度阈值p2,则进入到步骤s307,如果dns隧道检测模型的输出值低于dns隧道疑似度阈值p2,则进入到步骤s308。
71.步骤s307,判断为待检测dns数据是dns隧道数据。
72.步骤s308,判断为待检测dns数据不是dns隧道数据。
73.在此,步骤s306是可选步骤,即,在本发明实施方式中,可以不执行步骤s306,而是只利用一个dns隧道疑似度阈值p1进行判断,即,在步骤s305中,如果dns隧道检测模型的输出值高于dns隧道疑似度阈值p1,则可以直接进入到步骤s307来判断为待检测dns数据是dns隧道数据。
74.图4是本发明实施方式中的每隔一定时间进行dns隧道检测的检测过程。
75.步骤s401,每隔一定时间,抓取待检测dns数据。
76.在本发明实施方式中,可以每隔预先设定的预定时间,抓取该预定时间内的待检测dns数据,在此对预定时间不做限定。
77.步骤s402,从所抓取的待检测dns数据中先剔除已知白名单dns数据。
78.本步骤s402是可选步骤,已知白名单dns数据例如是人工设置的白名单数据。通过该可选步骤s402,可以避免将作为白名单数据人工设置的dns隧道数据检测为非法的dns隧道数据。例如在合法或者善意地利用dns隧道来传输数据的情形下,可以设置本步骤s402来剔除已知白名单dns数据。
79.步骤s403,将待检测dns数据按照倒数第二级域名进行分组,得到按倒数第二级域名分组后的待检测dns数据。
80.步骤s404,针对每组待检测dns数据,分别提取特征。所提取的特征同在训练过程中提取的特征,在此不再详细描述。
81.步骤s405,将每组待检测dns数据的特征分别输入到在训练过程中建立的dns隧道
检测模型来判断各组待检测dns数据是否为dns隧道数据。具体而言,对于一组待检测dns数据,将该组dns隧道检测模型的输出值与dns隧道疑似度阈值p1进行比较,如果低于dns隧道疑似度阈值p1,则判断为该组待检测dns数据不是dns隧道数据,如果高于dns隧道疑似度阈值p1,则进一步与dns隧道疑似度阈值p2进行比较,如果低于dns隧道疑似度阈值p2,则判断为该组待检测dns数据不是dns隧道数据,如果高于dns隧道疑似度阈值p2,则判断为该组待检测dns数据是dns隧道数据。
82.在本实施方式中,也可以只利用一个dns隧道疑似度阈值p1进行dns隧道数据的判断,即,在某一组dns隧道检测模型的输出值高于dns隧道疑似度阈值p1时,不再与dns隧道疑似度阈值p2进行比较,而可以判断为该组待检测dns数据是dns隧道数据。
83.另外,在图4所示的检测过程中,在步骤s401中每隔一定时间抓取了待检测dns数据,但作为其它实施方式,也可以抓取预定数量的待检测dns数据,在此对预定数量不做限定。
84.根据本实施方式,利用通过如图1所示的训练过程建立的dns隧道检测模型和通过如图2所示的计算过程计算出的dns隧道疑似度阈值判断待检测dns数据是否为dns隧道,从而能够提高dns隧道的检测精度,降低误判率,提升了网络安全的深度检测能力。
85.本发明实施方式的dns隧道识别方法可以通过dns隧道识别装置实现,图5示出了能够实现dns隧道识别装置的计算设备500的示例性配置。
86.计算设备500是能够应用本发明实施方式的dns隧道识别方法的硬件设备的实例。计算设备500可以是被配置为执行处理和/或计算的任何机器。计算设备500可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(pda)、智能电话、车载计算机或以上组合。
87.如图5所示,计算设备500可以包括可以经由一个或多个接口与总线502连接或通信的一个或多个元件。总线502可以包括但不限于,工业标准架构(industry standard architecture,isa)总线、微通道架构(micro channel architecture,mca)总线、增强isa(eisa)总线、视频电子标准协会(vesa)局部总线、以及外设组件互连(pci)总线等。计算设备500可以包括例如一个或多个处理器504、一个或多个输入设备506以及一个或多个输出设备508。一个或多个处理器504可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。处理器504例如可以执行图1、图2、图3、图4中的步骤,被配置为实现图1~4中的步骤的功能。输入设备506可以是能够向计算设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备508可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
88.计算设备500还可以包括或被连接至非暂态存储设备514,该非暂态存储设备514可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。计算设备500还可以包括随机存取存储器(ram)510和只读存储器(rom)512。rom 512可以以非易失性方式存储待执行的程序、实用程序或进程。ram 510可提供易失性数据存储,并存储与计算设备500的操作相关的指令。计算设备
500还可包括耦接至数据链路518的网络/总线接口516。网络/总线接口516可以是能够启用与外部装置和/或网络通信的任何种类的设备或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙tm设备、802.11设备、wifi设备、wimax设备、蜂窝通信设施等)。
89.本发明可以被实现为装置、系统、集成电路和非瞬时性计算机可读介质上的计算机程序的任何组合。可以将一个或多个处理器实现为执行本公开中描述的部分或全部功能的集成电路(ic)、专用集成电路(asic)或大规模集成电路(lsi)、系统lsi,超级lsi或超lsi组件。
90.本发明包括软件、应用程序、计算机程序或算法的使用。可以将软件、应用程序、计算机程序或算法存储在非瞬时性计算机可读介质上,以使诸如一个或多个处理器的计算机执行上述步骤和附图中描述的步骤。例如,一个或多个存储器以可执行指令存储软件或算法,并且一个或多个处理器可以关联执行该软件或算法的一组指令,以根据本发明中描述的实施例提供各种功能。
91.软件和计算机程序(也可以称为程序、软件应用程序、应用程序、组件或代码)包括用于可编程处理器的机器指令,并且可以以高级过程性语言、面向对象编程语言、功能性编程语言、逻辑编程语言或汇编语言或机器语言来实现。术语“计算机可读介质”是指用于向可编程数据处理器提供机器指令或数据的任何计算机程序产品、装置或设备,例如磁盘、光盘、固态存储设备、存储器和可编程逻辑设备(pld),包括将机器指令作为计算机可读信号来接收的计算机可读介质。
92.举例来说,计算机可读介质可以包括动态随机存取存储器(dram)、随机存取存储器(ram)、只读存储器(rom)、电可擦只读存储器(eeprom)、紧凑盘只读存储器(cd-rom)或其他光盘存储设备、磁盘存储设备或其他磁性存储设备,或可以用于以指令或数据结构的形式携带或存储所需的计算机可读程序代码以及能够被通用或专用计算机或通用或专用处理器访问的任何其它介质。如本文中所使用的,磁盘或盘包括紧凑盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘和蓝光盘,其中磁盘通常以磁性方式复制数据,而盘则通过激光以光学方式复制数据。上述的组合也包括在计算机可读介质的范围内。
93.提供本发明的主题作为用于执行本公开中描述的特征的装置、系统、方法和程序的示例。但是,除了上述特征之外,还可以预期其他特征或变型。可以预期的是,可以用可能代替任何上述实现的技术的任何新出现的技术来完成本发明的部件和功能的实现。
94.另外,以上描述提供了示例,而不限制权利要求中阐述的范围、适用性或配置。在不脱离本发明的精神和范围的情况下,可以对所讨论的元件的功能和布置进行改变。各种实施例可以适当地省略、替代或添加各种过程或部件。例如,关于某些实施例描述的特征可以在其他实施例中被结合。
95.类似地,虽然在附图中以特定次序描绘了操作,但是这不应该被理解为要求以所示的特定次序或者以顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。
96.以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献