原文地址 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 流量的临界值。

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

带宽使用情况如下所示:

这个基于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/查询。

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

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

  1. 简单利用路由黑洞解决DDOS流量攻击

    黑洞路由,便是将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目. 提到黑洞路由就要提一下null0接口. null0口是个永不down的口,一般用于管理,详见null0 ...

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

    一个来自爱丁堡龙比亚大学的安全研究小组制定出一项新的DDoS放大技术方案,且主要依靠TFTP协议实现. 来 自爱丁堡龙比亚大学的一个安全专家小组(成员分别为Boris Sieklik.Richard ...

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

    Akamai是一家大型互联网CDN服务提供商,然而根据其最新的DDoS趋势报告,发现利用DNSSEC协议的这类攻击已经更加猖獗.DNSSEC是"域名系统安全扩展"的简称,作为DNS ...

  4. 业界第一个真正意义上开源100 Gbps NIC Corundum介绍

    来源:内容由本人微信公众号「网络交换FPGA」编译自「FCCM2020」,谢谢.第一次在csdn上发文章. FCCM2020在5月4日开始线上举行,对外免费.我们有幸聆听了其中一个有关100G开源NI ...

  5. 网络入侵检测系统之Suricata(七)--DDOS流量检测模型

    Suricata支持DDOS流量检测模型 What 分布式拒绝服务(Distributed Denial of Service,简称DDoS)将多台计算机联合起来作为攻击平台,通过远程连接利用恶意程序 ...

  6. 翻译:Identifying Encrypted Malware Traffic with Contextual Flow Data利用上下文流数据识别加密恶意软件流量

    利用上下文流数据识别加密恶意软件流量 blake anderson思科blake.anderson@cisco.com 摘要 识别加密网络流量中包含的威胁是一组独特的挑战.监视此通信量以防威胁和恶意软 ...

  7. 2019年上半年 DDOS流量攻击分析以及解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 从2019年初到今天的6月,已经过来大半年了,DDOS流量攻击越来越频繁,在2月份的时候外部公开了一个新型的DDOS攻击网络, ...

  8. 什么是DDOS流量攻击,DDoS防护手段

    什么是DDOS流量攻击?全称Distributed Denial of Service,中文意思为"分布式拒绝服务",主要是利用大量合法的分布式服务器对目标发送请求,从而导致正常合 ...

  9. ddos流量攻击有多少G_攻击流量超过300G,遭遇DDoS时我们能做些什么?

    首发公众号:码农架构 一. DDOS 攻击原理 Distributed Denial of Service(DDoS),即分布式拒绝服务攻击,是指攻击者通过远程连接恶意程序控制大量僵尸主机(全国范围甚 ...

最新文章

  1. Horticulture Research:植物界的“投之以桃,报之以李”的合作共赢典范
  2. 用EC5/EC6自定义class的区别及用法 -- Phaser3网页游戏框架
  3. 石川es6课程---4、箭头函数
  4. 一个面试官对JVM面试问题的分析
  5. 转: FFmpeg功能命令汇总
  6. PaddlePaddle应用于百度视觉技术的工程实践
  7. html5 查看图片,html5实现图片预览和查看原图
  8. matlab如何画一个平面,matlab 画平面
  9. HBase的环境配置及其应用
  10. ios显示gif格式图片
  11. PHP可以读取什么配置文件,使用php读取配置文件
  12. linux镜像文件iso下载RedHat,RedHat Enterprise Linux ISO文件下载镜像站点
  13. java inflate deflate_Java中的可迭代gzip deflate / inflate
  14. 想破解游戏协议?你知道客户端和服务器是怎么通信的?我来告诉你怎么定义的
  15. Android SDK各个版本API的特性及兼容性(Dalvik/ART)
  16. 五、settings 文件
  17. 互联网最新报告出炉!程序员必看系列!
  18. Kubernetes:基于命名行终端/ Web 控制台的管理工具 kubebox
  19. 用simple mapi 发送一个带附件的邮件
  20. SKYLIN TerraExplorer Pro 后台控制导航控件的显示隐藏(指北针、放大、缩小等)

热门文章

  1. php 经纬度转地址,PHP腾讯地图经纬度转百度地图经纬度
  2. 算法-4-经典算法-汇总(持续更新)-目录呈现
  3. 【Unity_AssetBundle】(四)什么是依赖?怎样加载依赖包?
  4. C++11 宽窄字符转换
  5. 前端展示用户名-手机号加密特殊处理
  6. 数据分析--检测异常样本方法
  7. brat事件标注平台使用教程
  8. 最通俗易懂明明白白的jvm内存结构
  9. sql server 2019安装及登录失败问题回头看
  10. 使用python的scapy库,提供一个可用的通过nbns获取主机名称的示例代码