10月31日,第十届KCon安全大会上,字节跳动无恒实验室安全研究员秦时、卢昊良、吴帆同学带来了《你的智能硬件出卖了你的信息—浅谈办公及教育场景硬件供应链安全》的议题,演讲者在会议中就IoT产品在供应链流通环节的安全进行展开,通过分析大量市面主流的办公及教育类产品,发现大部分头部厂商的产品都存在设计缺陷,导致产品可被植入恶意代码,进而窃取商业机密、监控家庭敏感地带。演讲者围绕常见的智能硬件,从多个角度讲述IoT产品在预设的重重保护机制下,为什么还是产生了严重的缺陷,以及如何通过建立IoT安全SDLC流程,提升业务的安全意识,提前发现、修复该类缺陷,保障产品安全。
在供应链安全的领域,软件供应链攻击易受关注,而硬件供应链在流通环节的攻击,比如去年曝出的新闻,金立2千多部手机被植入木马,非常容易被忽视。
由现象看本质,国内外在相关规范方面,均有关于供应链安全风险管理指南的标准文件,并提及了硬件供应链被篡改植入的安全威胁,和供应链的完整性保护。
反观业界主流的桌面处理器、服务器、笔记本电脑、操作系统厂商,很早就实现了安全启动,可信计算等机制。
从底层移动处理器厂商的角度,高通、MTK等IoT常用方案厂商都提供了完整的SecureBoot、TEE的实现支持。
但实际落实到IoT产品端的情况却并没有那么乐观,在无恒实验室的研究中,累计发现5个头部厂商的9款IoT产品(芯片方案有完整的安全启动支持),存在设计缺陷,导致产品可以在供应链流通环节被植入恶意代码。
一方面,厂商一般认为此类植入攻击需要物理接触 ,重视程度没有安全漏洞那么高,不被认可。
另一方面,复杂的供应链网络,导致产品在到达客户之前的流通环节,存在大量被供应链植入的时间窗口。最终使得产品设计阶段的缺陷,在流通的过程中进一步放大了危害。
在企业的办公场景下,智能盒子、智能电视、会议终端等设备如果被供应链恶意植入,则可导致攻击者窃取商业机密,对企业造成不可挽回的损失。
没有安全保护的教育硬件,如智能音箱、智能教育屏等,则可能被破解改变产品原有设计用途,学习机变身为游戏机、浏览不良信息的媒介,更有可能被用于监控家庭敏感地带。
当前主流智能硬件的芯片方案都提供了完整的SecureBoot,提供了可靠的保护机制。SecureBoot包含了一整套完整性校验机制,其核心思想是当前阶段的启动代码加载下一级代码之前,对所加载的代码基于PKI进行完整性校验。
所有支持 Secure Boot的CPU都会有一块很小的OTP储存,也称为 FUSE或者eFUSE,它的工作原理跟现实中的保险丝类似:在芯片出厂之前会被写入信息,一旦被写入便无法被更改。
DM-Verity是内核子系统的Device Mapper中的一个子模块,它用来保证设备分区的完整性。对于小分区,会使用信任根进行直接或间接签名的。对于较大的分区,比如system分区,与预置的root hash进行比对验证。
从信任根到Boot Verify再到DM Verity这一整套校验环由于厂商的实现缺陷存在被绕过的风险。
市面90%以上的智能硬件均没有打开安全启动,虽然安全启动没开,但是从BootLoader向下的保护机制可能是开启的,需要拿到固件,分析保护逻辑。Qualcomm、MTK等主流的芯片方案厂商官方都提供Flash烧写工具,可用于拿到固件进行分析。
通过固件分析,我们发现了多个设备的Boot Verify以及DM-Verity部分存在实现缺陷,可以绕过Boot阶段以及DM-Verity阶段的完整性校验。
绕过了多个阶段的完整性校验,便可以对ROM进行任意修改,如禁用掉SELinux等系统安全选项并植入木马后门等。
如何避免这类缺陷来保护硬件供应链安全?下图是部分厂商的现状,基于这样的现状需要厂商提高安全意识,将安全特性支持考虑到产品基础成本里。
部分厂商采用了如下的一些保护方案,但完美的保护机制也需要在根源上做到安全。
随着硬件项目生命周期的演进,硬件产品在不同阶段的缺陷修复需要付出的代价是呈几何级数递增的,有一些漏洞甚至售卖后就再也没有机会修复,除非召回。所以应该尽早的介入到硬件产品的设计研发流程中。可以通过建立IoT产品SDLC流程,在立项阶段就开始考虑安全设计,考虑secureboot功能的正确设计,避免产品遭受供应链植入攻击。
对于IoT SDLC,无恒实验室设计了一套完整的流程,落地实施的效果很好,这里简单介绍一下,在立项阶段,开始导入安全需求,供应商sourcing阶段,对供应商的安全能力进行审计,而EVT(Engineering Verification Test)工程验证测试阶段, DVT(Design Verification Test)设计验证测试阶段,PVT(Production/Process Verification Test)生产/制程验证测试阶段,各个阶段则各有一轮安全测试,所有漏洞在PVT阶段之前必须修复完毕。 各厂商可以根据自己公司的硬件项目生命周期管理流程,定制适合自己落地的IoT SDLC流程。
无恒实验室是由字节跳动资深安全研究人员组成的专业攻防研究实验室,实验室成员具备极强的实战攻防能力,通过渗透入侵演练,业务蓝军演练,漏洞挖掘、黑产打击、漏洞应急、APT应急等手段,不断提升公司基础安全、数据安全、业务安全水位,极力降低安全事件对业务和公司的影响程度。同时为公司和各大产品提供定期的渗透测试服务,产出渗透测试报告。全力确保字节跳动用户在使用旗下产品与服务时的安全。
无恒实验室持续招聘中,欢迎投递简历。