主题是对付LIFX灯胆的,LIFX是一款智能灯胆,它可以或许用WIFI节制,节能,多色彩表现,可以或许利用Android或iOS手机节制。咱们之以是抉择对这款产物停止研讨,重要是因为它利用了新兴的无线网络协定,投入市场的方法和先辈的技巧深深的吸引了咱们。
2012年9月,LIFX名目开端于Kickstarter众筹平台,该产物刚开端在众筹平台上线就受到了投资者们的青眼,其召募到的资金是其原始目的资金的13倍以上。
LIFX灯胆平日必要衔接到WiFi网络,以便利用智能手机利用法式可以或许对灯胆停止节制。在有多个灯胆可用的情况下,只有一个灯胆将衔接到网络。这个“主”灯胆从智能手机利用法式上接管敕令,并经由进程802.15.4 6LoWPAN无线网络将其播送到其余灯胆。
WiFi和802.15.4 6LoWPAN mesh网络
在主灯胆封闭或与WIFI网络断开衔接的情况下,体系会从残剩灯胆中从新抉择一个灯胆作为主装备,并使其衔接到WiFi网络,新主装备继承将敕令发送到其余灯胆。这类一次只必要衔接一个灯胆到WiFi上的架构具备很多长处,其中包含残剩灯胆在不亮时以低功率运转,另有便是可以或许使灯胆网络的可用规模远远跨越WiFi网络的笼罩规模,如许可以或许削减WiFi网络的堵塞。
不用说,LIFX灯胆利用的新兴无线通讯协定,mesh网络布局和主/从通讯方法深深吸进了“黑客”的留意力,是以咱们拿起了几个灯胆并开端了咱们的研讨之旅。该博客针对LIFX固件1.1版本停止了研讨和阐发,而且自从向LIFX申报了研讨成果以后,该公司曾经对固件1.1版本停止了进级,如今1.2版本曾经可供下载了。
开启入侵攻击之旅
LIFX灯胆网络中有如下三个焦点通讯组件:
1.智能手机到灯胆的通讯
2.灯胆WiFi通讯
3.灯胆网络通讯
阐发初始阶段碰着的最大困难是新技巧和实践常识带给咱们的挑衅,是以咱们筹备从灯胆内的802.15.4 6LoWPAN无线mesh网络开端动手,以检查其能否存在破绽漏洞bug。具体来讲,咱们决议研讨LIFX灯胆是如安在6LoWPAN mesh网络之间同享WiFi网络凭据的。
6LoWPAN是一种基于IEEE 802.15.4构建的无线通讯尺度,与Zigbee利用的根本尺度雷同,该尺度容许经由进程低功率的Personal Area Networks (PAN)转发IPv6数据包。为了监控和注入6LoWPAN流量,咱们必要一个基于802.15.4尺度的核心装备。在此义务中咱们抉择的装备是安装了Contiki 6LoWPAN固件镜像的ATMEL AVR Raven ,该装备供给了一个尺度的网络接口,经由进程该网络接口咱们可以或许监控和注入网络流量到LIFX mesh网络。
协定阐发
经由进程上述网络接口,咱们可以或许监控并将网络流量注入到LIFX mesh网络中。经由进程察看咱们发觉到LIFX网络在很大程度上是未加密的,是以咱们可以或许轻松地剖析其网络协定,并结构新闻来节制灯胆并重放随意率性数据包的有用载荷。
经由进程在LIFX网络中增加新灯胆和同时监控从mesh网络中捕捉的数据包,咱们可以或许辨认无关WiFi网络凭据的特定数据包。全部新灯胆的参加进程包含主灯胆在网络上播送有一个新灯胆参加进网络;以后新灯胆对主灯胆的播送作出相应,并哀求传输WiFi凭据细节;然后主灯胆经由进程mesh网络播送加密的WiFi凭据细节,并将新的灯胆增加到LIFX智能手机利用法式中的可用灯胆列表中。
经由进程Wireshark 6LoWPAN捕捉数据包
经由进程对捕捉到的数据包停止阐发咱们发觉到,WiFi细节(包含凭据)是被加密传输的,是以咱们可以或许在mesh网络中注入数据包,以获得WiFi细节。别的,获得WiFi详细信息的进程不会增加任何新装备或在LIFX智能手机利用法式中激发任何警报。如今咱们可以或许随意率性地从mesh网络获得WiFi凭据,但却没方法来解密它们。为了进一步的入侵攻击,咱们必要对其利用的加密机制停止阐发。
获得固件
咱们起首从阐发LIFX装备的固件开端来测验考试去破解其加密机制,一样平常情况下,咱们只必要从供应商网站下载固件,脱壳,解密或以其余方法将其更改成咱们认识的格局就能够或许了。但是,在研讨时咱们发觉到,因为LIFX装备刚投入市场,是以供应商还没有向"大众宣布可以或许阐发的固件。在这类情况下,咱们只能本身获得LIFX装备的固件。
为了从装备中提取固件,咱们起首必要获得对内嵌的微节制器的物理拜访,这是一个异常讲求技巧的获得进程。对付门外汉来讲,彷佛只不过是用锤子敲击它,直到可以或许看到LIFX装备的外部布局。一旦获得内嵌的微节制器,咱们就能够或许拜访Printed Circuit Board (PCB)了,该装备如下图所示:
提取LIFX PCB
经由进程阐发获得到PCB咱们发觉到,该器件重要由两个片上体系(SoC)集成电路(IC)构成:一个是德州仪器CC2538,其重要卖力6LoWPAN网络装备的通讯,另一个是STMicroelectronics STM32F205ZG,其重要卖力WiFi端的通讯。这两款芯片均基于ARM Cortex-M3处理器。进一步的阐发发觉到,每一个芯片上的JTAG引脚功能齐全。JTAG是Joint Test Action Group的缩写,是IEEE 1149.1尺度的罕用称号,它描写了用于测试微节制器缺点的一种协定,并经由进程Test Action Port接口调试硬件。
一旦肯定了每一个芯片准确的JTAG引脚和筹备好衔接到芯片的JTAG接口,下一步要做的工作是手动跟踪引脚,阐发和主动探测。为了可以或许节制发送到芯片的JTAG敕令,咱们必要硬件和软件组合起来利用。在这类情况下利用的硬件是开源的BusBlaster JTAG调试器,它与开源的OpenOCD调试器共同利用。在设置装备摆设好硬件和软件以后,咱们可以或许向芯片收回JTAG敕令了。
BusBlaster JTAG调试器
此时,咱们可以或许从每一个芯片中疾速的转储闪存,并启动对固件的逆向阐发工作。
逆向阐发固件
如今咱们领有两个二进制的blob固件,咱们必要辨认哪一个固件卖力存储和加密WiFi凭据。经由进程映像上的“字符串”咱们肯定WIFI凭据存储在LIFX LWM-01-A芯片的固件映像中。
将固件映像加载到IDA Pro中,咱们可以或许经由进程查找罕见的加密常量(S-Boxes,Forward and Reverse Tables和Initialization Constant)来辨认加密代码,经由进程该方法咱们肯定芯片中利用的是AES加密算法。因为AES是一种对称加密算法,是以加密密钥和解密密钥是雷同的。经由进程阐发咱们发觉到在LIFX的计划中,每一个装备都邑收回一个恒定的全局密钥。是以假如咱们可以或许从一个装备中获得密钥,那末咱们就能够或许利用雷同的密钥来解密统统其余装备发送的新闻。在这类情况下,密钥可用于解密从任何LIFX灯胆发送的加密新闻。因为加密常量也可用于辨认加密和解密法式的汇编代码,是以在AES算法开源完成的赞助下,咱们可以或许经由进程逆向阐发以前定位到的加密函数来提取加密密钥,初始化向量和块形式。
IDA Pro拆解固件加密代码
末了一步是经由进程利用提取到的密钥解密从网络中嗅探到的WiFi凭据来证实提取的加密密钥能否准确。
组合入侵攻击
控制了加密算法,密钥,初始化向量和对mesh网络协定的懂得,咱们可以或许将数据包注入到mesh网络中,捕捉WiFi细节并解密凭据,统统这统统都不会惹起LIFX装备的任何身份验证或警报。是以咱们胜利了!
应当留意的是,因为这类入侵攻击是针对802.15.4 6LoWPAN无线mesh网络停止的入侵攻击,以是入侵攻击者必要在一个易受入侵攻击的LIFX灯胆的无线笼罩规模内(30米规模内)停止入侵攻击,是以这重大限定了大规模破绽漏洞bug利用的实用性。
修复倡议
在发觉到该破绽漏洞bug后咱们实时通知了LIFX公司,并一路帮忙该公司完成为了破绽漏洞bug的修复工作,和其余进一步的网安性改良步伐。如今,新固件利用从WiFi凭据导出的加密密钥来加密统统的6LoWPAN流量,并包含了用于包管新灯胆可以或许网安参加到WIFI网络中的网安功能。
固然,任何物联网装备,无论是手机,笔记本电脑,照样灯胆,黑客总是有机遇将其挟制,后续咱们将会在博客中先容更多无关挟制物联网装备的技巧文章。
|