标签:广播 建立 结束 image print 运行 map 非主流 tp服务器
原文链接:http://www.freebuf.com/articles/network/76021.html
FreeBuf曾报道过,BT种子协议家族漏洞可用作反射分布式拒绝服务攻击(DRDoS attacks)。此种攻击方式并非主流,以公开的论文看来效果堪比DNS,而NTP攻击则更胜一筹。
0×00 背景
攻击者可以利用BT种子协议(微传输协议[uTP],分布hash平台[DHT],消息流加密[MSE],BT种子同步[BTSync])来反射放大结点间传输量。
实验显示,攻击者可以利用BT结点将一个包放大50倍,如果是BTsync将达到120倍。另外,我们发现最流行的BT流客户端正是最脆弱的,比如uTorrent、Mainline、Vuze等。
公开DNS解析和NTP协议MONLIST命令攻击,两种攻击方法依靠其协议的广泛应用,影响范围不言而喻。
混合放大,利用通用协议的攻击方式很稳定,通过标准的结点发现机制很快找到放大点。由于其利用的动态端口范围和握手加密,攻击不会被常规防火墙发现,只有进行深度的包检查才能发现。
0×01 什么是DRDoS攻击
攻击者不把通信包直接发给受害者,而是发给放大器(amplifiers)然后反射给受害者。攻击者利用了网络协议漏洞进行IP欺骗。可以由一个或多个攻击结点开始,下图简单勾画出了DRDoS的攻击模型:
1、P点在攻击前确认放大器的位置,这取决于攻击者利用的协议,强大的扫描工具比如 ZMap可以帮助确认可用放大器。这步是以后步骤的基础,保证以后的攻击效率;
2、接着发送小的Ba 给放大器PA,攻击者伪造包源地址是PV的IP地址,然后PA反馈一个大的包Bv给PV。
BT流是今天世界最常用的P2P协议,协议的新颖之处在于解决了free riding problem 和 last piece problem 。为了克服第一个困难,BT流应用了一个奖赏机制称为窒息算法导致了tit-for-tat-ish 分享方法。BT流通过稀有片优先算法解决了第二个问题。
0×02 UTP协议攻击
最初,TCP是握手和节点通信的默认协议。TCP在P2P环境有很多优点,它分布了可用带宽给每个连接点,通常得到比其他应用更多的带宽。因此,BT流在后台运行,会被前段的通信结束(例如web 和邮件),所以BT流发明了新的传输协议UTP。
UTP采用了TCP的一些想法,以滑动窗口控制流,按顺序校验信息的完整性,握手建立连接。不同于TCP三次握手,UTP只有两次握手,下图表示结点建立连接的过程。可以看出创建方发出一个ST_SYN包给接受方创建连接,类似于TCP的SYN包。接受方反馈ST_STATE包表示成功接收到,建立方接收到反馈表示双向建立成功。现今大多数的BT客户端把UTP作为默认协议。
UTP建立连接的两次握手,这允许攻击者用伪造的IP地址和放大器建立连接,因为接受方不检查创建方是否接收到了应答。
示意图如下:
一个伪造的带着受害者IP地址的ST_DATA给接收方,接收方相信包中的源IP地址有效,反馈了第一个ST_DATA给受害者,而受害者的IP没有意料到这个包,所以也不会回应它。接收方到时间重传丢失的ST_DATA包,如果连续四次传输未响应则断开连接。
连接建立后BT流需要一次握手作为第一条信息,包括了为扩展保留的字节、hash信息和节点ID。如果客户端接受了握手发现使用了未认证的hash,客户端立刻终结连接。攻击者利用握手包基于UTP两次握手创建放大攻击。
ab两步不赘述了,c步骤 攻击者发送了一个装载了BT流握手信息的ST_DATA包。 这个握手需要活跃的放大器种子hash信息(20字节),握手包最少88字节,如果放大器参与这个种子中,就会反馈步骤d ,d的握手包大于攻击者发送的,因为客户端在UTP包里放入了更多信息。
BT流提供Libtorrent 的扩展协议(LTEP)添加新的扩展而不妨碍默认协议。如果一个攻击者标记支持LTEP 尤其在BEP10中 ,攻击效果会进一步放大而不用增加步骤c握手包的量。对等节点以此扩展信息交换。
0×03 利用数据流加密握手包(MSE)攻击
MSE的目的是混淆BT传输过程,防止受ISP的影响,而不是为了传输安全。尽管它有很多严重的弱点,但它还是被大多数BT客户端使用。
这个协议开始于Diffie-Hellman 密钥的交换 每个节点都产生了768位的公钥 公钥包括0-512位的随机数r 。交换密钥后,包会被RC4算法加密,UTP传输。
这种方法使攻击者不必明确hash信息,发送一个伪造的MSE包(包括768位的公钥没有随机数),客户端随即会反馈随机数和公钥。
结果证明MSE攻击会显著提升效率。进一步说,加密装载Ba和MSE生成的包Bv,熵高的属性,使其难以被ISP或者DPI防火墙发现并封锁。
0×04 深入DNS放大DDoS攻击
DNS反射攻击也能轻易达到千兆的级别。
最初的放大攻击是著名的SMURF攻击,发送ICMP请求给路由网络广播地址,配置发送ICMP给路由下的设备。攻击者欺骗ICMP请求源是受害者的IP,因为ICMP不包括握手,所以目标无从确认源IP是否合法。攻击者放大攻击的效果取决于路由下有多少设备。 不过SMURF攻击是过去的事了,网络管理员已经配置它们的路由器不将ICMP请求发给网络广播地址。
好的放大攻击方法有两个条件:
1、协议没有握手,允许IP源地址伪造(例如ICMP,UDP)
2、对查询的回复要大于查询本身
DNS是核心,无处不在的网络平台就是放大攻击的资源。
DNS基于UDP传输,因此它们的源地址可以伪造并且接收者回应前无从确定真实性。DNS也可以生成更大的反馈,输入 dig ANY www.baidu.com @x.x.x.x(x.x.x.x是公开DNS解析器),这是一个64字节的查询会返回3223字节,攻击效果放大了50倍。讽刺的是,huge DNSSEC 密钥 ——这个被用来增加DNS系统安全性的协议反而成了放大攻击的帮凶。
公开DNS解析器是互联网的悲剧。
如果你用一个DNS解析器确保只返回可信用户的查询,例如你公司的IP空间是10.10.10.0/24 DNS解析器就只返回这个范围IP的查询,而不会回应6.6.6.6的查询信息。
问题就在于许多人运行DNS解析器而不在乎哪个IP地址的人查询。这样的问题已经存在10年之久,发生的事件表明很多不同的僵尸网络为了发现DNS解析器开始枚举互联网IP空间,一旦发现就可利用于DNS放大攻击。中国台湾拥有世界第二多的公开DNS解析器资源。
有这样一个网址可以查询你的DNS http://openresolverproject.org/
世界上有2170万个公开DNS解析器,网站正致力于关闭它们。
解决办法
把recurison设置为no
允许在特定的地址查询,options { allow-query{192.168.1.0/24;};};
0×05 NTP 放大DDoS攻击 400Gbps的技术细节
2014年2月出现一次400Gbps规模的NTP攻击,这类攻击越来越走俏,这次事件可以作为一个好的例子来说明一下这种攻击方法。
首先了解一下基础的结构,NTP放大攻击开始于一个被黑客控制的服务器允许IP欺骗,攻击者生成了很多UDP包欺骗源IP地址使来自特定目标的包出现,这些UDP包发送到支持MONLIST命令的网络时间协议服务器port123。
顺便聊一聊MONLIST命令
它的用处在于返回一个NTP服务器上600个IP地址的列表,所以它可以拿来干坏事。如果一个NTP服务器完全迁移它的表,反馈的信息将被放大206倍。此类攻击中IP地址伪造,UDP不需要握手,理论上有200倍的放大效果。
然而这不仅仅是理论,此次攻击事件中,为了400Gbps的攻击效果攻击者应用了运行在1298个不同网络上的4529台NTP服务器。平均每台NTP服务器产生87Mbps的通信量。值得注意的是攻击者很可能只用了一个能IP欺骗的网络服务器就做成了此次攻击。
NTP服务器支持MONLIST和公开DNS解析器不一样,虽然它们都趋向于多网络连接的服务器。对比而言,NTP 攻击更加的效率,2013年曾有一次几乎玩坏互联网的DDoS攻击被纽约时报报道,利用30956公开DNS解析器,目标Spamhaus产生300Gbps的通信量。NTP攻击只用了1/7的服务器,实现的攻击效果还比Spamhaus事件多1/3。
解决办法:禁止MONLIST命令
黑客攻击的前提是IP地址欺骗,如果你在管理网络,确保遵守BCP38。可以用这个来自MIT的工具检测一下http://spoofer.cmand.org/summary.php
最后如果你觉得NTP不好,那就等待下一个SNMP,但是SNMP理论上有650倍的放大效果,已经看到有黑客跃跃欲试了,Buckle up。
参考资料
https://blog.cloudflare.com/the-ddos-that-almost-broke-the-internet/
https://blog.cloudflare.com/deep-inside-a-dns-amplification-ddos-attack/
https://www.usenix.org/system/files/conference/woot15/woot15-paper-adamsky.pdf
标签:广播 建立 结束 image print 运行 map 非主流 tp服务器
原文地址:http://www.cnblogs.com/ibyte/p/6096127.html