CN103327015B - 基于dns缓存探测的恶意代码感染主机规模估计方法 - Google Patents

基于dns缓存探测的恶意代码感染主机规模估计方法 Download PDF

Info

Publication number
CN103327015B
CN103327015B CN201310224336.1A CN201310224336A CN103327015B CN 103327015 B CN103327015 B CN 103327015B CN 201310224336 A CN201310224336 A CN 201310224336A CN 103327015 B CN103327015 B CN 103327015B
Authority
CN
China
Prior art keywords
dns
cache
domain name
time
host
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
CN201310224336.1A
Other languages
English (en)
Other versions
CN103327015A (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201310224336.1A priority Critical patent/CN103327015B/zh
Publication of CN103327015A publication Critical patent/CN103327015A/zh
Application granted granted Critical
Publication of CN103327015B publication Critical patent/CN103327015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于DNS缓存探测的恶意代码感染主机规模估计方法。该方法通过对特定区域范围内DNS解析器进行探测,收集恶意域名在各个DNS解析器中的缓存信息,并基于该信息构建贝叶斯预测滤波模型,估计恶意代码在相应网络域中感染主机的规模。该系统有效地规避了隐私保护、网络授权等传统监控方法面临的问题。

Description

基于DNS缓存探测的恶意代码感染主机规模估计方法
技术领域
本发明涉及网络通信安全领域,特别是涉及一种恶意代码感染主机规模估计方法。
背景技术
恶意代码感染主机已成为黑客产业链中的一个重要环节,受到新闻媒体、安全业界和学术机构的广泛关注。准确有效地获取恶意代码感染主机感染主机的规模,对深入分析和研究其传播机理和对互联网的破坏程度有着重要意义。不幸的是,尽管这些宝贵的信息对于恶意代码感染主机的早期防范和态势评估十分必要,但网络管理员出于某些因素的考虑,往往不愿透露其网络内的恶意代码感染主机感染情况。为了了解恶意代码感染主机的感染情况,一种常用的办法是在用户主机部署信息采集的客户端,例如:采用浏览器插件的形式记录用户主机访问的URL。然而,这种手段面临隐私保护问题。一方面,用户因不愿意被监控而不配合部署该类客户端,这极大地影响了数据的完整性;另一方面,这种主机端监控方式可能被利用作为后门程序,造成严重的安全隐患。
发明内容
针对现有技术的不足,本发明的目的在于提出一种基于DNS缓存探测的特定区域恶意代码感染主机规模估计方法。该方法通过对特定区域范围内DNS解析器进行探测,收集恶意域名在各个DNS解析器中的缓存信息,并基于该信息构建贝叶斯预测滤波模型,估计恶意代码在相应网络域中感染主机的规模。
为了实现以上发明目的,本发明采用以下的技术方案:
一种基于DNS缓存探测的恶意代码感染主机规模估计方法,其特征在于,包括以下步骤:
DNS解析器搜索:在特定区域范围内搜索可用作探测的DNS解析器,搜索得到的每一个DNS解析器对应于一个可以进行恶意代码感染主机规模估计的网络域;
DNS探测:实时探测给定的一个或多个恶意代码感染主机的命令与控制域名在由所述DNS解析器搜索模块提供的DNS解析器中的缓存信息;
恶意代码感染主机规模估计:基于所述DNS探测步骤的输出,采用贝叶斯预测滤波方法估计给定的一个或多个恶意代码在由所述DNS解析器搜索步骤提供的各DNS解析器所对应的网络域中感染主机的规模。
本发明具有以下有益的效果:
首先,无需在用户主机安装任何客户端,不涉及隐私保护也不造成额外的安全问题;其次,无需捕获各个网络的出口流量,无需任何的授权,易于部署和实施;最后,开销适度,提供一种轻量级的网络安全态势监控工具,具有很强的实用性。
附图说明
图1为基于DNS缓存探测的特定区域恶意代码感染主机规模估计系统架构;
图2为DNS解析器搜索模块处理流程图;
图3为DNS缓存探测原理图。
具体实施方式
以下结合附图对本发明的技术方案进行详细说明。
参见图1所示,基于DNS缓存探测的特定区域(例如地理区域,国家、省、市等)恶意代码感染主机规模估计系统架构主要包括DNS解析器搜索模块、DNS探测模块和恶意代码感染主机规模估计模块。
下面,具体介绍各个模块的原理和流程。
如图2所示,DNS解析器搜索模块采用如下步骤,在特定区域范围内搜索可用作探测的DNS解析器。
(1)注册一个DNS域,并在该DNS域下注册域名d。域名d为非
公开域名,即现有的网络应用不能请求该域名。
(2)向特定区域IPv4地址段中所有IP的udp53端口发送递归请求,查询域名d的A记录,并接收响应包。记A1为所有正确解析该递归请求的IP集合,其对应的主机能够提供正确的DNS解析服务。记A2为上述过程中所有向(1)中所述的DNS域的权威服务器做域名d的A记录查询的IP集合,其对应的主机排除了DNS转发器。记A3=A1⌒A2,该集合包含的IP对应能提供正确DNS解析的DNS解析器。
(3)等待域名d在A3中各DNS解析器上缓存期满,即(2)完成后,等待时间t,t≥TTLd。向A3中所有IP的udp53端口发送非递归请求,查询域名d的A记录,并接收响应包。记A4为所有返回查询无结果的IP集合,A4中的IP对应DNS解析器搜索模块输出的DNS解析器,排除了A3中不区分递归请求和非递归请求的DNS解析器。
DNS探测模块的实现建立在DNS解析器的缓存机制之上。
DNS解析器依靠缓存机制改善域名解析的性能。对于一个特定的域名d(如www.google.com),其权威服务器(即ns1.google.com)将为其指定一个长为td的生存时间(TTL)。于是,本地的DNS解析器向权威服务器请求域名d后,会将解析记录在本地缓存td个时间单元。DNS请求分为递归请求和非递归请求两种。递归请求要求DNS解析器完整地应答。为此,如果DNS解析器没有缓存相关的信息,其将向上一级的DNS服务器递归地请求。相反,对于非递归请求,DNS解析器只利用其本地缓存信息而非递归地向上请求。这就是说,如果相关信息没有缓存,DNS解析器将给与否定的应答。因此,发送非递归请求可以用来检查DNS解析器是否缓存域名d。于是,之后用来探测DNS解析器缓存的非递归请求称为缓存探测。
图3阐述了DNS缓存探测技术。DNS请求代表本地网络域内主机对DNS解析器发送的关于域名d的请求。随机变量X代表两个相邻DNS请求的时间间隔。缓存状态展现了相关缓存的动态刷新情况,也即域名d何时在该DNS解析器上缓存。由图2可知,第一个来自本地主机的请求将触发DNS解析器缓存域名d的信息,持续时间为td。DNS探测模块以td为周期持续对该DNS解析器进行缓存探测以获取缓存状态信息。
参见图2、3,当一个缓存探测的到达时间为tp,并且缓存命中,DNS解析器将返回缓存剩余时间T1。于是,可以推测缓存的开始时间,即tr=tp-(td-T1)。令随机变量R代表缓存更新间隔(CRI),也即本次缓存结束到下次缓存开始的时间间隔,Ri=T1i-T1i-1。DNS探测模块的目标即为通过持续不断的缓存探测,获取一系列的Ri,为恶意代码感染主机规模估计模块提供输入。
在具体实现上,DNS探测模块包含如下子模块。
(1)数据包构造解析子模块:构造关于给定的一个或多个恶意域名的非递归A记录查询请求包;解析DNS响应包,提取恶意域名在DNS解析器上的缓存信息。缓存信息由六元组构成,即(探测时间tp,恶意域名d,DNS解析器S,udp报文标识flag,缓存状态,剩余缓存时间T1)。其中“缓存状态”为布尔量,当其为假时“T1”为空。
(2)探测输出子模块:该子模块对数据包构造解析子模块获取的缓存信息进行加工,输出缓存更新间隔序列CRI。该序列中每个元素表示为二元组(ΔTri,ti)。其中ΔTri代表第i个缓存更新间隔CRIii=1,2,…,n,则ΔTri=Tli-Tli-1;ti为CRIi对应的时间,ti=tpi-1+(Tli+Tli-1)/2,下标i表示上述信息是在时刻ti处得到。若所有缓存信息中“缓存状态”均为假,则CRI包含0个元素。该子模块采用基于udp报文标识计数的丢包容错策略,确保输出正确可靠的缓存更新间隔CRI。具体来说,为了兼顾探测效率和发包速度,不保存探测的发包状态,即不进行丢包重传。为保证数据的完整性,DNS探测模块对各恶意域名的探测包添加计数标志。即在DNS非递归请求包的UDP封包的包头标识字段上循环计数,令第i次探测的标识字段的值为flagi,则第i+1次探测的标识字段的值为flagi+1=(flagi+1)Mod65535。根据ΔTri=Tli-Tli-1,又探测包与相应的探测响应包具有相同的标识,故选择连续的(没有丢包)的探测来计算ΔTri。上述连续性的验证由缓存信息由六元组中的udp报文标识flag来保证。
恶意代码感染主机规模估计模块的实现基于贝叶斯预测滤波,采用如下步骤估计给定的一个或多个恶意代码在特定区域范围内各网络域中感染主机的规模:
设恶意域名为dbot,探测的DNS解析器为S。
(1)若探测dbot在S上的缓存记录,其缓存信息的“缓存状态”均为假,也即dbot在S上从未缓存,则dbot对应的恶意代码在S所对应的网络域内感染主机的规模为0;否则,转向步骤(2)。
(2)DNS解析器S上域名dbot的缓存更新间隔序列表示为所述的CRI,序列中每个元素表示为二元组(ΔTri,ti)。进行正反两个方向贝叶斯预测滤波,并利用固定区间最优平滑,估计第i个缓存更新间隔CRIi对应的ti时刻DNS请求到达速率λi,得到即时速度估计序列
(3)对步骤(2)中得到的即时速度估计序列进行分段多项式插值,得到速率曲线则平均请求速率其中tw为t1到tn的时间间隔,t1表示第1次探测响应的时刻,tn表示第n次探测响应的时刻,i=1,2,…,n。
(4)dbot关联的恶意代码在S所对应的网络域内感染主机的规模为其中λc为单个恶意代码对dbot的平均请求速率,为已知量。
步骤(2)中所述的贝叶斯预测滤波,采用如下步骤实现。以正向的贝叶斯预测滤波为例。输入为所述的CRI,序列中每个元素表示为二元组(ΔTri,ti)。
P i = 1 d i 0 · · · 0 · · · 0 · · · 0 1 d i 0 · · · 0 1 , 其中di为CRIi-1到CRIi的时间间隔,di=ti-ti-1。令 H i = 1 0 · · · P i - 1 , 为第i的状态估值,Ci为对应的状态估值均方误差,Ri为混合误差自相关矩阵。贝叶斯预测滤波描述为以下迭代过程:
(1)更新Ri
R i = q i 0 0 1 δ C i - 1 .
(2)状态估计
β ^ i ( H i T R i - 1 H i ) - 1 H i T R i - 1 . y i β ^ i - 1 .
(3)更新Ci
C i = ( H i T R i - 1 - 1 H i ) - 1 .
(4)若i=n,迭代结束;否则i=i+1,转到步骤(1)。
其中yi=E(λi|ΔTri)=2/ΔRri,qi=D(λi|ΔTri)=1/ΔTri 2。δ为折扣因子,该参数选取对历史数据进行估计时,最小化估计误差的值。
以上贝叶斯预测滤波的输出为二元组序列反向的贝叶斯预测滤波与上述过程一致,不同之处在于:输入为所述CRI的倒序序列。
步骤(2)中所述的固定区间最优平滑,采用如下步骤实现。
分别为正向(反向)贝叶斯预测滤波在时刻ti的状态估值,对应的均方误差矩阵分别为 平滑后,状态估值和对应的均方误差矩阵如下所示:
β ^ i = C i W i F - 1 θ i F + C i W i B - 1 θ i B ,
C i = [ W i F - 1 + W i B - 1 ] - 1 .
ti时刻DNS请求到达速率λi的估计值为其中的第一个元素。
以上利用具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种基于DNS缓存探测的恶意代码感染主机规模估计方法,其特征在于,包括以下步骤:
DNS解析器搜索:在特定区域范围内搜索可用作探测的DNS解析器,搜索得到的每一个DNS解析器对应于一个可以进行恶意代码感染主机规模估计的网络域;
DNS探测:实时探测给定的一个或多个恶意代码感染主机的命令与控制域名在由所述DNS解析器搜索步骤提供的DNS解析器中的缓存信息;
恶意代码感染主机规模估计:基于所述DNS探测步骤的输出,采用贝叶斯预测滤波方法估计给定的一个或多个恶意代码在由所述DNS解析器搜索步骤提供的各DNS解析器所对应的网络域中感染主机的规模
其中,所述DNS解析器搜索步骤包括以下步骤:
(21)、注册一个DNS域,并在该DNS域下注册域名d,其中域名d为非公开域名,即现有的网络应用不可能请求该域名;
(22)、向特定区域IPv4地址段中所有IP的Udp53端口发送递归请求,查询域名d的A记录,并接收响应包;其中,记A1为所有正确解析该递归请求的IP集合,其对应的主机能够提供正确的DNS解析服务;记A2为所有向步骤(21)中注册的所述DNS域的权威服务器做域名d的A记录查询的IP集合,其对应的主机排除了DNS转发器;记A3=A1∩A2,该集合包含的IP对应能提供正确DNS解析的DNS解析器;
(23)、等待域名d在A3中各DNS解析器上缓存期满,即步骤(22)完成后等待时间t,其中t≥TTLd,TTLd为域名d的缓存时间,向A3中所有IP的Udp53端口发送非递归请求,查询域名d的A记录,并接收响应包,其中,记A4为所有返回查询无结果的IP集合,A4中的IP对应所述DNS解析器搜索步骤输出的DNS解析器,排除了A3中不区分递归请求和非递归请求的DNS解析器。
2.根据权利要求1所述的恶意代码感染主机规模估计方法,其特征在于,所述DNS探测步骤包括以下步骤:
(31)、构造关于给定的一个或多个恶意域名的非递归A记录查询请求包,并且解析DNS响应包,提取恶意域名在DNS解析器上的缓存信息,所述缓存信息由六元组构成,即探测时间tp、恶意域名d、DNS解析器S、Udp报文标识flag、缓存状态和剩余缓存时间Tl
(32)、对所述步骤(31)获取的缓存信息进行加工,输出缓存更新间隔序列CRI,该序列中每个元素表示为二元组(ΔTri,ti),其中ΔTri代表第i个缓存更新间隔CRIi,i=1,2,...,n,则ti为CRIi对应的时间,
3.根据权利要求2所述的恶意代码感染主机规模估计方法,其特征在于,所述恶意代码感染主机规模估计步骤包括以下步骤:
设恶意域名为dbot,探测的DNS解析器为S;
(41)根据所述DNS探测步骤探测的dbot在S上的缓存记录,判断其缓存信息的“缓存状态”是否均为假,若是,也即dbot在S上从未缓存,则dbot对应的恶意代码在S所对应的网络域内感染主机的规模为0;否则,转向步骤(42);
(42)对所述缓存更新间隔序列CRI进行正反两个方向的贝叶斯预测滤波,并利用固定区间最优平滑,估计第i个缓存更新间隔CRIi对应的ti时刻DNS请求到达速率λi,得到即时速度估计序列
(43)对步骤(42)中得到的即时速度估计序列进行分段多项式插值,得到速率曲线则平均请求速率其中,tw为t1到tn的时间间隔,t1表示第1次探测响应的时刻,tn表示第n次探测响应的时刻,i=1,2,...,n;
(44)计算dbot关联的恶意代码在S所对应的网络域内感染主机的规模其中λc为单个恶意代码对dbot的平均请求速率,为已知量。
4.根据权利要求3所述的恶意代码感染主机规模估计方法,其特征在于,步骤(42)中所述的正向贝叶斯预测滤波具体为:
其中di为CRIi-1到CRIi的时间间隔,di=ti-ti-1;令 为时刻ti的状态估值,Ci为对应的状态估值均方误差,Ri为混合误差自相关矩阵,则贝叶斯预测滤波描述为以下迭代过程:
(1)更新Ri
(2)状态估计
(3)更新Ci
(4)若i=n,迭代结束;否则i=i+1,转到步骤(1);
其中,yi=E(λi|ΔTri)=2/ΔTri,qi=D(λi|ΔTri)=1/ΔTri 2;δ为折扣因子。
5.根据权利要求4所述的恶意代码感染主机规模估计方法,其特征在于,所述步骤(42)中所述的固定区间最优平滑具体为:
分别为正、反向贝叶斯预测滤波在时刻ti的状态估值,对应的均方误差矩阵分别为 则平滑后的状态估值和对应的均方误差矩阵如下:
ti时刻DNS请求到达速率λi的估计值其中,的第一个元素。
CN201310224336.1A 2013-06-06 2013-06-06 基于dns缓存探测的恶意代码感染主机规模估计方法 Active CN103327015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310224336.1A CN103327015B (zh) 2013-06-06 2013-06-06 基于dns缓存探测的恶意代码感染主机规模估计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310224336.1A CN103327015B (zh) 2013-06-06 2013-06-06 基于dns缓存探测的恶意代码感染主机规模估计方法

Publications (2)

Publication Number Publication Date
CN103327015A CN103327015A (zh) 2013-09-25
CN103327015B true CN103327015B (zh) 2016-02-24

Family

ID=49195546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310224336.1A Active CN103327015B (zh) 2013-06-06 2013-06-06 基于dns缓存探测的恶意代码感染主机规模估计方法

Country Status (1)

Country Link
CN (1) CN103327015B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106101104A (zh) * 2016-06-15 2016-11-09 国家计算机网络与信息安全管理中心 一种基于域名解析的恶意域名检测方法及系统
CN108965277B (zh) * 2018-07-02 2022-01-25 杭州安恒信息技术股份有限公司 一种基于dns的感染主机分布监测方法与系统
CN111614617B (zh) * 2020-04-17 2022-05-13 国网浙江省电力有限公司电力科学研究院 一种基于dns缓存探测的物联网终端安全管控方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702660A (zh) * 2009-11-12 2010-05-05 中国科学院计算技术研究所 异常域名检测方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101702660A (zh) * 2009-11-12 2010-05-05 中国科学院计算技术研究所 异常域名检测方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Detecting Mass-Mailing Worm Infected Hosts by Mining DNS Traffic Data;Keisuke Ishibashi;《ACM》;20050826;正文第1页左栏第9-21行,第2页左栏第1行至第6页左栏第15行 *
Peeking Through the Cloud:Client Density Estimation via DNS Cache Probing;Moheeb Abu Rajab 等;《ACM Transactions on Internet Technology》;20101031;正文第3页第9行至正文第19页第13行 *

Also Published As

Publication number Publication date
CN103327015A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
Ensafi et al. Analyzing the Great Firewall of China over space and time
US8990936B2 (en) Method and device for detecting flood attacks
CN102624706B (zh) 一种dns隐蔽信道的检测方法
CN107124434B (zh) 一种dns恶意攻击流量的发现方法及系统
WO2010037261A1 (zh) 网络异常流量分析设备和方法
CN110784383B (zh) Shadowsocks代理网络流量检测方法、存储介质和终端
Jones et al. Detecting DNS root manipulation
KR101548210B1 (ko) 왕복 시간 변화를 이용하여 익명 네트워크를 통한 우회 접속을 탐지하는 방법
CN105681133A (zh) 一种检测dns服务器是否防网络攻击的方法
CN102945340A (zh) 信息对象检测方法及系统
CN103327015B (zh) 基于dns缓存探测的恶意代码感染主机规模估计方法
Jin et al. Design of detecting botnet communication by monitoring direct outbound DNS queries
TW202008749A (zh) 網名過濾方法
EP3465986B1 (en) Method and system for augmenting network traffic flow reports
Rajab et al. Peeking through the cloud: DNS-based estimation and its applications
Konopa et al. Using machine learning for DNS over HTTPS detection
CN103345605B (zh) 一种恶意代码感染主机规模估计系统和方法
CN105681482A (zh) Dns缓存探测误差修正方法
Xiang et al. No-jump-into-latency in china's internet! toward last-mile hop count based ip geo-localization
CN102104506A (zh) 僵尸网络相似性度量的训练和测试方法及相应系统
Vries Detection of DoH tunnelling: Comparing supervised with unsupervised learning
CN105812204A (zh) 一种基于连接度估计的递归域名服务器在线识别方法
CN106027516B (zh) 一种域名服务安全事件评价方法及系统
Rajab et al. Peeking through the cloud: Client density estimation via dns cache probing
CN113766046B (zh) 迭代流量跟踪方法、dns服务器及计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant