利用 SSDP 协议生成 100 Gbps DDoS 流量的真相探秘「建议收藏」

利用 SSDP 协议生成 100 Gbps DDoS 流量的真相探秘「建议收藏」原文地址https://www.4hou.com/technology/5979.html上个月我们分享过一些反射型DDoS攻击数据,SSDP攻击的平均大小是12Gbps,我们记录的最大的反射式DDoS攻击是:1.30Mpps(每秒数百万个数据包)2.80Gbps(每秒数十亿位)3.使用940k反射器的IP几天前,我们注意到了一个不寻常的SSDP超级放大情况的发生…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

原文地址 https://www.4hou.com/technology/5979.html

上个月我们分享过一些反射型DDoS攻击数据,SSDP攻击的平均大小是12 Gbps,我们记录的最大的反射式DDoS攻击是:

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

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

3. 使用940k反射器的IP

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

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

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

带宽使用情况如下所示:

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

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

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

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

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

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

什么是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浏览器经常要求搜索一个智能电视:

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

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

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

1. upnp:rootdevice:搜索根设备

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

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

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

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

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

防火墙的因素

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

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

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

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

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

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

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

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

放大因素

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

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

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

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

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

IP欺骗因素

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

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

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

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

响应的数据包平均有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服务器,因此可以收到最常见的服务器头值:

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

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

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

可以看出,易受攻击的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/查询。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183953.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Scrum 学习笔记

    Scrum 学习笔记

    2021年11月14日
    30
  • 史上最强超融合入门干货:超融合与传统架构特性及收益详细对比

    史上最强超融合入门干货:超融合与传统架构特性及收益详细对比在 IT 基础架构领域工作有十年了 亲眼目睹和参与了上一代网络存储架构在中国的兴起和衰败 的确 新 IT 浪潮已经到来 超融合就是诸多风口之一 成为了近几年 IT 业界备受关注的话题 虽然超融合这个概念已经被厂商热炒了至少两年 但看到市场上依旧存在着很多模糊的定义和理解 所以想整理一些学习笔记和个人见解 希望这些干货内容能对想入门的朋友有所帮助 一 超融合的核心特征是什么 首先大家需要有

    2025年11月7日
    2
  • 内存屏障 – MemoryBarrier[通俗易懂]

    内存屏障 – MemoryBarrier[通俗易懂]处理器的乱序和并发执行目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常能够在一个指令周期内并发执行多条指令。处理器从L1I-Cache预取了一批指令后,就会分析找出那些互相没有关联可以并发执行的指令,然后送到几个独立的执行单元进行并发执行。比如下面这样的代码(假定编译器不做优化):  z

    2022年7月12日
    20
  • NLP-结巴分词

    NLP-结巴分词结巴分词结巴分词是有国内程序员(https://github.com/fxsjy/jieba)做的一个分词工具,刚开始是Python版本的,后来由anderscui(https://github.com/anderscui/jieba.NET)移植到.Net上面。结巴分词的分词过程大致为:·前缀词典(Trie):用于存储主词典,也可以动态增删词条,这个词典可以理解为jieba所“知道”的词,或者说已登录词;·有向无环图(DAG):通过前缀词典,可以找出句子所有可能的成词结果;·最大概率

    2022年6月24日
    39
  • 很好的理解遗传算法的样例

    很好的理解遗传算法的样例

    2021年12月7日
    49
  • java算法是什么_什么是java算法

    java算法是什么_什么是java算法什么是java算法算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,java算法就是采用Java语言来实现解决某一问题的清晰指令。算法的特征:输入性:有零个或多个外部量作为算法的输入输出性:算法产生至少一个量作为输出确定性:算法中每条指令清晰,无歧义有穷性:算法中每条指令的执行次数有限,执行每条指令是时间也有限可行性:算法原则上能够精确的运行,而且人们用纸和笔做有限次运算后即可完成程…

    2022年7月9日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号