基于知识图谱的DNS Query Flood攻击检测研究

Computer Science and Application 计算机科学与应用, 2021, 11(5), 1349-1356
Published Online May 2021 in Hans. /journal/csa
/10.12677/csa.2021.115137
基于知识图谱的DNS Query Flood攻击
检测研究
夏雪菲,蒋铜,李天尧,顾海艳
江苏警官学院计算机信息与网络安全系,江苏南京
收稿日期:2021年4月20日;录用日期:2021年5月14日;发布日期:2021年5月24日
摘要
针对具有成本低廉、破坏性大、防御困难特性的DNS Query Flood攻击,本文构建UDP请求的知识图谱。
基于攻击者通过发送大量伪造源IP地址的小UDP包冲击DNS服务器实施攻击的原理,本文通过计算客户机对服务器的正常访问频率确定发现DNS Query Flood攻击的流量阈值,基于加州大学洛杉矶分校的DNS Query Flood攻击实验数据集,利用Neo4j可视化分析检验通过阈值判定攻击的准确性。结果表明,阈值检测的方法在混合流量中对攻击流量的检测成功率高达95.04%。
关键词
DDoS攻击,DNS Query Flood攻击,知识图谱,流量检测
Research on DNS Query Flood Attack
Detection Based on Knowledge Graph
Xuefei Xia, Tong Jiang, Tianyao Li, Haiyan Gu
Department of Computer Information and Cyber Security, Jiangsu Police Institute, Nanjing Jiangsu
Received: Apr. 20th, 2021; accepted: May 14th, 2021; published: May 24th, 2021
Abstract
Aiming at the low-cost, destructive, and difficult-to-defense DNS Query Flood attack, this paper constructs a knowledge graph of UDP requests. Based on the principle that the attacker attacks the DNS server by sending a large number of small UDP packets with forged source IP addresses, this
夏雪菲等
article calculates the normal access frequency of the client to the server to determine the traffic threshold for discovering the DNS Query Flood attack. Based on the DNS query flood attack expe-riment data set of the University of California, Los Angeles, Neo4j was used to visualize the analy-sis to test the accuracy of the attack by threshold. The results show that the threshold detection method has a detection success rate of 95.04% for attack traffic in mixed traffic.
Keywords
DDoS Attack, DNS Query Flood Attack, Knowledge Graph, Traffic Detection Array Copyright © 2021 by author(s) and Hans Publishers Inc.
知网股东This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
/licenses/by/4.0/
1. 引言
网络技术快速发展的同时,各类网络安全问题层出不穷。根据2021年2月公布的第47次《中国互联网络发展状况统计报告》,2020年,国家信息安全漏洞共享平台收集整理信息安全漏洞20,721个,较2019年同期增长28% [1]。在各类漏洞威胁中,DDoS (Distributed Denial of Service,分布式拒绝服务)攻击以容易实施、难以防范、难以追踪等特点成为最难以防范和抵御的网络攻击类型之一,其中DNS反射放大攻击(DNS Amplification Attack)又是其中较为常见的方式。DNS攻击主要是利用UDP及DNS协议的安全漏洞,以DNS服务器作为攻击流量的反射放大器,实现对目标主机的DDoS攻击。如果DNS服务器被攻击,将会导致大量网站无法被正常访问,对网络安全造成严重威胁。由于计算机根
区文件是公开可访问的,因此顶级域的权威服务器很容易被用来作为反射放大器。
2016年美国Dyn公司遭到了一次与以往不同的DDoS攻击,此次攻击通过Mirai病毒,将攻陷的物联网设备作为“肉鸡”,使得Dyn服务器一下子收到了成千上万条请求导致瘫痪。经调查发现,这是通过DNS的TCP和UDP数据包发起的一次攻击,据称此次攻击手段还不是很成熟,但已经对Dyn内部造成巨大伤害。DNS反射放大攻击是一种具有巨大攻击力的DDoS攻击方式之一,其危害大、成本低、溯源难,被黑产业从业者所喜爱。攻击者只需要付出少量的代价,即可对需要攻击的目标产生巨大的流量冲击,对网络带宽资源、连接资源和计算机资源造成巨大的压力。Dyn公司的DNS服务器受到DNS 反射放大攻击后,导致美国大范围断网,事后的攻击流量分析显示,DNS反射放大攻击是造成美国大范围断网的DDoS攻击的主力之一。
本文通过构建UDP请求的知识图谱,提出运用客户机与服务器的访问频率阈值的方法来检测、发现DNS Query Flood攻击。
2. 研究现状
2.1. DNS Query Flood攻击研究现状
当前DNS服务器由于其本身缺陷导致安全事故频发,针对DNS Query Flood攻击已有不少研究。严芬
等人通过分析一段时间内DNS流量变化情况,得到该时间段内域名解析的成功率,计算出信息熵值,从而判断DNS服务器是否出现异常,进一步利用滑动窗口算法计算源IP地址的信息熵值,与正常情况比较得出结论,并通过实验验证了该检测方法的有效性[2]。NM SAHRI和Koji OKAMURA提出引入一个服务器控制器,负责向先前请求DNS服务的每个主机发送身份验证包,通过验证请求客户端网络回复
夏雪菲等
的“身份验证包”,来确定DNS查询是否为合法的查询或攻击包。经实验证实,该方法可以有效阻止来自僵尸网络的所有DNS查询[3]。Roberto Alonso等人提出了一种新的递归抽取DNS流量来检测DNS Query Flood攻击的方法,建立了一种基于异常的检测机制,给定DNS使用的时间窗口,利用DNS攻击特征捕获DNS社结构,通过观察DNS社结构的变化来判断是否受到DNS攻击[4]。
本文通过对客户机与DNS服务器之间的UDP数据包特征的研究,分析DNS Query Flood攻击流量的判定阈值,以尽早发现可能的攻击行为、减少损失。
2.2. 知识图谱简介
知识图谱是结构化的语义知识库,以符号形式描述物理世界中的概念及其相互关系。其基本组成单位
是“实体–关系–实体”三元组,以及实体及其相关属性–值对,实体间通过关系相互联结,构成网状的知识结构[5]。
相对于现有的字符串模糊匹配方式而言,知识图谱一方面能够通过推理实现概念检索从而改变现有的信息检索方式;另一方面能以图形化方式向用户展示经过分类整理的结构化知识,从而更方便人们对知识体系的理解和规律的发现。
实现知识图谱的相关图数据库软件,可将信息数据化、网格化,用可视化的方式呈现大量数据的关系,极大提高数据的可访问性。在图数据库工具中,通过编程可对数据进行多维度的探索,构建数据之间深层次的关系,以提高人工智能的推理能力。知识图谱的方法在金融数据分析中已广泛应用,实现了从简单的量化模型走向更为复杂的价值判断和风险评估的应用,逐步把经验变成可重用、可演化、可验证、可传播的知识模型,实现了数据到智能化决策的提升。
本文将知识图谱方法应用于网络流量分析,以发现DNS Query Flood攻击,这是一种新的应用尝试。
3. 基于流量知识图谱的DNS攻击检测方法
3.1. DNS Query Flood攻击基本原理
DNS服务器进行域名解析时,是通过UDP报文进行通信的,而UDP协议是一种无连接的服务,在DNS
Query Flood攻击中,攻击者可发送大量伪造源IP地址的小UDP包,通过利用大量UDP小包冲击DNS服务器。
客户端与DNS服务器的UDP交互流程如下:泉州市核酸检测平台
①首先服务器会查是否有对应缓存;
②当没有缓存信息,且该域名无法由该DNS服务器进行解析时,DNS服务器会向上层DNS服务器递归查询域名信息,直到全球互联网的13台根DNS服务器,若仍然无法解析,则没有回应的报文。
此交互过程如图1所示。
图1. 基于UDP的域名解析过程
夏雪菲等
DNS Query Flood攻击的原理如下:根据图1客户端与DNS服务器的UDP交互流程所述,设有用户机A、服务器B、上层服务器C。当攻击发生时,三者之间的通信过程如下:
1) 用户机A对服务器B发动DNS Query Flood攻击;
2) 服务器B向其上层服务器C进行递归查询。
利用知识图谱概念对DNS Query Flood攻击进行图形描述,如图2所示。
Figure 2. Knowledge graph of DNS Query Flood Attack
枫丹白露画派图2. DNS Query Flood攻击的知识图谱
海盗法典
3.2. 流量检测及确定阈值方法
DNS Query Flood攻击难以应对的主要原因在于这是一种攻击流量和正常流量混合在一起的攻击方式。在对于流量进行检测时,如何区分正常流量和攻击流量成为一个难点。
通过图2可直观地发现:在DNS Query Flood攻击过程中,用户机A与服务器B之间、服务器B与服务器C之间的大部分网络流量都是用户机A对服务器B、服务器B对服务器C的单方面数据查询和关联建立。
因此,本文研究提出通过构建历史正常流量知识图谱,对知识图谱中的正常流量进行分类,抽出每一条流量的时间戳,以此计算出正常的源地址对DNS服务器的访问频率,出其中的最大值作为阈值。
确定阈值之后,在实际网络管理过程中,即可以源地址为基础,对流量进行分类,计算出源地址对DNS 服务器的访问频率,并与阈值进行比较,小于阈值的则为正常流量,大于阈值的即作为攻击流量的可疑对象,可进一步跟踪处理。
4. DNS Query Flood检测实验流程
4.1. 实验数据的选取及预处理
本文分析的DDoS攻击流量数据集,来自加州大学洛杉矶分校计算机科学系的网络研究实验室和高级系统研究实验室的数据(lasr.cs.ucla.edu/ddos/traces/)。该数据通过在测试机上运行TFN攻击工具并附加在另一台测试机而生成,同时也存在一些合法流量。实验中,分别抽取了两份攻击流量和两份正常流量作为本文研究的对象,将它们记作attacktrace1,attacktrace2,trace1和trace2。因为DNS Query Flood 攻击中,攻击者可发送大量伪造源IP地址的小UDP包,通过利用大量UDP小包冲击DNS服务器,所以本文主要研究其中UDP数据包,能更好地对DNS Query Flood攻击流量进行检测、防御。
数据预处理时,首先将获取到的格式为txt文件转化为csv格式。
然后根据给出的关于UDP封包的列名信息进行字段处理,生成的数据如表1所示,表中各段含义如下:发送数据包的时间Packet_TIME;掩盖数据包源的IP地址IP_from;掩盖数据包目标的IP地址IP_to;原始源端口PORT_from;原始目标端口PORT_to;数据包的长度LENGTH。
夏雪菲等Table 1. Preprocessed data table
表1. 预处理后的数据表
序号Packet_TIME IP_from IP_to PORT_from PORT_to LENGTH
布莱克斯科尔斯
1 0.015674    1.1.139.167    1.1.236.8 9997    3 1001
2 0.01574    1.1.139.92    1.1.236.8 9996    4 1001
3 0.01582
4    1.1.139.210    1.1.236.8 999
5    5 1001
4 0.01594
5    1.1.139.71    1.1.236.8 9994
6 1001
5 0.016028    1.1.139.142    1.1.236.8 9993 7 1001
6 0.01612    1.1.139.131    1.1.236.8 9992 8 1001
7 0.0162    1.1.139.84    1.1.236.8 9991 9 1001
8 0.016283    1.1.139.80    1.1.236.8 9990 10 1001
……
4.2. 核心代码
本实验中采用Python语言中的py2neo模块和Neo4j可视化数据库进行构造知识图谱。代码整体可分为三个部分,核心部分就是根据正常流量数据计算其阈值。
1) 通过py2neo模块连接Neo4j数据库,并导入数据。
2) 创建函数create_rel,此函数主要功能是以导进来的数据为基础,构建知识图谱。首先以数据中的IP_from (原IP)和IP_to (目的IP)作为图谱中的两个节点,并把Packet_TIME (数据的时间戳)作为IP_from 的一个属性,visit作为连接两个节点的联系,依次构建UDP数据包知识图谱。
3) 以第二步构建好的知识图谱为基础,对IP_from和其时间属性进行统计,并计算IP_from对于DNS 服务器的访问频率。具体流程为:
①通过NodeMatcher查询Neo4j中相同的IP_from地址,并统计其个数,并将其时间属性放进已经定义好的列表attr。
②对IP_from的访问频率进行计算,在创建好的attr列表中寻最大时间和最小时间并求其差值,结合前面统计的IP_from个数计算出IP_from对服务器的访问频率。
③将这部分代码放进一个for循环中,计算每一个IP_from的访问频率,并将每一个频率放进列表Threshod中,出Threshod中的最大值,作为本实验的阈值。
4.3. 阈值的计算
实验中随机抽取攻击流量5000条和正常流量722条,以及2000条混合流量(其中1000条正常流量,1000条攻击流量)。
第一步:构建知识图谱。运用创建函数create_rel构建出DNS访问图谱,构建的图谱如图3所示。
第二步:计算检测阈值。查出知识图谱中每个IP_from的个数,并将同一IP_from的时间属性放到列表diff中,计算最大时间差,结合IP_from的个数来计算相应IP每分钟访问的次数,之后将不同IP每分钟访问次数加入到列表Threshod中,出列表Threshod中的最大值作为检测阈值为28.75721。
第三步:检验阈值的有效性。将5000条攻击流量数据包,按照第一步工作步骤构建攻击流量的知识图谱,之后计算攻击流量每个IP每分钟的访问次数,利用计算出的攻击流量和第二步得出的阈值进行比较,高于阈值为攻击流量,低于阈值的为正常流量。经过实验检验,发现利用阈值28.75721可成功检
木质素
测出绝大部分攻击流量,正确率高达95.04%。

本文发布于:2024-09-23 06:37:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/476833.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:攻击   流量   服务器   图谱   知识   数据   阈值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议