跳到主要內容

IOT安全:Logitech Harmony Hub安全性分析

網站內容來源http://server.it168.com/

IOT安全:Logitech Harmony Hub安全性分析


2018-05-15 09:31    來源:安全客  作者: Joel Hopwood 編輯:
0購買

  一、前言

FireEye的Mandiant Red Team最近在Logitech Harmony Hub物聯網(IoT)設備上發現了一些漏洞,這些漏洞可以被攻擊者利用,通過SSH渠道獲得目標設備的root訪問權限。Harmony Hub是一款家庭控制系統,用來連接並控制用戶家庭環境中的各種設備。在本地網絡中利用這些漏洞后,攻擊者可以控制連接到Hub的設備,也可以利用Hub做為執行節點,攻擊本地網絡中的其他設備。由於Harmony Hub所支持的設備較多,包括智能門鎖、智能恆溫器以及其他智能家居設備等,因此這些漏洞會給用戶帶來極高的風險。

FireEye在2018年1月向Logitech披露了這些漏洞,Logitech積極響應,與FireEye一起溝通協作,發布固件更新(4.15.96)解決了這些問題。

Red Team發現了如下幾個漏洞:

1、未驗證證書有效性;

2、不安全的更新過程;

3、生產固件鏡像中遺留開發者(developer)調試符號;

4、空的root用戶密碼。

Red Team組合使用了這幾個漏洞,最終獲得了Harmony Hub的管理員訪問權限。在本文中我們介紹了這些漏洞的發現及分析過程,與大家分享了對消費者設備進行嚴格安全測試的必要性:現如今公眾對設備越來越信任,而這些設備不僅連接到家庭網絡中,也會透露關於公眾日常生活的各種細節,此時安全形勢也更加嚴峻。

  二、設備分析

設備準備

已公開的一些研究報告表明,Harmony Hub的測試點上存在一個UART(universal asynchronous receiver/transmitter,通用異步收發傳輸器)接口。我們將跳線連接到這些測試點上,這樣就能使用TTL轉USB串行線路連接到Harmony Hub。初步分析啟動過程后,我們發現Harmony Hub會通過U-Boot 1.1.4啟動,運行一個Linux內核,如圖1所示。


▲圖1: 從UART接口獲得的啟動日誌


  在啟動過程後續階段中,控制台不再輸出任何信息,因為內核並沒有配備任何控制台接口。我們在U-Boot中重新配置了內核啟動參數,想查看完整的啟動過程,但並沒有恢復出有用的信息。此外,由於設備將UART接口配置成僅傳輸模式,因此我們不能通過該接口與Harmony Hub進一步交互,因此我們將研究重點轉移到了Harmony Hub所運行的Linux操作系統上,想進一步了解整個系統以及其上運行的相關軟件。

  固件恢復及提取

Harmony Hub可以使用配套的Android或者iOS應用通過藍牙來進行初始化配置。我們使用hostapd創建了一個無線網絡,在Android測試設備上安裝了Burp Suite Pro CA證書,以捕捉Harmony移動應用發往互聯網以及發往Harmony Hub的通信流量。一旦初始化配對完成,Harmony應用就會搜索本地網絡中的Harmony Hub,使用基於HTTP的API與Harmony Hub通信。

一旦成功連接,Harmony應用就會向Harmony Hub的API發送兩個不同的請求,以便Harmony Hub檢查是否存在更新,如:2所示。


▲ 圖2:使Harmony Hub檢查更新的請求報文


  Harmony Hub會向Logitech服務器發送當前的固件版本,以確定是否存在更新(如圖3所示)。如果需要更新,Logitech服務器會發送一個響應包,其中包含新固件版本所對應的一個URL(如圖4所示)。由於我們使用了自簽名的證書來捕捉Harmony Hub發送的HTTPS流量,因此我們可以順利觀察到這個過程(Harmony Hub會忽略無效的SSL證書)。


▲圖3:Harmony Hub檢查固件更新



▲圖4. 服務器返回的響應包中包含更新固件的URL


  我們獲取了這個固件並檢查了相關文件。剝離好幾個壓縮層后,我們可以在harmony-image.squashfs文件中找到固件。固件所使用的文件系統鏡像為SquashFS文件系統,採用lzma壓縮算法(這是嵌入式設備常用的壓縮格式)。然而,廠商經常使用老版本的squashfstools,這些版本與最新的squashfstools並不兼容。我們使用了firmware-mod-kit中的unsqashfs_all.sh腳本,自動化探測unsquashfs的正確版本,以便提取文件系統鏡像,如圖5所示。


▲圖5. 使用firmware-mod-kit提取文件系統


  提取文件系統內容后,我們檢查了Harmony Hub搭載的操作系統的某些詳細配置信息。經過檢查后,我們發現這個生產鏡像中包含大量的調試信息,比如沒有刪掉的內核模塊等,如圖6所示。


▲圖6. 文件系統中未刪掉的Linux內核對象


  檢查/etc/passwd后,我們發現root用戶並沒有設置密碼(如圖7所示)。因此,如果我們可以啟用dropbear SSH服務器,我們就能通過SSH接口獲取Harmony Hub的root訪問權限,無需使用密碼。


▲圖7. /etc/passwd文件显示root用戶未設置密碼


  我們發現,如果文件系統中存在/etc/tdeenable文件,則會在初始化階段中啟用dropbear SSH服務器,如圖8所示。


▲圖8. 如果存在/etc/tdeenable,/etc/init.d/rcS腳本則會啟用dropbear SSH服務器


  劫持更新過程

在初始化過程中,Harmony Hub會在Logitech API上查詢GetJson2Uris地址,獲取各種過程所需的一個URL列表(如圖9所示),其中包括檢查固件更新所使用的URL以及獲取更新所需的額外軟件包信息的URL。


▲圖9. 發送請求獲取各種過程所需的URL地址


  我們攔截並修改了服務器返回的響應數據包中的JSON對象,將其中的GetUpdates成員指向我們自己的IP地址,如圖10所示。


▲圖10. 修改過的JSON對象


  與固件更新過程類似,Harmony Hub會向GetUpdates所指定的端點發送一個POST請求,請求中包含設備內部軟件包的當前版本信息。HEOS軟件包對應的請求如圖11所示。


▲圖11. 包含系統中"HEOS"軟件包當前版本信息的JSON請求對象


  如果POST請求正文中的sysBuild參數與服務器已知的當前版本不匹配,服務器就會響應一個初始數據包,其中包含新軟件包版本信息。由於某些不知名的原因,Harmony Hub忽略了這個初始響應包,發送了第二個請求。第二個響應包中包含多個URL地址,這些地址指向了新的軟件包,如圖12所示。


▲圖12. 包含軟件更新包的JSON響應數據


  我們下載了響應數據包中列出的.pkg文件,檢查后發現這些文件其實是ZIP壓縮文件。壓縮文件的文件結果比較簡單,如圖13所示。


▲圖13. .pkg壓縮文檔結構


  其中,manifest.json文件可以告訴Harmony Hub在更新過程中如何處理壓縮文檔的內容,如圖14所示。


▲圖14. manifest.json文件內容


  manifest文件中installer參數所指定了一個腳本,如果壓縮文件中存在該腳本,那麼Harmony Hub在更新過程中就會執行這個腳本。我們修改了這個腳本,如圖15所示,修改后該腳本會創建/etc/tdeenable文件,前面提到過,這樣啟動過程就會啟用SSH接口。


▲圖15. 修改后的update.sh文件


  我們創建了帶有.pkg擴展名的一個惡意壓縮文檔,使用本地web服務器託管該文檔。當下一次Harmony Hub根據被篡改的GetJson2URIs響應包中給出的URL地址來檢查更新時,我們返回經過修改的響應包,指向這個更新文件。Harmony Hub會接收我們提供的惡意軟件更新包,重啟Harmony Hub后就會啟用SSH接口。這樣我們就可以使用root用戶名以及空密碼來訪問該設備,如圖16所示。


▲圖16. 重啟後設備啟用了SSH接口


  三、總結

隨着科技逐步融入我們的日常生活中,我們也在不知不覺中越來越信任各種設備。Harmony Hub與許多物聯網設備一樣,採用了通用處理器架構,因此攻擊者可以輕鬆將惡意工具添加到被攻破的Harmony Hub上,進一步擴大攻擊活動的影響力。Logitech與我們的團隊積極合作,發布了4.15.96固件解決了這些漏洞。如果用戶對某些設備非常信任,那麼這些設備的開發者就應該保持警惕,移除讓用戶處於危險境地的潛在攻擊因素。Logitech在與Red Team的研究工作中發表過一則聲明,在此我們也想與大家一起分享:

"Logitech非常重視客戶的安全及隱私。2018年1月下旬,FireEye發現了可能影響Logitech Harmony Hub產品的一些漏洞,如果某個惡意黑客已經獲取Hub用戶網絡的訪問權限,就可以利用這些漏洞。我們非常感謝FireEye等專業安全研究公司在挖掘探索IoT設備上這類漏洞所付出的努力。

在FireEye將這些研究成果告知我們后,我們第一時間啟動了內部調查,並且馬上開始研發固件以解決這些問題。4月10日,我們發布了固件更新,全部解決了這些漏洞。如果還有客戶沒有將固件更新到4.15.96版,我們建議您檢查MyHarmony軟件,同步基於Hub的遠程設備並接收該固件。用戶可以查看此鏈接了解關於固件更新的完整說明。

基於Hub的產品包括: Harmony Elite、Harmony Home Hub、Harmony Ultimate Hub、harmony Hub, Harmony Home Control、Harmony Pro、Harmony Smart Control、Harmony Companion、Harmony Smart Keyboard、Harmony Ultimate以及Ultimate Home"。

,
網站內容來源http://safe.it168.com/網站內容來源http://safe.it168.com/

【精選推薦文章】

智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

想知道網站建置、網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計及後台網頁設計

帶您來看台北網站建置台北網頁設計,各種案例分享

廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

http://www.3chy3.com/?p=2472



Orignal From: IOT安全:Logitech Harmony Hub安全性分析

留言

這個網誌中的熱門文章

咳嗽能吃柿子

文章導讀 咳嗽是因為嗓子不舒服引起的,因此咳嗽的時候人們應該避免吃刺激性的食物,比如辛辣的、過甜過鹹的、生冷的、腥的食物等等,這種食物會刺激嗓子粘膜,讓嗓子更不舒服,咳嗽也會因此變得更加嚴重,咳嗽的時候可以吃一些止咳化痰的水果,比如梨,那麼咳嗽能吃柿子嗎? 柿子是人們比較喜歡食用的果品,甜膩可口,營養豐富。不少人還喜歡在冬季吃凍柿子,別有味道。柿子的營養價值很高,含有豐富的胡蘿蔔素、核黃素、維生素等微量元素,所含維生素和糖分比一般水果要高很多。柿恭弘=恭弘=叶 恭弘 恭弘中含有多種活性成分,如維生素C、多種黃酮甙類、二萜類、膽鹼、β-胡蘿蔔素。所以,患者在咳嗽期間是可以吃柿子的,但是不能多吃,一定要適量,以免引起消化不良。患者咳嗽期間,除了柿子以外,還可以吃其他的一些新鮮蔬菜和水果,如蘋果、梨、獼猴桃、芹菜、花菜等,這對於咳嗽的早日康復是有幫助的。 能吃。柿子性寒,味甘、澀。歸肺經。故有健脾澀腸,主治咳嗽止血之功。是慢性支氣管炎、高血壓、動脈硬化、內外痔瘡患者的天然保健食品。但慢性胃炎、消化不良等胃功能低下者以及外感風寒咳嗽者不宜食柿子;體弱多病者、產婦、月經期間女性,均忌食柿子;糖尿病人勿食。 咳嗽是由多種因素造成的,包括吸入容易產生過敏的物質,比如花粉柳絮,以及炎症感染,包括氣候乾燥,辛辣含糖食物刺激,甚至情緒緊張,均可造成咳嗽的現象,而常見的咳嗽多是炎症感染造成的,柿子屬於熱性食物,容易加重局部咽喉炎症反應。 咳嗽期間是可以吃柿子的,一般可以少吃40具有寒涼的作用,一般對人體的刺激性比較大,咳嗽一般都是由於支氣管出現了炎症就會產生咳嗽咳痰的癥狀,一般是要採用口服化痰止咳的藥物來進行用藥治療,如果說咳嗽不是很明顯的話,一般也可以採用口服抗感冒的藥物來進行用藥治療。 網站內容來源https://www.cndzys.com/yinshi/ 【精選推薦文章】 想知道 台東名產 人氣商品是什麼?想知道更多 台東知名伴手禮 有哪些? 想知道全國票選五大 台東必買 、 台東伴手禮 最佳商品哪裡買的到? 台東團購美食 、 台東必買零...

請問貝果烤前為什麼需要用滾水燙過?

水燙 貝果 的目的是讓貝果提早形成麵包皮以在後續烘焙時避免貝果過度膨脹變成鬆軟的麵包,同時提早形成的麵包皮烤乾後比較硬,這兩個因素產生貝果的特殊口感。在有些食譜熱水會加鹼或糖,讓麵包面容易變褐。原理:水燙貝果時貝果表面的澱粉粒吸水糊化溶出澱粉,因為水煮的時間很短約30-60秒,溶出的澱粉仍舊糊在表面上。後續烘焙中澱粉漿硬化形成麵包皮,因麵包皮的硬殼強度使貝果內的氣泡不容易膨脹,最後形成貝果組織密實而具有咬感,所使用的高筋麵粉也提供的大量麵筋強度是造成這些特性的另一因素。貝果用油較少,產生的麵包皮硬不會酥脆,水溶澱粉產生的是硬殼回潮後變得很堅韌,藉著食用前的熱烤再使它脫水硬化,因硬麵包皮不厚所以咬下時有脆的口感。水煮的時間控制了麵包皮的厚度與強度,水煮時間愈短,貝果愈鬆軟,反之則氣體膨脹愈不容易,成品就會愈密實而有咬感,但也皮愈厚愈不容易咬下口。麵包麵的顏色在不同的烘焙程度與成分組成,受到非酵素褐變(梅納反應)、焦糖化、碳化等影響。一般以非酵素褐變最為重要,此反應是蛋白質與糖的化學反應,產生褐色的物質與特殊的氣味,在鹼性環境中容易進行,所以在有些食譜在水中會加糖或加鹼等處理。 貝果宅配     手工貝果     貝果 http://www.foodhy3.com/?p=65 Orignal From: 請問貝果烤前為什麼需要用滾水燙過?

躺着喝水有什麼壞處

文章導讀 躺着喝水是一種不好的做法,因為躺着喝水會導致水容易進入氣管,引起我們嗆到喉嚨,而且不利於水分進入腸道中,所以最好的方法是坐起來喝水。水我們身體重要的成分,每天都需要飲用大量的水來維持身體的運作,如果缺水是會引起新陳代謝下降的,而且會引起各種各樣的疾病,大家要引起重視。 1、容易嗆着,水容易進入氣管;如果嗆着,嚴重的後果有生命危險。 2、這樣喝不衛生,也不符合人的作為。 喝水喝多了有什麼壞處嗎? 1、水喝多了,會增加腎髒的負擔。人體是通過尿液來排毒的,那尿液的主要的組成部分就是水,而所有的尿液都是要經過腎臟過濾的,因此,如果喝水過多,就意味着腎髒的過濾就更多,就會增加腎髒的負擔。 2、飲水過量會引起水中毒。人體腎髒的持續最大利尿速度是每分鐘16毫升,如果人體攝入水的量超過了這個標準,或者喝水的速度超過這個標準,那體內就會出現水過剩的現象,而過剩的水分就會使細胞膨脹,繼而引起脫水低鈉症,臨床會表現為頭暈眼花、嘔吐、虛弱無力、心跳加快等癥狀,這種中毒的癥狀是全身的,嚴重的會出現痙攣、昏迷甚至危及生命。 擴展資料: 感冒時也並不是喝水越多越好。感冒時醫生都叮囑病人要多喝水,因為水可以加速排毒,緩解感冒的癥狀,而且,人在感冒的時候,身體也很容易缺水,所以適當的增加水的攝入是有好處的,但是也絕對不是喝的越多越好,而是要根據個人的差異,適當的增加喝水的量,而且一次喝的量不可過多。 每人飲水量應視個人情況而定,一般1.5~2升為宜。從衛生角度來說,喝涼開水、茶水或礦泉水較好。但應注意,一次飲水過多或喝得過快對身體不利,老年人尤其應該注意。一次飲水過多會加重心、腎負擔,對患有心臟病、高血壓、腎病和水腫的人傷害最大。因勞動或運動而大量出汗后也不宜一次喝水太多。 水喝多了,會引起水中毒。專家介紹,過量飲用卻會導致人體鹽分過度流失,一些水分會被吸收到組織細胞內,使細胞水腫。開始會出現頭昏眼花、虛弱無力、心跳加快等癥狀,嚴重時甚至會出現痙攣、意識障礙和昏迷,即水中毒。大量喝水后,人體易產生疲倦感,食慾大減,還使人感到昏昏沉沉的。 這是因為飲水過多衝淡了血液,全身細胞氣體交換就會受到影響。腦細胞一旦缺氧,人就會變得遲鈍。腎功能正常的人每天最多只可排出10~20升尿。如果飲水過...