一、研究背景

在今年2月份的RSA大會上,ESET的研究人員公開披露Wi-Fi芯片存在嚴重安全漏洞CVE-2019-15126,並將其命名爲“Kr00k”。攻擊者可以利用“Kr00k”解密無線網絡流量,獲取傳輸過程中的敏感數據。

Kr00k漏洞影響部分安裝Broadcom和CypressWi-Fi芯片的設備,這兩家芯片產品被廣泛應用於手機、平板電腦及IOT設備中。保守估計,全球總計超過10億的設備受該漏洞的影響。

二、漏洞分析

2.1 漏洞原理

在介紹Kr00k漏洞之前,先簡單瞭解下WPA2協議。目前基於AES-CCMP的WPA2協議是Wi-Fi網絡中最普遍的標準。下圖是客戶端(Station, STA)連接接入點(Access Point, AP)的消息交互過程。

STA和AP在四次握手中,協商會話密鑰PTK(Pairwise Transient Key),PTK是由PMK和PKE計算生成,而PMK由ANonce、SNonce和雙方MAC地址等計算生成。PTK分爲KCK、KEK和TK三部分,其中,KCK用於MIC校驗,KEK用於加密GTK,TK爲數據加密密鑰。四次握手完成後,傳輸數據使用TK進行加密。

在WPA2協議中,解除關聯操作可以由未經身份驗證和未加密的管理幀觸發,Kr00k漏洞與解除關聯操作密切相關。在下圖所示中,當站點的連接會話解除關聯後,保存在Wi-Fi芯片中的會話密鑰(TK)被置零,如果使用已置零的TK密鑰對芯片緩存中的數據進行加密並傳輸,將導致漏洞產生。

攻擊者利用無線網卡即可完成入侵,通過不斷觸發解除關聯、重新關聯,然後使用全零TK對捕獲的數據幀進行解密,從而獲取敏感信息。

2.2固件分析

本文選取Nexus5中的BCM4339芯片固件進行分析。首先,定位固件中計算ptk的位置,如下圖所示。

然後,對其上層函數wlc_wpa_sup_eapol進行分析。

wlc_wpa_sup_eapol調用wpa_pmk_to_ptk時,傳入的參數分別爲mac1、mac2、Nonce1、Nonce2、pmk、pmk_len、ptk、ptk_len。 ptk計算結果被保存在wpa_ptk結構體偏移0x8c位置中。

wlc_sup_attach函數用於處理STA的初始化連接,該函數對wpa_ptk結構體進行內存分配和初始化,wpa_ptk結構體大小爲0x13C。

當初始化失敗、連接超時或解除連接的時候,則會調用wlc_sup_detach函數對wpa_ptk結構體進行置零操作。

三、漏洞驗證

3.1 測試環境

設備名稱 數量
受影響的設備 Nexus5 1
iphone6s手機 1
Attacker NETGEAR網卡 2

3.2 測試步驟

(1)對wireshark解密數據包的相關功能進行patch,使其能夠成功解密全零TK加密的數據。

(2)使用patch後的wireshark監聽目標設備和AP通信的數據包。

(3)使用目標設備連接AP並任意訪問網頁。

(4)對AP和測試目標發送Disassocation包。

(5)重複執行步驟(3)和(4),觀察wireshark中數據包是否解密。

3.3測試結果

Nexus 5:

iphone 6s:

可以看出,Nexus 5和iphone 6s部分數據被成功解密。

四、影響範圍

目前已知受影響的設備有:

 Amazon Echo 2nd gen
 Amazon Kindle 8th gen
 Apple iPad mini 2
 Apple iPhone 6, 6S, 8, XR
 Apple MacBook Air Retina 13-inch 2018
 Google Nexus 5
 Google Nexus 6
 Google Nexus 6P
 Raspberry Pi 3
 Samsung Galaxy S4 GT-I9505
 Samsung Galaxy S8
 Xiaomi Redmi 3S
 Asus RT-N12
 Huawei B612S-25d
 Huawei EchoLife HG8245H
 Huawei E5577Cs-321

五、安全建議

設備製造商已發佈的安全建議如下:

https://support.apple.com/en-us/HT210721

https://support.apple.com/en-us/HT210722

https://support.apple.com/en-us/HT210788

https://www.arubanetworks.com/assets/alert/ARUBA-PSA-2020-003.txt

https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20200226-wi-fi-info-disclosure

https://www.huawei.com/en/psirt/security-notices/huawei-sn-20200228-01-kr00k-en

https://www.microchip.com/design-centers/wireless-connectivity/embedded-wi-fi/kr00k-vulnerability

https://www.mist.com/documentation/mist-security-advisory-kr00k-attack-faq/

https://www.zebra.com/us/en/support-downloads/lifeguard-security/kr00k-vulnerability.html

*本文作者:ADLab,轉載請註明來自FreeBuf.COM

相關文章