【摘 要】 本文提出了构建C-IoT终端安全防护能力和方案的建设技术和思路,强调安全是保证设备安全入网的关键环节,并在阐述C-IoT终端安全总体框架和方法的基础上,总结并提出了如何依照“等保2.0”要求开展C-IoT终端安全测评的建议。

【关键词】 等保2.0 新特性 C-IoT 终端安全 安全风险

【中图分类号】 TP391 【文献标识码】 A

1 引言

蜂窝物联网(Celluar Internet of Things,C-IoT)即基于蜂窝无线通信系统的物联网技术,是一种将物理设备(如传感器)与互联网连接起来的方式,它将物理设备(如传感器)与智能手机搭载在同一个移动网络上。因其基础设施简单,在5G出现后,C-IoT正逐渐成为连接领域的一个强有力的参与者。

C-IoT终端是蜂窝物联网数据的入口,所以在一定程度上,我们可以认为C-IoT终端安全就是整个蜂窝物联网安全的源头。当前,C-IoT相关技术已经渗透并深入应用到智慧城市、智慧农业、智慧粮库、智慧能源、智慧海洋、智慧医疗等领域,涉及关键信息基础设施的各个方面,C-IoT的安全问题成为了关键信息基础保护的重中之重。

2 C-IoT终端安全风险体系分析

《等保2.0要求》第四部分“物联网扩展安全要求”中包括技术要求和管理要求2个部分,技术要求包括4个部分:物理和环境安全、网络和通信安全、设备和计算安全、应用和数据安全。结合等保2.0扩展安全要求的技术要求和C-IoT终端本身的技术架构,我们可以将C-IoT终端安全威胁分析体系模型分为4个部分,如图1所示,具体为硬件和物理安全风险、系统和访问控制安全风险、应用安全风险、数据安全风险。

硬件和物理安全风险。首先,市面上主流芯片的技术规格及开发规范可以通过互联网轻松找到,黑客可以从官网或者直接从芯片上获取固件后进行分析,找到漏洞并利用。其次,很多设备的开发接口,如UART,TTL,SPI等,编程接口在出厂时未禁用,这些暴露的接口可能被黑客利用来破解设备运行机制和替换非法固件,从而引发系统安全问题。

5g安全架构白皮书(5GCIoT终端安全测评体系和技术研究)(1)

系统和访问控制安全风险。由于部分C-IoT终端硬件资源受限,传统的系统安全防御技术很可能会因此无法使用,研究人员通过分析大量嵌入式设备系统固件,发现其主要存在3个问题:终端系统安全设计的缺失、原有安全机制的直接沿用、没有充分利用自身硬件架构特性。现有C-IoT终端系统在设计之初,普遍只关注其功能要求,大多并没有考虑对系统安全进行额外的设计,即使像ARM的mbed操作系统在设计时将安全考虑在内,但其对于操作系统本身也并没有采取有效的保护措施,仅仅是为了保护通信安全添加了如SSL功能,启动代码没有进行合法性、完整性验证,系统和预置应用组件等漏洞未及时修补,系统权限开放过多或权限限制不严格等问题普遍存在。

应用安全风险。由于C-IoT终端受制于成本控制,导致设备厂商会偏向于采用现有方案,所以绝大多数厂商会选择开源的软硬件方案。大面积开源方案的采用也导致了软件供应链的安全成为设备厂商盲区,如果产品大量部署后,某个开源方案或者组件被发现漏洞,那么因这个漏洞被黑客利用而造成的后果将很可能不亚于Mirai病毒事件的影响。

数据安全风险。首先,如上文所述,C-IoT终端是蜂窝物联网数据的源头,而每个终端以及终端之间的交互通常都会涉及大量个人隐私信息或者其他业务数据,当前,在成本控制的前提下传统数据安全保护机制无法引入,敏感数据缺少保护机制。其次,没有统一的规范来明确数据采集、传输和访问控制范围,很多设备存在未经用户允许,设备擅自采集大量的用户隐私信息的行为。除此以外,隐私信息存储位置不安全或者未加密,数据访问控制权限过高等缺陷将会带来严重的数据泄露风险,这些数据很有可能被攻击者直接篡改或者加以利用。

3 C-IoT终端安全

为了加强C-IoT终端安全的管理,针对各产品类型的C-IoT终端安全水平进行客观、综合评价,保证蜂窝物联网终端发展与信息安全措施同步规划、同步建设、同步运行,提升蜂窝物联网终端安全整体水平,更好地贯彻和落实国家网络安全法和等保2.0的相关安全要求,切实保护国家利益,进行安全评估是行之有效且必需的安全方案。

3.1 C-IoT终端安全体系架构

通过研究等保2.0要求第四部分物联网扩展安全要求(以下简称等保2.0扩展要求),同时结合上文提出的C-IoT终端安全威胁分析模型,我们可以将C-IoT终端安全模型也分为4个部分,如图2所示。具体包括了设备的物理访问控制、身份鉴别、系统权限限制、系统更新安全机制、内置应用安全、数据传输、数据存储及日志安全等方面。

5g安全架构白皮书(5GCIoT终端安全测评体系和技术研究)(2)

3.2 硬件安全技术

硬件安全的重点其实就是硬件(硬件接口和芯片管脚)的分析和调试,与软件的接口(Application Program Interface,API)一样,硬件也有很多种接口,不同接口使用不同的通信协议,由于硬件产品经常是多种硬件协同工作,它们之间的信息交互正是通过这些硬件接口实现的。同样,通过嗅探这些接口,我们就可以获取这些交互数据,对应等保2.0扩展要求验证交互数据,从而达到硬件安全的目的。

硬件的第一步是获取设备元器件的电路图。取下设备的外壳后,对应等保2.0扩展要求,验证相关物理安全要求,之后去除集成电路芯片上的物理保护涂层,就可以进行集成电路芯片的识别了,基本所有IC芯片都可以通过搜索引擎找到配套的数据手册,而数据手册中就包含了零件包装、电器特性、管脚图等重要信息。硬件的第二步是硬件调试,而硬件调试又分为总线调试和接口调试。

3.2.1 总线调试技术

对于总线调试来说,与网络数据传输不同,硬件间总线传输的数据往往没有进行保护,因此较为容易被执行数据拦截、重放等操作来进行调试。要对硬件设备总线进行调试,需要将探针连接到不同芯片的管脚上,然后调整逻辑分析仪的频率,随后通过逻辑分析仪记录下总线传输的0、1信号并进行数据解码。通过观察解码后的数据,我们可以对等保2.0扩展要求中数据源认证、感知设备访问控制以及设备安全等相关安全要求进行验证。

3.2.2 接口调试技术

获取总线上的数据有时非常容易,但有时候又会无比困难,而这时我们就可以使用接口调试来对C-IoT终端进行硬件安全测试。通常来说,C-IoT终端为了出场的测试或者后期的维护,都会设有调试接口,如通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)、联合测试工作组接口(Joint Test Action Group,JTAG)、串行外设接口(Serial Peripheral Interface,SPI)等。和总线一样,嗅探这些接口同样可以获得硬件交互数据。

UART,即通常所说的TTL电平的串口,是笔者接触到的C-IoT终端中,最为广泛的调试接口,通常用于与嵌入式系统调试通信,如图3所示。这种接口通常会对应一个虚拟控制台(TeleTYpe,TTY)设备,一旦登陆成功便很可能会获得管理员权限(root shell),这时对应等保2.0的安全需求,我们可以直接通过命令行或者检测脚本进行密码规则(包含密码有效期、密码格式、密码长度等)、账户权限分配、终端状态(内存、端口、处理器占用情况等)等安全要求的合规性验证。

5g安全架构白皮书(5GCIoT终端安全测评体系和技术研究)(3)

3.3 固件安全技术

多数C-IoT终端需要一些定制化的固件才能正常工作,通过研究这些固件可以获得大量的设备信息,包括默认口令、管理端口或者调试接口等。在等保2.0中,很大一部分的入侵防范安全要求、身份鉴别安全要求以及资源控制安全要求是可以通过固件安全进行验证的,所以固件安全是C-IoT终端安全的重要一环。

3.3.1 固件提取

想要进行固件安全分析,第一步要进行固件的提取,一般来说固件提取的方式分为两类。

第一类,编程器读取法。通过飞线将固件芯片管脚接出,如图4所示,连接好固件芯片的管脚,通过夹具连接芯片到编程器,再通过专用编程器软件,对该芯片进行读取。除飞线外,也可以将固件芯片拆除后直接放到编程器读取。

5g安全架构白皮书(5GCIoT终端安全测评体系和技术研究)(4)

第二类,命令行导出。如果终端使用的是嵌入式Linux,那么通常存储的固件会被挂载到/dev/mtd。此时我们便可以通过命令行导出mtd0的内容,从而实现终端固件的导出。

3.3.2 固件

固件安全目标包括固件漏洞验证、账户安全、系统配置安全、系统升级安全等,通过对C-IoT终端固件的信息检测、第三方组件检测,发现与等保2.0相关要求不符合的内容,其主要的方式是通过静态和动态两种方式进行。

静态手段包括但不限于代码分析、代码审查、质量度量等。静态分析不必运行被测系统代码,而是借助专用的软件工具对源程序进行分析,主要分析固件文件的接口数据部分和表达式部分。接口数据分析涉及子程序以及函数之间的接口一致性,包括检查参与实参类型、个数、维数、顺序的一致性;而表达式分析则是找出其可能存在不正确使用括号造成的错误、数组下标越界造成的错误、除数为零造成的错误、对负数开平方的错误,其中最复杂的一类表达式分析是对浮点数计算的误差进行检查。

动态包括但不限于数据流分析、控制流分析、接口分析、表达式分析等。数据流分析通常是用数据流图来分析数据处理的异常现象,这些异常包括初始化、赋值或引用数据等。对数据流的分析主要包括对过程或函数调用信息的分析以及对数据流的反常分析。主要集中关注定义/引用异常的缺陷(定义的变量没有使用,使用的变量没有定义)。而通过控制流分析可发现以下错误:无条件跳转的使用、不适当的循环嵌套和分支嵌套、死循环、转向不存在的语句标号、调用不存在的子程序、未使用的变量、子程序定义、不可达语句等。

3.4 应用安全技术

应用安全目的是进行应用漏洞分析、应用配置安全评估、确保业务安全等。手段主要是动静态结合的分析方式,通过静态反编译应用软件或者利用虚拟环境动态运行应用文件监听应用行为轨迹,从而分析出应用漏洞及异常,这个过程需要借助应用模拟器、二进制分析工具等。

导致应用程序漏洞的最主要原因是开发阶段导致的错误,因此保证开发中的应用没有任何严重的安全问题至关重要。根据等保的要求,应用在上线前,应由内部安全团队或者外部专业安全公司进行一次全面的应用安全评估。在模拟真实运行环境中对应用进行动态分析或者对应用的二进制包进行逆向静态分析,这是较为通用的做法,这里不重复赘述。

3.5 数据安全技术

数据安全的目的是对C-IoT终端的数据存储和数据传输进行安全保障,其中数据主要指的是固件数据、终端隐私数据(账号密码、日志、剩余信息、业务交互数据)等信息。在等保2.0中,数据可用性、数据完整性等安全要求就可以通过这一部分内容的安全性进行验证。

3.5.1 数据存储安全技术

数据存储安全技术主要涉及硬件层和系统层,通过硬件工具和技术手段将芯片中的固件和文件系统导出,从而提取出设备中的二进制数据,我们重点关注的是这些二进制文件中包含的固件文件系统存储的用户名密码、系统配置文件、日志等数据。

通常来说,我们将测试分为3个部分,包括数据完整性、数据访问控制、数据安全隔离。数据完整性验证是指对C-IoT终端数据进行读取操作时的完整性检测,验证终端是否具备可以发现数据的完整性被破坏,以及防止未授权实体对数据进行篡改、删除和插入等操作的能力;数据访问控制验证是指当非授权实体访问终端数据时,验证终端系统是否具备终止非授权的访问行为并提供告警信息的能力;数据安全隔离验证是指当通过设备外部接口进行设备访问时,终端是否具备将系统配置数据、用户数据等按账户或其他区分原则进行安全隔离的能力。

3.5.2 数据传输安全技术

C-IoT终端传输技术主要基于无线传输,通常无线传输是基于系统层功能实现的。通过以下安全技术可以对Wi-Fi、蓝牙和ZigBee等协议进行通用的安全保护。安全技术包括通信嗅探(Sniffing)技术、重放攻击技术、加密密钥的安全性和获取的容易程度、通过无线电波控制智能硬件设备、协议自身的安全评估等。

在等保2.0中,数据传输安全的测评主要包括保密性、完整性、抗干扰性和抗抵赖性。我们可以通过一系列的嗅探技术来验证终端数据在传输时是否满足等保的安全要求。

4 结语

随着C-IoT终端深入人们的生活,人与C-IoT终端的关系越来越密切,而C-IoT终端上所承载的隐私数据也越来越多,C-IoT终端受到的攻击越来越多,影响也越来越大。C-IoT的发展离不开稳定的C-IoT生态环境,大量针对C-IoT的攻击不仅会打击消费者对产业的信心、兴趣以及从业者的热情,情况恶化之后甚至会影响国计民生。而等保2.0的发布对于C-IoT安全产业来说是一针强心剂,如果企业贯彻落实等保2.0的安全要求,机构认真踏实地做好测评服务,这将为建设绿色C-IoT生态环境起到至关重要的作用。

(原载于《保密科学技术》杂志2021年2月刊)

,