隨著網絡安全威脅的不斷增加,了解并預防可能的攻擊變得至關重要。Blast-RADIUS是一種嚴重影響 RADIUS協議的安全漏洞,能夠讓攻擊者繞過身份驗證獲取未經授權的訪問權限。本篇文章將深入探討該漏洞的工作原理、檢測方法及應對措施,幫助您有效防范潛在的安全風險。
關于 Blast-RADIUS的基礎知識
Blast-RADIUS是一種影響 RADIUS協議(依據 RFC 2865)的安全漏洞。它允許位于 RADIUS客戶端和服務器之間的中間人攻擊者偽造一個有效的訪問接受(access-accept)消息,來響應實際已經失敗的認證請求。這種偽造使攻擊者能夠在無需猜測或強制破解密碼和共享密鑰的情況下,獲得對網絡設備和服務的訪問權限。攻擊者在請求中插入了一個惡意屬性,導致合法服務器響應中的認證信息與攻擊者偽造的消息發生碰撞。這使得攻擊者能夠將拒絕轉變為接受,并添加任意的協議屬性。然而,攻擊者并不會獲取任何用戶憑據。該漏洞已在 CVE-2024-3596中描述。
具體來說,該攻擊是通過計算碰撞來攻擊響應認證器的 MD5簽名。該攻擊代表了一個協議漏洞,因此影響所有不使用 EAP認證方法并通過 UDP未加密工作的 RADIUS實現。特別是,密碼認證協議(PAP)和質詢握手認證協議(CHAP)方法受到影響。
圖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
使用 ProfiShark進行捕獲
在 ProfiShark Manager中,我們需要在 "Network Ports"選項卡中將 ProfiShark設置為內聯模式(即取消勾選 "Span Mode"復選框,如圖 3所示),然后將其內聯集成到我們的網絡中(如圖 2所示)。
圖3? 在 ProfiShark Manager?中禁用 SPAN?模式,將 ProfiShark?內聯集成到 RADIUS?客戶端和 RADIUS?服務器之間
接下來,在 "Capture"選項卡中,根據需要設置捕獲目錄,并通過點擊 "Start Capture"按鈕開始捕獲數據,直到我們獲取到足夠的數據為止。
圖4?在 ProfiShark Manager?中設置捕獲目錄并開始捕獲
使用 IOTA進行捕獲
首先,我們需要確保在 IOTA管理界面的 "Capture > Interface Configuration"頁面上,將 IOTA的捕獲接口設置為內聯模式。
圖5?將端口控制設置為內聯模式
然后,我們將 IOTA內聯集成到生產網絡中,并通過按下設備上的物理按鈕或在 "Capture > Capture Control"頁面上點擊 "Start Capture"按鈕開始捕獲數據。
圖6?通過 "Capture Control"?頁面上的 "Start Capture"?按鈕開始捕獲
現在,我們可以通過應用程序或協議棧過濾器對 RADIUS協議進行過濾。最簡單的方法是過濾 "APPLICATION"屬性,并將其值設置為 "RADIUS"(如圖 7所示),這樣只會獲取 RADIUS數據包。另一種選擇是通過 "PROTOCOL_STACK"進行過濾,設置值為 "Ethernet | IPv4 | UDP | RADIUS"。
圖7?過濾 RADIUS?數據包
在正確過濾協議后,我們可以滾動至概覽儀表板的底部,直到看到流列表。接下來,我們需要選擇要進一步分析的流,并點擊左側的下載按鈕。
圖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?數據包的截圖
作為使用 “Message-Authenticator” 屬性值對來實現解決方案的數據包示例,我們可以參考圖10,其中展示了該解決方案的實現。
圖10 Wireshark?中帶有消息認證器屬性/值對的 RADIUS?訪問請求截圖。在此情況下,它也是一個不易受攻擊的 EAP?認證
結論
IOTA和 ProfiShark可以幫助我們輕松高精度地收集 RADIUS數據包的包級數據并進行分析。Wireshark通過使用上述顯示過濾器支持我們高效分析收集到的數據,快速篩選出易受攻擊的 RADIUS實現。
作為應對 Blast-RADIUS攻擊的替代方案,可以使用 “Message-Authenticator” 屬性值對,或者在 RADIUS客戶端到 RADIUS服務器的傳輸過程中,通過 RadSec或 IPSec使用 TLS傳輸加密來保護 RADIUS數據包。
審核編輯 黃宇
-
網絡安全
+關注
關注
11文章
3274瀏覽量
61014 -
Iota
+關注
關注
0文章
32瀏覽量
8527 -
Wireshark
+關注
關注
0文章
49瀏覽量
6673
發布評論請先 登錄
專家呼吁:網絡安全建設亟需開放與合作
網絡安全檢測與監控技術的研究
智能交通網絡安全應用實踐指南

如何使用 IOTA?分析安全漏洞的連接嘗試

評論