如何入侵联网智能灯泡——LIFX智能灯泡

标签: 终端安全 Kickstarter 智能灯泡 | 发表时间:2017-10-08 17:19 | 作者:Alpha_h4ck
出处:http://www.freebuf.com

屏幕快照 2017-10-08 下午5.51.23.png

写在前面的话

这篇文章的“主人公”,即LIFX智能灯泡。根据官方描述,这种灯泡配备了WiFi功能,可以进行多色调节,它是一种高效节能的LED灯泡,并且可以通过智能手机[1]远程控制。考虑到它使用了新型的无线网络协议以及其进入市场的高调程度,因此我们选择对这款物联网设备进行安全分析。

LIFX项目最初于2012年9月份在众筹网站Kickstarter上发起,当时该项目大受欢迎,其最终筹得的资金是原始计划的十三倍之多。

为了通过智能手机应用来进行远程控制,LIFX灯泡需要连接至WiFi网络。如果处于多个灯泡均可用的情况下,用户只需要将其中一个灯泡接入网络即可。这个“主”灯泡可以接收智能手机应用发送过来的控制命令,并将命令通过一个802.15.4 6LoWPAN无线mesh网络广播给其他灯泡。

802.15.4 6LoWPAN无线mesh网络运行架构如下图所示:

2.png

当“主”灯泡熄灭或者断开网络连接之后,剩下的灯泡会自动选出一个来代替之前“主”灯泡的位置,然后接入网络并继续负责给其他灯泡发送控制命令。这种架构一次只需要一个灯泡接入网络,其优势是非常明显的。比如说,其余灯泡在不亮的时候可以用低功耗模式运行,扩展了灯泡网络的可用范围,并且还不会给WiFi网络造成拥塞。

毫无疑问,使用这种新型的网络通信协议之后,mesh网络和主/从通信端都会成为攻击者的攻击目标,因此我们决定选取一些灯泡并开始我们的研究。

分析攻击面

LIFX灯泡网络中有三个核心通信组件:

   1.      智能手机端;
2.      灯泡WiFi通信;
3.      灯泡mesh网络通信;

首先,我们将对802.15.4 6LoWPAN 无线mesh网络中的安全漏洞进行研究和分析。其中,我们将重点分析各个灯泡之间是如何通过6LoWPAN mesh网络来共享WiFi网络凭证的。

6LoWPAN是一种基于IEE802.15.4的无线通信规范,这一点与Zigbee是一样的(同样基于IEE802.15.4)。6LoWPAN可以允许设备通过低功耗个人局域网络(PAN)来转发IPv6数据包。

为了监听和注入6LoWPAN流量,我们还需要一台使用802.15.4规范的外部设备。我们这里选择了ATMEL AVR Raven[2],并安装了Contiki 6LoWPAN固件镜像[3]。它可以提供一个标准网络接口,而我们就可以利用它来监控并向LIFX mesh网络注入网络流量了。

协议分析

安装了Contiki的Raven网络接口将允许我们对LIFX mesh网络进行监控以及流量注入,而就我们的观察情况来看,该协议似乎并没有经过加密。这也就意味着,我们可以轻松地对协议进行剖析,伪造用于控制灯泡活动的信息,并重放任意数据包Payload。

我们在添加新灯泡时,对mesh网络进行了监控并捕获了相关数据包,并识别出了灯泡间共享WiFi网络凭证的特定数据包。整个过程大致如下:首先,主灯泡向网络广播称有新的灯泡要添加进来,新的灯泡会给主灯泡发送响应信息,然后要求获取WiFi数据。接下来,主灯泡会将经过加密的WiFi信息通过mesh网络发送给新的灯泡。最后,新的灯泡会被添加进LIFX智能手机应用中的可用灯泡列表之中。

下图即为我们用Wireshark捕获到的6LoWPAN数据包:

3.png

如上图所示,其中的WiFi细节信息包括凭证数据在内,并通过加密代码块的形式进行发送。

在对添加灯泡的过程进行深入分析之后,我们发现我们可以向mesh网络注入数据包并在主灯泡毫不知情的情况下请求获取WiFi详细数据。除此之外,我们在请求WiFi详细信息的时候既不需要添加任何的新设备,也不会让LIFX智能手机应用发出警报。

这样一来,我们就可以随意向mesh网络请求获取WiFi凭证了。但是我们目前所掌握的信息还不足以完成解密任务,为了进一步实现攻击,我们还需要了解其中的加密机制。

获取固件

一般来说,当我们想要了解某款新设备所使用的加密机制时,我们首先会对其固件进行分析。理想情况下,我们可以直接从厂商网站上下载固件。但是由于LIFX设备是一款刚刚上市的新品,因此厂商还没有发布可公开下载的固件。所以我们现在只能自己想办法获取固件了。

为了从设备中提取出固件,我们首先需要物理访问内置的微型控制器,这可是个技术活,我们的目标就是如下图所示的这个PCB板:

4.png

通过分析PCB板,我们发现该设备主要是由两套芯片集成电路系统组成的:即德州仪器CC2538(负责处理设备通信-6LoWPAN无线mesh网络)和意法半导体STM32F205ZG(LIFX LWM-01-A,负责处理WiFi端通信),这两块芯片均基于ARM Cortex-M3处理器。通过进一步分析后,我们发现这两块芯片的JTAG接口(暴露在PCB板上)都有其特殊的功能。JTAG,即Joint Test Action Group(联合测试工作组),它是一种国际标准测试协议(IEEE 1149.1兼容),主要用于对微型控制器和硬件进行测试以及调试。

识别出了每一块芯片的JTAG接口之后,我们就可以向芯片发送JTAG命令了。这个过程需要使用到一些其他的硬件和软件。我们选择使用的是BusBlaster JTAG调试器[5]以及开源的Open On-Chip Debugger(OpenOCD)[6]。配置好之后,我们就可以向芯片发送JTAG命令了。

下图即为BusBlaster JTAG Debugger:

5.png

接下来,我们就能够导出每一块芯片的闪存数据,并开始对固件进行逆向分析。

固件的逆向分析

获取到固件镜像源码之后,我们需要知道哪一个镜像负责存储和解密WiFi凭证。通过搜索相关字符串之后,我们发现凭证数据存储在LIFX LWM-01-A芯片的固件镜像之中。将该镜像加载进IDA Pro中之后,我们通过搜索常见加密常量找出了加密代码,越来LIFX使用的是AES。

AES这种对称加密算法要求加密方和解密方共同访问一份相同的预共享密钥。在LIFX的实现中,这种设计暗示着每一台设备都会发送一个全局常量密钥。如果设备能够获取到预共享密钥,那我们就可以使用这个密钥来解密其他LIFX灯泡发送的信息了。事实证明,我们的确可以用这个密钥来解密其他LIFX灯泡发送的信息。

通过对这些密码学常量的引用情况进行分析之后,我们发现了负责实现加密和解密操作的代码。在一款免费AES软件[7]的帮助下,我们对加密函数进行了逆向分析并提取出了加密密钥和初始向量等信息。

下图是我们使用IDA Pro反编译出的部分固件加密代码:

6.png

最后一步,就是要用提取出来的加密密钥解密WiFi凭证以证明其有效性了。结果想必大家也已经清楚了,这些加密变量就是我们所要寻找的东西。

总结

现在,我们不仅知道了加密算法、密钥和初始向量,而且我们还对mesh网络协议进行了分析并能够向mesh网络注入数据包、捕获WiFi详细信息并解密WiFi凭证。值得一提的是,整个操作过程并不要求我们完成任何的身份验证,而且更不会向用户发出警告提醒。非常好!

需要注意的是,由于这种攻击技术针对的是802 15.4 6LoWPAN无线mesh网络,因此攻击者必须要身处无线网络的覆盖范围之内(30米之内),并对存在漏洞的LIFX智能灯泡发动此类攻击。

注:厂商现已发布了更新版本的固件镜像,并修复了本文所介绍的安全漏洞(对所有的6LoWPAN流量进行了加密)。新版固件下载地址:【 点我获取

参考资料

[1] http://lifx.co

[2] http://www.atmel.com/tools/avrraven.aspx

[3] http://www.contiki-os.org/

[4] https://apps.fcc.gov/oetcf/eas/reports/ViewExhibitReport.cfm?mode=Exhibits&RequestTimeout=500&calledFromFrame=N&application_id=216608&fcc_id=2AA53-LIFX01

[5] http://dangerousprototypes.com/docs/Bus_Blaster

[6] http://openocd.sourceforge.net/

[7] http://svn.ghostscript.com/ghostscript/tags/ghostscript-9.01/base/aes.c 

* 参考来源: contextis,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

相关 [入侵 智能 灯泡] 推荐:

如何入侵联网智能灯泡——LIFX智能灯泡

- - FreeBuf.COM | 关注黑客与极客
这篇文章的“主人公”,即LIFX智能灯泡. 根据官方描述,这种灯泡配备了WiFi功能,可以进行多色调节,它是一种高效节能的LED灯泡,并且可以通过智能手机[1]远程控制. 考虑到它使用了新型的无线网络协议以及其进入市场的高调程度,因此我们选择对这款物联网设备进行安全分析. LIFX项目最初于2012年9月份在众筹网站Kickstarter上发起,当时该项目大受欢迎,其最终筹得的资金是原始计划的十三倍之多.

飞利浦智能灯泡登陆中国 发力智能家居市场

- - 博客园_新闻
3 月 8 日消息,飞利浦旗下个人无线智能照明系统 hue 正式登陆中国. 每颗 hue 灯泡的寿命约为 25000 小时,光亮相当于传统 50W 灯泡,可高效节能. 目前,hue 只在全国苹果零售店(包括实体店和在线商店)独家售卖. hue 被业内喻为“最智能的灯泡”,它改变的不只是房间的环境,还能变换色彩、提供个性化的智能服务、监控家中安全.

灯泡见光记

- 中雨 - 南桥的博客
由于家族大,亲友多,每次回国都匆匆忙忙,很多该拜访的没有拜访,于是就有同学说我跑到上海见网友不去看他们,不够朋友,其实冤枉. 这次回去其实也很匆忙,我想在上海期间,一定要见到前Mblogger的各位,如猛禽、Mikeshi, 小超、刺猬、简然、令狐虫等. 我们过去分属于两个mblogger帮派. 过去他们曾数次以“南桥粉丝会”的名义聚会,但是我都不在,每次拍照的时侯,务必中间留个灯泡作为纪念.

不要扔掉灯泡

- 万俟尘 - 玩意儿
三个DIY的作品来诠释废灯泡的再生用途,上面这个花瓶不错,简约也比较美观. 本文原始链接:http://www.cngadget.cn/recicla-tu-ampolleta.html. 不插电钥匙扣,让你习惯拔插头.

旧灯泡的再利用

- Jimmy - 微奇生活
生活水平提高了,家家户户也用上了节能灯,那些废旧的白炽灯泡如何利用呢. 看看下面这些妙点子吧,可以种盆栽,做工艺品,还能用来养金鱼~~灯泡还会跳舞呢. 简洁的线圈灯:Coil Lamp. 微博:@新浪 | @腾讯     订阅:Google | 九点 | QQ | 鲜果 | 有道 | 邮箱.

灯泡植物:一灯一世界

- Jo - 果壳网 guokr.com - 果壳网
DIYer:士多店太子 制作时间:1小时 制作难度:★★☆☆☆ GEEK指数:★★☆☆☆. 家里淘汰掉很多白炽灯,看到这一个个漂亮的容器,感觉丢了很可惜. 一天在整理阳台上的仙人球边上冒出的小球的时候突然想到,不如把小仙人球移植到灯泡里面. 这个有点危险,在制作过程中最好带手套和护目镜. 2   破坏白炽灯的PP(*  ̄▽ ̄)y.

Wifi不给力,用灯泡联网

- jifu - 煎蛋
无论是在星巴克连无线,还是从隔壁家蹭无线网,都会面临信号争夺以及随之而来的网速低下的问题. 连接在在同一个无线资源的人越多,那么无线网络就会越拥挤,每个人能够分得的信号和网速也就越少. 但是我们平时使用的无线网,传输信息使用的无线电频率都集中在同一段,那么本着开源节流的思想,能否开发其他波段的无线电来作为无线网.

每个灯泡一个IPv6地址

- sdyy1990 - Solidot
NXP半导体公司和Green Wave公司宣布推出GreenChip智能照明产品,给予每个灯泡一个IPv6地址,允许消费者利用联网设备监视、控制和管理每个灯泡,通过无线网络根据消费者需要关闭和打开单个灯泡. 智能灯采用兼容IEEE802.15.4的单芯片收发器,支持Zigbee和JenNet等灯泡管理软件,支持通过iPhone/Android/Web管理.

Linux.com 遭受入侵

- leafduo - LinuxTOY
Linux 基金会旗下的 Linux.com 和 LinuxFoundation.org 网站,由于发现安全漏洞,进入离线维护状态. 感谢 gbraad 提供消息. Linux Foundation infrastructure including LinuxFoundation.org, Linux.com, and their subdomains are down for maintenance due to a security breach that was discovered on September 8, 2011.

电灯泡将可传输无线数据:每秒超10Mb

- 阳阳猪 - CNBETA
英国著名物理学家哈拉尔德-哈斯表示,他研发出一种全新的无线数据传输技术,可利用普通的电灯泡完成整个过程. 在打开房间电灯的同时,用户也打开了互联网连接. 哈斯将这种装置称之为“Light Fidelity”(简称Li-fi),可用于传输来自电视波段“白空间”的无线数据或者未被使用的卫星信号. 哈斯是英国爱丁堡大学工程学院教授,他表示我们当前使用的无线电波数据传输方式效率不高.