又到了辞旧迎新的季节,然而每个国家庆祝隆重的开端与结尾的方式总是有所不同。就在刚过去的圣诞节与元旦前夕,这座黑客的安全岛——德国的时尚之都莱比锡,正聚集着无数来自世界各地的技术与艺术的狂热爱好者,用自己的方式庆祝着这一神圣时刻。

1. 关于德国C3混沌通信大会

这就是从84年开始盛行的CCC(Chaos Communication Congress)大会,也称作混沌通信大会。因为正值第35届,所以也称为35c3。

这是一场很德国的会议,现场不光技术爱好者,艺术、伦理以及科学的设想都会在大会中呈现,如同一顿德国盛宴,在脆皮肘子与香肠拼盘后一定少不了地道的德国黑啤。这场大会拥护安全,对一切技术创造与社会运作持怀疑态度,互相争论,辩驳,迸发出无数的创新火花。

那么今年的混沌大会又有什么精彩亮点呢,下面由我们360独角兽团队的几位小伙伴带领大家解读几个IoT相关的精彩议题。

2.议题解读

2.1 供应链中的硬件植入(Modchips of the State)

解读人:@yyf

概要

在该议题中,作者Trammell Hudson介绍了前段时间非常有热度的“彭博社报道中国间谍芯片”事件,并对利用SPI总线进行硬件植入的可行性进行了自己的测试。

议题内容

议题伊始,作者详细讨论了彭博社报告的间谍芯片事件。18年10月4日,彭博社旗下的《彭博商业周刊》发布一篇深度报道称,包括苹果、亚马逊等近30家美国科技企业所使用的服务器,可能被植入了微型恶意芯片,中方可以秘密访问这些企业的内网。

Trammell Hudson 对各方的回应做出了自己解读。据演讲者介绍, NSA 就有一个关于硬件植入物的列表,比如JTAG植入物、以太网口植入物等,可以将数据通过射频的方式对外传出。

针对Supermicro回应声称的“媒体报道的植入方式在技术上是难以置信的,相关评论人员完全缺乏设计知识”,其表示了反对意见。表示不仅 NSA 可以做到,他自己也能做到。

主板上的BMC SPI Flash 通过serial output与BMC CPU连接,这其中经过了一个小的串联电阻,作者就在这个地方插入了他的植入物来完成攻击。

虽然由于针脚的原因带来了一些限制,但依然能做到一些事情,比如可以通过观察数据流来重建时钟,以及将比特位“1”转变为“0”等。

在BMC Flash的结构中,NVRAM区域是一个JFS2文件系统,大部分区域都是空的,填满了代表空的“FF”。

通过该区域特殊的头部信息,我们便能确定目前所在的位置。

结合以上提到的几点,我们可以定位在特定的空白区域来插入数据,而这块区域实际上属于网络配置脚本,将在网络配置时触发。

介绍了大致原理后,作者通过qemu搭建模拟环境做了现场演示。如下图所示,左侧是Flash控制台,右侧是BMC的串口控制台。

当最终执行到配置网络时,将读取位于NVRAM区域的脚本。由于此时该区域的数据已经被替换了,于是执行了自定义的命令。

也可以直接在BMC上获得一个root权限的shell。

对于该类的间谍植入问题,作者认为最终的解决方案是:No More Secrets,采用开源的硬件、开源的固件(如LinuxBoot)。

点评

彭博社爆出的新闻已经被业内外各方人士判断为一次博眼球性质的炒作事件。虽然演讲者通过使用体积较大的FPGA实现了类似彭博社报道中类似的效果。但实际上,在目前几乎不可能制作出一个足够小,而且能塞进信号耦合器的FPGA,或者其他有相同计算能力的芯片。

虽然议题的假设成分高了些,不过这并不妨碍其是一个讨论供应链硬件植入的良好案例,感兴趣的朋友可以到此链接查看完整的演讲视频:
https://media.ccc.de/v/35c3-9597-modchips_of_the_state

2.2 智能灯泡破解(Smart Home Smart Hack)

解读人:@lighting

议题内容

作者首先指出了现在智能家居所面临的一个普遍的安全问题:很多硬件,云以及软件开发都是被个别IoT芯片厂商垄断以及高度封装好的,可能不同牌子的智能硬件只不过是贴牌外壳不同,这就导致一个潜在的安全漏洞可能威胁数以万计的甚至是不同品牌的智能硬件。

作者针对智能家居中一个很简单的家具智能灯泡切入,具体阐明了上述问题。尽管智能灯泡功能简单,但是即使简单到只有开关的智能硬件仍然存在巨大的安全风险。作者深扒了智能灯泡的工作原理,电路结构,鉴权认证以及固件升级的流程,而后实现了几个方面攻击。

智能灯泡的硬件电路上预留了一些测试接口可以供固件的读取和写入,作者开发了相应的脚本可以读取智能灯泡的固件信息,发现了固件中保存有明文的Wi-Fi密码和SSID,这可能会导致用户家中的Wi-Fi密码的泄露,如果你的灯泡被偷走了的话。

作者还发现了固件中保存了一些token和秘钥等信息。这可能导致云端会被欺骗,导致不属于用户的智能灯泡冒充上报信息。同时作者对智能灯泡收集用户的注册邮箱,甚至是地理位置等信息的行为表示非常的不安。因为云端的安全性以及固件的容易修改性都可能导致用户的隐私泄露。

除此之外,通过建立恶意热点,DNS劫持,中间人攻击等手段可以让智能灯泡工作在黑客搭建的虚假云上。

作者通过对智能灯泡的数据流量的分析,破解了智能灯泡的注册流程,并且实现了对智能终端的固件升级的触发,这样可以将恶意固件通过远程的方式写入智能灯泡中,使灯泡在正常工作同时可以实现额外的信息收集等恶意功能。

最后,针对类似于智能灯泡这种简单的IoT硬件有没有存在的必要性提出了怀疑,表示其提供的便捷性和其引入的安全风险不成正比。针对这个问题,他提出可以提供一种开源的固件方案,而且要求厂家应该允许用户能够自定义云端功能是否开启。

演讲视频:https://media.ccc.de/v/35c3-9723-smart_home_-_smart_hack

2.3 利用电磁波进行设备篡改检测(Enclosure-PUF)

解读人:@ahwei

物理安全是一个古老的研究领域,一直以来针对各种安全芯片,例如sim卡,智能卡等的物理攻防一直是业界的研究热点。针对芯片的攻击方法有很多,例如下图的功耗分析,芯片在执行不同的指令时,功耗不同,那分析功耗曲线,也可以还原出目前在执行的指令,进一步获得秘钥。

此外还有注入攻击,通过对芯片各种手段加扰,以便使之进入相对容易提取敏感信息的异常状态。 在芯片领域,针对这类攻击的防范已经有不少手段。然而针对于系统级的防范手段却很少,毕竟在一个系统中,芯片之间还需要通信。大量IOT系统,可以通过拆解,读出固件,逆向分析,获取到秘钥等关键信息,也可以插入探针,获取总线数据,而拆解完毕后,再组装还原,系统仍然可以正常工作,厂商和用户也无从知道设备中的敏感信息是否已经泄露。

有一些系统对物理攻击采取了一些防范手段,例如下图中的设备, 关键数据例如秘钥等存放在需要供电的RAM中,红色圈内是两个微动开关,用于检测破拆事件, 在破拆后,关键数据自动删除。

这类防护机制,需要电池供电, 当电池耗尽时,可能敏感信息也就删除,这时设备需要重新返厂进行秘钥加注,也给系统可靠性带来了更高的要求。 并且当多有几个设备分析后, 也可能采取一些手段绕过监测。

PHYSEC的安全研究人员在35C3的演讲的议题”Enclosure-PUF Tamper Proofing Commodity Hardware and other Applications”发布了他们设计的一种基于封闭环境中的电磁波的传播特性的物理攻击检测方法,这种方法的优点是可以针对已经生产完毕或者已经在使用的设备进行物理防篡改加固。

这种方法以电磁波传播效应中的反射、吸收、折射、散射、多普勒效应等参数作为导出key的依据。在自然环境中这些参数不可控,而在一个具有电磁屏蔽的环境中,这些参数的变化就可控了。

研究人员利用了一个锡箔的餐盒来构造这个屏蔽环境并对这个方法做了概念验证。

PHYSEC演示了两种攻击场景,一是揭开屏蔽的盖子再放回去,另一个是插入了探针,这两种场景都可以被检测到。 可见利用封闭环境中的电磁波传播特性来检测及防护物理攻击是一种可行的方法。

讲解视频:https://media.ccc.de/v/35c3-9611-enclosure-puf

2.4 博通蓝牙HCI接口之安全隐患(Dissecting broadcom bluetooth)

解读人:@LeiJ

蓝牙核心协议分为Host端和Controller端:

  •Controller主要实现物理层的数据传输,跳频和底层数据帧的管理以及连接的建立和拆除和链路的安全和控制。Controller可以运行在SOC芯片里,例如Cypress的CYW20706和CYW20719,也可以运行在单独的Bluetooth controller 芯片或者wifi和bluetooth combo里例如CYW43438 和CYW20710。

  •Host主要实现数据拆分和重装、服务发现、协议复用以及为上层应用提供应用接口。

蓝牙协议为了不同芯片厂商的controller可以适配不同的OS,所以抽象出了HCI(Host Controller Interface)层。HCI提供了统一的接入策略和规范,供Host和controller进行交互。

不同厂商的controller为了实现底层代码更新、参数写入等功能,除了实现蓝牙标准的HCI接口还附加了Vendor Specific HCI。

Broadcom的 Vendor Specific HCI 提供了‘READ_RAM’,’WRITE_RAM’和’LAUNCH_RAM’命令,可以让用户很容易读写内部RAM的内容和更改程序。

攻击者利用Vendor Specific HCI打入Patch,修改了controller中的Link manager,加入钩子函数,实现了监控和包注入的功能。

对于支持’just work’配对方式的设备,攻击者可以利用包注入在配对过程中伪造输入输出属性,和目标设备进行连接。

目前的蓝牙协议依然支持‘just work’的配对方式以支持没有输入输出能力的设备.而’just work’方式是没有鉴权的,不支持防中间人攻击和被动监听的。 攻击者可以利用修改过的Link Manager,伪造’just work‘的配对方式需要的条件。

演讲视频:https://media.ccc.de/v/35c3-9498-dissecting_broadcom_bluetooth

3.总结

当我们谈论IoT安全时,我们往往会把目光局限于云端、移动端等比较“传统”的安全方向上,但正如以上几个议题所列举的,在设备终端层面也存在着如供应链、设备固件、通信协议、通信接口、侧信道等更“深”的攻击面。而由于它们既不易被发现,又不易被修复,往往能带来更深远的影响。

对于IoT设备来说,这意味着厂商在安全设计上需要有更广泛的关注点,而不仅限于移动端APP和云端接口的安全问题。在另一方面对于IoT安全的研究者们而言,也需要掌握更广泛的软硬件、通信协议等知识,以更好的应对即将爆发性增长,形态各异的IoT设备。希望今日分享的几个议题能为大家启发新的思路。

源链接

Hacking more

...