导读
在之前分享过的物联网安全现状和物联网安全性分析两篇文章中,我们看到了正在如火如荼发展的物联网产业,其实面临着极大的安全挑战:一方面它打破了传统网络安全的边界,另一方面也延展了以PC和手机为目标设备的系统安全深度和复杂度。本篇文章,我们将分别从设备安全、物联网平台安全以及物联网操作系统安全性的角度来讨论相应的对策。
如果笼统地针对物联网设备,很难有一致的安全性方案,毕竟物联网设备的计算能力差异太大,并且物联网设备产业比较分散。然而,我们还是可以找到一些缓解物联网设备安全威胁的做法。
(一) 本地操作系统安全
本地操作系统是设备安全问题最大的根源。首先,设备厂商在选择本地操作系统的时候,除了考虑功能性的需求和成本的因素以外,也需要考虑安全性的因素。一般来说,有活跃团队或社区在背后支撑的操作系统可优先考虑,并且将所有已知的漏洞都修复掉,避免历史漏洞的危害。
其次,弱密码是很多设备被攻击的主要途径,设备厂商可以在这个环节上制定方案,禁止弱密码账户登录到系统中。
(二) 采用安全单元(SE)
在计算能力和成本允许的设备上,配备安全芯片。比如像智能门锁、摄像头、智能音箱之类的设备,这是有必要的。硬件上采用了安全芯片以后,也要结合本地软件的安全措施,确保本地系统中的关键路径不会被绕过,关键代码不会被篡改。
另外,设备上的安全单元需要跟服务端(云端或本地服务器)协同才能保证设备的安全可靠,如图1所示。设备ID是一个重要的真实性依据,可以避免设备被仿冒、篡改等;设备证书和服务端的根证书可以确保设备与服务端之间的安全通信。本地的敏感数据保留在设备的安全存储中,服务器端保留摘要信息。
图1 设备安全单元与服务端协同
(三) 丰富漏洞知识库
中国建立了国家信息安全漏洞库(cnnvd.org.cn),从2011年开始每周发布漏洞报告。随着物联网设备的普及,越来越多的物联网设备漏洞被公开披露出来,这对于物联网设备安全生态是一个很好的基础。参照PC电脑和智能手机的安全发展历程,除了公开的漏洞库以外,还需要有足够多的研究机构和商业组织关注物联网设备安全,包括举办大赛、发表论文、研发工具等,促进物联网设备和各种设备操作系统的安全性尽快提高上来。
(四) 物联网网关
在许多物联网场景中,网关是物联网设备连接的第一个网络节点,或者说,网关把一组物联网设备一起接入到一个网络中。安全牢固的网关可以把这一组设备挡在一个局部范围内。而且,网关的计算能力比单个轻量的物联网设备强,因而有条件执行强度大的安全措施。网关操作系统的安全性决定了一个网关经受攻击的强度。
对于自组织网络的网关,譬如ZigBee和蓝牙Mesh,可以把这些设备看成一个整体,因为单个设备被攻击,可能会影响所有的设备,这时候网关就成了该自组织网络的最后一道屏障。设计良好的自组织网络,在网关上还可以检测到设备受攻击的现场,从而触发报警。这可以降低Dt时间,提高整个网络系统的安全性。
(五) 制定安全规范和设备认证要求
物联网设备可以细分到很多行业,安全等级和需求不尽相同。因此,可以在行业范围内制定一些与安全相关的规范和认证要求。譬如,摄像头和智能音箱涉及到个人隐私,门锁涉及到人身和财产保障。若任由市场发展,必然有大量的设备厂商在降低成本的利益驱动下忽视安全性相关的考虑。
当前市场上有大量的物联网平台(如中国信通院的2018年物联网安全白皮书中提到,全球通过CoAP协议暴露的服务数量就接近45万个),它们连接了众多的物联网设备,平台的安全性也同样关系到这些设备的安全性。物联网平台既是一个物联网设备的连接平台,也是一个提供云服务能力的PaaS,需要支撑各种基于物联网设备的业务。其安全性可以从以下两方面来缓解:
(一) 连接平台的安全措施
作为物联网设备连接的另一端,连接平台的有些安全措施需要与设备端协同,譬如图19显示的安全单元和安全通信方案。很多连接平台提供了客户端SDK来接入设备,此SDK可以内置一个软件SE,采用代码混淆、加解密等安全技术提高客户端接入安全性。
在平台侧,接入协议是设备连接的基础,必须有安全性的考虑,包括对于设备的认证、安全通道的建立等。当前开放的物联网平台都基于TCP/IP协议来建立连接(例如MQTT、HTTP、CoAP、WebSocket等),而TCP/IP之上有成熟的安全协议和软件实现来提供安全保障,如HTTPS、TLS、DTLS等。其次,物联网平台在提供设备管理的基础上,可针对每个设备提供智能异常检测,既帮助设备检测到入侵或异常状态,又避免设备受攻击后波及到平台。再次,出入流量管理也是物联网平台一个重要的能力,在有条件的情况下,甚至可以细粒度地检测这些流量,做到快速的入侵预警。
关于连接平台的安全性,其实有一个做得很好的参考,即运营商提供的连接平台,它承载了数亿甚至更多设备的连接,包括手机和各种加装了SIM卡的设备(如汽车、手表等)。当然,这是基于运营商很多年的运营经验和大量的基础设施,以及专业的开发和运维团队才做到的,然而,运营商连接平台的经验,特别是安全方面的努力和成果,是值得借鉴的。
(二) 业务平台的安全措施
对于一个物联网平台,仅仅提供连接管理和设备管理还不够,还需要为上层业务提供必要的基础服务,譬如设备状态信息上报、数据处理、数据报表、权限管理等。这样物联网平台就成了一个业务平台,并且,对于大多数使用场景而言,这是一个云服务形式的业务平台。
参照云计算PaaS安全性的实践成果,物联网平台也可以成为云计算安全的一部分。然而,云计算的安全体系涵盖了从IaaS、PaaS到SaaS的全栈能力,而物联网平台更多侧重于与设备和数据相关的服务的安全保障:
服务接口安全,通常对外的服务接口以Web形式来实现,会面临诸如XSS和SQL注入等攻击。非盈利组织OWASP列出了10大Web安全问题(如图2),物联网平台提供商可以参照这些问题来审查平台的安全性,并建立起常态化的安全检查制度。有一些优秀的软件工具(比如skipfish)可以帮助提前发现平台的安全漏洞。
图2 OWASP列出的10大Web安全问题
数据安全,除了常规的数据安全和可用性保证(采用多备份、异地备份、访问控制等技术手段)以外,物联网平台包含了大量的设备信息,以及由这些设备产生的敏感数据,它们需要额外的安全保障和设计。如前文所提到的,当前市场上的物联网平台不时地曝出这些数据被滥用的消息,说明这方面还有很大的改进空间。采用权限管理、加解密、数据隔离等技术手段只是一方面,更重要的是平台内部的数据管控制度,并且要切实遵照执行。
对于大型的、有较大规模连接的物联网平台,通过专门的团队来实施和保障以上提到的这些安全措施,是切实可行的。然而,市场上还有许多中小规模的物联网平台,譬如有些设备厂商搭建一个云服务平台,为它们生产的设备提供云服务;或者一个区域性的行业服务组织,为其区域提供面向设备的云服务(比如电梯运维、电力设备运维等)。在这种情况下,要完全自建全套的物联网平台,并且保障其安全性,在现实中往往难以做到,最终就以牺牲平台安全性为代价,从而发生了像前文提到的湖北一家科技公司大量物联网设备受攻击影响的事件(参见图13)。
对这一类物联网平台的建设,可以考虑以下两种方案:
依托已有的云计算平台提供商,特别是提供了相应物联网连接管理能力的云计算厂商或运营商平台,来建设自有的物联网平台;
采用成熟的物联网操作系统方案,在企业内部网络或者云计算环境中部署一套物联网操作系统作为自有的物联网平台。此物联网平台的安全性由物联网操作系统的安全能力加上自身网络环境的安全设施来协同提供。关于物联网操作系统的安全性,见下一节介绍。
本文提到的物联网操作系统是指在一个物联网场景中,管理和控制该场景中各种硬件和软件资源的系统软件;也就是说,它需要管理和控制该场景中各种物联网设备和计算硬件,同时也支撑该场景中的应用层业务需求。参考图3中的文章,或者“浅谈物联网操作系统”一文,对于一个物联网场景,由操作系统来提供基本的安全方案,是一个相对快捷和经济的途径。
图3 关于物联网操作系统的介绍
物联网操作系统在安全性方面提供以下基本能力:
设备接入安全,避免设备被仿冒或篡改。对于每一个接入的设备,在操作系统中都有一个对应的设备数字体(Device Entity),通过技术手段来保证物理设备与数字体之间的一一对应。设备的异常行为可被及时侦测到,不同设备可设置不同的行为规则,比如有位移属性的设备可设置路径、采集变量信息的设备可设置上报频率和有效值范围等。操作系统提供的网关软件模块作为第一道关卡与设备建立安全通道,采集数据和发送控制命令,并执行规则引擎,确保设备正常工作。
数据安全,物联网操作系统提供了完善的数据存储、数据归集、数据分析和展示的能力,同时也通过权限控制来确保数据不被越权使用。通过操作系统的私有部署,可以将物联网数据集中起来管控,避免了数据分散各处不便管理的困难。
网络安全与灵活部署,物联网操作系统既可以私有部署,也可以云端部署或混合部署。它作为一个整体参与到网络安全方案中,避免了散落各处的物联网设备带来的安全隐患。物联网操作系统与已有的像入侵检测系统、防火墙、漏洞扫描器等安全产品协同起来,既能补充它们的能力,又可以与它们联动,加强整体网络的安全性。
本文前面介绍了在局域网环境中加入物联网设备引发了各种安全问题,显著地降低了企业或组织内部网络的安全性。物联网操作系统可以缓解这一现状,做法是,在局域网内部部署一套物联网操作系统,让这些设备连接该操作系统,而不要直连外部网络。通过配置物联网操作系统,使它遵从内部网络的总体安全策略,从而确保这些设备不降低网络安全性。
在局域网内部,物联网设备可能位于不同的网络位置(不同网段,比如在不同楼层,甚至不同楼宇),从物理上将它们连接到统一的网络接口不太现实。一种建议方案是,考虑采用一个或多个物理网关(与物联网操作系统配套工作),将物联网设备隔离在物联网操作系统的管控下,如图4所示。这样的网络部署可以缓解当前局域网安全性受到物联网设备的冲击。可以想象一下,前文提到的北美赌场加入智能鱼缸后被攻击的案例,若采用这样的防护方案,就不会导致网络被攻击和数据被拖走的后果。
图4 物联网操作系统用于防护局域网环境中物联网设备的建议方案
此外,如上一节所提到,物联网操作系统可以用于搭建物联网平台,这具有实际意义,一方面许多专业的物联网设备需要专门的企业或组织来提供应用层服务以及设备状态维护,但这些企业或组织在IT平台技术方面未必足够专业或愿意投入;另一方面,用通用的物联网操作系统加上定制性的开发,可以快速地搭建起物联网平台,避免重复性的基础开发工作,又可通过定制或二次开发来满足平台的差异化需求。更重要的是,与物联网操作系统配套的系统化的灵活部署方案,既考虑到运维的需求,又考虑到了安全性的目标。
结束语
物联网安全性相对于物联网产业来说,是一个发展滞后的方向。在过去几年中,随着物联网设备的快速普及,安全问题已经日益凸显。本文首先介绍了物联网网络模型以及基础的网络安全模型,并从物联网设备的不同工作环境来介绍这些设备和相应网络的安全现状。然后,本文分别从设备侧、平台侧和局域网环境三个角度分析了物联网的安全性,并且,针对物联网设备和平台列出了一些缓解的措施,最后介绍了物联网操作系统的安全性,以及它对于局域网和物联网平台在安全防护方面的建议方案。
最后,简单总结一下本文的一些结论:
物联网设备的安全性不容忽视,可以先从一些关键的行业来规范和推动;
多数物联网平台,特别是中小规模的物联网平台,安全性亟需重视和提高;
物联网操作系统可以缓解局域网内部引入物联网设备带来的安全风险;
用物联网操作系统来搭建物联网平台,是一种既快捷又带有安全防护能力的方案。
更多精彩内容请点击阅读原文