從歷史上看,大多數員工都使用羅技的無線鍵盤和滑鼠。 再次輸入密碼,我們這些浣熊安全團隊的專家問自己:繞過無線鍵盤的安全機制有多難? 該研究揭示了允許存取輸入資料的架構缺陷和軟體錯誤。 切口下方就是我們得到的。
為什麼選擇羅技?
我們認為,羅技輸入設備是品質最高、最方便的輸入設備之一。 我們擁有的大多數設備都基於羅技解決方案
支援 Logitech Unifying 的適配器接收器
鍵盤可能成為攻擊者的資訊來源。 羅技考慮到可能的威脅,採取了安全措施——在無線鍵盤的無線電通道中使用了 AES128 加密演算法。 在這種情況下,攻擊者可能首先想到的是在綁定過程期間透過無線電頻道傳輸關鍵訊息時攔截關鍵訊息。 畢竟,如果你有鑰匙,你就可以攔截鍵盤的無線電訊號並解密它們。 然而,用戶很少(甚至從不)需要統一鍵盤,而使用掃描無線電的駭客將不得不等待很長時間。 此外,攔截過程本身並不是一切都那麼簡單。 在 2019 年 XNUMX 月的最新研究中,安全專家馬庫斯孟斯在線上發表
我們將討論基於 Nordic Semiconductor NRF24 SoC 的羅技加密狗的安全研究。 也許讓我們從廣播頻道本身開始。
數據如何在無線電頻道中“飛行”
為了對無線電訊號進行時頻分析,我們在頻譜分析儀模式下使用了基於 Blade-RF 設備的 SDR 接收器(您也可以閱讀此內容
SDR Blade-RF設備
我們也考慮了記錄中頻無線電訊號正交的可能性,然後可以使用數位訊號處理技術進行分析。
俄羅斯聯邦國家無線電頻率委員會
2,4 GHz 頻段的頻譜
範圍內的干擾環境相當複雜。 儘管如此,羅技還是能夠透過在 NRF24 收發器中使用增強型 ShockBurst 協定並結合頻率自適應演算法來提供可靠且穩定的接收。
頻帶中的頻道被放置在整數 MHz 位置,如
鍵盤無線電訊號的時間表示
接收方採用相關原理接收,因此傳送的資料包包含前導碼和位址部分。 不使用抗噪音編碼;資料體採用AES128演算法加密。
一般來說,羅技無線鍵盤的無線電介面的特點是完全非同步,具有統計復用和頻率自適應。 這意味著鍵盤發送器會切換通道來發送每個新資料包。 接收者事先並不知道傳輸時間或頻道,但只知道它們的清單。 由於協調的頻率旁路和監聽演算法以及增強型 ShockBurst 確認機制,接收器和發射器在通道中相遇。 我們還沒有調查頻道清單是否是靜態的。 很可能,它的變化是由於頻率自適應演算法造成的。 在該範圍的頻率資源的使用中可以看到類似於跳頻方法(工作頻率的偽隨機調諧)的東西。
因此,在時頻不確定的情況下,為了確保所有鍵盤訊號的接收,攻擊者需要不斷監控整個84個位置的頻率網格,這需要大量的時間。 USB金鑰提取漏洞(CVE-2019-13054)的原因就清楚了
從內部看問題
在我們的研究中,我們選擇了現有的羅技 K330 鍵盤和羅技 Unifying 轉接器。
羅技K330
讓我們看看鍵盤內部。 板上一個值得研究的有趣元素是 Nordic Semiconductor 的 SoC NRF24 晶片。
羅技 K24 無線鍵盤板上的 SoC NRF330
韌體位於內部記憶體中,讀取和調試機制被停用。 不幸的是,該固件尚未開源發布。 因此,我們決定從另一個角度來解決這個問題——研究羅技適配器接收器的內部內容。
加密狗接收器的「內部世界」非常有趣。 這款加密狗易於拆卸,搭載熟悉的 NRF24 版本,內建 USB 控制器,並且可以從 USB 端或直接從程式設計器重新編程。
羅技轉接器不含外殼
由於存在使用更新韌體的標準機制
做了什麼:從韌體更新工具應用程式的主體中提取韌體 RQR_012_005_00028.bin。 為了檢查其完整性,加密狗控制器以電纜連接
用於將 Logitech 轉接器連接到 ChipProg 48 編程器的電纜
為了控制韌體的完整性,它已成功放置在控制器的記憶體中並正常工作,鍵盤和滑鼠透過 Logitech Unifying 將適配器連接到適配器。 可以使用標準更新機制上傳修改後的韌體,因為韌體沒有加密保護機制。 出於研究目的,我們使用了與程式設計師的物理連接,因為這種方式調試速度要快得多。
韌體研究和對用戶輸入的攻擊
NRF24晶片基於傳統哈佛架構的Intel 8051運算核心設計。 對於核心來說,收發器充當外圍設備,並作為一組暫存器放置在位址空間中。 晶片的文件和原始碼範例可以在網路上找到,因此反彙編韌體並不困難。 在逆向工程過程中,我們在地化了從無線電通道接收擊鍵資料並將其轉換為 HID 格式以透過 USB 介面傳輸到主機的功能。 注入程式碼被放置在空閒記憶體位址中,其中包括用於攔截控制、保存和恢復原始執行上下文的工具以及功能代碼。
加密狗從無線通道接收到的按下或釋放按鍵的資料包被解密,轉換為標準 HID 報告,並像普通鍵盤一樣發送到 USB 介面。 作為研究的一部分,HID 報告中我們最感興趣的部分是 HID 報告中包含修飾符標誌位元組和帶有擊鍵代碼的 6 位元組數組的部分(作為參考,有關 HID 的信息
HID 報告結構:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;
在將 HID 結構傳輸到主機之前,注入的程式碼會進行控制,複製記憶體中的 8 位元組本機 HID 數據,並將其以明文形式傳送到無線電側通道。 在程式碼中它看起來像這樣:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
側通道按照我們根據操作速度和資料包結構的某些特徵設定的頻率進行組織。
晶片內收發器的操作
邊頻道中的解調突發突發訊號
封包傳輸到側通道後,注入的程式碼將恢復收發器的狀態。 現在它又可以在原始韌體的環境中正常運作了。
在頻域和時頻域中,側通道如下所示:
側通道的頻譜和時頻表示
為了測試修改後的韌體的 NRF24 晶片的運作情況,我們組裝了一個支架,其中包括修改後的韌體的羅技適配器、無線鍵盤和基於帶有 NRF24 晶片的中國模組組裝的接收器。
羅技無線鍵盤無線電訊號攔截電路
基於NRF24的模組
在實驗台上,鍵盤正常運作的情況下,連接羅技加密狗後,我們觀察到側無線通道中清晰的按鍵資料傳輸,主無線介面中的加密資料傳輸正常。 因此,我們能夠直接攔截用戶鍵盤輸入:
攔截鍵盤輸入的結果
注入的程式碼會導致加密狗韌體的運作出現輕微延遲。 然而,它們太小,用戶無法注意到。
正如您可以想像的那樣,任何與 Unifying 技術相容的 Logitech 鍵盤都可以用於此攻擊媒介。 由於攻擊針對的是大多數 Logitech 鍵盤隨附的 Unifying 接收器,因此它與特定的鍵盤型號無關。
結論
研究結果表明攻擊者可能會使用所考慮的場景:如果駭客用羅技無線鍵盤的適配器接收器替換受害者,那麼他將能夠找出受害者帳戶的密碼以及隨後發生的所有情況。結果。 不要忘記,注入擊鍵也是可能的,這意味著在受害者的電腦上執行任意程式碼並不困難。
如果攻擊者突然可以透過 USB 遠端修改任何 Logitech 加密狗的韌體怎麼辦? 然後,您可以透過緊密間隔的加密狗創建中繼器網路並增加洩漏距離。 儘管「財力雄厚」的攻擊者甚至能夠從鄰近的建築物「監聽」鍵盤輸入和按鍵,但具有高選擇性系統的現代無線電接收設備、具有短頻率調諧時間的靈敏無線電接收器和高度定向天線將允許他們甚至可以從鄰近的建築物「監聽」鍵盤輸入並按下按鍵。
專業無線電設備
由於羅技鍵盤的無線資料傳輸通道受到相當好的保護,所發現的攻擊向量需要對接收器進行物理訪問,這極大地限制了攻擊者。 在這種情況下,唯一的保護選項是對接收器韌體使用加密保護機制,例如,檢查接收器側加載的韌體的簽名。 但不幸的是,NRF24 不支援這一點,並且無法在目前的裝置架構內實現保護。 因此請保管好您的加密狗,因為所描述的攻擊選項需要對它們進行物理存取。
Raccoon Security 是由 Vulcan 研發中心的實用資訊安全、密碼學、電路設計、逆向工程和底層軟體創建領域的專家組成的特殊團隊。
來源: www.habr.com