面向新攻击面的物联网终端固件安全威胁模型
2021-07-26朱新兵李清宝陈志锋顾艳阳
朱新兵,李清宝,张 平,陈志锋,顾艳阳
(1.中国人民解放军战略支援部队信息工程大学网络空间安全学院,郑州450003;2.数学工程与先进计算国家重点实验室,郑州450003;3.中国人民解放军河南省军区数据信息室,郑州450003)
0 概述
随着物联网技术的发展,人类进入了万物互联的时代。在全球范围内,物联网终端数量高速增长,截至2019年,全球物联网终端数量达到110 亿,据GSMA 预测,到2025年数量将高达250 亿[1]。物联网终端已渗透到人们的日常生活中[2-3],然而也逐渐成为黑客攻击的主要对象,近年来,由此引发的安全事件频发。一些不法分子利用物联网终端自身存在的缺陷或漏洞,对其进行主动攻击、恶意控制、隐私窃取、数据篡改等行为,对通信网络的正常运行和应用服务的正常运转造成严重影响[4-6]。2017年2月,美国某大学5 000 多台物联网终端遭到恶意软件感染,并被远程操控形成僵尸网络[1]。2017年4月,三星Tizen 操作系统被曝光存在40 多个安全漏洞,共涉及3 000 万台智能电视以及1 000 多万台智能手机[1]。
物联网终端最显著的特点是与外部(物理)世界存在感知与控制[7-8]。终端处理的信息不再只是本身存储转发的“内部”数据,还包含来自外部世界的感知数据。感知数据是物联网终端完成自身所承载业务的起点。但是,传统的安全威胁分析模型无法准确描述和有效评估感知数据对物联网终端带来的潜在危害,而且现有的二进制代码分析技术大多侧重于对单个二进制文件进行分析,忽视了这些数据在多个二进制文件间的传播交互。如何获取这些“外部”数据在终端固件中的完整传播路径和交互过程,是确保物联网终端安全的关键。
本文通过构建面向新攻击面的物联网终端固件安全威胁模型(Firmware Security Threat Model,FSTM),描述物联网终端固件与物理世界紧耦合、与业务强相关特性。借助进程间的通信方式实现攻击数据跨二进制进行文件传播,并结合单二进制文件中控制流驱动的攻击数据传播获得攻击数据在固件中的完整传播交互过程。
1 物联网终端新攻击面
1.1 物联网终端结构
物联网终端存在于各个领域,尽管在功能和结构上各不相同,但大都包含以下3 个模块:
1)感知/控制模块。感知/控制是物联网终端所独有的模块[9-11]。如图1所示,感知/控制模块通过各种传感器对物理世界的信息进行感知,将获取的信息(大都是模拟态信息)转换成终端固件能处理的数字态信息,并交由终端进行处理,终端还会将处理结果转换成物理世界能够识别的信息,通过控制器反作用于物理世界。
图1 物联网终端结构示意图Fig.1 Schematic diagram of IoT terminal structure
2)硬件模块。硬件模块是物联网终端的基础,包含终端入网和完成终端承载业务所必须的各种硬件设备,如入网板卡、处理器、存储器、各种通信接口等。
3)固件模块。固件是终端的“大脑”,是完成终端业务的核心。在物联网终端固件研究领域,对固件的认识尚未统一[12]。本文认为物联网终端固件是指运行于物联网终端上且存储于终端非易失性存储器中的程序代码和数据的组合。
1.2 物联网终端的新攻击面
物联网“云-管-端”的3 层体系架构[13]有时也被称做“应用层-网络层-感知层”,与传统架构相比,物联网结构的最大不同就在于“端”侧。由于要完成对物理世界的感知/控制,“端”侧引入了感知/控制模块,进入物联网终端的数据不再仅仅是信息世界的01 代码,而是与物理世界中真实状态相映射的能量信息。
如图2所示,物联网终端处于物理世界与信息世界的交汇处,面临来自末端传感和控制的新攻击面。传统的攻击面来自物联网“云端”与IoT 终端之间的数据交互,包括基于“云端”对终端的配置管理、命令控制、数据上传等,这些数据交互过程一般都是通过有线和无线网络通道来完成的,即“管道”。而新的攻击面则是由和物联网终端实际业务应用相关的末端传感与控制引起的,终端设备与传感器/控制器通过网络或其他物理信道(如RS485、Bluetooth、Zigbee、CAN/FlexRay、Infrared 等)进行通信[12]。传感模块将对物理世界的感知传递给终端,并转换成固件代码能够识别的数据信息供终端进行处理。感知信息经终端处理后,控制模块再将相应的反馈数据转换成物理世界能够识别的信号,然后反作用于物理世界。
图2 物联网终端新攻击面示意图Fig.2 Schematic diagram of new attack surface of IoT terminal
在物联网安全研究领域对新攻击面的理解有不同的描述。有研究者将物联网中面临的新的安全威胁,如物联网终端的泛在化、智能化、参差不齐的安全防护水平等,都称为新攻击面。而本文是从物联网终端对外部(物理)世界的感知控制的角度对新攻击面进行理解。
目前,针对物联网终端新攻击面的已有研究大都集中在2 个方面:1)对转换器靠近物理世界的情况进行研究,它们主要从模拟态信息的拟合欺骗或侧信道攻击着手;2)对转换器靠近数字世界的情况展开研究,主要对运行于物联网终端上的固件进行安全性检测。后者也是本文的主要研究内容。
1.3 新攻击面对物联网终端固件的影响
新攻击面对物联网终端固件带来的安全威胁主要由以下4 个原因造成:
1)物联网终端固件接收的感知数据与物理世界真实输入信息存在一致性问题。物理世界的模拟态信息经转换器转换后传给物联网终端固件进行处理,这些数字态信息是物联网终端完成相应任务的逻辑起点,这些数据如果不能真实反映物理世界的真实状态,而是被攻击者进行篡改,则终端将无法实现预期功能。
2)物联网终端固件反作用于物理世界的控制信息与信息世界真实输出存在一致性问题。信息世界的数字态信息经转换器转换后反作用于物理世界,这些数字态信息是物联网终端固件根据感知数据得出的反馈,如果反馈不能真实反映物理世界,而是被攻击者进行篡改,这样的输出不仅无法实现预期功能,还会给物理世界带来难以估量的危害。
3)物联网终端固件运行的基础环境资源有限与验证2 个一致性所需资源不相符的矛盾。由于物联网终端资源有限,加之重业务轻安全的设计理念,终端固件中大都没有部署类似于“冗余互判”的措施[14]来验证上述2 个一致性问题。
4)以业务为导向的物联网终端固件安全与传统网络威胁分析模型不适应的矛盾。从近年来发生的有关物联网终端安全的事件来看,以业务为导向的安全威胁越来越明显,许多看似“友好”的固件代码从传统分析角度来看毫无恶意,可一旦与终端具体业务流程相结合,其恶意性就会显露,而且这种固件代码的破坏性往往难以估量。例如“震网”病毒[15],被篡改后的固件按照非预期业务流程控制离心机转速,但仅从代码分析的角度,分析者无法断定这种恶意性。
1.4 物联网终端固件分类
如图3所示,根据分析的难易程度可将物联网终端固件分为浅嵌入式固件和深嵌入式固件两类。
图3 物联网终端固件分类Fig.3 Classification of IoT terminal firmware
1)浅嵌入式固件,该类物联网终端固件具有划分明确的软件体系结构和完整的文件系统,包含已知的通用操作系统,如Android、嵌入式linux 等[12]。操作系统及其相关的各类公开函数库为这类固件分析提供了丰富的语义信息,便于结合基于API 函数的分析方法分析固件程序的功能结构与文件属性。
2)深嵌入式固件,拥有该类固件的物联网终端大多属于传统的嵌入式设备,该类终端固件将剪裁后的操作系统(或者没有)、应用程序和配置数据全部编译为一个整体,有研究者将其称为BLOB 固件[12]。深嵌入式固件没有显式的文件系统,缺乏辅助解读的符号信息及库函数信息,针对该类固件的分析难度较高。
随着网络技术的发展,物联网终端的设计成本压力得到极大缓解。为了完成更复杂的功能并向用户提供更好的体验,越来越多的设备采用浅嵌入式固件,且大都基于Linux。本文将着重于这类固件分析。
2 攻击数据
2.1 攻击数据的定义
FSTM 通过对新攻击面引入的攻击数据在固件中的传播交互进行建模,以揭示其对终端固件安全带来的潜在威胁。因此,在模型定义中,本文仅将终端固件接收的来自于外部(物理)世界的感知数据作为攻击数据。
定义1(攻击数据集)攻击数据集D是一个非空集合,表示由新攻击面引入、物联网终端固件可识别、来自物理世界的感知数据所构成的集合。∀d∈D,d表示攻击数据集D中的一个攻击数据实例。
定义2(攻击数据)攻击数据d由一个二元组表示,d=(id,value),id 表示该攻击数据的描述符,其唯一标识攻击数据d,value 表示该数据的数据值。
2.2 攻击数据的传播
攻击数据在固件中存在如下2 种传播方式:
1)在单个二进制文件中传播。在这种传播方式中,攻击数据在单个二进制文件中随着一条条指令或一个个基本块的执行而传播,这种传播方式也是传统分析工具的主要研究对象,其靠控制流驱动。
定义3(攻击数据引入点)攻击数据引入点是指固件代码中获取物理世界感知信息的程序点,即将攻击数据d引入固件代码中的程序点,用ap=(f_name,loc,d)来表示,其中,f_name 为包含该引入点的二进制文件,loc 为该引入点在二进制文件中的位置,d为引入的攻击数据。
定义4(攻击数据引入点集合)攻击数据引入点集合表示固件代码中所有攻击数据引入点的集合,本文用AP 表示,AP={ap|ap=(f_name,loc,d)}。
对于每个ap,从包含它的函数入口点st_add 开始,st_add=Get_Function_Add(f_name,loc),进行路径探索Explore(f_name,st_add)[16-17]。在探索路径中遇到的每个基本块都对其进行3 项操作:
(1)检查该基本块是否对ap.d施加了约束Is_con(d),如果为真,则收集约束c=c∪Collect_con(d),更新攻击数据d=Con(d);如果为否,c=c,d=d。
(2)检测该基本块内是否包含相对于d的威胁断言(详见3.3 节)。
(3)检查该基本块内是否存在进程间通信[18],如果存在,则转为分析跨二进制文件间的攻击数据传播。
2)跨二进制文件间传播。由于多二进制文件之间不存在控制流,且相互有独立的地址空间,因此它们之间的攻击数据交互与单二进制文件内的传播存在很大不同。在Linux 中,每个进程有其单独的地址空间,数据对于其他进程而言是受保护的。对于2 个进程(进程A 和进程B),在进程A 中声明的数据对于进程B 是不可用的,如果进程A 和进程B 要通过共享数据来配合完成某个任务,必须要在2 个进程间建立某种通信方式,使得一个进程可以访问另外一个进程的数据,即进程间通信(Interprocess Communication,IPC)[18]。不同进程间的通信有着多种方式,但用于数据传输的进程间通信方式却是有限的,而且研究发现,为了能在不同进程间传输数据,在数据传输之前,参与传输的双方就要做好准备,比如都要事先知道攻击数据的传输载体具体是什么,这些信息往往作为硬编码被嵌入在固件代码中。
通过分析物联网终端固件中进程间的数据传播,发现进程间攻击数据传输方式主要有以下4 种:
1)文件。不同进程间通过文件进行数据传输,如进程A 打开文件,向文件中写入数据,而进程B 从中读取数据。此时,文件就是攻击数据的传输载体,用文件名表示。
2)环境变量。环境变量也是常用的进程间通信传输载体,使用环境变量名表示。如进程A 在其环境中设置一定的变量,进程B 通过这些变量接收攻击数据值。
3)共享内存。共享内存是最快的IPC 方式,它允许2 个或多个进程共享一个给定的存储区,这一段存储区可以被2 个或2 个以上的进程映射至自身的地址空间中。共享内存既可以通过普通文件提供的内存映射,也可以使用特殊文件提供的匿名内存映射。对于前者,文件就是攻击数据的传输载体,用文件名表示。对于后者,共享内存页就是攻击数据的传输载体,用共享内存页的虚拟地址表示。
4)套接字(Socket)。套接字是更为一般的进程间通信机制,用套接字名来表示。与其他通信机制不同,套接字不但可用于不同进程间通信,还可用于不同机器之间的进程间通信。一个套接字可以看作进程间通信的端点(endpoint),每个套接字的名字都是唯一的,其他进程可以发现、连接并且与之通信。
定义5(进程间通信实例)一个进程间通信实例ipc=(identifier,ipc_name,data,role),其中,identifier 表示该ipc 实例的数据传输载体描述符,ipc_name 表示该ipc 实例的进程间通信方式,data 表示该ipc 实例传播的攻击数据,role 表示该进程在ipc实例中的角色,即是攻击数据的生产者还是攻击数据的消费者。
定义6(进程间通信实例集)进程间通信实例集表示固件代码中所有进程间通信实例的集合,用IPC表示,IPC={ipc|ipc=(identifier,ipc_name,data,role)}。
定义7(进程间通信点)进程间通信点是指固件中发生进程间通信的程序点,用cp 表示,cp=(f_name,loc,ipc)。
定义8(进程间通信点集合)进程间通信点集合表示固件代码中所有进程间通信点的集合,用CP表示,CP={cp|cp=(f_name,loc,ipc)}。
如果在探索路径的过程中发现基本块内存在进程间通信,则判断通信所传送的数据是否为攻击数据,如果不是,则继续探索路径;如果是,则进行攻击数据跨二进制文件的传播分析。
如前文所述,对于不同进程间通信,通信双方首先都要知道攻击数据的通信载体,这些信息往往作为硬编码嵌入在固件代码中。攻击数据跨二进制文件的传播分析正是以此为依据,通过ipc.identifier 识别互相通信的2 个进程,其次根据ipc.role 确定攻击数据的传播方向,从而将单个二进制文件中攻击数据传播分析探索出的传播路径相连通,形成攻击数据在固件代码中的完整传播路径。
3 物联网终端固件安全威胁模型
3.1 传统威胁模型存在的问题
PC 域和互联网域的安全威胁分析模型已具有较为成熟的研究成果。Parker[19]模型建立一个计算机恶意攻击的通用模型,围绕攻击者的IT 技术和知识以及执行攻击的动机、资源和授权展开,该模型也对后续研究进行了引导,具有较高的参考价值。STRIDE[20]模型是相当知名的威胁分类模型,可以针对系统的重大威胁进行分类。Scheier[21]提出攻击树的概念,目的是通过树形结构来描述系统存在的各种攻击,为确保系统安全提供一种系统化的形式方法。物联网域也出现了一些安全模型,如IoTSAT[14]是一个用于物联网安全分析的形式化框架,基于设备配置、网络拓扑、用户策略和特定于IoT 的攻击面,对系统的一般行为进行形式化建模。文献[22]构建一个概念模型,以支持决策者对物联网系统进行安全分析,该模型基于面向体系结构的方法将社会技术概念融入物联网系统的安全分析中。
针对物联网终端固件安全威胁的分析模型还较为少见,而且传统的威胁分析模型在面对物联网终端的新攻击面时,也存在2 点不足:1)无法有效描述物联网终端固件与物理世界的紧耦合性;2)无法有效描述业务导向下的物联网终端固件安全威胁。
3.2 安全威胁模型的形式化定义
定义9(面向新攻击面的物联网终端固件安全威胁模型FSTM)FSTM 是一个有向图G[23],G=(V,E,D,Ψ,Ρ),其中:
1)V为节点集,表示攻击数据在固件代码中传播路径上所经历的所有基本块的集合,即每一个节点就是一个基本块。
2)E为有向边集,E⊆V×V,节点之间的有向边表示2 个节点间发生攻击数据传播。
3)D为攻击数据集,∀d∈D,d=(id,value)。
4)Ψ为节点与边之间的关联函数,将V×D映射到V上。∀e∈E,则∃vi,vj∈V,且有序对<vi,vj>∈V×V,使得ψ(vi,d)=vj,e称为vi到vj的边,ψ表示vi向vj传播了攻击数据d,vi是攻击数据d的生产者,vj是攻击数据d的消费者。
5)Ρ为节点的约束集,表示固件对攻击数据施加的约束集合。∀vi∈V,则∃ρi∈Ρ,使得ρi=Con(vi,d),即节点vi对攻击数据d施加约束。
从定义9 可以看出:
1)FSTM 是一个非连通有向图,图中的每一条路径代表一个攻击数据的传播过程。一条路径就是一个基本块序列,由单个二进制文件中的控制流和跨二进制文件间的进程通信共同驱动,表示由新攻击面引入的攻击数据在固件中的传播交互过程。
2)FSTM 中的节点可以划分成3 个互斥的子集,即攻击数据引入节点、进程间通信节点和普通节点(进程内节点)。引入节点表示包含引入点的节点,通信节点表示包含通信点的节点,普通节点有可能是威胁节点(3.3 节详述)。
定义10(路径可达)给定FSTM 中的一条路径Pathij=vivi+1…vk-1vkvk+1…vj-1vj,如果存在一个攻击数据d在该路径上传播,称攻击数据d对于节点vi到vj是路径可达的。
3.3 安全威胁的断言
FSTM 关注的是从物理世界引入的攻击数据对固件的威胁,结合实际案例分析经验,本文认为这些威胁主要包括:
1)攻击数据作为固件中的控制条件使用。在一些物联网终端固件中,对物理世界的感知数据经常被用作启动“逆作用”模块的条件使用。如压力控制系统中,对外部真实压力的感知数据被用作触发加压模块或减压模块的判断条件,如果这个条件被攻击者控制,“逆作用”模块可能无法正常启动。因此,本文认为攻击数据一旦作为控制条件使用,就可能对终端固件安全造成威胁。对于这种威胁的断言,主要是通过识别控制条件语句中是否包含攻击数据来完成。
2)攻击数据被强制设置成某个常量。攻击数据经常被用作固件内某个函数的参数使用,这个参数根据物理世界的实际状态变化而变化。例如“震网”病毒中[15],离心机的真实转速已发生异常,而警报系统中感知的转速仍然是一个正常值,以至于物理世界多元的模拟态信息映射到信息世界就变成了单一的数字信息,无法真实反映这种映射关系。因此,本文认为攻击数据一旦被强制设置成某个常量,就有可能对终端固件安全造成威胁。对于这种威胁的断言,主要是通过识别是否有针对攻击数据的常量化赋值语句来完成。
3)攻击数据的使用造成内存出现异常。由于物联网终端固件运行环境资源有限、安全措施薄弱,攻击者经常通过构造不符合使用规范的攻击数据,引发内存损坏和系统崩溃,如常见的缓冲区溢出等。因此,本文认为攻击数据的使用一旦不符合规范,就有可能对终端固件安全造成威胁。对于这种威胁的断言,主要是通过识别攻击数据的大小、长度和类型是否符合使用规范来完成。
4)攻击数据作为反馈输出给物理世界。反作用于物理世界的输出是否正确,是确保物理世界和信息世界这2 个世界安全的最后防线。本文考察的输出是根据攻击数据生成的,分析者结合具体的业务流程对其进行分析,对终端固件的安全检测意义重大。因此,本文认为攻击数据一旦作为反馈反作用于物理世界,就有可能对终端固件安全造成威胁。对于这种威胁的断言,主要是通过识别包含攻击数据输出程序点所在的文件是否为一个边界文件(用来和物理世界交互的文件)来完成。
对于上述4种安全威胁断言,使用Ti(i=1,2,3,4)来表示,对某一节点进行威胁断言,使用assert(Ti)来表示,如果assert(Ti)为真,则表示该节点包含该种威胁。在攻击数据传播的路径探索过程中,一旦存在所定义的安全威胁,就将该节点置为威胁节点,这一点在以FSTM为指导的实际固件安全检测中至关重要。
定理1FSTM 中存在关于d的安全威胁Ti,当且仅当攻击数据d的引入节点vj和包含Ti的威胁节点vk之间存在一条攻击数据d的传播路径。
证明:
1)已知FSTM 中存在关于d的安全威胁Ti。由于包含Ti的节点vk是在对d的路径探索过程中发现的,该路径的起始节点为包含引入节点vj的函数的入口位置st_add,因此d对于节点block(st_add)到vk是路径可达的。由于从节点block(st_add)到vj存在函数控制流驱动,因此d对于节点block(st_add)到vj是路径可达的。又因为Ti是相对于d的威胁断言,所以vk必定在攻击数据引入节点vj之后。综上可得,攻击数据引入节点vj和威胁节点vk之间存在一条攻击数据d的传播路径。
2)已知攻击数据d的引入节点vj和包含Ti的威胁节点vk之间存在一条攻击数据d的传播路径。假设FSTM 中不存在关于d的安全威胁Ti,那么从包含d的引入节点vj的函数的入口位置st_add 开始的路径探索将无法到达包含Ti的节点vk。而从st_add 到节点vj存在函数控制流驱动,因此,d对于节点block(st_add)到vj是路径可达的,从而可得出vj到vk是不可达的,这与已知相矛盾,因此,FSTM 中存在关于d的安全威胁Ti。
从定理1 可以看出,如果存在一个攻击数据引入节点vj和一个威胁节点vk,且在vj和vk之间存在一条攻击数据d的传播路径,本文认为在该固件中触发一个安全威胁警报,这就是基于FSTM 进行物联网终端固件安全检测的理论基础。
4 模型的实例化描述
4.1 应用场景
本文以图4所示的一个典型物联网终端应用场景为例,对FSTM 进行描述,该场景为一个办公场所物联网集成感控终端应用,主要包含3 个部分:
图4 物联网终端应用场景示意图Fig.4 Schematic diagram of IoT terminal application scenarios
1)感知模块(传感器)。该部分由4 个传感器组成,分别是烟雾传感器、光感传感器、考勤传感器和温度传感器,以对场所内相应物理环境进行实时感知,并将感知数据上传给终端固件进行处理。
2)处理模块(固件)。该部分是整个场景的大脑中枢,负责对感知数据的获取和处理,并依据预先制定的用户策略生成相应的控制驱动数据并作用于各个控制器。
3)控制模块(控制器)。该部分与感知模块相对应,由4 个控制器组成,依据固件生成的控制驱动数据,分别作用于场所内烟雾报警器、可调光光源、考勤统计系统、空调系统等物联网终端,控制其运行状态。
4.2 攻击数据传播
如图5所示,本文对图4 中物联网终端实例的固件代码进行简化说明,该清单中只包含由新攻击面引入的攻击数据在固件中的传播与处理。清单1 对应固件中的感知模块,清单2 对应固件中的控制模块,且每个清单都对应一个二进制文件b1 和b2。
图5 物联网终端应用场景代码实例Fig.5 Code examples of IoT terminal application scenario
在清单1 中,分别在b1 的程序点p1、p2、p3 和p4处引入攻击数据,在程序点p5、p6、p7 和p8 处通过某种进程间通信方式将数据传递给控制模块。
在清单2 中,分别在b2 的程序点p1、p2、p3 和p4处通过进程间通信接收b1 传递的攻击数据,之后在进程内进行传播处理。对于烟雾传感器1 引入的攻击数据ad1,将其作为触发烟雾报警器的条件使用(程序点p5),即传感器1 检测到有烟雾则触发报警器。对于光感传感器2 引入的攻击数据ad2,将其作为可调光光源的参数使用(程序点p6),即根据传感器2 感应的光强度调节光源的亮度。对于考勤机传感器3 引入的攻击数据ad3,将其作为统计报表内容使用(程序点p7)。对于温度传感器4 引入的攻击数据ad4,将其作为生成空调控制温度的依据使用(程序点p8),即空调温度控制器根据ad4 生成相应的控制温度并反作用于空调。
4.3 模型构建与威胁分析
为了方便描述,使用bi_pj 表示二进制文件bi 中包含程序点pj 的基本块。图6所示为上述应用场景实例FSTM 示意图(彩色效果见《计算机工程》官网HTML 版),图中存在黄色节点代表攻击数据引入节点,绿色节点代表进程间通信节点,褐色节点代表进程内普通节点,红色节点代表威胁节点,它们也属于上述节点之一。
图6 应用场景实例模型示意图Fig.6 Schematic diagram of application scenario example model
事实上终端固件中攻击数据传播路径的探索过程本身就是一个NP 难问题[16-17,24],如果想在多项式时间内穷举所有路径是不可能的,因此,在FSTM 指导下进行物联网终端固件安全检测时要采取多种优化策略,以使探索结果尽可能最优。
对于攻击数据ad1,其作为报警器开关的控制条件使用,如果该数据被篡改伪造,相应的条件分支将不会被执行,控制模块生成的控制驱动数据将与期望值不相符,以致烟感报警器不能按照实际情况运行。
对于攻击数据ad2,其作为可调光光源的参数在固件中使用,该参数应根据环境亮度自适应调整,据此调节屋内光源亮度。如果该数据被设置为一个常数,光源的亮度将不会随着环境亮度而调整。
对于攻击数据ad3,其作为显示屏上统计报表的内容使用,如果其大小超出了内存中存储该内容的缓冲区大小,将会造成缓冲区溢出,引起系统工作异常甚至崩溃。
对于攻击数据ad4,其作为空调温度调节的依据反作用于终端上,如果施加于该数据上的约束集与实际的业务流程不一致,空调的工作模式、温度、风速及风向等控制驱动数据将与预期结果不一致。
对于FSTM 中b2_p5、b2_p6、b2_p7 和b2_p8 这4 个威胁节点,在攻击数据传播路径的探索过程中进行识别。
5 分析与讨论
FSTM 是针对由新攻击面引入的攻击数据对物联网终端固件带来的潜在威胁进行建模的,其目的是为实际的固件安全检测提供理论指导。但是,在具体的实践检测中,需要着重关注以下6 个问题:
1)攻击数据引入点的识别。由新攻击面引入的攻击数据是FSTM 的逻辑起点,FSTM 通过对这些数据在固件中的传播交互进行建模以分析其对终端固件的安全威胁。因此,攻击数据引入点的识别是否完备和准确,不仅是FSTM 的基础,还是在FSTM 指导下进行固件安全检测的关键。
2)单二进制文件内攻击数据的传播。单二进制文件内攻击数据的传播以固件代码的控制流为驱动,这方面的研究虽然较为成熟,但也面临着路径探索过程中的路径爆炸问题。
3)跨二进制文件间攻击数据的传播。本文通过对真实固件的分析,发现攻击数据通过进程间通信的方式进行传播,而且数据的传输载体信息已硬编码在固件代码中,这为实现跨二进制文件的攻击数据传播分析提供了可能。本文仅对文件、环境变量、共享内存和套接字4 种方式进行分析,今后可根据实际情况来扩充攻击数据的进程间传播方式。
4)攻击数据传播路径的完备性。攻击数据在固件中的传播是FSTM 的建模对象,其路径是否完备主要取决于2 点:(1)单二进制文件内传播路径识别是否完备;(2)多二进制文件间攻击数据通信识别是否完备。前者是一个NP 难问题,本身只能得到近似求解,对于后者,本文也只分析了文件、环境变量、共享内存和套接字4 种方式,但在今后的研究中将会不断扩展。
5)威胁断言的可扩充性和假阳性。本文在威胁断言部分仅定义了新攻击面引入的攻击数据对物联网终端固件安全的4 种常见威胁,随着后期研究的深入,可以对其进行添加和更新。FSTM 在面对威胁断言时,如果满足条件则只发出警报以供进一步分析,至于威胁是否真的对终端固件或物理世界的安全造成危害,不在FSTM 讨论的范畴。
6)业务导向威胁的有限性。传统的威胁分析模型不能有效描述物联网终端固件与物理世界的紧耦合性,也不能准确描述物联网终端固件与业务的强相关性。FSTM 很好地解决了上述2 个问题,新攻击面引入的攻击数据是终端对物理世界的真实感知,4 种威胁断言也是在以业务为导向的分析中提炼而得。但是,由于现实中物联网终端功能各异,无法从海量业务中抽象出通用的业务模式,因此本文模型仅触发警报,是真阳性还是假阳性,需要分析者结合其他手段并根据特定的业务流程具体分析。
6 结束语
传统安全威胁模型无法有效评估来自外部的攻击数据对物联网终端固件造成的危害。本文建立一种面向新攻击面的物联网终端固件安全威胁模型(FSTM)。分析结果表明,该模型可以有效描述物联网终端固件与物理世界紧耦合与业务强相关的特性,为分析人员在业务导向下对物联网终端固件进行安全检测提供理论指导。下一步将基于FSTM 模型研究物联网终端固件的安全检测技术。