最近的分布式拒絕服務(DDoS)攻擊展現通過模糊源端口數據繞過現有防御機制的新特性。
網絡安全解決方案提供商Imperva稱,除了常見的放大攻擊方法,新觀測到的攻擊使用了DDoS防御者沒想到的非常規源端口數據。該攻擊方法利用的是著名的UPnP(通用即插即用)協議漏洞。
UPnP協議允許通過 UDP 1900 端口發現設備,并允許使用任意TCP端口進行設備控制。因此,很多IoT設備都用該協議在局域網(LAN)上相互發現并通信。
然而,開放遠程訪問的設備默認設置、身份驗證機制的缺乏,以及UPnP遠程代碼執行漏洞,令該協議構成了安全風險。
UPnP相關漏洞早在20年前就被安全研究人員披露了,除此之外,簡單對象訪問協議(SOAP) API調用也可用于通過廣域網(WAN)遠程重配置不安全設備??刂贫丝谵D發規則的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響應轉發回原始請求者。
源端口模糊的DNS放大攻擊
真實攻擊場景中,初始DNS請求會從被假冒的受害者IP發出,也就是說對該請求的響應也會返回給該受害者。
該設備可用于以能規避檢測的端口發起DNS放大DDoS攻擊,因為攻擊載荷源于非常規的源端口,通過查看源端口數據檢測放大攻擊載荷的常見防御措施就會被繞過。該繞過檢測的方法也能用于SSDP和NTP(網絡時鐘協議)攻擊,且能與其他放大攻擊方法聯合使用,比如Memcached。
源IP和端口信息不再成為可靠的過濾因素,執行深度包檢測(DPI)是最有可能的放大攻擊載荷發現方法,但這是資源密集型過程,如果沒有專門的緩解設備支持,執行速度會很慢。