- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Broadlink智能生态系列漏洞详解剖析
Broadlink智能生态系列漏洞详解作者:谢军@阿里安全研究院官网:百度搜素“阿里聚安全”官方微博:阿里聚安全官方微信:阿里聚安全序言? ? ? 随着消费电子器件快速发展和物联网在生活中的快递推进,促使芯片产商和大量的智能设备创业团队在智能生活领域加大投入,芯片产商针对各种生活场景提供有针对性的整套SoC(System On Chip)方案,这对小的智能设备创业团队降低了进入该领域的门槛,小团队可以快速的利用芯片产商提供的解决方案,可以定制化硬件设备产品,自己可以不关心硬件集成的问题,自己只需要利用芯片产商提供的SDK开发平台开发自已的上层应用即可,今天我将深入介绍物联网应用中智能设备的一些设计架构和安全问题上的问题,我们将以Broadlink的智能插座作为研究目标来窥探整个博联智能生态网络的安全问题,该系列安全漏洞在2015年的GeekPWN智能设备破解上进行演示过。1.初识智能插座? ? ??今天我选择分析研究的这款插座是博联的SP2(smart plug),为什么选择这款插座,这款插座现在应用比较多,而且使用的元器件产商marvell提供的smart energy在国内的创业团队中也应用的比较多,据悉小米插座也使用了marvell的解决方案。外观如下图,是我们今天研究的主角.通过拆解插座我们得知它使用的一些芯片和元器件,下图插座核心模块.Cortex-M3处理器+WIFI模块,具体芯片是marvell的88MC200+88W8782下图是插座的继电器模块,主要功能是用于开关插座,具体器件是Y14F-SS-105LMW-115下图是电量计量模块,用于记录电量使用情况,具体器件是ATT7021CU从使用的这几个模块来看,基本上我们能够确定一些关联,微控制器是核心的控制中心,管理WIFI模块用于联网和通信,管理继电模块物理开关插座,从计电传感器读取电量的使用情况,以上的微控制模块是我们今天研究的重点。?2.系统架构我们将从硬件架构和软件系统来对这款插座进行详细介绍。2.1?硬件架构这里我们将详细介绍该核心控制系统的硬件和软件架构,上面我们提到了微控制芯片marvell的88MC200和WIFI模块88W8782,这两芯片组合就是Marvell提供的smart Energy解决方案。下图是硬件组合功能图? ? ? 简单介绍这两片芯片的特性:88MC200? ARM Cortex M3的核,处理器时钟高达200Mhz,512KB SRAM,1MB Flash片上存储空间,128位AES加密算法引擎,CRC算法引擎.88W8782??集成Marvell Feroceon CPU(ARMv5TE-compliant)高达128Mhz处理器时钟,兼容802.11 a/b/g/n,支持WIFI-Direct和stations模式(后面会详细介绍,传说中的SmartConfig)?2.2?软件系统架构该插座的软件系统基于Marvell的Easy-Connect SDK开发平台来完成,产商通过Marvell提供的开发平台来开发属于自己的上层应用,通过marvell提供的信息来看,我们可知该插座的软件系统的一些特性,下图是marvell提供的开发板。???????操作系统:FreeRTOS??????TCPIP协议栈:LwIP(一个轻量级的TCPIP协议栈的实现)简单介绍一下嵌入式操作系统FreeRTOS,这是一款开源的跨平台的迷你实时操作系统,第一次知道这个操作系统要从硅谷有一家做智能手表的公司叫pebble watch说起,他们是从美国众筹网站kickstarter上融到钱做智能手表的,他们就是用的FreeRTOS。它的特点就是短小精悍,最小的FreeRTOS核心仅包含3个.C文件(task.c,queue.c, list.c)和少量的头文件,精简编绎的二进制文件可以小到10几K,非常适合做这种低功耗的智能设备的操作系统,博联的这个插座的整个系统的firmware才260多KB,里面包括整个硬件初始化,FreeRTOS系统和TCPIP协议栈,无线管理,上层业务逻辑等等,使用FTFS精简文件系统,显得非常紧簇和精简,下面我们将介绍插座的启动过程。2.2.1?系统引导过程? ? ?我们从一些途径获取到了该插座的更新固件(BL_SP2-27-3.bin),因此我们可以获知它的内部系统运行的流程和功能,下图是该固件的结构分析图。该固件的头部0x28个字节包含头部标识,固件长度,和加载地址,固件校验等信息。对于88MC200的芯片启动过程来讲,我们有必要附上整个硬件系统的内存分布图,来详细介绍其启动过程,它使用的是Cortex-M3 32位的处理器,使用ARMv7-M架构,使用的指令集Thumb-2(16/32位混用),由于代码密度高,所以编绎出来
文档评论(0)