李亞山
智能咖啡機(jī)
近年來(lái),越來(lái)越多的家用電器貼上了智能的標(biāo)簽。當(dāng)看到 “智能” 這兩個(gè)字的時(shí)候,我們可能會(huì)覺(jué)得這些電器比傳統(tǒng)電器更加聰明、便捷。但是,使用這些需要連接網(wǎng)絡(luò)的智能設(shè)備時(shí),你是否考慮過(guò)它的安全性呢?
近日,安全公司 Avast 的研究人員馬丁·霍恩進(jìn)行了一項(xiàng)實(shí)驗(yàn),他對(duì)一臺(tái) 250 美元的智能咖啡機(jī)進(jìn)行了逆向工程。他希望了解,針對(duì)這些物聯(lián)網(wǎng)設(shè)備可以進(jìn)行何種黑客攻擊。經(jīng)過(guò)一周的努力,他得出了答案。具體來(lái)說(shuō),他可以通過(guò)黑客攻擊使咖啡機(jī)打開(kāi)加熱器,讓它噴水,開(kāi)啟磨豆機(jī),甚至顯示一條勒索信息,同時(shí)讓咖啡機(jī)反復(fù)發(fā)出嗶嗶聲。并且,想要阻止這些麻煩的唯一方法,只能是拔下電源線。
霍恩在接受采訪時(shí)說(shuō):“智能咖啡機(jī)是有可能遭到黑客攻擊的。這個(gè)實(shí)驗(yàn)是為了說(shuō)明這確實(shí)發(fā)生了,并且可能會(huì)發(fā)生在其他物聯(lián)網(wǎng)設(shè)備上?!贝蠖鄶?shù)物聯(lián)網(wǎng)設(shè)備都是“開(kāi)箱即用”,用戶(hù)不需要配置任何東西,通常,賣(mài)家也不會(huì)考慮這個(gè)問(wèn)題。所以,這是一個(gè)很好的例子,讓大家了解一些事情。
什么是開(kāi)箱即用?
當(dāng)霍恩首次連接到智能咖啡機(jī)時(shí),他發(fā)現(xiàn)咖啡機(jī)充當(dāng)了 Wi-Fi 熱點(diǎn),而且該熱點(diǎn)通過(guò)不安全的連接與智能手機(jī) APP 進(jìn)行通信。該 APP 可用于配置設(shè)備,用戶(hù)可以選擇將其連接到家庭 Wi-Fi 網(wǎng)絡(luò)。由于沒(méi)有加密,研究人員可以輕松了解手機(jī)如何控制咖啡機(jī)。同時(shí),由于沒(méi)有身份驗(yàn)證,黑客軟件同樣可以控制咖啡機(jī)。
這種機(jī)制使霍恩只能實(shí)現(xiàn)一小部分命令,它們都不是特別有害。隨后霍恩檢查了咖啡機(jī)接收固件更新的機(jī)制。事實(shí)證明,它們是通過(guò)手機(jī)接收固件更新的,而且同樣沒(méi)有加密,沒(méi)有身份驗(yàn)證。這些明顯的漏洞給霍恩創(chuàng)造了進(jìn)行黑客攻擊的機(jī)會(huì)。由于最新的固件版本存儲(chǔ)在 Android 應(yīng)用程序中,因此他可以將其弄到計(jì)算機(jī)上,然后使用軟件分析器 IDA 進(jìn)行逆向工程。不費(fèi)吹灰之力,他破解出可讀的代碼。他在博客中寫(xiě)道:“據(jù)此,我們可以推斷出整個(gè)更新機(jī)制沒(méi)有加密,并且固件可能是直接添加到咖啡機(jī)閃存中的‘明文圖像?!?/p>
拆機(jī)
為了真正地反匯編固件(即將二進(jìn)制代碼轉(zhuǎn)換為與硬件進(jìn)行通信的底層匯編語(yǔ)言),霍恩必須知道咖啡機(jī)使用的是哪種 CPU。于是他拆開(kāi)設(shè)備內(nèi)部零件,找到電路板,并識(shí)別芯片。以下兩張圖片顯示了他的發(fā)現(xiàn):1. 帶 AT 調(diào)制解調(diào)器固件的 ESP8266 芯片;2. STM32F05106 ARM Cortex M0 芯片,它是主 CPU;3. 帶配置的 I2C EEPROM;4. 調(diào)試端口和編程接口。
在拆機(jī)了解了各部分的功能之后,霍恩將它們重新組裝起來(lái)。之后,霍恩能夠撤消咖啡機(jī)最重要的功能,包括檢查加熱器上是否裝有水瓶,使設(shè)備發(fā)出蜂鳴聲?;舳鬟€能控制咖啡機(jī)的固件安裝更新。最終,霍恩獲得了足夠的信息來(lái)編寫(xiě)模仿更新過(guò)程的 python 腳本。他使用固件的略微修改版本,發(fā)現(xiàn)它可以正常工作。
足以讓用戶(hù)望而卻步
下一步是創(chuàng)建修改后的固件,使之做一些不那么友好的事情?;舳鲗?xiě)道:“最初,我們想證明這個(gè)設(shè)備可以進(jìn)行加密貨幣的挖掘工作??紤]到 CPU 和架構(gòu),它當(dāng)然是可行的,但在 8MHz 的速度下,這沒(méi)有任何意義,因?yàn)檫@樣一個(gè)礦機(jī)的生產(chǎn)價(jià)值可以忽略不計(jì)?!?p>
咖啡機(jī)內(nèi)部電路板
霍恩編程實(shí)現(xiàn)了字符顯示
因此,研究人員決定做其他事情來(lái)?yè)v亂:如果主人想讓咖啡機(jī)停止運(yùn)行,就得交出贖金,就像視頻中顯示的那樣。由于芯片中有還一些未使用的內(nèi)存空間,霍恩添加了幾行代碼,就導(dǎo)致了所有的混亂?!拔覀冋J(rèn)為這足以讓用戶(hù)望而卻步。我們能輕易讓智能咖啡機(jī)的使用體驗(yàn)達(dá)到最差,用戶(hù)唯一能做的就是把咖啡機(jī)從電源插座上拔下來(lái)。”
如果更新腳本和修改后的固件被重新編寫(xiě)并加載到 Android 手機(jī)上(由于 iOS 系統(tǒng)封閉的特性,其攻擊難度要大得多),有幾種方式可以實(shí)施攻擊。最簡(jiǎn)單的方法就是在 Wi-Fi 范圍內(nèi)找到易受攻擊的咖啡機(jī)。如果設(shè)備連接 Wi-Fi 網(wǎng)絡(luò)時(shí)沒(méi)有進(jìn)行相關(guān)配置,找到它們可以說(shuō)唾手可得。
黑客攻擊主戰(zhàn)場(chǎng)
一旦設(shè)備連接到家庭網(wǎng)絡(luò),這個(gè)配置咖啡機(jī)和啟動(dòng)任何更新所需的臨時(shí) SSID 就不再可用了。但是,如果攻擊者知道給定網(wǎng)絡(luò)上正在使用一臺(tái)智能咖啡機(jī),他就可以直接繞過(guò)這個(gè)限制。然后,攻擊者將向網(wǎng)絡(luò)發(fā)送一個(gè)取消授權(quán)包,這將導(dǎo)致咖啡機(jī)斷開(kāi)連接。之后,設(shè)備將再次開(kāi)始廣播 SSID,讓攻擊者自由地用惡意固件更新設(shè)備。
很多人都知道,這種攻擊的局限性在于,只有當(dāng)攻擊者能夠定位到一個(gè)易受攻擊的咖啡機(jī),并且處于咖啡機(jī)的 Wi-Fi 范圍內(nèi)時(shí),它才會(huì)起作用。霍恩說(shuō),解決這個(gè)問(wèn)題的一種方法是入侵一個(gè) Wi-Fi 路由器,用它作為黑客攻擊主戰(zhàn)場(chǎng)來(lái)攻擊咖啡機(jī)。這種攻擊可以遠(yuǎn)程進(jìn)行,但如果攻擊者已經(jīng)入侵了路由器,網(wǎng)絡(luò)所有者就需要擔(dān)心比咖啡機(jī)故障更糟糕的事情了。
霍恩說(shuō),無(wú)論如何,勒索襲擊只是攻擊者所能做的開(kāi)始。他認(rèn)為,經(jīng)過(guò)更多的工作,攻擊者可以對(duì)咖啡機(jī)進(jìn)行編程,攻擊路由器、計(jì)算機(jī)或與同一網(wǎng)絡(luò)相連的其他設(shè)備。而且,攻擊者能在沒(méi)有明顯跡象的情況下做到這一點(diǎn)。
正確地看待這件事
由于種種限制,這種黑客攻擊并不代表真正或直接的威脅,盡管對(duì)于某些人而言,這足以使他們遠(yuǎn)離 “智能” 產(chǎn)品,至少遠(yuǎn)離沒(méi)有使用加密和身份驗(yàn)證的設(shè)備。
當(dāng)然,這種黑客攻擊只是一項(xiàng)實(shí)驗(yàn),旨在探索連接到互聯(lián)網(wǎng)的咖啡機(jī)、冰箱和其他家用設(shè)備的種種可能性。有趣的是,被黑的咖啡機(jī)已不能再接收固件更新,因此業(yè)主無(wú)法采取任何措施來(lái)修復(fù)霍恩發(fā)現(xiàn)的漏洞。
霍恩還提出了一個(gè)重要觀點(diǎn):“典型冰箱的使用壽命為 17 年,供應(yīng)商能為其維持 17 年的軟件更新嗎?”這是現(xiàn)代物聯(lián)網(wǎng)設(shè)備中最令人關(guān)注的問(wèn)題之一。當(dāng)然,即使它不再獲得更新,用戶(hù)仍然可以使用它,但是隨著物聯(lián)網(wǎng)爆炸式的發(fā)展速度和并不完善的服務(wù)支持,這些設(shè)備極易受到攻擊,它們可以被濫用于諸如網(wǎng)絡(luò)破壞、數(shù)據(jù)泄漏、勒索軟件攻擊和 DDoS 攻擊等。
還有一個(gè)問(wèn)題,那就是如何應(yīng)對(duì)物聯(lián)網(wǎng)爆炸發(fā)展。當(dāng)我們逐步實(shí)現(xiàn)萬(wàn)物互聯(lián)的時(shí)候,我們?cè)趺礃硬拍鼙U细鱾€(gè)設(shè)備的安全性呢?這些問(wèn)題都值得研發(fā)人員和商家深思。
(本刊綜合整理)(編輯/克珂)