安全基线指南:一本修炼IoT安全设备的“武功秘籍”

2021-02-08 11:04:33 浏览数 (1)

“嗨,我是你最好的朋友,我是圣诞老人。”这是一则发生在一个8岁小女孩身上的新闻,房间摄像头主动“打招呼”,常常存在于电影中的桥段在现实生活中却发生了。本着“安全”之名,却给黑客行了“窥探”之便。

事实上,黑客入侵家居摄像头事件频频见诸报端,不仅是家居摄像头、智能门锁、智能音箱等家居设备智能化之后,都面临的“安全”这把达摩克利斯之剑的“审判”。科技红利的背后,从智能设备安全到物联网安全、乃至人身安全,都应如何考量?

近年来,随着科技创新与应用,IoT设备市场也进入了高速发展期。放眼未来全球IoT市场,根据 Statistics 的调研报告,预计2025年IoT设备数量将超过750亿。科技成果普及也意味着攻击面的扩大,IoT设备在方便人们生活的同时,也打破了用户设备间的信息安全边界,导致设备可能存在各种安全隐患。

万物互联时代潜藏着未知风险

物联网相较于传统领域,多出了边缘感知层也就是设备端侧的安全风险,设备厂商很难保证遍布全球的每一台智能设备自身以及所处环境的安全性。举例来说,物理环境和设备自身的安全性,在传统安全领域里,设备在一个相对安全的物理或逻辑环境中进行保护,但是,物联网设备所处的物理环境相对来说更不可控,比如酒店中的智能音箱、智能门铃的外部摄像头部分。

此外,物联网设备由于存储空间或算力的限制,很多传统安全领域的防御手段如防火墙、防病毒软件在物联网设备上无法实施,导致设备可能被恶意拆卸注入恶意代码或软件,所以设备需要具备防篡改、防物理破坏或防丢失的机制;另一个风险是数据泄露,物联网设备获取了更多的个人数据,暂且不谈云端防护不当导致的信息泄露,就目前诸多的IoT通信协议也给个人数据的安全性带来了很大的挑战。

综上所述,IoT的云管端架构可能存在各种类型的安全风险,甚至与人们的生命安全、财产安全息息相关;并且在可预见的将来,IoT设备市场将会持续高速扩张,不断渗透进人们的生活,这使得设备的攻击面急剧扩大。物联网企业如何预防安全风险,如何从技术角度发力,构建安全可信的IoT设备,让用户、监管和合作伙伴放心,成了企业亟待解决的问题。

一款IoT产品,需要考虑哪些安全风险,安全团队在什么阶段开始介入,如何去解决?企业面对这些问题时,如果没有一个开放、便捷、落地的知识体系,让企业在设计和开发消费级物联网终端产品时就无从下手。

安全基线指南直击企业痛点

小米在“手机×AIoT”战略驱动下,智能物联网设备迅速发展,联网设备累计超2.89亿,拥有5件及以上IoT设备用户数达510万。近期小米发布的《消费级物联网安全基线》提供了IoT产品安全设计和开发的方案,基线涵盖物联网设备强相关的硬件安全、通信协议安全、系统安全、应用安全、编码安全、业务逻辑安全及数据安全等13个安全控制域,细化为共77项安全技术层面的要求点,覆盖了主流IoT设备从设计、开发、生产各阶段需要注意的安全问题。

该基线在小米AIoT安全实验室丰富的安全测试经验的基础上进行了深入的归纳和提炼,对于行业产研人员进行产品研发的各阶段都有着较强的参考意义。IoT设备种类繁多,基线在通信安全、系统安全、编码安全等控制域将各类设备的通用安全要求进行了归纳整合,同时对一些重点类型的设备安全要求进行了着重单独的介绍。

基线在对不同控制域提出对应安全要求的同时,也给出了相应的解决方案,帮助物联网终端产研人员理解相关安全要求及落地方案思路。例如对于防重放,基线通过图文的方式简明地解释了防重放的基本原理,同时列举了行业内对几种常用通讯类型设备的防重放成熟解决方案以供参考,方便行业产研人员理解的同时也易于快速落地实现;在很多细节性较强的安全要求点里,基线结合实际操作或实现方式,提供了方法函数及参数级的详细实现指导,很大程度上降低了企业开发人员将相关安全特性在代码中实现的难度。以下截取了部分基线内容进行介绍。

第一章硬件安全入手,基线中重点介绍了接口安全,安全启动,安全芯片和本地数据安全性。

硬件的调试接口的确是很多攻击者的着力点,删除不必要的接口标识,在产测或内部测试后未关闭相关接口的确是很多企业常常忽略的点,或者的确需要开启一些调试接口以备后续维修或其他的一些正当的业务诉求,但需要注意开启的调试接口,需要有相应的鉴权机制来提升攻击门槛。比如攻击者在物理接触到设备后,但因为删除了接口的标识,他必然需要一定的时间来找出对应的JIAG或UART等接口的准确位置。费了很大力气找到了对应的接口,但发现已经被封禁了就又是徒劳,如果刚好接口是开放的,设备设置的鉴权机制这个时候就发挥重要作用了,比如接口需要打开专用的调试平台,在输入对应的调试帐号和密码,或者设备接口在三次的错误尝试后就自动关闭,那攻击者仍然是无法通过这个风险点侵入的。

随着设备品类和功能的不断丰富,IoT设备需要处理的各种敏感信息也越来越多,如门锁可能需要处理和存储指纹、秘钥、证书等信息。普通芯片的安全防御功能薄弱,为防止敏感信息泄露,此时就需要安全芯片为设备提供可信的硬件平台和安全载体。

安全芯片的主要作用有三点,安全存储加密、可信执行环境和安全认证。

第一是敏感信息(如用证书、密钥)的安全存储加密,安全芯片内部设有独立的存储空间,外部无法访问,因此存储在安全芯片内的敏感信息是安全的。如果因为安全芯片内部存储空间不足需要将敏感信息存储在外部,安全芯片也能起到关键作用,基本思路是使用安全芯片具有的自主生成密钥的能力,并且密钥仅保存在安全芯片内部存储,通过安全芯片对敏感信息进行加密,再存储到安全芯片外部,这样外部无法获取秘钥便无法解密,即可实现敏感信息的安全加密。

第二是可信执行环境,以指纹识别为例,可将用户指纹模板存储在安全芯片内部,验证时将待识别指数据纹传入安全芯片运行指纹识别算法,再对外传输验证结果。

第三是安全芯片提供了安全认证服务,为设备提供了可信根,用来完成物联网设备和云端、以及和其它设备之间的双向认证。同时,加载安全芯片的设备可以和其它的控制应用及生态系统内的设备进行双向认证。

物联网设备所处的物理环境复杂,很多都需要在公共场所或一些环境恶劣的地方,被恶意人员接触的概率大大加大。如何确保设备在公开环境中不被恶意篡改就尤为重要了。要解决这个问题,就需要引入安全启动流程。安全启动需要设备采用的芯片支持secure boot,可选择支持此功能的MCU或选择植入安全芯片辅助执行。其核心思想是在系统启动时从boot ROM到bootloader到kernel再到rootfs的多层链式校验机制(如下图所示),而最底层的boot ROM则是在产线烧录在芯片中,出厂后不可修改的。这样从可信的底层逐级向上验签,最终只有未经篡改的可信固件才能够通过验证启动成功的,从而保证了系统能够安全地启动。

图-安全启动

第二到六章详细阐述了通信安全。IoT设备种类繁多,基线将各类设备共性的通信安全要求归纳整合为通用通信安全,然后对一些重点类型设备的特殊安全要求或具体实现方案在第三到第六章进行了着重单独的介绍。以下简要介绍通用通信安全归纳的一些通用性强而且比较基础的设备安全要求。

在产线测试阶段经常使用的工厂OTA接口,这类特权功能接口通常可以跳过鉴权直接执行功能,能在研发测试阶段提高批量操作效率,但如果出厂后仍保留此类接口,则可能被恶意攻击者利用。因此应在设备出厂固件上仔细检查并关闭此类特权功能接口,如售后或工厂有明确合理的原因需要保留,则应当在保留接口上使用鉴权机制,防止非授权人员使用特权接口造成攻击隐患。

设备通信秘钥用于数据传输或身份鉴权,此通信秘钥一旦泄露将导致设备与服务端通信内容可被窃取,泄露敏感信息,甚至可能导致攻击者伪造设备与IoT平台进行通信,危害IoT平台安全。而部分开发者为图简便,将相同的设备通信秘钥直接硬编码在设备程序代码中,导致大批相同型号的设备使用相同的通信秘钥,这无疑极大地危害了设备及平台的安全性。因此,本基线要求用于传输加密或身份鉴权的秘钥不应硬编码在程序代码中,应满足一机一密的要求,如通过每台设备出厂时写入的根密钥进行派生并导出设备通信密钥。

另外,重放攻击在IoT领域的安全事件层出不穷,如某电动汽车电子钥匙信号被重放,成功打开车门等。重放的基本流程是先监听捕获到合法用户向受控设备发出的控制指令,再将该控制指令重新发给受控设备,以达到欺骗认证系统的目的。基于重放攻击的原理,也就不难理解防重放的思路了。防重放主要通过在控制指令包加一个计数器,受控设备收到指令时先验证指令包的计数器是否有效,仅执行有效的控制指令。

图-重放攻击和防重放

第七到九章描述了系统安全的相关要求,这里简要介绍一下通用系统安全的内容。IoT设备与传统设备很大的一个区别在于,IoT设备具备通过联网升级(OTA)的方式很方便地进行功能迭代,目前绝大多数IoT设备都支持OTA功能下载最新的固件镜像并本地升级。但是OTA功能会引入一个新的问题,设备联网下载的固件包如果被恶意篡改,那么设备升级后很可能出现信息泄露、工作异常,甚至导致用户人身安全威胁和财产损失。

如何防止设备升级到被篡改的固件呢?这就需要通过固件签名来实现。如下图所示,服务端先对固件镜像加签,即先对固件镜像哈希得到服务端摘要,再用服务端私钥加密摘要得到签名,把签名连同固件镜像一起下发给设备。设备端下载固件包后,将固件镜像使用相同的哈希算法得到设备端摘要,再用服务端公钥将固件包内的签名解密得到服务端摘要。设备端这时就可以将服务端摘要和设备端摘要比对校验,如果两者完全一致,即可证明此固件镜像来源可信并且内容未经篡改。

图-固件升级包合法性与完整性校验

第十二章描述了业务逻辑层面的通用安全要求。设备绑定时需注意的问题很多,如设备未绑定时会发出信号供控制应用扫描绑定,如果用户一直未绑定而该信号始终存在,可能导致设备被他人恶意绑定进行查看和控制,因此需要设定一个安全与用户体验平衡的时间限制(如30分钟),超过此时间即关闭待绑定状态,待设备重新上电启动后再次进入待绑定状态。

另外,室外设备和高安全等级设备由于其可能会遭遇暴力拆除或会处理敏感信息,应对其在云端进行设备与用户的强关联绑定。即如果原先绑定的用户没有主动解绑,那么即使设备被他人拆除后恢复出厂设置,在绑定时也会在云端查询此前设备已绑定的账号并与当前账号比对,如果是不同账号则拒绝绑定。这样能保证设备只可被一人绑定,防止设备失窃后的数据泄露。

图-强绑定

以“摄像头”产品为例,击破威胁风险

接下来以较受用户喜爱的摄像头设备为例,介绍小米如何在产品设计、开发、生产各阶段利用基线指南落实设备安全性。

首先,小米会对所有的AIoT产品进行一个产品安全等级的划分。根据产品的C (Confidentiality) I (Integrity) A (Availability) 安全属性遭到破坏后对用户产生的影响,将小米AIoT产品划分为高,中,低三个安全等级。由于摄像头具有安防和录像功能,并且部分摄像头支持人脸识别功能,会涉及到用户的人身财产安全及敏感个人信息,属于高安全等级设备。

其次,根据不同的安全等级,匹配相应等级的安全基线要求。这里的基线要求在需求评估和安全测试过程中都是相匹配的。光有要求还是不行,需要验证提出的要求是否正确的实现。小米AIoT产品的整个开发生命周期中嵌入了安全因素,在产品方案预研和需求阶段就引入安全人员,明确安全需求和设计,尽量早的提出安全要求。

产品在需求和功能设计阶段,产品经理需要在内部流程中提交需求评估申请,AIoT安全实验室接收到此申请单,审查当前的需求文档,方案设计文档以及相关技术架构,并给出对应的安全评估意见。如摄像头类高安全等级设备,硬件安全方面会评估是否支持安全启动,是否需要集成安全芯片,室外设备防拆除的防护或预警机制如何实现,以及调试接口相关的注意事项等。

通信安全方面,根据摄像头具体型号的通信方式,会覆盖以太网和蓝牙通信安全章节的各安全要求;系统安全和编码安全方面,由于摄像头通常采用Linux操作系统,所以除了通用系统和编码安全外,还需满足Linux系统章节的特殊要求;同时还需满足业务逻辑和数据安全这两个通用安全要求。

产品和研发人员根据评估意见修改对应的产品方案,进行研发,在功能开发完成后,业务需同时提交功能测试和安全测试。

再次,在产品测试阶段需要经过安全测试,验证相应的安全需求是否得以实现,将测试结果结合到产品上线流程中。

安全测试由小米AIoT安全实验室进行,测试中将使用到实验室自研AIoT安全测试平台,辅助工程师完成固件中常见漏洞和三方组件安全问题的扫描,同时进行人工渗透,对产品硬件安全,操作系统安全,业务逻辑安全,编码安全,通信安全,数据安全等多个方面进行技术验证,同时也验证需求评估阶段提出的安全需求点的实现是否完整,安全。

测试完成后,AIoT安全实验室将测试结果整理为最终的结果报告提交小米IoT内部验收团队进行验收检查。

智能摄像头只是目前家居安防监控物联网(IoT)设备的一种产品形态,消费物联网远不止安防一个领域,其产品品类繁多、功能各异。因此,安全性在产品设计研发之初,更应该被重视。回想“圣诞老人问候小女孩”这个事件,乍一听是个奇闻趣事,却让人细思极恐,在摄像头的背后,一双眼睛正在她无知觉的情况下,通过摄像头肆意窥探着她房间里的一切,窃取她的隐私。这份基线指南带来的不仅仅是企业产品安全的防护指导,更是人们隐私安全的守护。

0 人点赞