宏虹分享丨用ProfiShark和IOTA識別與防範Blast-RADIUS漏洞的安全風險

前言

隨著網路安全威脅的不斷增加,瞭解並預防可能的攻擊變得至關重要。 Blast-RADIUS 是一種嚴重影響 RADIUS 協議的安全性漏洞,能夠讓攻擊者繞過身份驗證獲取未經授權的存取權限。 本篇文章將深入探討該漏洞的工作原理、檢測方法及應對措施,幫助您有效防範潛在的安全風險。

Blast-RADIUS漏洞安全風險示意圖

圖一:Blast-RADIUS 漏洞安全風險

Blast-RADIUS 基礎知識

Blast-RADIUS 是一種影響 RADIUS 協議(依據 RFC 2865)的安全性漏洞。它允許位於 RADIUS 用戶端和伺服器之間的中間人攻擊者, 偽造一個有效的存取接受(access-accept)消息,回應已經失敗的認證請求,使攻擊者能夠在無需猜測或強制破解密碼和共用金鑰的情況下,就取得對網路設備與服務的存取權限。 攻擊者在請求中插入了一個惡意屬性,導致合法伺服器響應中的認證資訊與攻擊者偽造的消息發生碰撞,最終將拒絕轉為接受,並可添加任意協定屬性。不過,攻擊者不會取得用戶憑據。 該漏洞已在 CVE-2024-3596 中描述。

具體來說,此攻擊是透過計算碰撞來攻擊回應認證器的 MD5 簽名。由於這是協定層面問題,所以只要不使用 EAP 並透過 UDP 未加密通訊工作的 RADIUS 實現(特別是 PAP、CHAP),皆會處於受影響範圍。

Blast-RADIUS漏洞原理示意圖

圖二:Blast-RADIUS 漏洞原理示意圖(已放大)

如果無法直接使用 TLS 或 DTLS 進行傳輸加密,可以使用 RFC 2869 中描述的可選 RADIUS 屬性 “Message-Authenticator” 作為替代方法。 該方法為整個 RADIUS 數據包計算一個 HMAC-MD5 校驗和,任何未透過此完整性檢查的數據包必須被靜默丟棄。 由於沒有共用金鑰,攻擊者將無法偽造此 HMAC-MD5 簽名。如果在所有數據包中都要求使用有效的消息認證屬性,那麼這種攻擊將變得不可能。 可惜的是,這個屬性只有在 EAP 認證方法中才是強制性的,而在 PAP 和 CHAP 中並非強制;即便在 RFC 5080 中也只是「SHOULD」建議。

如何檢查漏洞

要檢查您的實現是否存在此漏洞,可以捕獲 RADIUS 伺服器和 RADIUS 用戶端之間的通訊數據包,依據受影響的協定特徵進行篩選。 我們可以使用 ProfiSharkIOTA 進行攔截,並將擷取到的封包透過 Wireshark 做進一步分析。 建議以內聯模式(見圖三)捕獲實際雙向通訊。

IOTA 或 ProfiShark 置於 RADIUS 用戶端和伺服器之間

圖三:在 RADIUS 用戶端與伺服器間內聯連接 IOTA 或 ProfiShark

使用 Profishark 進行捕獲

在 ProfiShark Manager 中,請前往 “Network Ports” 選項卡,將 ProfiShark 設置為內聯模式(取消勾選 “Span Mode”,如圖四), 然後將其內聯整合至您的網路拓撲(如圖三)。

ProfiShark Manager中停用SPAN模式

圖四:在 ProfiShark Manager 中禁用 SPAN 模式

接下來,切換到 “Capture” 選項卡,根據需求設定捕獲目錄,然後點選 “Start Capture” 按鈕開始捕獲數據,直到取得足夠封包後再停止(圖五), 最後匯出為 PCAPNG 檔並使用 Wireshark 開啟。

設定捕獲目錄後點擊Start Capture

圖五:在 ProfiShark Manager 中開始抓包

使用 IOTA 進行捕獲

在 IOTA 介面上,首先進入 “Capture > Interface Configuration”,將介面設置為內聯模式(如圖六),然後將 IOTA 內聯部署於網路環境中, 透過設備按鈕或 “Capture > Capture Control” 頁面點選 “Start Capture” 開始捕獲(圖七)。

IOTA中介面設為內聯模式

圖六:IOTA 一體化流量監控工具的介面配置

按下Start Capture開始捕獲

圖七:透過介面或設備按鈕開始捕獲

現在,我們可以應用協定或應用程式篩檢器鎖定 RADIUS 封包,最簡單的方式是將 “APPLICATION” 設為 “RADIUS”。 也可改透過 “PROTOCOL_STACK=Ethernet | IPv4 | UDP | RADIUS” 來過濾。當篩選到特定的 RADIUS 流後, 可於底部的流列表處選擇下載該流的 PCAPNG 檔(圖八)。

IOTA介面過濾RADIUS封包

圖八:在 IOTA 上過濾 RADIUS 封包

下載流列表

圖九:流列表可依需求下載PCAPNG

分析易受攻擊的執行方式

打開匯出的 PCAPNG 檔後,在 Wireshark 中,我們可以使用以下顯示篩檢程式來鎖定可能易受攻擊的 RADIUS 封包:
(radius.code in {1,2,3,11}) and not (radius.Message_Authenticator or eap) (如圖十)。這樣就能同時取得 Access-Requests(代碼1)、Access-Accepts(代碼2)、Access-Rejects(代碼3)及 Access-Challenges(代碼11), 但排除已使用 EAP 或帶有 Message-Authenticator 的安全封包。

Wireshark顯示篩檢易受攻擊RADIUS數據包

圖十:在 Wireshark 中僅顯示不含 Message-Authenticator 或 EAP 的 RADIUS 封包

一旦封包中看見 “Message-Authenticator” 屬性(如圖十一),代表封包經 HMAC-MD5 校驗,便不易受 Blast-RADIUS 攻擊影響。 若所有 RADIUS 封包都帶有該屬性,攻擊將被阻擋。

Wireshark中帶有Message-Authenticator屬性的RADIUS封包

圖十一:Message-Authenticator 防止攻擊的 RADIUS Access-Request

產品推薦

Profitap抓包工具 Profishark-1G

Profitap 抓包工具 Profishark-1G

  • 高精度且即插即用的乙太網線路攔截與分析
  • USB 3.0介面,無需外接電源
  • 可切換SPAN或內聯模式,部署彈性高
  • 適用於故障排除、安全檢測、性能監控
產品資訊
IOTA一體化流量監控工具1G

IOTA一體化流量監控工具 1G

  • 整合封包捕獲、視覺化介面與PCAP下載功能
  • 支援1G乙太網速率,便於內聯攔截
  • 瀏覽器介面即可遠端操控,快速過濾與下載
  • 適用於安全分析、流量監測、故障診斷等多種情境
產品資訊