可模糊源端口数据的新型DDoS攻击方法

最近的分布式拒绝服务(DDoS)攻击展现通过模糊源端口数据绕过现有防御机制的新特性。

timthumb.php

网络安全解决方案提供商Imperva称,除了常见的放大攻击方法,新观测到的攻击使用了DDoS防御者没想到的非常规源端口数据。该攻击方法利用的是著名的UPnP(通用即插即用)协议漏洞。

UPnP协议允许通过 UDP 1900 端口发现设备,并允许使用任意TCP端口进行设备控制。因此,很多IoT设备都用该协议在局域网(LAN)上相互发现并通信。

然而,开放远程访问的设备默认设置、身份验证机制的缺乏,以及UPnP远程代码执行漏洞,令该协议构成了安全风险。

UPnP相关漏洞早在20年前就被安全研究人员披露了,除此之外,简单对象访问协议(SOAP) API调用也可用于通过广域网(WAN)远程重配置不安全设备。控制端口转发规则的AddPortMapping指令同样能经 SOAP API 调用远程执行。

2018年4月11日,Imperva在缓解某简单服务发现协议(SSDP)放大攻击时,注意到某些攻击载荷不是来自UDP/1900,而是来自一个非预期的源端口。几周后的另一个攻击中,同样的方法再次出现。

Imperva称:“对这些事件的调查,让我们构建出集成了UPnP的攻击方法的概念验证代码(PoC),可被用于模糊任意放大攻击载荷的源端口信息。”

想要使用该PoC执行DNS放大攻击,先得利用Shodan之类公开在线服务执行大范围SSDP扫描,找出开放UPnP路由器。

此类扫描能扫出130多万台此类设备,当然,不是全部设备都带有相应漏洞。但定位出一台可利用的脆弱设备依然相当容易,因为可以用脚本自动化该过程。

接下来,攻击者需要通过HTTP访问该设备的XML文件(rootDesc.xml),用Shodan中的真实设备IP替换掉‘Location’ IP就行。

rootDesc.xml文件列出了所有可用UPnP服务和设备,下一步就是通过AddPortMapping指令修改设备的端口转发规则。

运用文件中的机制,可以使用SOAP请求来创建转发规则,将所有发送至端口1337的UDP包通过端口UDP/53(DNS端口)重路由至外部DNS服务器(3.3.3.3)。

虽然端口转发应仅用于将外部IP的流量映射到内部IP或反之,但大多数路由器并不验证所提供的内部IP是否真的是内部的,这就允许来自外部IP的代理请求到另一个外部IP了。

要使用该端口模糊的DNS放大攻击,发往设备并被UPnP设备在UDP/1337端口接收的DNS请求,需通过目的端口UDP/53被代理至DNS解析器。解析器通过源端口UDP/53响应设备,而设备在将源端口改回UDP/1337后再将该DNS响应转发回原始请求者。

Evasive-Amplificationnr8-690x237

源端口模糊的DNS放大攻击

真实攻击场景中,初始DNS请求会从被假冒的受害者IP发出,也就是说对该请求的响应也会返回给该受害者。

该设备可用于以能规避检测的端口发起DNS放大DDoS攻击,因为攻击载荷源于非常规的源端口,通过查看源端口数据检测放大攻击载荷的常见防御措施就会被绕过。该绕过检测的方法也能用于SSDP和NTP(网络时钟协议)攻击,且能与其他放大攻击方法联合使用,比如Memcached。

源IP和端口信息不再成为可靠的过滤因素,执行深度包检测(DPI)是最有可能的放大攻击载荷发现方法,但这是资源密集型过程,如果没有专门的缓解设备支持,执行速度会很慢。

上一篇:意识、预算与协作:驱动工业网络安全发展的ABC

下一篇:Fortinet 发布2018年Q1全球威胁态势报告