利用 SSDP 协议生成 100 Gbps DDoS 流量的真相探秘

本文讲的是利用 SSDP 协议生成 100 Gbps DDoS 流量的真相探秘,上个月我们分享过一些反射型DDoS攻击数据,SSDP攻击的平均大小是12 Gbps,我们记录的最大的反射式DDoS攻击是:

1. 30 Mpps(每秒数百万个数据包)

2. 80 Gbps(每秒数十亿位)

3. 使用940k反射器的IP

几天前,我们注意到了一个不寻常的SSDP超级放大情况的发生,因为SSDP的放大因素可能会导致网络设备成为DDoS攻击的目标。所以这是值得深入调查的,因为这导致了利用 SSDP 协议生成 100 Gbps DDoS 流量的临界值。

攻击期间每秒数据包的数据如下图所示:

带宽使用情况如下所示:

这个基于IP数据包的洪水攻击持续了38分钟,根据我们采样的netflow数据,它使用了930k反射器服务器。我们估计,在38分钟内,每个反射器往Cloudflare发送了112k包。

反射器服务器遍布全球,在阿根廷、俄罗斯和中国都有大量业务。以下是每个国家或地区的IP分布图:

可以看出,ASN上的反射器IP分布非常典型的,它几乎完全遵循了世界上最大的住宅ISP(residential ISP)规律:

什么是SSDP攻击?

智能设备普遍采用UPnP(即插即用)协议作为网络通讯协议, 而UPnP设备的发现是通过源端口为1900的SSDP(简单服务发现协议)进行相互感知。

利用SSDP协议进行反射攻击的原理与利用DNS服务、NTP服务类似,都是伪造成被攻击者的IP地址向互联网上大量的智能设备发起SSDP请求,接收到请求的智能设备根据源IP地址将响应数据包返回给受害者

当新设备(如笔记本电脑)加入网络时,可以向本地网络查询特定设备,如互联网网关,音频系统,电视机或打印机。

虽然UPnP的安全标准很低,但这是一个关于M-SEARCH框架的规范的代码片段。

当控制点被添加到网络时,UPnP发现协议允许控制点在网络上搜索感兴趣的设备。它通过在保留的地址和端口(239.255.255.250:1900)上组播具有等于设备或服务的类型或标识符的模式或目标的搜索消息来实现。

要通过网络搜索找到,设备应向发送请求的源IP地址和端口向组播地址发送单播UDP响应。如果M-SEARCH请求的ST标头字段是“ssdp:all”,“upnp:rootdevice”,“uuid:”,后跟一个与设备发布的UUID完全匹配的UUID,或者如果M-SEARCH请求匹配设备支持的设备类型或服务类型都能对M-SEARCH框架进行回应。

这在实践中非常起作用,例如,Chrome浏览器经常要求搜索一个智能电视:

该帧(frame)会发送到组播IP地址,寻找该地址并支持这种特定的ST(搜索目标)多屏幕类型的其他设备。

除了对特定设备类型的查询外,还有两种通用的ST查询类型:

1. upnp:rootdevice:搜索根设备

2. ssdp:all:搜索所有UPnP设备和服务

要模拟这些查询,你可以运行此python脚本:

以下是在我的家庭网络上,显示的两个设备:

防火墙的因素

通过上述了解,可以知道,实际上有两种提供M-SEARCH框架的方法:

1. 我们以上提出的组播地址

2. 直接通过普通单播地址启用UPnP/SSDP主机

后一种方法最有效,我们可以专门针对我现在使用的打印机IP地址为例进行说明:

从上图中可以很明显的看到, SSDP协议不检查查询方是否与设备在同一个网络中,它将通过公共互联网提供的M-SEARCH进行回应。所有这一切都是由防火墙中的一个微小的错误配置引发的, 端口1900 UDP对外部开放,并且UDP扩展的目标将可用。

由于配置错误的目标,我们的脚本将很乐意在互联网上工作:

放大因素

真正的攻击是由ssdp造成的,因为所有ST类型都是通过它完成的,而正是SSDP的放大因素可能会导致网络设备成为DDoS攻击的目标:

在这种特殊情况下,单个SSDP M-SEARCH数据包会触发8个响应数据包,tcpdump视图如下:

该目标公开了8倍数据包计数放大和26倍带宽放大,而这正是SSDP的典型使用特征。

IP欺骗因素

攻击的最后一步是欺骗易受攻击的服务器,以覆盖目标IP,为此攻击者需要欺骗他们的查询源IP地址。

我们对100 Gbps攻击样本中使用的反射器IP进行了分析后发现,在920k反射器IP中,只有350k(38%)仍然响应SSDP检测器。

在响应的反射器中,每个发送了平均7个数据包:

响应的数据包平均有321字节,我们采样的请求包有110个字节。

根据我们对ssdp的分析,所有M-SEARCH攻击者都能够实现:

1. 7倍的包数放大

2. 20倍带宽放大

我们可以估计43 Mpps 或 112 Gbps攻击可以大致生成:

1. 6.1 Mpps的欺骗能力

2. 5.6 Gbps的欺骗带宽

换句话说,能够执行IP欺骗的单一连接好的10Gbps服务器可以提供超强的SSDP攻击。

更多SSDP服务器的因素

由于我们探测到易受攻击的SSDP服务器,因此可以收到最常见的服务器头值:

我们看到的最常见的ST标头值如下:

可以看出,易受攻击的IP似乎大多是无保护的家庭路由器。

开放的SSDP竟然是一个漏洞

允许家庭打印机的UDP端口1900接入互联网是十分危险的,自2013年1月至今,这个安全风险日益严重,所以通用即插即用的安全漏洞的防护就是禁止你的设备连网。

显然,SSDP的开发者没有考虑UDP的扩增潜力,按照我们的理解M-SEARCH仅在局域网中作为组播查询才有实际意义。

与DNS响应速率限制技术类似,单播M-SEARCH支持应该被弃用或至少限制速率。

M-SEARCH响应应该只发送到本地网络,通过网络路由的响应几乎没有意义和公开的描述漏洞。

如何预防超大DDoS 流量攻击

1. 网络管理员应确保入站UDP端口1900在防火墙上被阻止。

2. 不应该允许互联网服务供应商在其网络上执行IP欺骗, IP欺骗是攻击的根本原因,比如臭名昭着的BCP38。

3. 互联网服务提供商应允许他们的客户使用BGP流量来限制入站UDP源端口1900流量,以减轻大型SSDP攻击期间的拥塞。

4. 互联网提供商应在内部收集网络流量协议样本,需要netflow来识别攻击的真正来源。使用netflow可以轻松了解许多信息,比如“我的哪个客户向端口发送了6.4Mbps的流量?”这将足以跟踪DDoS攻击。

5. 开发人员应在仔细考虑UDP扩展问题的情况下推出自己的UDP协议。 UPnP应适当标准化和审查。

6. 终端用户应使用脚本扫描其网络以启用UPnP设备,这样做是为了考虑是否允许这些设备要接入互联网。

此外,还有一些在线检查网站。如果你想知道你的公共IP地址是否具有易受攻击的SSDP服务,请单击https://badupnp.benjojo.co.uk/查询。

令人遗憾的是,我们在分析中发现路由器保护最弱的国家竟是中国、俄罗斯和阿根廷。

原文发布时间为:2017年6月29日

本文作者:xiaohui

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-10-26 10:04:00

利用 SSDP 协议生成 100 Gbps DDoS 流量的真相探秘的相关文章

如何利用TFTP协议发动DDoS放大攻击

一个来自爱丁堡龙比亚大学的安全研究小组制定出一项新的DDoS放大技术方案,且主要依靠TFTP协议实现. 来 自爱丁堡龙比亚大学的一个安全专家小组(成员分别为Boris Sieklik.Richard Macfarlane以及William Buchanan教授)已经发现了一种新的DDoS攻击载体.最近安全行业注意到几种可行方法以利用存在配置错误的服务,例如DNS或者网络时间协议(简 称NTP),实现强度惊人的放大攻击.而如今,专家们意识到TFTP协议(即简单文件传输协议)亦有可能被用于执行这类网

Akamai检测到超过400起利用DNSSEC协议的反射DDoS攻击

Akamai是一家大型互联网CDN服务提供商,然而根据其最新的DDoS趋势报告,发现利用DNSSEC协议的这类攻击已经更加猖獗.DNSSEC是"域名系统安全扩展"的简称,作为DNS协议的扩展,其包括了诸多保护DNS认证和数据完整度的安全特性(因此叫它DNS+security也行),然而"反射DDoS"也在滥用DNSSEC协议. 业内也将反射DDoS称作R-DDoS.DRDoS或"分布式反射拒绝服务攻击".去年8月份的时候,我们曾深入解析过诸多借助

工信部标准所联合Ixia成功实施百G规模DDoS流量清洗测试

行业领先的网络测试.可视性和安全解决方案供应商Ixia 9月5日宣布,中国信息通信研究院(原工业和信息化部电信研究院)技术与标准研究所联合Ixia近日成功完成了由中国联合通信集团网络有限公司委托的分布式拒绝服务(DDoS)流量清洗设备测试. 各运营商与企业对系统和服投资的投资与日俱增,但每年却有大量因DDoS攻击而导致的灾难性大型停运事件,且攻击规模仍在继续扩大及不断演进.据报道,去年在北美出现的Mirai病毒所引发的DDoS攻击规模曾达到600余G.尽管各类攻击方式来去匆匆,DDoS攻击仍旧是

hibernate-eclipse如何利用数据库反向生成Hibernate多对多、一对多实体类(生成全部为int类型)。

问题描述 eclipse如何利用数据库反向生成Hibernate多对多.一对多实体类(生成全部为int类型). 如题 解决方案 如果你表的关系建好了,,直接通过dataSource就能反向生成了 解决方案二: Myeclipse 连接到你的数据库,在对应的表上右击,点hibernate reserve ,然后一步步操作下去,就会成功 解决方案三: /* SQLyog Ultimate v10.00 Beta1 MySQL - 5.6.26-log : Database - db_template

利用Java动态生成 PDF 文档

利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那么目前最佳的解决方案,你可能会想到 iText ,对没错... iText+(Velocity / Freemarker)可以实现.不过据我熟悉,iText本身提供的HTML解析器还是不够强大,许多HTML标签和属性无法识别,更悲催的是简单的CSS它不认识,排版调整样式会让你头大的.不要失望,接下来

解析利用wsdl.exe生成webservice代理类的详解_实用技巧

利用wsdl.exe生成webservice代理类:根据提供的wsdl生成webservice代理类1.开始->程序->Visual Studio 2005 命令提示2.输入如下红色标记部分D:/Program Files/Microsoft Visual Studio 8/VC>wsdl /language:c# /n:TestDemo /out:d:/Temp/TestService.cs D:/Temp/TestService.wsdl在d:/Temp下就会产生一个TestServ

速度暴快!Li-Fi 实现了 100 Gbps 网速,但你仍离不开 Wi-Fi

class="post_content" itemprop="articleBody"> 100 Gbps:这是 Li-Fi 能做到的网络传输速率,是现有 WiFi 网络的十倍以上.据 Spectrum 报道,日前,牛津大学的研究团队已经设计了一套 Li-Fi 系统,实现了这个级别的网络速度-- Li-Fi 中文称"光照上网技术",它无需 Wi-Fi 信号,使用由发光二极管把光源转换成网络信号的形式来实现互联网交接.该项技术是由德国的哈拉尔

利用javascript来生成随机数

利用javascript来生成随机数. <script language="JavaScript"> <!--      // The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)      // See: http://www.msc.cornell.edu/~houle/javascript/randomizer.html      rnd.today=new Date(

利用Python 脚本生成 .h5 文件 代码

利用Python 脚本生成 .h5 文件  1 import os, json, argparse 2 from threading import Thread 3 from Queue import Queue 4 5 import numpy as np 6 from scipy.misc import imread, imresize 7 import h5py 8 9 """ 10 Create an HDF5 file of images for training