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

Blast-RADIUS

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

Blast-RADIUS 基礎知識

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

具體來說,該攻擊是透過計算碰撞來攻擊回應認證器的 MD5 簽名。該攻擊代表了一個協議漏洞,因此影響所有不使用 EAP 認證方法並透過 UDP 未加密工作的 RADIUS 實現。特別是,密碼認證協定(PAP)和質詢握手認證協議(CHAP)方法受到影響。

Radius

圖1 對使用 PAP 方法進行 RADIUS 驗證的 Blast-RADIUS 攻擊

如果無法直接使用 TLS 或 DTLS 進行傳輸加密,可以使用 RFC 2869 中描述的可選 RADIUS 屬性 “Message-Authenticator” 作為替代方法。

該方法為整個 RADIUS 數據包計算一個 HMAC-MD5 校驗和。未透過此完整性檢查的數據包必須被靜默丟棄。根據當前的狀態,沒有共用金鑰的情況下,HMAC-MD5 校驗和無法被偽造。

如果在所有數據包中都要求使用有效的消息認證屬性,這種攻擊將變得不可能。然而,這個屬性僅在 EAP 認證方法中是強制性的,而在 PAP 和 CHAP 中並不是。即使在 RFC 5080 中也只是定義了一個 “SHOULD”(建議使用)。

如何檢查漏洞

要檢查您的實現是否存在漏洞,可以捕獲 RADIUS 伺服器和 RADIUS 用戶端之間的通訊數據包,並根據受影響的協定特性進行篩選。我們可以使用 ProfiShark 或 IOTA 捕獲數據包,基於 RADIUS 協定對 IOTA 進行預篩選,並使用 Wireshark 進行分析。需要捕獲 RADIUS 用戶端與伺服器之間的數據包,例如,在圖2所示的內聯模式下進行捕獲。

圖2 在 RADIUS 用戶端(交換機)和 RADIUS 伺服器之間定位 IOTA 或 ProfiShark

圖2 在 RADIUS 用戶端(交換機)和 RADIUS 伺服器之間定位 IOTA 或 ProfiShark

使用 Profishark 進行捕獲

在 ProfiShark Manager 中,我們需要在 “Network Ports” 選項卡中將 ProfiShark 設置為內聯模式(即取消勾選 “Span Mode” 核取方塊,如圖 3 所示),然後將其內聯整合到我們的網路中(如圖 2 所示)。

圖3 在 ProfiShark Manager 中禁用 SPAN 模式,將 ProfiShark 內聯整合到 RADIUS 用戶端和 RADIUS 伺服器之間

圖3 在 ProfiShark Manager 中禁用 SPAN 模式,將 ProfiShark 內聯整合到 RADIUS 用戶端和 RADIUS 伺服器之間

接下來,在 “Capture” 選項卡中,根據需要設置捕獲目錄,並透過點擊 “Start Capture” 按鈕開始捕獲數據,直到我們獲取到足夠的數據為止。

圖4 在 ProfiShark Manager 中設置捕獲目錄並開始捕獲

圖4 在 ProfiShark Manager 中設置捕獲目錄並開始捕獲

使用 IOTA 進行捕獲

首先,我們需要確保在 IOTA 管理介面的 “Capture > Interface Configuration” 頁面上,將 IOTA 的捕獲介面設置為內聯模式。

然後,我們將 IOTA 內聯整合到生產網路中,並透過按下設備上的物理按鈕或在 “Capture > Capture Control” 頁面上點擊 “Start Capture” 按鈕開始捕獲數據。

圖6 透過 "Capture Control" 頁面上"Start Capture" 按鈕開始捕獲

圖6 透過 “Capture Control” 頁面上”Start Capture” 按鈕開始捕獲

現在,我們可以透過應用程式或協定棧篩檢程式對 RADIUS 協定進行過濾。最簡單的方法是過濾 “APPLICATION” 屬性,並將其值設置為 “RADIUS”(如圖 7 所示),這樣只會獲取 RADIUS 數據包。另一種選擇是透過 “PROTOCOL_STACK” 進行過濾,設置值為 “Ethernet | IPv4 | UDP | RADIUS”。

圖7 過濾 RADIUS 數據包

圖7 過濾 RADIUS 數據包

在正確過濾協議後,我們可以滾動至概覽儀錶板的底部,直到看到流列表。接下來,我們需要選擇要進一步分析的流,並點擊左側的下載按鈕。

圖8 可下載的流列表

圖8 可下載的流列表

分析易受攻擊的執行方式

例如,我們可以使用 Wireshark 檢查 RADIUS 請求中是否包含易受攻擊的屬性。首先,我們需要打開位於之前在 ProfiShark Manager 中設置的目錄或從 IOTA 下載的數據夾中的 PCAPNG 檔。接下來,我們需要一個顯示篩檢程式來獲取 RADIUS Access-Requests(代碼 1)、Access-Accepts(代碼 2)、Access-Rejects(代碼 3)和 Access-Challenges(代碼 11),但不包括使用 EAP 方法或帶有 “Message-Authenticator” 屬性值對的 RADIUS 消息,因為它們不受此漏洞影響。為此,我們可以使用顯示篩檢程式 “(radius.code in {1,2,3,11}) and not (radius.Message_Authenticator or eap)”,如圖 9 所示。這樣,我們只會獲取受此協定漏洞影響的 RADIUS 數據包,並且可以看到受影響產品的源 IP 位址。

圖9 在 Wireshark 中使用顯示篩檢程式篩選潛在易受攻擊的 RADIUS 數據包的截圖

圖9 在 Wireshark 中使用顯示篩檢程式篩選潛在易受攻擊的 RADIUS 數據包的截圖

作為使用 “Message-Authenticator” 屬性值對來實現解決方案的數據包示例,我們可以參考圖10,其中展示了該解決方案的實現。

圖10 Wireshark 中帶有消息認證器屬性/值對的 RADIUS 存取請求截圖。在此情況下,它也是一個不易受攻擊的 EAP 認證

圖10 Wireshark 中帶有消息認證器屬性/值對的 RADIUS 存取請求截圖。在此情況下,它也是一個不易受攻擊的 EAP 認證

點擊了解更多 Profishark 產品資訊

Profishark-1G

Profitap 抓包工具 Profishark-1G

  • 便攜設計:專為現場工程師設計的便攜式網路TAP設備。
  • 高保真流量捕獲:通過 USB 3.0 供電,能夠捕獲高保真的網路流量。
  • 精確時間戳記:支持精確的時間戳記,便於網路流量分析。
  • 非侵入式操作:不改變原始網路流量,保障網路安全性和性能。
  • ProfiShark 管理器:提供數據包切片、統計和配置選項,提升故障排除效率。

總結

IOTA 和 ProfiShark 可以幫助我們輕鬆高精度地收集 RADIUS 數據包的包級數據並進行分析。Wireshark 透過使用上述顯示篩檢程式支援我們高效分析收集到的數據,快速篩選出易受攻擊的 RADIUS 實現。

作為應對 Blast-RADIUS 攻擊的替代方案,可以使用 “Message-Authenticator” 屬性值對,或者在 RADIUS 用戶端到 RADIUS 伺服器的傳輸過程中,透過 RadSec 或 IPSec 使用 TLS 傳輸加密來保護 RADIUS 數據包。

如果您對此感興趣,歡迎您關注我們獲取更多文章資訊,如有任何問題,也歡迎聯絡我們!