基于流量分析发现未知UDP反射放大攻击的方法

文档序号:29455121发布日期:2022-03-30 12:35阅读:360来源:国知局
基于流量分析发现未知UDP反射放大攻击的方法
基于流量分析发现未知udp反射放大攻击的方法
技术领域
1.本发明属于网络安全技术领域,具体涉及一种基于流量分析发现未知udp反射放大攻击的方法。


背景技术:

2.随着近年来大量社交、娱乐、购物和工作等场景从线下转移到线上,ddos攻击次数也呈逐年升高趋势。其中udp反射攻击仍然占据主流,占总攻击数量的88%,coap、ws-dd和arms等新型udp反射攻击手法开始涌现。
3.2014年,某国cdn服务提供商遭受了峰值达到400gbit/s的反射型ddos攻击,攻击者利用ntp协议中的monlist命令将流量放大了近200倍。2018年,全球知名的某软件代码托管网站遭受了峰值达到1.35tbit/s的反射型ddos攻击,攻击者利用memcached中的漏洞将流量放大了近51000倍。2020年,某公司遭受到了ddos攻击,攻击手法主要为cldap反射,此次攻击达到2.3tbit/s,为有史以来最猛烈的攻击。
4.udp反射攻击是利用有漏洞的应用层服务协议发起的ddos攻击,通过伪造地址来隐藏攻击源。由于无需组建僵尸网络、操作更加简单、攻击源不易被跟踪,udp反射攻击给安全事件的溯源和响应处置造成了很大困难。
5.早先,udp反射放大攻击的主要发现手段有直接分析,研究人员对广泛应用的协议和公共服务进行系统性分析,判断是否存在udp反射放大的可能,其过程类似于漏洞挖掘中的代码分析,对其执行过程进行逻辑分析然后验证判断。直接分析以主动分析为主,能够针对性地判断出某协议是否具备反射放大潜能。但由于网络协议不断更新发展,特别是iot设备的广泛应用,伴随着更多非网络公共服务的出现,而这些服务在设计时对的安全性的标准较低,研究人员逐一分析它们需要耗费大量精力,因此通过该方法发现新反射放大协议变得越来越困难。早在2001年,vern paxson就提出了假冒源地址的ddos攻击模型,并且分析了icmp、tcp、udp、dns、snmp协议在上述攻击模型下,由于协议中的某些字段存在设计缺陷,存在被用于流量的放大的风险。2014年2月,christian rossow等人系统地对snmp、dns、ntp、ssdp、char gen等14种udp协议进行了系统性的研究,认为这些协议存在实施反射攻击的可能。
6.由于主动分析协议需要花费较大的研究成本,且效率低下。因此,近年来对udp反射放大攻击协议的更新主要来源于记录到的网络攻击后的分析。通过入侵检测系统记录的攻击数据,来复盘攻击细节和过程,并对其展开相关拓展研究。2017年11月,360网络安全研究院报告称,cldap现在是第三大最常见的drdos攻击,仅次于dns和ntp攻击。2018年2月,senki分析了基于memcached的反射ddos攻击(通过udp/tcp端口11211),并且具有前所未有的放大系数。2019年9月,akamai报告了利用ws-discovery协议的ddos攻击行为(通过tcp/udp端口3702)。上述根据攻击行为痕迹来发现攻击手段的方法虽准确有效,且成本较低。但它存在被动性和滞后性,只有在受到网络攻击后才能有所发现。
7.当前主要采用的两种分析方法,直接分析法基于原理推断并设计测试来判断协议
是否存在反射放大攻击潜在危险,但需要消耗大量精力,且只能判断已研究过的协议,对于新产生的协议无法判断。而基于网络攻击痕迹的分析法,虽然低成本且高度准确地还原出反射放大攻击细节,但发生在网络攻击之后,属于“亡羊补牢”,无法提前避免损失,缺乏主动性。
8.因此,我们希望通过更加积极主动的策略来最大程度地预防udp反射放大攻击,先发制人以减少ddos攻击带来的损失。


技术实现要素:

9.针对目前直接分析协议存在流量放大风险、存在实施反射攻击的可能,而根据攻击痕迹分析存在被动型和滞后性存在的缺陷和问题,本发明提供一种基于流量分析发现未知udp反射放大攻击的方法。
10.本发明解决其技术问题所采用的方案是:一种基于流量分析发现未知udp反射放大攻击的方法,包括以下步骤:
11.步骤一、从日常流量中筛选出符合反射放大特性的流量数据,将获取的流量数据报文按照地址对应关系进行分组,将每两个地址间的全部通信流量按照时间顺序添加到同一分组,并提取报文长度;
12.步骤二、将同一方向的多个连续数据包视为一次回复流量,计算回复流量大小;以回复流量的前一个数据包作为触发包,计算触发包长度作为请求流量大小,根据回复流量与请求流量计算放大系数f,放大系数f为一次反射攻击中回复流量与请求流量的比值;根据放大系数f与设定的放大阈值et的关系判断流量数据是否具有放大特性;
13.若f﹥et,则流量数据具有放大特性,反之,则不具有放大特性;
14.步骤三、将从流量中提取的具备放大特性的数据包样本采用直接重放发包验证的方法,提取触发包的udp载荷作为payload,用设备本机作为源重新发送该udp请求包到目的ip,并接收对方的回复数据,判断是无响应还是有响应;
15.对于无响应的结果,不予处理;
16.对于有响应的结果,统计收到的回复数据大小,计算回复数据与请求数据的比值f’,根据f’与设定的反射放大阈值rt的关系判断是否满足反射放大条件,
17.若f’﹥rt,则流量数据具有反射放大特性;反之则不具有。
18.上述的基于流量分析发现未知udp反射放大攻击的方法,步骤一中选择在电信骨干网络节点、子网网关出入口以及包含大量物联网设备的局域网环境中获取流量样本。
19.上述的基于流量分析发现未知udp反射放大攻击的方法,步骤一中在数据获取时还包括设置捕获规则,过滤掉已知的udp反射放大服务和已经确定无法反射放大的udp服务。
20.上述的基于流量分析发现未知udp反射放大攻击的方法,步骤三中有响应包括正常响应和异常响应。
21.上述的基于流量分析发现未知udp反射放大攻击的方法,还包括多包触发反射验证,方法如下:
22.首先,将回复流量前的所有数据包分别按时间顺序提取载荷,以本机作为源按序重新发送,统计收到的回复数据大小,若实际回复流量与估算的回复流量大小相近,或是回
复流量与请求流量之比仍大于放大阈值et,则判断出数据包中包含可以触发反射放大攻击的请求流量;
23.然后,对于满足可反射性的,将所有报文按时间排列的组合方式依次进行反射性测试,筛选出反射系数f’最大的数据样本,若其大于反射放大阈值rt,就将其添加到输出结果中。
24.本发明的有益效果:
25.本发明的方法结合了当前直接分析和基于网络攻击痕迹分析方法的优点,通过对日常流量的检测提取存在反射放大可能的协议,并自动进行测试;采用直接重放发包验证的方法能够最大程度的减少漏报率,增加发现反射放大行为的可能。相比于直接分析具有更强的适应性,能够检测出流量中包含的所有具有反射放大特种的协议,而不必逐一判断,极大地提升效率;相比于根据攻击痕迹分析,本方法将检测分析的场景从受到网络攻击后提前到了日常流量中,做到提前发现,尽最大程度减小网络攻击带来的损失。
附图说明
26.图1为本发明检测过程示意图。
27.图2为本发明放大性判断示意图。
28.图3为本发明反射性验证示意图。
具体实施方式
29.本发明从反射放大流量的生成场景来考虑,其主要有三个来源:一是用户正常使用服务时产生,流量层面体现出反射放大的特点;二是攻击者在执行ddos之前,必然会针对该服务进行资源扫描,以收集其可利用的反射资源,同时也必然会执行小规模的反射测试以保证其反射攻击的有效性;三是攻击者执行ddos时,会产生大量udp反射流量,这是最明显也是最容易被检测到的,也是安全机构大多采用的发现udp反射放大攻击的方法。
30.本发明主要针对前两种场景,采取主被动结合分析的方式,以大规模互联网流量为测试源,通过流量分析的方法,提取具备udp反射放大特性的流量样本,用于发现存在的未公开udp反射放大协议。该方法分析筛选出存在反射放大特点的流量样本,再根据该样本进一步确认其所属服务,并分析服务过程和反射细节。
31.下面结合附图和实施例对本发明进一步说明。
32.实施例1:本发明提供一种基于流量分析发现未知udp反射放大攻击的方法,该方法包括以下步骤:
33.步骤一、数据获取:从日常流量中筛选出符合反射放大特性的流量数据;其中流量来源尽量丰富多样,优先选择在电信骨干网络节点、子网网关出入口以及包含大量物联网设备的局域网环境中获取流量样本。
34.为了检测到未知的反射放大行为,在流量获取时,设置合适的捕获规则,过滤掉已知的udp反射放大服务,避免已知服务对检测结果造成干扰;另外对于已经确定无法反射放大的udp服务也可以将其过滤掉,以减少在判定过程中的数据处理消耗。
35.步骤二、数据预处理:将获取的流量数据报文按照地址对应关系进行分组,将每两个地址间的全部通信流量按照时间顺序添加到同一分组,并提取报文长度。其中地址a到地
址b的报文标记为正向流量,则b到a的报文标记为反向流量。
36.步骤三、放大特性判断:
37.所有满足反射放大特性的服务,从流量上看,其回复流量必然远大于请求流量。而请求流量和与之对应的回复流量的界定问题则是难点所在。由于涉及的协议类型多且复杂,且考虑大量未知协议的存在。使用传统的内容识别判断或是当下比较流行的深度学习算法,均无法准确判断出上下文关系。因此在对分组内的报文进行具体分析时,我们采用最大化预判的原则,即将同一方向的连续报文与其后相反方向的连续报文视作一次“交互”,即认为“交互”中正方向的某些报文是请求流量,而与之相反的反向流量均视作潜在回复流量。
38.在实际网络信息交互时,网络传输时延一般远大于报文发送时间,因此回复流量几乎不可能在请求流量还未全部发出前到达,且如果将跨交互的情况考虑进去,则所有相反方向流量均可视作答复流量,则无法对流量进行筛选,因此暂时不考虑跨“交互”的极端情况。
39.具体处理时,由于目前所有已知的反射放大攻击都是通过单包触发,为了尽可能减少漏报,同一方向的多个连续数据包都被视为同一次回复流量。回复流量的前一个数据包作为反射触发包的可能性最大,因此我们暂且认为该数据包是触发包,其长度即为请求流量大小。
40.根据回复流量与请求流量计算放大系数f,放大系数f为一次反射攻击中回复流量与请求流量的比值;根据流量放大系数f与设定的放大阈值et的关系判断是否具有放大特性,放大系数f等于一次反射攻击中回复流量与请求流量的比值;
41.若f大于et,则具有放大特性;反之,则不具有放大特性。
42.如图2,对比了实际流量交互场景和理想交互场景,在初步筛选时,根据最理想情况判断流量存在放大的可能,其他可能场景将在后续步骤中讨论。例如分组内ip报文长度为[60,67,90,-300,-300,-300]时,我们计算出请求流量为90,回复流量为900,放大系数f为10,若大于放大阈值,则满足放大性筛选条件。
[0043]
步骤四、可反射性判断:
[0044]
从流量中提取的具备放大特性的数据包样本,还需要进行可反射性验证。在具体判断方法上,使用流量分析的方法直接判断“交互”中存在的身份验证行为时,存在准确率不足的问题,具体表现在:一是识别能力受算法和训练样本的影响较大,对未知行为识别存在较大偏差;二是部分服务具有非授权访问漏洞,即虽然在交互开始时进行了身份验证,但某些功能在未通过验证的情况下仍然会产生正常应答;三是未授权请求可能会产生异常应答,这同样具备反射器的特性。
[0045]
由于流量分析方法存在如此多的不确定性,为了最大程度减少漏报率,增加发现反射放大行为的可能,我们最终采用直接重放发包验证的方法:提取触发包的udp载荷作为payload,用设备本机作为源重新发送该udp请求包到目的ip,并接收对方的回复数据,判断响应情况;如图3所示,可能出现三种响应结果,分别为无响应、正常响应和异常响应;
[0046]
其中无响应,服务本身具备身份验证功能,新的请求未通过验证,因此对请求不予理会;
[0047]
正常响应,服务不具备身份验证功能,对任何地址发来的请求都会回复相同的内
容,这也是最符合预期的情况;
[0048]
异常响应,服务具备身份验证功能,对来自未知ip的请求不提供服务,但会反馈一个错误信息;如果反馈的错误信息内容很大,远大于请求,则也可能具备反射放大的潜力。
[0049]
针对正常响应和异常响应,统计收到的回复数据大小,计算回复数据与请求数据的比值f’;
[0050]
判断f’与设定的反射放大阈值rt的关系,若f’大于反射放大阈值,则该流量样本满足反射放大条件。
[0051]
步骤五、多包触发验证
[0052]
尽管目前发现的反射放大攻击都是通过单触发包产生,我们仍需要考虑存在通过多个请求包才能触发的反射攻击场景。在单包反射验证失败的情况下,我们加入了多包触发反射的验证方法。为了提高验证效率,降低计算力的损耗。我们采取了先判断后定位的两步检测法:
[0053]
首先,将回复流量前的所有数据包(若太多,则取回复流量前5个数据包),分别按时间顺序提取载荷,以本机作为源按序重新发送。统计收到的回复数据大小,若实际回复流量与估算的回复流量大小相近,或是回复流量与请求流量之比仍大于放大阈值et,则判断出数据包中包含可以触发反射放大攻击的请求流量。
[0054]
然后,在满足可反射性的基础上,定位出精准的请求报文,将所有报文按时间排列的组合方式依次进行反射性测试,筛选出反射系数f’最大的数据样本,若其大于反射阈值rt,就将其添加到输出结果中。
[0055]
试验例:本试验例首先在局域网内搭建实验环境进行测试,以验证本发明方法的准确性和有效性。随后在互联网环境下,选取部分节点对网络流量进行抓取,进一步分析论证该方法的实际效果。文中提到的所有试验测试,阈值均设为5。
[0056]
1、实验环境测试
[0057]
实验环境下,为了检验本方法对反射服务的发现能力,故暂不对已知反射放大服务进行过滤。在局域网内对memcached、chargen、ntp、dns、snmp、tftp、ssdp、ws-discover等8类反射放大协议进行测试。后期又加入了us-cert未披露的ubiquiti发现协议(端口10001)和dvr dup服务(端口37810)作为测试数据执行反射测试。
[0058]
测试结果见下表1。
[0059]
表1协议测试结果
[0060][0061]
本发明方法不依赖反射放大协议的特征指纹,因此,用于测试的反射数据都属于未知样本,尤其是后来添加了近一年新发现的两种反射放大协议,在实验环境下成功检测并提取出所有反射放大行为,做到出现即发现,充分证明了该方法识别检测的有效性。
[0062]
2、互联网环境测试
[0063]
互联网环境下,在多个节点抓取udp流量,每个节点每次抓取100m udp流量存为一个pcap文件。在抓取的流量中选取100份作为测试样本,用本发明方法执行测试。在约10000mb的流量中,检测出反射放大行为见表2。
[0064]
表2互联网环境检测结果
[0065][0066]
为了进一步确定检测的准确性,对于检测出的反射放大行为,在对应的流量样本中定位并进行人工核实,结果确认无误。
[0067]
3、处理能力测试
[0068]
从前期实验的结果来看,该方法能够准确有效地提取所有存在udp反射行为的流量样本,以发现对应协议存在udp反射放大威胁。而本方法的最终目的是通过流量检测发新型udp反射放大攻击,在实际运用中,大量的流量检测才是发现新型udp反射放大攻击的关
键。所以,对于流量的处理速度则也是该方法实用性的重要衡量标准之一。
[0069]
由于本发明方法通过主动发包的方式来验证服务的可反射性,等待服务响应以及判定超时都需要一定的等待时间。因此,检测程序多线程执行效率应高于单线程效率。
[0070]
在执行检测程序时,将超时判定设置为2s,分别记录了100个流量样本(每个文件100mb)在单线程和多线程(10线程)条件下的执行时间。实验结果如表3所示。
[0071]
表3执行时间
[0072][0073]
从表3结果可以看出,多线程执行时间远小于单线程执行时间。
[0074]
在上述的测试中,采用的均是单反射包验证法,而为了增加发现新型反射放大协议的可能。实际使用中,应采用多包反射的验证方式。因此,在多线程的执行模式下,用同样的100份流量样本,再次测试了多包反射的判定条件下的执行时间,以及添加了过滤规则后的执行时间,过滤规则为,排除已知的19种存在udp反射放大功能的协议。测试结果如表4所示。
[0075]
表4多包反射执行时间
[0076][0077]
从表4可以看出,在使用了过滤规则的条件下,udp流量处理速率大约为单包反射检测0.98mb/s,多包反射检测约为0.43mb/s。而互联网中udp流量远少于tcp流量,且该方法对时效性要求不高,因此适用于大部分应用场景。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1