APP下载

基于服务群的DNS安全抗毁技术研究*

2019-09-04马晓旭

通信技术 2019年7期
关键词:投毒报文协商

冷 冰 ,马晓旭 ,刘 坚

(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.中国电子科技网络信息安全有限公司,四川 成都 610041)

0 引 言

域名系统(Domain Name System,DNS)是互联网的关键基础设施,保证其安全可靠运行对整个互联网有举足轻重的作用[1]。

DNS安全事件层出不穷[2]。2009年5月,暴风影音的域名发生无法解析故障,造成对DNS查询服务器的分布式拒绝服务攻击,导致多地的网络服务中断。2010年3月,维基百科在服务切换时将DNS配置错误,致使数小时内用户无法访问其网站。2014年1月21日,由于DNS服务器遭到域名劫持,中国互联网大面积瘫痪,约三分之二的网站和用户受到影响。

DNS存在的安全隐患主要表现在[3]:

(1)协议设计存在较大的脆弱性,缺乏必要的安全性考虑;

(2)人为错误因素使得配置故障普遍存在,系统冗余性大大降低,单点失效问题严重。

为增强DNS系统的可靠性和安全性,通常采用的措施是主从备份及部署防火墙[4]。但这类打补丁的措施难以应对大规模分布式拒绝服务(Distributed Denial of Service,DDoS)攻击及缓冲区投毒等针对性的黑客攻击。

针对现有系统的不足,本文提出了一种新型DNS安全抗毁体系架构,并通过仿真验证了其抗硬摧毁和软攻击的能力。

1 技术原理

采用全分布式无中心架构,将DNS服务节点部署于整个网络中,通过群建立和群协商两个协议形成DNS服务群。由服务群中的多台服务节点共同参与、相互协作来响应用户的DNS查询请求。

在本安全抗毁体系架构中,DNS服务不由单一服务节点提供,且不存在中心及固定拓扑,因此难以被彻底摧毁,保证了服务的可用性。

另外,整个系统通过多个节点共同协商,对外提供一致的、完整的服务,确保了DNS查询结果的正确性。

为使DNS系统不仅具备容忍自然灾害、管理员错误配置等良性错误的能力,还能有效抵御黑客恶意攻击,需采用能容忍拜占庭错误(Byzantine Fault Tolerance,BFT)的算法[5]。

2 系统架构

基于服务群的DNS安全抗毁体系架构如图1所示。该体系结构由分布于整个网络的DNS服务节点组成。所有DNS服务节点组成一个无中心网络,对外表现为一个由服务呈现、服务生成、服务重构、服务部署以及服务管理评估五部分组成的DNS系统。

图1 基于服务群的DNS安全抗毁体系架构

(1)服务呈现:包括服务规范和服务描述,确定DNS服务的协议规范,对DNS服务的特征、服务资源和服务运行的状态进行描述,以确保服务以及服务调用结果的一致性。

(2)服务生成:包括服务协商和响应判决,规范如何通过节点间的共同协商和汇聚计算,确保服务调用的可用性与服务结果的正确性。

(3)服务重构:包括视图获取和视图更新,在服务节点因攻击或损坏不具备对外提供服务能力时,可以通过服务视图的更新来确保整个系统可以持续对外提供可用、正确的服务。

(4)服务部署:包括资源分配和签名共享,对整个服务网络的资源进行分配,并可根据服务抗毁评价的结果对服务资源进行动态调整。

(5)服务管理评价:包括节点评估、系统评估、动态监测以及服务恢复。对DNS服务抗毁体系进行评价,通过定性和定量地对其服务能力进行评定,为管理员提供资源部署与调整的依据。

DNS服务群的构建和运行依赖于服务群协议(Service Group Protocol,SGP)。

3 服务群协议

服务群协议包括群建立和群协商两部分。群建立协议用于构建一个动态的服务群;群协商协议用于对用户的DNS请求进行汇聚计算,综合多个服务节点计算结果,向用户返回一致的DNS查询结果。服务群协议运行示意图如图2所示。

图2 服务群协议运行示意图

(1)群建立:提供服务的多个节点通过群建立协议共同协商出一个统一的服务群组成,如图2中的实线所示。

(2)获取群:用户提出服务请求前,需要先获得群。用户先将请求发送至服务网络的不同节点,各个服务节点收到请求并对其进行反馈,用户对不同节点反馈的信息进行验证,得到当前正确的服务群,该过程如图2中的点划线所示。

(3)响应服务请求:用户将DNS查询请求发送给群中任一服务节点(该节点又被称为代理节点),代理节点将该请求组播给当前群中的其它服务节点,收到服务请求的节点各自独立运行DNS查询请求,最后协商出正确的服务结果,由代理节点将结果返回给用户。该过程如图2中的虚线所示。

在描述具体协议之前需要定义一些符号和术语:

X→Y:(data):X发送报文(data)给Y;

SigKi(data):使用Ki对数据包(data)进行签名;

S:服务群集合;

si:服务群集合中的一个服务节点i;

t:时间戳;

u:用户;

AN:服务请求代理节点;

Fmal:系统允许的恶意或失效用户最大值;

Nmin:最小决策集,得出正确结果所需的最少节点数。

3.1 群建立协议

按照Kihlstrom等[6]的证明,要想得出正确的DNS查询结果,其最小决策集需要满足:Nmin>3Fmal,即参与共同计算的节点数必须大于恶意或失效节点数的三倍。

研究者们提出并设计了众多群成员协议用以保证分布式系统中所有正确节点对群达成一致,为群建立协议设计提供了有益参考[7-9]。

群建立协议流程如下:

(1)当si∈S检测到a∉S想加入群中,则发送hello报文给S中所有节点:

(2)si∈S收到不同节点发来的[Fmal+1]个hello报文后,验证各报文签名正确性,将自己对节点a的监测结果result封装到ack报文中发送给S中所有节点:

(3)si∈S收到不同节点发来的Nmin个ack报文后,验证各报文签名正确后,使用约定的拜占庭错误容忍算法计算出正确结果,更新自己的群视图S。

协议中收到不同节点发来的[Fmal+1]个hello报文后才开始响应是确保至少有一个善意的用户提出了正确的群更新请求。

同样,收到不同节点发来的Nmin个ack报文后才开始协商计算也是为了确保拜占庭错误容忍算法能计算出正确的结果。

3.2 获取群协议

系统管理员在初始化客户端时为用户配置初始服务群S,用户利用最小决策集策略来更新群成员。该协议具体流程如下:

(1)用户u读取配置文件,获取服务群S;

(2)用户从群S中随机选择n个服务节点(n>Nmin),并向n个节点发送获取群成员的请求;

(3)群S中收到群成员获取请求的服务节点对用户u进行响应,将最新的群成员发送给用户u;

(4)用户u收到多个响应结果,使用拜占庭错误容忍算法得出当前最新群Snew。

3.3 群协商协议

用户u获得最新群成员后,可随机选取群中的一个服务节点作为服务请求代理节点(Agent Node,AN)。当用户需要DNS服务时,将请求发送至AN。AN通过组播的形式将用户请求发送给当前群中的其他服务节点,各服务节点独立执行DNS查询,并将结果返回给AN。

协议具体流程如下:

(1)用户u在群成员中随机选取一个服务节点AN发送URL查询request报文;

(2)AN验证request报文签名,将该请求组播给至少Nmin个服务节点;

(3)服务节点si接收到request报文,验证request报文签名后,执行DNS查询,并将查询结果用resolution报文组播给参与服务的节点;

(4)AN接收到来自Nmin个不同节点的resolution报文后,使用拜占庭错误容忍算法计算出正确结果,将该结果返回给用户u。

4 仿真实验

利用OPNET建立相应仿真模型,设定硬件失效和软攻击场景,分析评估本文提出的DNS体系架构的安全抗毁能力。

4.1 仿真模型

4.1.1 用户DNS请求模型

用户DNS请求模型模拟了用户向服务节点发送DNS服务请求,并接收服务响应的全过程。用户DNS请求模型的有限状态机如图3所示。

图3 用户DNS请求模型有限状态机

4.1.2 群建立协议模型

群建立协议模型模拟了部署在网络中的各个DNS服务节点,通过广播协议数据包,在全网形成统一服务群的流程,同时也模拟了各个服务节点加入、离开群时维护群完整性的流程。群建立协议模型的有限状态机如图4所示。

图4 群建立协议有限状态机

4.1.3 群协商协议模型

群协商模型模拟了DNS服务节点接收到用户的DNS查询请求后转发请求、独立计算、汇聚计算结果、反馈响应数据的全流程。群协商模型的有限状态机如图5所示。

图5 群协商协议有限状态机

4.1.4 网络攻击设备模型

网络攻击设备用于模拟网络中的针对DNS服务的恶意攻击行为。根据实际情况,把攻击分为两大类:硬摧毁和软攻击。

硬摧毁是由于硬件故障、人为和自然灾害等因素造成的,在极短的时间内使节点硬件毁坏,服务能力丧失。在本仿真实验中,DNS服务节点一旦遭受到硬摧毁,该节点立即丧失服务能力。硬摧毁相关的仿真参数有攻击目标分布和攻击目标数量。其中,攻击目标分布描述了网络中哪些节点受到硬摧毁,攻击目标数量则描述了受摧毁的服务节点数量。

软攻击通常是由于恶意攻击和软件故障等因素造成的,其对DNS服务的破坏是随时间变化的。本仿真实验设定了两类典型的DNS攻击:缓冲区投毒攻击和DDoS攻击。

缓冲区投毒攻击:该类型攻击使被攻击节点恶意输出错误DNS查询结果。与该类型相关的仿真参数是攻击目标分布、攻击目标数量和相对攻击时间。其中攻击目标分布描述了网络中哪些节点受到了攻击;攻击目标数量则描述了受攻击的服务节点数量;相对攻击时间是指攻击对节点造成的破坏时间。

DDoS攻击:该类型攻击造成节点对外提供服务的能力下降,但服务结果正确。与该类型相关的仿真参数是攻击目标分布、攻击目标数量、相对攻击时间和攻击强度。其中,攻击目标分布描述了网络中哪些节点受到了攻击;攻击目标数量则描述了受攻击的服务节点数量;相对攻击时间是指攻击对节点造成的破坏时间;攻击强度是指攻击对节点影响的程度。在本次仿真实验中,攻击强度设定了4个等级:1级攻击强度将使节点服务能力降低10%,2级降低20%,3级降低40%,4级降低80%。

4.2 仿真场景

在本仿真实验过程中,整个网络中共部署1 000个DNS服务节点,分别分布在20个子网中,每个子网中部署50个服务节点。子网中的服务节点之间通过交换机互连,各个子网之间通过路由器互连。仿真网络中部署了一个网络攻击设备节点。其子网拓扑如图6所示。在仿真实验中,通过改变攻击种类、攻击范围、攻击强度等参数,来验证DNS系统的抗毁效能。

图6 子网拓扑图

4.3 仿真结果及结论

4.3.1 DNS抗硬摧毁试验结果

如图7所示:随着网络中被摧毁的服务节点的数量的增加,DNS服务正确率维持在100%;服务响应时间在很小的范围内波动。当全网采用“主备式”服务抗毁机制时,DNS服务响应时间约为1.027 s,与本文方法的服务响应时间差别不大。

图7 DNS抗硬摧毁试验数据趋势

仿真结果说明,随着对网络硬摧毁程度的增加,DNS系统仍然能够正常为用户提供服务,且与传统的主备模式相比,在响应时间上未有明显增加。

4.3.2 DNS抗软攻击试验结果

如图8(a)所示,当网络中被缓冲区投毒攻击的服务节点数量不超过全网的20%时,全网的服务正确率维持在100%,当网络中被缓冲区投毒攻击的服务节点数量超过20%后,全网的服务正确率随着被缓冲区投毒攻击的服务节点数量的增加而逐步下降。如图8(c)所示,随着网络中被DDoS攻击的服务节点数量的增加,全网服务正确率始终保持100%。如图8(b)、图8(d)所示,随着软攻击的服务节点数量的增加、攻击强度增大,全网的服务响应时间仅在小范围内波动。

图8 DNS抗软攻击试验数据趋势

4.3.3 仿真结论

通过对以上仿真实验和试验数据进行分析,得出如下结论:

(1)本文方法具有较强的抵抗硬摧毁能力,当网络中的服务节点被摧毁的数量达到全网的90%时,网络中剩余的服务节点仍然能够正常为用户提供服务。与传统的主备模式相比,在未明显增加服务响应时间的情况下,大幅提高了DNS服务的可用性。

(2)本文方法对两类软攻击都具备一定的抵御能力,当网络的软攻击发生在网络中的局部范围时,本文方法能够保证对用户服务请求响应的正确率达到100%。而传统的主备模式无法有效地检测出缓冲区投毒攻击,从而导致用户得到错误的DNS查询结果。

(3)当网络中发生的软攻击扩散到整个网络后,本文方法对软攻击的抵抗能力会随着攻击规模的扩大,攻击强度的增强以及网络中用户数量的增加而降低,服务请求响应正确率低于100%。造成该缺陷的原因在于:服务群中没有包含网络中被攻击节点的信息,不能及时将恶意节点剔除出群。

后续,我们将针对该缺陷做进一步研究。可以考虑为服务群增加恶意节点监测能力,通过改进的选举算法将恶意节点快速剔除。

5 结 语

DNS安全抗毁体系结构是域名服务安全运行的重要保障。针对现有DNS系统存在安全缺陷,本文提出了一种基于群服务的DNS安全抗毁体系架构,该架构采用多个独立的DNS服务节点对用户的DNS请求进行协同响应,利用拜占庭错误容忍算法抵御缓冲区投毒等恶意DNS攻击,确保向用户返回正确的DNS查询结果。仿真实验表明,与传统的主备模式相比,本文方法大大提高了DNS服务的可用性与正确性,具备较强的服务安全抗毁能力。

猜你喜欢

投毒报文协商
基于J1939 协议多包报文的时序研究及应用
双周协商座谈会:新时代政协协商制度创新的重要载体
食物中毒案
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
Rheological Properties and Microstructure of Printed Circuit Boards Modifed Asphalt
因妒成恨“投毒” 女博士悲产畸子
投毒凶手
协商民主的实效性