dns放大攻击python代码_使用NetFlow或sFlow的DNS放大攻击检测

来源:https://www.noction.com/blog/dns-amplification-attacks-detection-with-netflow-or-sflow

我们现在所知道的互联网如果没有使用域名系统(DNS)就无法正常运行。DNS将域名与IP地址同步,这样人们就可以使用容易记住的域名而不是IP地址。DNS解析器是一种机器,它接受一个域名(noction.com)并将其转换为一个IP地址(155.94.254.29)。DNS协议可以将一个非常小的查询转换为一个大的响应。例如,如果我们查询谷歌DNS服务器(8.8.8.8)的每一个记录为域noction.com(标记ANY), DNS查询长度是52字节。然而,DNS的响应是618字节(图1)。在这种情况下,带宽放大系数( bandwidth amplification factor,BAF)是11.88。

图1:DNS响应长度618字节

注意:BAF是计算作为响应查询的放大器发送UDP有效载荷字节数,与查询的UDP有效载荷字节数比较。

DNS查询和响应对在大小上的非对称特性是众所周知的,并用于分布式拒绝服务(DDoS)放大攻击。DDoS DNS放大攻击利用DNS服务器(解析器)攻击其他系统。攻击的目的是通过消耗目标系统的资源(如CPU、内存或带宽)来中断目标系统。攻击者不断向许多打开的DNS解析器发送DNS查询流,指示它们用DNS响应消息回复受害者。DNS查询包含一个欺骗源IP地址匹配受害者的IP地址。结果,扩大的DNS查询有效地淹没了目标系统,使其变得不可访问。

注意:其他应用协议,如Memcached, NTP, LDAP, Quake使用无连接UDP传输协议也可以用于DDoS放大攻击。它们有更好的BAF,更适合进行DDoS放大攻击。

一次成功的DDoS DNS放大攻击的规模取决于三个因素。首先,大量主机涌入伪造的DNS请求。通常,攻击机器是大型僵尸网络的一部分,由命令和控制服务器(C&C)控制。使用僵尸网络的一个副作用是混淆了攻击者的身份,因为不控制C&C服务器就不可能跟踪攻击者。DNS放大攻击的数量还取决于用来反映攻击对象的开放DNS解析器的数量。开放DNS解析器是任何DNS解析器,可公开访问,并愿意解决递归查询任何人在互联网上。根据Open resolver项目,有1500万个解析器以某种方式响应查询(2017-01-22),其中1000万个解析器构成了严重威胁。最后一个重要的因素是BAF。

可以配置约60字节的DNS请求消息,以引出一个超过4000字节的响应消息到目标服务器——结果是70:1的放大系数。

一、DNS DDoS放大攻击在NetFlow记录中的证据

DNS响应包的数量比通常预期的要大。如果在攻击中使用了多个DNS解析器,流量记录显示DNS响应来自已联系DNS服务器数量的增加。此外,NetFlow数据中没有适当的DNS查询。只有DNS的响应显示在流量记录中(图2)。

图2:NetFlow记录中的大量DNS响应

二、在NetFlow记录中的DDoS DNS放大攻击检测

2.1基于网络流量统计分析的检测逻辑

使用网络流量统计分析的检测逻辑基于每个流的DNS响应包总数和每个流的平均字节数。当值超过定义的阈值时检测到攻击。因此,此方法取决于定义适当阈值的能力。阈值要经过优化,并依赖于网络配置文件。一方面,如果阈值设置为较高的值,一些攻击可能不会引起注意。另一方面,阈值的降低可能会导致误报。基于统计分析的检测方法易受延迟的影响。DDoS DNS放大攻击直到收集到足够多的NetFlow记录,超过阈值才会被检测到。

至于设置一个适当的阈值以避免不准确或假阳性,信德省大学研究期刊最近发表的研究给了我们推荐的值。如果每个流的数据包总数超过1000个包数,或者对于包数小于1000个的流,每个流的平均字节数超过900个字节,则流被认为是可疑的。

2.2基于模式匹配的检测逻辑

模式匹配检测逻辑基于使用从DNS头提取的特定模式。与固定NetFlow相比,sFlow可以从IP有效负载导出这些模式。因此,DNS属性(如查询ID、查询类型、查询名称、返回代码)可以从sFlow包中提取并用作过滤器。例如,DNS查询和响应消息的事务ID是相同的(图3),如果接收到的DNS响应中的事务ID与发送的DNS查询中的ID不匹配,则存在DNS放大攻击的企图。DDoS DNS流量的模式匹配检测是快速和独特的,因为它不依赖于超过定义的阈值。它可以与流量统计检测方法一起使用,以避免误报和不准确。例如,如果某数量的DNS事务id不匹配,将检测到DNS流量放大。

图3:DNS查询和响应消息中相同的事务ID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值