防护方式
本节讨论上文提到的 5 种防护方式的优缺点。非常明显的是 SDK在防护方式上具备天然优势,因 为 SDK可以直接参与到产品设计种,而终端的许多问题都是设计缺陷导致,SDK能从根源上解决一部 分问题。其次为可信系统,可信系统可以被认为是基于 SDK实现的一套可信机制,这一套机制包含了 认证、加密等能力,从软件上保护关键资产。可信系统的缺陷是没有对可信根做读保护,安全存储、 PUF(Physical Unclonable Function)等安全能力可以参与到可信根的保护中,进而保证可信根的安全性。 安全芯片可以保证关键资产不会被人从芯片中获取,但是主芯片和安全芯片之间的通信过程可以通过逻 辑分析仪读取,所以安全芯片应用的终端应是不会被轻易获取分析的,才能保证关键资产的安全,如手 机、车载终端等。安全探针则可以配合安全厂商对物联网终端做安全分析,如异常检测和处理,这一点 在下一节中会详细说明。安全设备
,如安全网关则适用于企业内网等环境,使用受限。下面,我们详细 介绍每个防护方式。1. 部署安全设备
部署安全网关是一个思路,如前文提到的网络信息保护和安全维护,通过部署安全网关,可以把物 联网设备隐藏在内网,实现对设备的网络侧的保护。安全网关利用协议转换、风险检测、行为分析等分 析物联网
设备的行为。部署安全设备的缺点是不能保证物联网设备的本地数据的安全。显然,本地的安全主要是信息的安 全存储,该功能需保证数据的完整性、保密性,对这部分的数据的保护,需要结合 MCU(Mcrocontroller Unit)、MPU(Microproce
ssing Unit)本身的安全能力来做。例如部署物联网设备认证网关,所有的设备连入认证网关,利用网关把物联网设备隐藏起来,设备 的网络安全,设备与云端的交互则通过网关和云端的数据交互保证,这个安全网关可以是定制的安全路 由器,之所以说是定制,是因为如果网关负责转发数据和多协议的适配。部署认证网关有以下挑战:内
网数据采集,部署位置和设备的距离、设备数量之间的冲突。由于物联网设备数量大,部署距离不定, 一旦到城域网、广域网的部署模式下,安全设备也就没有优势。尽管部署 IDS也能做到物联网设备的攻 击行为检测,前提是 IDS规则能适配到相应的物联网设备遭受不同攻击的场景。
由于大部分物联网设备本身的价值小,数量多,部署距离不定,这种花费较大成本却无法得到很好 的防护效果的方式显然是不可取的。
- 应用安全芯片
安全芯片一般会被应用在计算机、公交卡、USB Key这类设备,而且应用安全芯片的这类设备,从 实际应用看,破解起来均有很大难度,所以,在物联网场景中,在设备中内置安全芯片看上去是另一种 选择。
安全芯片内部一般会集成 MCU的功能。目前来看,安全芯片的应用方式有两种,一种是作为 MCU 外部设备来应用,就像是给 MCU装上了一个安全应用,安全应用里面的数据很难被非法获取或者非法 篡改,另一种则是替代 MCU,既实现 MCU的功能,又实现安全能力。第一种带来的是成本上的增加 和芯片间通信带来的风险。假如攻击者可以获取到主控器和安全芯片之间的连接数据,或者可以在主控 器和安全芯片之间建立连接,则安全芯片的功能也就失效了。第二种应用模式将成为一种趋势,因为这 样能把代码、数据非常可靠地保证起来。因此,很多安全芯片的安全能力正逐渐被 MCU、MPU、Flash 芯片厂商加入到自身产品中,如读保护,OTP、安全存储功能等,但是由于存储量的限制,安全芯片对 协议等代码的支持依旧有限。
应用安全芯片有以下限制: - 应用的设备需有人管理,这个人可以是买了一个带有安全芯片功能的扫地机器人的消费者,而 对于大量的户外的物联网设备,如果没人维护,被人非法获取后,依然会存在安全风险。
- 成本较高 [59]。TPM 芯片的进口有政策限制 [60],国产的安全芯片成本很高。
- 存储量的限制。大部分安全芯片并不够存储 IP 协议栈的代码。
- 代替 MCU的部署场景,只适用于单片机类的产品,导致应用领域受限。 所以,部署安全芯片在物联网设备上,尚不成熟。
- 安全探针
安全探针作为一个应用程序,在最高权限下可以控制网络连接和进程,适用于有嵌入式 Linux等较 大的操作系统的设备。一方面,探针可以采集数据到云端,供云端进行安全分析,以判断终端的安全状 态,甚至给出健康分值;另一方面,探针还可以接受云端的安全策略,对终端应用安全策略,以断开恶 意网络连接并杀死恶意进程。
安全探针需要结合云端的安全分析能力,否则只有一个探针将毫无意义。云端的安全能力又需要专 业的物联网安全专家指导,否则安全探针的功能就无法明确。所以,安全探针适合安全厂商来做,并提 供配套的安全分析服务,以保证终端的安全与预警。
SDK作为软件开发包,可以直接参与到产品研发阶段,能从根本上解决一定的安全问题。在产品的 设计研发阶段,有芯片厂商、OEM厂商的参与并提供 SDK,所以,基于芯片的安全能力和 OEM厂商 提供的中间件,完全可以从底层开始对物联网终端做安全防护。芯片上可以设置保护区域和可信区域, 固件上可以做好代码检查以及关键资产保护,应用层还可以做流量的认证和加密、安全升级,甚至基 于 SDK实现一个简单的探针。SDK的应用不限于设备类型,从简单的插座到复杂的摄像头均可以基于 SDK做安全方案。 - 应用可信技术
简单地说,TEE是利用 OTP/Fuse 等一次性写入存储区域的数据作为可信根,做内存虚拟化实现安 全域和非安全域的一种机制后,在安全域实现一些更复杂的诸如安全存储、代码校验等能力的安全机制, 其架构如图 5.4 所示。
利用 TEE技术在物联网终端上将数据持久地安全存储,实际上并不能真正的实现 100% 的不可读, 因为其根本上还是软件、代码,只要被读出来就有风险,但是却能提高逆向分析终端的难度。而实际 上,随着智能手机应用 TEE技术,终端自身的安全问题的确少了许多,但是随着攻击者攻击手段和知 识水平的提高,仅仅用 TEE做安全存储并不是长久之计。还需要结合比如 NXP的 Kinetis Security and Flash Protection Features[61],或者 ST 公司的 RDP(ReaDout Protection)[62] 的思路,把密钥写入到一 个真正只有拆解芯片来拍照逆向才能读取的一块区域中,这样才能达到芯片级别的防护。而物联网环境
下,达到芯片级别的防护,其破解成本已经足够强,而且能很好的应对前两种攻击手段,因为密钥并不 在外部的 flash 中,在开启读保护的前提下,攻击者只能读内存或者拆芯片来获取密钥。而厂家只需要 保证自身产品的升级流程是安全的即可,因为升级过程可以重新刷写芯片内部 flash 区域,如果攻击者 利用了升级漏洞,会把读保护标志位置为可读。
TEE是可信执行环境,在应对敏感数据持久化存储方面尽管不是目前最好的解决办法,但是自身的 安全机制已经提高了破解条件。结合其他技术,物联网终端一定可以比较完美地保护起来。因为 TEE 机制导致的性能损失,可以经过测试后 [63],根据自身产品现状决定需不需要采用 TEE这样一套机制, 或者决定需不需要优化 TEE的性能。
图 5.4 TEE 软件结构
终端异常检测和处置
前文介绍了终端侧需要保护的信息,以及保护方式和形式。除了终端侧的加固要完备,云端针对终 端的分析,也需要确保终端运行时是否存在异常。接下来,我们将介绍云端分析所需的一些重要功能点, 如信息采集、策略接受与处理等。
信息采集
终端侧为配合云端做异常检测,需要上传信息到云端,使云端有准确的数据可分析。我们列出了终 端运行过程中需要采集的 6 类数据,以供参考:终端请求解析的域名、建立的网络连接、启动的进程信 息、文件系统变化、流量信息、系统日志。
前两项数据可以确定终端连接了哪些域名下的服务,进而连接了哪些 IP 和端口。在简单的物联网 终端中,这些域名、IP 会比较固定,一旦出现新的连接,也很容易发现是一个陌生的连接,云端可以 根据黑白名单策略即可分析出异常。如图 5.5 所示。
图 5.5 DNS 信息以及网络连接信息
中间两项数据可以确定终端的哪个进程发起了异常连接,一旦物联网终端内被植入了恶意程序,则 文件系统内的文件内容必然会做更改,此时文件监控可以定位到恶意文件。进程监控信息则能监控到恶
意软件的启动时间、启动参数等。一旦被恶意软件入侵,终端需要将异常的二进制程序发到云端,云端 做威胁分析,进而推断异常来源。如图 5.6 所示。
图 5.6 文件系统监控信息以及进程信息
最后两项数据可以辅助推断异常二进制程序的来源。如攻击者通过 SSH 登录时,NetFlow 可以监控 到 SSH 协议的流量信息,系统日志可以监控到用户登录信息等,进而确定终端被攻破入口。分别如图 5.7 和图 5.8 所示。
图 5.7 系统登陆日志(SSH 等)
图 5.8 NetFlow 信息
其中,前四项数据必须不断上传,后两项数据可以根据基于前四项数据后的结果,再看是否需要后 面两个数据的支持。所以,在图 5.2 中标识为动态上传。
策略下发与安全处置
海量终端的数据上传到云平台以后,云平台对数据的处理和分析也是一大挑战。其难度主要在于终 端的数量和种类繁多。由于物联网终端的复杂性远小于个人电脑,所以云端的挑战是小于杀毒软件产品 的云端分析的,所以云端面临的数据压力比较小,在分布式环境部署方面,现有的方案很多都可以满足。 但是,选择合适的传输协议并合理分类终端与数据类型是一个非常重要的工作。
根据我们对物联网终端的认识,按照厂商、设备类别、设备系列、设备型号、设备 ID的逐层分类 的方式比较合理,而且这不是一个挑战。因为安全侧需要的数据明确且小量,所以并不会给终端自身带 来计算和带宽上的压力。数据上传到云端或者边缘侧的服务端以后,服务端对每个终端的安全性建立安 全模型,从进程行为、网络行为这两个方面做更加细致的分析,具体流程如下:
- 厂商上传设备正常的进程和网络行为。
- 云端接收终端侧采集上来的数据。
- 对每个终端建立安全模型。
- 分析终端的网络行为。
- 分析终端的进程行为。
- 给每个终端做健康评分。
- 对低于 100 分、90 分、80 分的终端分别告警,级别依次提升。
- 向低于 90 分的终端发起 NetFlow 和日志采集任务。
- 给低于 90 分的终端生成新的白名单。
- 下发名单到相应的终端中。
如果终端被恶意软件入侵,信息采集频次足够强的情况下,进程启动信息和网络连接信息中一定能 看到新的进程启动,新的网络连接发起。所以,下一步要解决的问题是如何把恶意程序禁止,断掉恶意 连接。物联网终端的结构很简单,利用基于白名单的进程、网络的控制策略来侦测和禁止恶意程序启动 并杀死已经启动的恶意程序,已经足够了。
所以,终端需要具备的是基于白名单做进程、网络连接的控制能力。服务端需要具备的是数据分析 能力、白名单生成能力。终端侧可以基于 ps、kill 等进程控制程序实现一套基于白名单的控制机制,网 络侧可以基于 iptables、netstat 等网络控制程序实现一套基于白名单的网络控制机制。服务端可以部署 分布式集群以满足大量终端的数据分析需要,分析完毕后,将异常结果转化为策略(白名单)并将其通 过安全通道下发至终端,形成反馈。
随着终端的计算性能逐年提升,CPU、MCU 等不再局限于通信接口的完备和低功耗等基础功能, 芯片制造厂商在其中加入了安全能力(如 AES加密器、只读 Flash 等),边缘计算概念的提出,终端 需要的安全分析工作甚至可以在网关、节点处直接进行,比如特斯拉电动汽车为了满足高实时性的自动 驾驶,其搭载的英伟达计算单元说得上是一台超级电脑 [64];米尺的 Mi-Link智能网关具备 LoRa 网络的 边缘计算能力 [65]。一方面,基于物联网终端的防护思路,可以保证边缘计算终端的自身的安全性,另 一方面,边缘的分析能力也能为物联网终端的安全保驾护航。
总结
本章介绍了面向终端的物联网安全防护体系,主要详细介绍了两个方面的安全防护,其一是物联网 终端的信息保护,其二是物联网终端的异常分析。
在终端侧必须结合读保护等安全存储功能以保证物联网终端自身的信息安全,才能避免被黑客从硬 件、固件、软件或网络层面破解。然而,即便像 STM32 芯片有给固件加锁的 RDP能力,也是存在一定 的安全风险的,这些具备安全能力的 MCU已经开始普及,黑客和安全研究人员对它们的关注也将逐渐
增加,随着安全研究的逐步深入,这种风险的暴露是必然的。当然,随着问题的暴露和修复,锁的安全 性将逐步提高,安全存储功能也将越来越有保障。
以适当的方式将终端内的信息保护好以后,再结合强大的云端分析能力,对功能单一、结构简单的 终端做简单的行为分析即可分析出异常状态。终端自身的信息保护能力和云端的安全分析能力相加,终 端的安全将得到非常大的保障。
由上,通过身份认证、信息加密、异常检测和取证朔源等手段,使得物联网终端的安全得到保障, 整个物联网的安全将有一个坚实的基石。作为安全厂商,绿盟科技需要不断地和终端厂商合作,一同解 决终端的安全问题,强化云端的安全分析能力,打造安全可控的物联网生态链,为物联网安全保驾护航。
附录名词释义
- NICT(National Institute of Information and Communications Technology):日本国家信息和通信技术研究所
- UPnP(Universal Plug and Play):通用即插即用技术。由微软等企业发起,基于一系列互联网协议和自行制定协议构成的 设备架构,为广泛存在的点对点网络互联定义了一个分布式、开放的网络体系结构。
- SSDP(Simple Service Discovery Protocol):简单服务发现协议,是一种多播发现和搜索机制, 基于 UDP设计,适用于 UPnP 工作流程的发现阶段
- SOAP(Simple Object Access Protocol):SOAP 为简单对象访问协议,是一种基于 XML的远程程序调用机制,通过 HTTP 发送命令、接收数据,适用于 UPnP 工作流程的控制阶段。
- Mirai:一款恶意软件,可使运行 Linux的计算系统成为被远程操控的“僵尸”,以达到通过僵尸网络进行大规模网络攻击的目的, 文中也指其相关变种。
- SDK(Software Development Kit):一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建 应用软件的开发工具的集合。
- NAT(Network Address Translation):网络地址转换,也叫做网络掩蔽或者 IP 掩蔽(IP masquerading),是一种在 IP 数 据包通过路由器或防火墙时重写来源 IP 地址或目的 IP 地址的技术。
- Telnet:Telnet 协议是一种应用层协议,使用于互联网及局域网中,使用虚拟终端机的形式,提供双向、以文字字符串为主的 命令行接口交互功能。
- XML(Extensible Markup Languag):可扩展标记语言,是一种标记语言,也可以认为是一种约定好的格式。
- C&C(Command and Control):C&C是僵尸网络的控制端,僵尸网络是攻击者出于恶意目的,传播僵尸程序以控制大量计算机, 并通过一对多的命令与控制信道所组成的网络。
- RTOS(Real-time operating system, RTOS):实时操作系统,又称即时操作系统,它会按照排序运行、管理系统资源,并为 开发应用程序提供一致的基础。
- UART(Universal Asynchronous Receiver/Transmitter): 通用非同步收发传输器,串行通信方式的一种
- I²C (Inter-Integrated Circuit):是 Philips 半导体(现为 NXP Semiconductors)于 1982 年发明的一种同步,多主机,多从 机,分组交换,单端,串行计算机总线。
- SPI(Serial Peripheral Interface Bus):是一种用于短程通信的同步串行通信接口规范,主要应用于单片机系统中。类似 I²C。
- I²S(或 I2S,Inter-IC Sound 或 Integrated Interchip Sound):是 IC间传输数字音频数据的一种接口标准,采用序列的方式传 输 2 组(左右声道)数据。I2S 常被使用在发送 CD的 PCM 音频数据到 CD播放器的 DAC中。由于 I2S 将数据信号和时脉信 号分开发送,它的抖动(jitter)有损十分地小。
- RS-485(Recommended Standard-485):是隶属于 OSI模型物理层的电气特性规定为 2 线、半双工、平衡传输线多点通信
的标准。是由电信行业协会(TIA)及电子工业联盟(EIA)联合发布的标准。实现此标准的数字通信网可以在有电子噪声的环 境下进行长距离有效率的通信。在线性多点总线的配置下,可以在一个网络上有多个接收器。因此适用在工业环境中。 - OTP Memory(One Time Programmable):一次性写入的存储器,一般常用于存储器、控制器、处理器的安全性设计中。
- RDP(ReaDout Protection):stm32 系列单片机的一种固件保护功能。
- WS-Discovery(Web Services Dynamic Discovery):一种局域网内的服务发现多播协议。
- NVD(National Vulnerability Database):美国国家漏洞数据库。
参考资料
绿盟 2019物联网安全年报
友情链接
GB-T 28458-2020 信息安全技术 网络安全漏洞标识与描述规范