從智能插座看智能生活的安全隱患
近年來智能家居日益普及,涌現(xiàn)了各式各樣的產(chǎn)品,如智能電視、智能插座、智能燈泡、智能門鎖、智能攝像頭。智能家居為我們的生活提供了便利,帶來了對未來的無限想象空間。然而,大多數(shù)智能家居產(chǎn)品在安全性方面的表現(xiàn)堪憂,可以這么說吧,就像飛機(jī)上的一顆隱形炸彈隨時可能被引爆。
對于智能設(shè)備的安全性,也有很多安全研究者開始關(guān)注,比如近期神話鬼斧實驗室最近在汽車防盜系統(tǒng)方面的研究。當(dāng)然,我們也在關(guān)注和研究,部分成果可以參考這篇物聯(lián)網(wǎng)安全研究聯(lián)合團(tuán)隊的文章《潛伏在身邊的危機(jī)——智能設(shè)備安全》。
筆者前段時間跟團(tuán)隊一起參加了今年的GeekPwn(很棒的一個關(guān)注智能生活安全的比賽),對某款智能插座進(jìn)行了分析并發(fā)現(xiàn)了一些問題,可惜在比賽過程中出了點意外導(dǎo)致演示失敗。不過沒有關(guān)系,本文就通過這個智能插座的問題管中窺豹一探智能生活安全。文中涉及的漏洞已經(jīng)由GeekPwn官方通知廠商修復(fù)。
【發(fā)現(xiàn)】
該插座的控制示意圖如下:

過程:
1)手機(jī)APP通過智能插座自帶WIFI完成配置,告知智能插座路由器密碼;
2)智能插座通過路由器連接服務(wù)器;
3)手機(jī)APP與智能插座同時連接服務(wù)器,利用xmpp協(xié)議通信,完成手機(jī)APP對智能插座的控制、升級等操作
另外,插座固件升級過程:手機(jī)向服務(wù)器發(fā)送升級請求,服務(wù)器向智能插座發(fā)送升級的固件地址,智能插座自行下載固件并完成升級。

對固件升級過程抓包,可以發(fā)現(xiàn),智能插座會通過HTTP從固定的URL下載更新固件y2.bin以及校驗碼y2.bin.md5。很明顯,這里存在中間人攻擊的可能性。
【進(jìn)一步分析】
Binwalk解壓升級固件y2.bin,可知該插座使用的是openwrt系統(tǒng)。

查看shadow文件,發(fā)現(xiàn)root用戶默認(rèn)密碼p9zxxx。

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

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

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

【一次實際的滲透測試】
嘗試搭建中間人攻擊的環(huán)境。由于在路由器上不方便對HTTP包做修改,故采用局域網(wǎng)內(nèi)DNS欺騙的攻擊方式,網(wǎng)絡(luò)環(huán)境如圖所示。

位于同一局域網(wǎng)的攻擊者使用ettercap的dns_spoof模塊進(jìn)行攻擊。

此時用戶使用手機(jī)APP向插座發(fā)送固件升級指令??梢钥吹剑殉晒嵤﹥纱蜠NS欺騙。一次是y2.bin,一次是y2.bin.md5。

更新固件后,重新啟動插座。公網(wǎng)主機(jī)成功獲得反彈shell,如下圖所示。

由于條件有限,只演示了DNS欺騙這種攻擊場景。其它可行的中間人攻擊方式還有在路由器或主干網(wǎng)修改請求包的URL,以及利用ARP攻擊修改HTTP請求返回的數(shù)據(jù)。由此可見,智能插座使用HTTP傳輸同時又沒有實施有效的文件校驗(比如用非對稱加密算法),實非明智之舉。
【結(jié)語】
智能硬件存在諸多的安全隱患,其中不僅僅是用戶隱私,還可能涉及人身安全。正如《網(wǎng)絡(luò)犯罪調(diào)查》中的情節(jié),罪犯遠(yuǎn)程控制嬰兒攝像頭,發(fā)現(xiàn)父母的作息規(guī)律,趁父母睡覺時偷走嬰兒。
最后還是希望智能硬件廠商能夠更加注重安全,提供安全的智能生活。我們也會對行業(yè)盡自己的一份力,建設(shè)更安全的物聯(lián)網(wǎng)。