安全圈 | 专注于最新网络信息安全讯息新闻

首页

從智慧插座看智慧生活的安全隱患

作者 recor 时间 2020-02-29
all

近年來智能家居日益普及,湧現了各式各樣的產品,如智慧電視、智慧插座、智慧燈泡、智慧門鎖、智慧監視器。智能家居為我們的生活提供了便利,帶來了對未來的無限想像空間。然而,大多數智能家居產品在安全性方面的表現堪憂,可以這麼說吧,就像飛機上的一顆隱形炸彈隨時可能被引爆。

對於智慧設備的安全性,也有很多安全研究者開始關注,比如近期神話鬼斧實驗室最近在汽車防盜系統方面的研究。當然,我們也在關注和研究,部分成果可以參考這篇物聯網安全研究聯合團隊的文章《潜伏在身邊的危機——智能設備安全》。

筆者前段時間跟團隊一起參加了今年的GeekPwn(很棒的一個關注智慧生活安全的比賽),對某款智慧插座進行了分析並發現了一些問題,可惜在比賽過程中出了點意外導致演示失敗。不過沒有關係,本文就通過這個智慧插座的問題管中窺豹一探智慧生活安全。文中涉及的漏洞已經由GeekPwn官方通知廠商修復。

【發現】

該插座的控制示意圖如下:

過程:

1)手機APP通過智慧插座自帶WIFI完成配寘,告知智慧插座路由器密碼;

2)智慧插座通過路由器連接服務器;

3)手機APP與智慧插座同時連接服務器,利用xmpp協定通信,完成手機APP對智慧插座的控制、陞級等操作

另外,插座固件升級過程:手機向服務器發送陞級請求,服務器向智慧插座發送陞級的固件地址,智慧插座自行下載固件並完成陞級。

對固件升級過程抓包,可以發現,智慧插座會通過HTTP從固定的URL下載更新固件y2.bin以及校驗碼y2.bin.md5。很明顯,這裡存在中間人攻擊的可能性。

【進一步分析】

Binwalk解壓陞級固件y2.bin,可知該插座使用的是openwrt系統。

查看shadow檔案,發現root用戶默認密碼p9zxxx。

nmap掃描,該插座開放了tcp 22(SSH)埠。

於是乎果斷嘗試,SSH直接登入上去了。使用系統自帶的sysupgrade便可以直接更新固件。該過程未校驗待刷固件是否比當前固件版本高,還存在固件降級的漏洞。

在解壓出來的固件中植入反彈shell的程式碼,並打包固件。Openwrt自帶的nc是不帶-e選項的,使用一個小技巧便可綁定指定埠,如下圖所示。Openwrt squashfs ROM的重打包方法參攷這篇文章(注:重打包的過程如果稍有差錯,將會直接把智慧硬體刷成磚。筆者成功刷壞了兩個插座)。

【一次實際的滲透測試】

嘗試搭建中間人攻擊的環境。由於在路由器上不方便對HTTP包做修改,故採用局域網內DNS欺騙的攻擊方式,網路環境如圖所示。

位於同一局域網的攻擊者使用ettercap的dns_spoof模塊進行攻擊。

此時用戶使用手機APP向插座發送固件升級指令。可以看到,已成功實施兩次DNS欺騙。一次是y2.bin,一次是y2.bin.md5。

更新固件後,重新啟動插座。公網主機成功獲得反彈shell,如下圖所示。

由於條件有限,只演示了DNS欺騙這種攻擊場景。其它可行的中間人攻擊方式還有在路由器或骨幹修改請求包的URL,以及利用ARP攻擊修改HTTP請求返回的數據。由此可見,智慧插座使用HTTP傳輸同時又沒有實施有效的檔案校驗(比如用非對稱加密演算法),實非明智之舉。

【結語】

智慧硬體存在諸多的安全隱患,其中不僅僅是用戶隱私,還可能涉及人身安全。正如《網絡犯罪調查》中的情節,罪犯遠程控制嬰兒監視器,發現父母的作息規律,趁父母睡覺時偷走嬰兒。

另外,騰訊物聯網安全研究團隊共5個同學都參加GeekPwn並演示了項目(還記得那個無人機劫持嗎)。科技分享後續都會在TSRC部落格一一道來,請大家關注。

最後還是希望智慧硬體廠商能够更加注重安全,提供安全的智慧生活。我們也會對行業盡自己的一份力,建設更安全的物聯網。