LIFX智能燈泡漏洞泄露WIFI密碼
最近有安全研究人員報告LIFX燈泡存在漏洞,黑客可以在距離燈泡30米內(nèi)獲取燈泡連接的WIFI密碼。LIFX燈泡使用aes加密wifi密碼,其加密密鑰是固定的,通過特殊方式獲得密鑰之后就可以解密wifi的密碼。目前LIFX已經(jīng)發(fā)布安全升級公告。
LIFX燈泡是可以由Wi-Fi控制的智能多色LED燈泡,售價99美元。LIFX曾創(chuàng)下Kickstarter眾籌平臺有史以來最成功的融資活動,在最初目標(biāo)僅為10萬美元的情況下,于短短六天內(nèi)籌集到了130萬美元。上周,該公司宣布在A輪融資中募集了1,200萬美元。
LIFX燈泡會連接wifi網(wǎng)絡(luò),這樣才可以通過手機(jī)APP控制。當(dāng)有多個燈泡的時候,只有一個燈泡會連接到網(wǎng)絡(luò)。這個控制燈泡會接受手機(jī)發(fā)來的指令,然后通過802.15.4 6LoWPAN協(xié)議廣播給其他的燈泡。
當(dāng)控制燈泡關(guān)閉或者掉線的時候,剩余的燈泡會選舉一個新的控制燈泡連接wifi,等待接受手機(jī)端發(fā)來的命令。這樣的設(shè)計保證同時只有一只燈泡連接wifi,不用說,這種設(shè)計是有很多優(yōu)點(diǎn)的。也引起我們的研究興趣。
分析攻擊面
在燈泡的網(wǎng)絡(luò)中主要有3個核心的通信部分:
1,智能手機(jī)到燈泡的通信。 2,燈泡WIFI的通信。 3,燈泡mesh網(wǎng)絡(luò)的通信。
我們決定先從燈泡的 802.15.4 6LoWPAN的無線mesh網(wǎng)絡(luò)下手,分析一下燈泡之間是如何分享 wifi 認(rèn)證密碼的。
協(xié)議分析
通過監(jiān)控和注入LIFX的mesh網(wǎng)絡(luò),我們發(fā)現(xiàn)大部分通信都是未加密的。這樣就可能輕易的分析出協(xié)議,從而構(gòu)造消息控制燈泡或者重放控制指令。我們也發(fā)現(xiàn)了共享wifi密碼的流程。當(dāng)有新燈泡加入時,控制燈泡會廣播消息,新燈泡回應(yīng)控制燈泡,然后跟控制燈泡請求wifi的相關(guān)信息。控制燈泡會回應(yīng)wifi的信息,加密之后發(fā)給新燈泡。然后新燈泡就出現(xiàn)在手機(jī)APP的控制列表里了。下圖顯示的是加密之后的wifi信息。
通過對數(shù)據(jù)的進(jìn)一步分析,我們發(fā)現(xiàn)可以自己在燈泡的mesh網(wǎng)絡(luò)中注入數(shù)據(jù)包來請求wifi的信息。這樣就可以在沒有新燈泡加入的情況下獲得wifi信息,而且手機(jī)上不會有任何提示。到目前為止,還沒有足夠的信息來解密wifi信息,因此我們決定去分析燈泡使用的加密算法。
獲得固件
理想的情況下,可以在設(shè)備官網(wǎng)下載到固件分析。這次由于LIFX是一家非常新興的公司,他們還沒有發(fā)布過固件。所以我們只好自己想辦法提取固件。
通過對PCB的分析,我們獲得了以下的信息:mesh網(wǎng)絡(luò)使用的是德州儀器的CC2538,wifi網(wǎng)絡(luò)使用的是意法半導(dǎo)體的STM32F205ZG (marked LIFX LWM-01-A)。處理器使用的ARM Cortex-M3 。而且芯片的jtag都是可以用的。我們使用開源硬件BusBlaster JTAG debugger,最后成功導(dǎo)出了固件。
逆向固件
現(xiàn)在我們有了兩個二進(jìn)制的文件。通過對字符串的識別,發(fā)現(xiàn)加密算法部分在LIFX LWM-01-A芯片中。使用IDA Pro加載固件,通過尋找一些加密常用的常量: S-Boxes, Forward和Reverse Tables和Initialization Constants,分析出LIFX采用了AES進(jìn)行加密。AES是一種對稱加密算法。也就是說加密和解密都需要同一個預(yù)共享的key。如果LIFX使用了固定的加密密鑰的話,這就意味者我們從一個LIFX燈泡中獲得了加密key,就可以使用這個key解密所有LIFX燈泡加密的wifi信息。下圖是ids 反匯編的加密代碼。結(jié)合對開源AES實現(xiàn)的分析,我們獲得了aes加密使用的key,初始化向量,塊模式等。
最后我們使用獲得的信息解密了嗅探到的wifi信息證明了漏洞存在。由于這個攻擊場景需要使用無線mesh網(wǎng)絡(luò),所以攻擊者需要在網(wǎng)絡(luò)覆蓋的范圍內(nèi)進(jìn)行攻擊,大概是30米。目前l(fā)ifx已經(jīng)發(fā)布了新版固件修正這個漏洞。
本文根據(jù)http://contextis.com/翻譯整理。