注意:該攻擊大多數是在局域網環境下。
SSDP(Simple Service Discovery Protocol)是一种基于HTTPU(HTTP over UDP)协议的网络服务发现协议,用于在局域网中发现和识别可用的服务和设备。SSDP协议的工作原理如下:
- 广播或多播消息:设备在网络上定期发送SSDP广播或多播消息,以通知其他设备它的存在和提供的服务。这些消息通常包含设备的描述信息、服务类型、设备标识符等。
- 搜索消息:当设备需要查找某种服务或设备时,它会发送一个SSDP搜索消息到网络上的所有设备。搜索消息中包含了所需服务或设备的类型和标识符。
- 响应消息:收到搜索消息的设备会检查自己的服务列表,并向发送搜索消息的设备发送一个响应消息,以告知自己提供的服务或设备信息。
- 交换信息:在发现和响应过程中,设备之间通过SSDP协议交换信息,以实现服务发现和识别。
SSDP协议基于UDP协议,使用端口1900进行通信。它采用简单的文本格式(类似于HTTP协议)来定义消息格式,并且没有状态维护,因此是一种无状态协议。由于SSDP协议基于UDP,并且是广播或多播的方式发送消息,因此具有一定的安全风险,容易受到各种攻击,包括DDoS攻击。
攻击者利用SSDP协议的广播或多播特性和设备的响应机制,可以通过伪造大量的搜索消息来引发大量的响应消息,从而导致网络拥塞和目标服务器的过载。这就是SSDP DDoS攻击的基本原理,攻击者利用SSDP协议的放大效应来放大攻击流量,从而对目标发起拒绝服务攻击。
在一般情況下,SSDP 通訊協定用於允許 UPnP 裝置將其存在廣播至網路上的其他裝置。例如,當 UPnP 印表機連接至典型網路時,印表機在接收 IP 位址後,可以向稱為多點傳送位址的特殊 IP 位址傳送一條訊息,藉此向網路上的電腦通告其服務。然後,多點傳送位址會告知網路上的所有電腦有關新印表機的資訊。一旦電腦聽到有關印表機的探索訊息,就會向印表機發出要求,以取得其服務的完整描述。然後,打印機直接回應該電腦,其中包含其需要提供的所有內容的完整清單。SSDP 攻擊透過要求裝置回應目標受害者來利用該服務的最終請求。
大致步驟:
- 掃描隨插即用裝置:攻擊者首先會進行掃描,尋找可以用作放大因素的隨插即用裝置,這些裝置可能包括智能插座、路由器、網絡攝像頭等,這些裝置通常運行著支持SSDP協議的服務。
- 建立回應裝置清單:一旦攻擊者發現這些聯網裝置,他們會建立一個所有回應裝置的清單,這些裝置將被用來放大攻擊流量。
- 建立偽造的UDP封包:攻擊者使用目標受害者的偽造IP位址建立UDP封包,這些封包將被發送到受害者的伺服器。
- 傳送探索封包:攻擊者使用殭屍網路向每個隨插即用裝置傳送偽造的探索封包,並設置一些標誌(特別是ssdp:rootdevice或ssdp:all)來請求盡可能多的資料。這些裝置將會將自己的回應發送到目標受害者的IP位址。
- 裝置回覆:每個裝置都會向目標受害者傳送回覆,其資料量高達攻擊者請求的30倍左右,這就是放大攻擊的核心機制。
- 目標受害者負荷過重:最後,目標接收來自所有裝置的大量流量並變得不堪重負,可能導致對合法流量的阻斷服務,使得目標網站或服務無法正常運作。
總的來說,SSDP DDoS攻擊利用了SSDP協議的放大效應和隨插即用裝置的廣泛存在,通過向這些裝置發送大量的探索封包來放大攻擊流量,從而對目標受害者造成嚴重影響。为了防止此类攻击,网络管理员需要采取一系列的防御措施,包括限制公開訪問、更新裝置的韌體、過濾異常流量等。