2024.11.29 13:00

韌體逆向工程!關閉筆電網路攝影機 LED 指示燈, 駭客可暗中監視你

ADVERTISEMENT

你是否曾擔心你的筆電Webcam在你不知情的情況下被開啟?你是否想完全掌控你的網路Webcam LED 指示燈?網路安全研究員安德烈·科諾瓦洛夫(Andrey Konovalov)近期揭露了一項技術,可以秘密關閉 ThinkPad X230 的網路Webcam LED 燈,同時還能遠端操控Webcam。這項技術涉及深入的韌體逆向工程和 USB fuzzing,在網路安全方面,fuzzing可用於測試網路協議、應用程式和嵌入式系統等各種目標的漏洞。它可以幫助識別可能被利用來破壞系統或竊取數據的錯誤和漏洞,這次測試突顯了網路Webcam安全性的潛在漏洞。

深入探索 USB Fuzzing

科諾瓦洛夫的研究始於一場漫長的機場等待。他決定利用這段時間,透過 USB fuzzing 技術測試他的 ThinkPad X230 網路Webcam。USB fuzzing 是一種測試技術,藉由發送大量異常的 USB 請求到裝置,試圖找出潛藏的漏洞。科諾瓦洛夫發現,X230 的網路Webcam可以透過 USB 進行韌體更新,意外的是,他的 fuzzer 卻破壞了Webcam的韌體,導致Webcam無法運作。

為了更深入研究,科諾瓦洛夫建立了一個「防磚」的測試環境。他購買了更多 X230 網路Webcam模組,並將 SPI 快閃記憶體晶片移到可拆卸的插槽中,以便在韌體損壞時能透過外部程式設計器重新刷新。

ADVERTISEMENT

透過防磚機制,科諾瓦洛夫繼續進行 fuzzing,並發現了一些隱藏的 USB 供應商請求,這些請求允許他讀取和寫入網路Webcam的韌體。他仔細記錄了每個請求的功能,並發現他的 fuzzing意外觸發了韌體寫入請求,覆蓋了原始韌體,導致Webcam故障。

逆向工程與 LED 控制

科諾瓦洛夫接著開始逆向工程網路Webcam的韌體,試圖找出控制 LED 燈的方法。他發現 LED 燈連接到相機控制器的一個 GPIO pin 腳位,但控制該 pin 腳位的程式碼位於 Boot ROM 中,Boot ROM 無法透過 USB 覆蓋。

為了取得 Boot ROM 程式碼,科諾瓦洛夫開發了一種巧妙的技術,利用 USB 請求中的細微變化來取得 Boot ROM 的內容。他將程式碼注入到Webcam的韌體中,並根據 Boot ROM 的位元值來決定Webcam是否能成功枚舉。這個方法雖然緩慢,但確實有效。

ADVERTISEMENT

科諾瓦洛夫更進一步最佳化了這個方法,利用 UVC 設定(如對比度和飽和度)來動態提供偏移量,大幅加快了 Boot ROM 洩漏的速度。

在取得 Boot ROM 後,Konovalov 進行了逆向工程,找到了處理 USB 供應商請求的程式碼,並確定了 USB 請求參數的 XDATA 地址。最後,他透過比較 LED 燈開啟和關閉時的記憶體狀態,找到了控制 LED 的記憶體映射地址。

對其他筆電的影響

科諾瓦洛夫的研究揭示了許多網路Webcam的安全性問題。他指出,只要 LED 燈的控制不與感光元件的電源綁定,就有可能透過軟體控制 LED 燈。他建議 OEM 廠商將 LED 燈的電源與感光元件的電源綁定,並實施更安全的韌體更新機制,例如數位簽章檢查,以防止惡意韌體覆蓋。

ADVERTISEMENT

科諾瓦洛夫對 ThinkPad X230 網路Webcam的研究展示了 USB fuzzing 和韌體逆向工程的強大功能。他的發現提醒我們,即使是看似簡單的裝置,例如網路Webcam,也可能存在潛在的安全漏洞。隨著科技的進步,保護我們的數位隱私變得越來越重要,而這需要使用者、研究人員和 OEM 廠商的共同努力。

 

ADVERTISEMENT