近期,火眼公司Mandiant Red Team團隊發現,羅技智能物聯網家居管理系統Logitech Harmony Hub存在多個可利用漏洞,攻擊者可利用這些漏洞,繞過系統限制,通過SSH方式獲取到設備系統的管理權限。Logitech Harmony Hub是一款集成了軟硬件的智能家居管理連接系統,攻擊者可以通過漏洞控制Logitech Harmony Hub,對本地網絡內的智能家居系統形成攻擊威脅。由于Harmony Hub支持的設備包括對智能鎖、智能恒溫器以及其他智能家庭設備,使用該產品的用戶會面臨嚴重安全風險。
涉及漏洞
不當的證書驗證方式
不安全的更新過程
開發者遺留在固件鏡像中的調試信息
空密碼的root用戶
影響產品
Harmony Elite, Harmony Pro, Harmony Home Hub, Harmony Ultimate Hub, Harmony Hub, Harmony Home Control, Harmony Smart Control, Harmony Companion, Harmony Smart Keyboard, Harmony Ultimate and Ultimate Home。
漏洞分析
Mandiant團隊使用漏洞利用組合方式最終root掉了Logitech Harmony Hub,這篇文章分享了漏洞發現的測試和分析過程,也從側面反映出,在與人們生活起居息息相關的智能家居時代,非常有必要對此類產品進行嚴格的安全性測試。
前期準備
一些公開的研究表明,在Logitech Harmony Hub上的某些硬件測試點上存在一個通用異步收發傳輸器 (UART),我們把跳線焊接到測試點(Test pad)上,這樣我們就能夠使用USB串行電纜的TTL方式連接到Logitech Harmony Hub上。啟動過程的初始分析顯示,Harmony Hub利用U-Boot 1.1.4啟動,并運行為一個Linux內核:

在對該測試點的啟動引導過后,由于內核未配置有其它控制接口,控制端沒有過多輸出返回信息顯示,之后,我們在U-Boot中配置了內核啟動參數來觀察整個啟動引導過程,但是也沒發現任何有用信息。此外,UART接口配置僅為傳輸,通過其也不能實現其它與Harmony Hub的交互。為此,我們把研究重點轉向Harmony Hub內置的Linux操作系統和相關運行軟件上。
固件恢復和數據提取
在初始配置階段,Harmony Hub上的內置APP應用可通過藍牙用Android或iOS應用程序與其配對控制。由此,我們利用hostapd工具創建了一個模擬的無線AP接入環境,并在測試用的Android設備上安裝了Burp Suite Pro證書,用以監聽Harmony應用程序與Harmony Hub和外網的網絡通信。一旦初始的藍牙配對成功,Harmony APP應用就會搜索網絡內的Harmony Hub設備,并通過基于API的http方式與設備通信。

另外,Harmony Hub會向一個遠端互聯網的羅技服務器發送當前的固件版本信息,以檢測是否存在可用的固件更新。如果有,遠端的羅技服務器會通過返回一個包含最新固件版本的URL信息進行響應。
盡管我們使用了自簽名證書來攔截監聽Harmony Hub發送的HTTPS流量,但我們還是能夠觀察到整個網絡請求響應過程,由此也表明Harmony Hub未對證書的有效性進行過驗證。


我們獲取了固件并對其進行了分析,經過對其中幾層目錄的提取后發現,主要固件文件存儲在鏡像的squashfs文件夾中,從中可發現,整個鏡像為開源的且為lzma壓縮的SquashFS文件系統,這種系統多應用于嵌入式設備中。但是,供應商通常會使用與最新的squashfstools版本不兼容的squashfstools舊版本。之后,我們使用 firmware-mod-kit 工具包中的unsqashfs_all.sh腳本來獲取unsquashfs版本信息,并進行后續的鏡像信息提取。

通過提取的鏡像文件發現,其中存在一些Harmony Hub操作系統的詳細配置信息,另外,在鏡像中還遺留了各種調試信息,如未strip清除的內核模塊等。

在對 /etc/passwd 檢查后發現,竟然root用戶根本就沒設置密碼,是空密碼。也就是說,如果能實現dropbear SSH server的啟用,那么就能輕松獲取Harmony Hub的root訪問權限。

Dropbear是一個開源的,輕量化SSH服務器和客戶端程序,它運行在一個基于POSIX的各種平臺,尤其是一些嵌入式的Linux設備系統中。
我們發現,如果文件系統中存在file/etc/tdenetable,則在初始化期間將會啟用一個dropbear SSH server實例。

固件更新劫持
在初始化過程中,Harmony Hub會請求一個羅技API上的 GetJson2Uris 終端,來獲取一個后續能用到的URL列表,這些URL可用于固件的更新檢測或其它軟件包獲取。

我們攔截并修改了服務器響應中的JSON對象,將GetUpdates屬性指向我們自己的IP地址。

與固件更新過程類似,Harmony Hub向由GetUpdates指定的終端發送了一個POST請求,其中包含了當前內部軟件包的各種信息。以下為一個對HEOS包的請求示例:

如果POST請求中的sysBuild參數與當前遠端羅技服務器中的版本不匹配,則遠端羅技服務器會返回一個包含新版軟件包的初始響應,由于某個未知原因,Harmony Hub忽略了這個響應,并接著再次發送了第二個請求,遠端羅技服務器在對這個請求的響應中,就包含了指向固件更新的URL。

通過該URL,我們下載分析了其中為ZIP格式的 .pkg 文件,其中包含了一個簡單的文件結構。

其中的manifest.json文件里有一些Harmony Hub更新過程中如何處理壓縮包的信息。

update.sh就是壓縮包中Harmony Hub的固件更新腳本,按照前面的分析,我們更改了該腳本,創建了/etc/tdeenable文件,使得在啟動引導過程中能開啟SSH接口來進行連接。

之后,我們在本地自己控制的Web服務器上托管了一個.pkg格式的惡意壓縮包,當Harmony Hub檢查固件更新,并向GetJson2URIs發起請求更新時,由于我們在響應中進行了一些改動,在其URL響應時,我們會把設置的惡意更新包替換成原始更新包,這樣一來,Harmony Hub最終更新的將是我們事先構造的惡意更新包。只要設備一重啟,SSH接口就會自動開啟,我們也能順利地以空密碼的root賬戶連接到設備系統中去。

總結
隨著嵌入式智能技術在生活中的廣泛應用,很多像Logitech Harmony Hub的IoT物聯網設備都使用了通用的處理器和系統架構,攻擊者可以利用這些架構漏洞,添加置換進入一些惡意軟件包,對目標設備系統形成安全威脅。好在我們及時把漏洞上報給了羅技官方,他們非常重視,并迅速發布了 版本為4.15.96的修復固件,在此,希望羅技相關用戶請及時參照更新指南盡快更新
|