APP下载

基于动态异构冗余架构的车载网络内生安全机制

2023-02-18翟浡琨李玉峰郑秋生

电子与信息学报 2023年1期
关键词:异构攻击者报文

王 鹏 翟浡琨 李玉峰 郑秋生

①(中原工学院前沿信息技术研究院 郑州 450000)

②(网络通信与安全紫金山实验室 南京 210008)

③(上海大学计算机工程与科学学院 上海 200444)

④(河南省网络舆情监测与智能分析重点实验室 郑州 450000)

1 引言

随着智能网联汽车的高速发展,未来车载网络安全受到了前所未有的挑战。控制器局域网(Controller Area Network, CAN)是目前汽车中最常见的总线结构,其优点在于实时性强、抗电磁干扰能力强、传输距离远、成本低等[1]。但现有研究表明,CAN总线在最初开发和设计时没有考虑到报文在传输过程中的安全问题,使得各电子控制单元(Electronic Control Unit, ECU)明文广播通信,带来了一系列安全隐患[2]。据Upstream Security发布的2021年《全球自动驾驶网络安全报告》显示[3],预计2023年初,智能网联汽车的数量约占到全世界汽车总数的1/4,到2025年末,这个数量将提高到86%。智能网联汽车数量的提升使得车载网络被攻击后所产生的破坏力也急剧提升,这种潜在风险可能会伤害生命、摧毁城市,甚至导致灾难发生。因此,如何提高车载网络的安全性显得尤为重要。

针对车载网络不同类型的攻击手段,国内外研究人员提出了一系列的防御技术和方法。在车联网攻击分析与检测防御方面,文献[4]总结了当前车联网中遇到的各类攻击方式,对车辆可用性的攻击如干扰攻击、洪泛攻击、拒绝服务攻击等;对数据完整性的攻击如伪装攻击、重放攻击、数据篡改攻击等。Gmiden等人[5]总结了智能网联汽车潜在的网络攻击以及安全影响, 指出了汽车面临的外部网络攻击行为,评估了当前用于保护车辆数据的各项安全防御策略;Cui等人[6]针对车载网络面临的安全问题,分析了车载网络相关的故障、攻击和应对策略,提出了一种安全和保密协同分析框架,通过建模分析证明了该框架对提高车载网络的安全性是有效的;Oh等人[7]针对CAN总线拒绝服务攻击问题,提出了一种车载网络通信加密算法(Format-Preserving Encryption, FPE),该算法能在不修改报文结构的情况下有效提高CAN总线对拒绝服务攻击的防御能力;Kang等人[8]针对CAN总线安全性问题,提出了一种基于深度神经网络的入侵检测系统,使用无监督的深度信任网络调整预训练参数进而提高训练精度;文献[9-11]针对CAN总线通信的安全问题,提出了基于机器学习或者基于报文字段的安全防御措施,能正确有效地检测出大多数入侵行为。Patsakis等人[12]提出了一种新的车载通信架构,该架构重新调整了车内锁存器的作用,并在每个ECU中实现了多方安全计算方案,从而避免车辆因接入恶意设备造成阻塞进而损害安全的情况发生。Wolf等人[13]提出了一种车辆硬件安全模块(Hardware Security Module, HSM),其能够对车内ECU及其通信进行整体保护。以上研究虽提高了车载CAN总线的安全性能,但还存在以下问题:一方面,部分研究调整CAN总线硬件设备或网络结构,难以应用于实际车辆中;另一方面,加密验证或机器学习会导致报文响应时延较长,不利于车辆实时控制。因此,迫切需要一种创新的车载CAN总线安全机制为车内报文通信提供安全性保障。

网络空间主动防御是网络安全领域的新兴概念和技术方向。Woo等人[14]针对CAN总线嗅探攻击问题,提出了一种基于移动目标防御机制(Moving Target Defense, MTD)的网络地址变换策略,该策略通过动态随机生成报文ID,使嗅探攻击和重放攻击丧失攻击能力;Brown等人[15]分析CAN总线嗅探攻击和重放攻击的特点,提出了一种基于MTD的动态地址认证数组协议(Dynamic Address Validation Array, DAVA),该协议利用动态认证数组控制变换ID,进而为CAN总线提供健壮的安全框架;Yoon等人[16]针对车载网络结构缺乏可扩展性的安全问题,提出了一种基于洗牌策略的车载软件定义网络(Software Define Network, SDN)移动目标防御技术,该技术能够有效地抵御网络中的侦察攻击和重放攻击。以上研究虽然都在一定程度上提高了CAN总线防御重放攻击的能力,但都还存在动态变换机制易被破解、安全性难以长期保证等问题。因此,如何进一步提高CAN总线防御重放攻击的能力是本文研究重点。

本文提出了一种基于动态异构冗余架构(Dynamic Heterogeneous Redundancy, DHR)的车载CAN总线内生安全机制。该机制在CAN总线通信中引入动态、异构、冗余思想,构建针对攻击者的防御迷雾,提高攻击者实施重放攻击的难度,从而实现在车载CAN总线对重放攻击的防御。

本文主要贡献如下:

(1) 提出了一种基于DHR架构的车载网络内生安全机制,通过生成虚拟报文ID保证其动态冗余来提高攻击者的攻击难度,利用拟态裁决机制消除了攻击报文对最终结果的影响。

(2) 针对动态异构冗余架构提出了一种报文ID动态冗余更新策略,即当前主ECU根据报文发送状态动态更新,提高了该防御机制在攻击环境下的鲁棒性。

(3) 从空间开销、时间开销及安全性等方面,证明了该防御机制对车载网络重放攻击是可行和有效的。

2 动态异构冗余架构

动态异构冗余架构理论上要求系统具有视在结构表征的不确定性[17]。其包括非周期的从功能等价的异构池中随机抽取若干个构件组合为当前的服务集合,或者重构、重组、重建异构池本身,或者借助虚拟化技术改变冗余执行体内在的配置方式或者视在运行环境,或者对异构池中的构建作预防性或者修复性的清洗、初始化等操作,使得攻击者在时间和空间维度上很难有效地再现成功攻击的场景[18],动态异构冗余的整体架构如图1所示。

图1 动态异构冗余架构图

该架构由输入、执行体集合、异构体集合、策略调度、负反馈控制器和多模表决器等组成。其中,策略调度和异构体集合作为多维动态重构的支撑环节。使用标准化的软硬件模块可以组合出多种功能等价的异构体集合E,使用策略调度算法动态选取n 个构件体作为执行体集合A,系统将输入转发给当前的执行体集合中的各个执行体,执行体输出提交给表决器进行表决得到系统输出[19]。

动态、异构和冗余是DHR架构的主要特点。通过对外表现出随机、不确定性来呈现动态性,这使得攻击者难以实现有效的嗅探或实现攻击链;而异构能够有效降低执行体之间的统一漏洞或系统后门带来的威胁,降低来自漏洞和后门协同攻击的可能性;冗余性增加了系统的容错能力,提高了系统的可靠性和鲁棒性。3者之间相互作用平衡稳定,为DHR提供高度容错能力,能够对确定或不确定的威胁提供有效的防御能力,从而解决在不同环境下的鲁棒性和安全性问题[20]。

3 基于DHR架构的车载网络内生安全机制

3.1 核心思想

本文针对车载网络通信报文容易被捕获重放的问题,基于动态异构冗余思想,采用拟态裁决和负反馈方法,提出了一种基于动态异构冗余架构的车载网络内生安全机制(Endogenous Security Mechanism for Vehicular Networks, ESM-VN)。该机制的核心思想是为每个ECU动态生成冗余的虚拟ID(virtual ID, vID)用于报文传输,且vID组成的报文与真实报文的数据结构一致,将所有vID组合后生成vIDs存储于动态重组(Moving Recombination, MR)矩阵便于读取和更新,其核心框架图如图2所示。在目标ECU接收报文后,读取报文内容并采用多数裁决的方式选择多数相同内容的报文作为最后裁决结果。由于多条报文共同作用产生的结果大概率真实可信,因此执行该结果能够有效降低重放攻击对系统造成的影响。该机制通过实现报文的动态冗余,构建对攻击者的防御迷雾,提高攻击者实施攻击的难度,从而增强车载网络对于抵御重放攻击的能力。

图2 核心框架图

3.2 总体机制设计

ESM-VN总体机制共分为3个阶段,分别是初始化阶段、报文收发阶段和更新阶段。具体机制运行过程如图3所示。

图3 机制框图

在初始化阶段负责注册ECU、MR初始化等工作;在报文收发阶段负责正常报文通信及报文裁决工作,同时设置报文计数器控制更新进程;在更新阶段动态更新机制中各项数据,如随机种子、主ECU, vID, MR等。

3.2.1 初始化阶段

初始化阶段分为两步。第1步:注册ECU并加载硬件数据创建MR,为每个ECU分配报文ID上下限用于生成vID;第2步:以全体ECU报文段上限和下限及其源ID共同运算作为随机种子初始化全体ECU的vIDs并从所有ECU中随机选取主ECU。

假设CAN总线共有P个ECU节点,创建并初始化MR,包含ECU报文ID段的上限和下限、ECU源ID、vIDs及ME,数据初始化过程可以描述为式(1)-式(6)

其中,M表示动态重组矩阵MR,U为ECU对应报文段的ID上限值空间,uP表示为第P个ECU对应报文段中的ID值上限,D为ECU对应报文段的ID下限值空间,O表示ECU源ID值空间,V表示ECU的 vIDs值空间,ME表示主ECU判定空间,当ME中第i个值为1时,表示第i个ECU被设置为主ECU,即mei=1,则有

ECUi与mi建立映射关系,其中mi表示第i个ECU映射到MR中的值,E为全体ECU实体空间,e代表某个ECU实体子空间,则有

再初始化随机种子,该随机种子在初始化阶段由全体ECU报文段的上下限、源ID共同运算得出,随机种子初始化过程表示为

其中,SdF表示初始阶段的种子。每个ECU使用随机种子生成冗余度n,再随机产生n个vID,任意vID值在对应ECU报文段ID上下限范围内可表示为

其中,R_V(·)为动态随机生成函数,vIDa[i]表示第a个ECU的第i个vID,将生成的全部vID通过整合函数assamble(·)整合得到vIDs

最后,将vIDs填入MR矩阵中。使用种子生成冗余值a,主ECU创建报文计数器控制触发更新。至此,初始化阶段完成。

3.2.2 报文收发阶段

在报文发送时,读取MR中的vIDs,解析获得多个的vID,将其分别组装进入报文中进行发送。目标ECU接收到全部报文后,将报文传入裁决模块,使用多数裁决的方式输出数量最多的报文作为裁决结果并执行。

设在某一时刻接收到m条符合目标ECU报文ID段的报文,将其传入裁决模块,读取报文内容并统计相同数据域报文的数目。理论上每次接收时仅会接收到一种报文,但当遭受重放攻击时,ECU会接收到被篡改后的错误报文,因此,接收的全部报文可表示为

其中,MG表示全部接收到的报文集合,mgA表示识别出内容为A的报文,mgB表示识别出内容为B的报文,多数裁决机制表示为

其中,Res表示统计得到数量最多的报文,NUM(mgA)表示内容为A的报文数量。将Res作为裁决机制的结果输出并执行指令。

分析该阶段,当CAN总线遭受重放攻击时,少量报文会被拦截和篡改,但由于裁决模块中的多数报文占主导的特性使得少量的错误报文无法影响裁决结果,因此可以有效降低重放攻击对CAN总线的影响。

3.2.3 更新阶段

在更新阶段,采用主ECU更新模式对系统进行更新,但常用的更新模式缺点在于如果主ECU出现故障,将无法正常更新报文ID,从而影响CAN总线的正常工作。因此,本文改进了主ECU更新模式,通过动态变换主ECU的方法解决了因单点损坏影响车载网络安全性问题,更新方案如下。

首先,在主ECU的报文计数器归零后,机制进入更新阶段并由主ECU向CAN总线上发送更新报文通知全体ECU当前需开始更新。全体ECU收到更新报文后先对随机种子进行更新,再使用随机种子更新各自vID, MR和主ECU。最后,重置报文计数器即可完成更新操作。该模式能够在不通过CAN总线传输具体数据的条件下完成全局同步更新,避免因数据泄露对系统安全造成威胁。

在进入更新阶段前,首先判断是否需要更新。定义SC为剩余报文发送次数,K为更新阈值。当K=1时,进入更新阶段,否则重新进入报文收发阶段可表示为

确定系统需要更新后,第1步对种子进行更新。随机种子的更新过程由主ECU的下标,全体ECU的报文ID上下限、源ID以及vIDs参与计算得出。该过程可写为

其中,Sdup表示在更新后的随机种子。在更新n时,首先计算主ECU的所有vID的和μ作为更新平衡参数,通过up_Ran(·)将vIDs和更新后的随机种子共同生成新的冗余值n′

计算得到n′后,开始对当前主ECU的vIDs进行更新,将生成的vID组装成为新的vIDs,再利用函数Rand(·)生成更新后新主ECU的编号。vID, vIDs与ME的更新过程可表示为

其中,I是更新前主ECU的序号,表示更新前第I个ECU为主ECU,I′表示新生成的主ECU的序号,vIDup I[i]表示主ECU为I时进行更新的第i个vID,vIDsup I表示vID更新后生成的vIDs。更新开始时,利用随机种子和各自上下限值通过R_V(生成新的vID,再组合为新的vIDs,并更新MR对应数据。最后将所有ECU的me设置为0,使用随机种子和前主ECU计算得出新主ECU序号I′,设置新主ECU的me为1,完成对主ECU的更新。

至此,更新阶段完成并重新收发报文,新主ECU负责激活下一轮次更新,继续报文正常通信。

3.3 机制分析

本小节对ESM-VN机制进行实例分析,具体报文收发过程如图4所示。在图4中,令ECU1发送报文,ECU2接收报文,共有n个ECU连接CAN总线,建立报文收发模型。

图4 DHR结构的报文收发实例

报文发送时,ECU1先从MR获取vIDs,解析获得ECU1的冗余度4及多个报文vID分别为0x033,0x011, 0x006和0x008,将所有的vID和报文数据域组装成完整报文,向CAN总线发送所有报文。主ECU控制更新进程,当报文计数器归零时,对全体ECU的vID进行更新,更新前根据当前vID及上下限生成新的随机种子后,用随机种子更新vID。报文接收时,ECU2接收符合报文ID段的报文,接收完当前批次所有报文后进入裁决模块使用多数裁决机制进行判断输出结果。

该机制的动态异构冗余特性主要体现在:通过生成虚拟ID有效解决了文献[15]中出现的“一次发送报文数量单一且无法验证报文真假”的问题;通过生成冗余值来控制产生动态冗余报文的数量(相同内容不同ID的报文数量);利用多数裁决保证车辆执行命令的正确性,实现了攻击感知和主动防御的协调统一。

4 实验仿真与结果分析

本节从时间开销、空间开销和安全性角度对ESM-VN机制的性能进行实验仿真和对比评估,并对实验结果进行总结分析。

4.1 仿真环境设定

本文使用C++语言实现了具有ECU收发报文功能的CAN总线模拟器来验证ESM-VN机制的有效性。该模拟器运行在Windows 10系统下,使用i5-6300HQ处理器,具有基本的报文传输及模拟操作ECU功能,实现了通过报文标识符来判断执行报文的优先级,能够仿真CAN总线上的基本操作如收发报文、更新报文ID、计算报文时延等。仿真实验设计报文自动发送,通过控制台看到ECU的详细信息。整个仿真实验模拟完整ESM-VN机制,实现在报文收发阶段和更新阶段之间循环。在相关实验过程中,设置初始冗余值n为3,并另取5和10共3个值来进行对照实验。

4.2 评价指标

参考已有的车载网络安全防御评价方法,本次实验以ECU平均注册时延、报文处理时延、单节点空间开销和全节点空间开销、总线服务可用率等性能指标对该文所提机制的性能进行评估。

(1) 单节点空间开销。指单个ECU存储不同机制相关数据使用的空间。该指标评估了不同机制在单个ECU中空间占用情况。

(2) 全节点空间开销。指全体ECU存储不同机制相关数据使用的全部空间。该指标评估了不同机制在全体ECU中空间占用情况。

(3) ECU平均注册时延。指汽车在启动时ECU向主ECU发送注册数据的平均时间开销。其意义在于评估了不同机制下所有ECU初始化所需要的平均时间。

(4) 报文时延。指报文在CAN总线传输时延与ECU处理报文时延之和。该指标评估了不同机制下的ECU处理相同数量的报文时消耗的时间。

(5) 总线服务可用率。指在单位时间内目标ECU接收到的正确数据包数与CAN总线上所有数据包数的比值,其用来衡量当前CAN总线的有效服务可用率。具体计算可用式(30)表示,其中,Fb表示总线服务可用率,NUM(mgR)表示正常数据包数。

4.2.1 空间开销

ESM-VN机制的空间开销主要来源于包括随机化种子、MR以及全体ECU的vID在内的数据。由于在该机制下的每个ECU所新增的数据结构相同,因此所需存储空间的大小随ECU的数量线性增长。目前主流车辆的调查表明,平均每辆车包含20 个左右的ECU,对于高端车型将达到100 个左右[1]。通过仿真实验,计算单个ECU所需空间大小,来计算ESM-VN机制在执行的过程中需要占用ECU的存储空间。本文与文献[15]在单节点和全节点的空间占用量上进行对比,如表1、表2所示。考虑一辆车有20 个ECU,每个ECU大概包含1.5 kB的附加信息,在装在有100 个ECU的汽车中,每个ECU约要占用5.4 kB的空间。在单个ECU中,随着车内ECU数量的增加所需额外空间线性变化如图5所示。与文献[15]进行对比,本文机制所占用的空间略高,其主要原因在于MR中加入的vIDs以字符串形式动态存储对应ECU的多个报文vID。

表1 单节点占用空间对比(Byte)

表2 全节点空间对比(Byte)

仿真实验表示,一辆使用20 个ECU的汽车需要的额外空间为31.09 KB,随着ECU数量的提升当ECU数量增加到100 个时,额外空间占用为 543 KB,全体ECU占用额外空间线性变化如图6所示。

分析图5和图6发现,本机制在占用空间上相比略高于文献[15],但对目前常见的ECU进行调查并计算分析额外代码量对ECU的影响,以型号SAKXC2267-96F80L82为例,其闪存空间为768 kB,用于存放代码和数据的线性存储空间为16 MB可知,本文所提出的方案需要占用的空间占比最小为0.1 %最大也仅为3.3 %,其剩余空间超过96 %,由此可见ESM-VN虽相比于文献[15]空间开销略大,但并未对CAN总线及ECU的正常工作造成影响,同时本文以此额外空间占用作为代价,虽提高了空间占用,但通过动态更新机制提高了攻击者对CAN总线的嗅探和攻击难度,使得其对重放攻击的防御能力相较于文献[16]更强。

图5 单节点空间占用对比

图6 全节点空间占用对比

4.2.2 时间开销

ESM-VN机制在一般情况下,发送n次报文后进入更新阶段更新vIDs;但在某一种极端情况下,有可能会出现发送一条报文就进入更新阶段的情况。所以,实际精确的时间开销会更复杂多变。从机制的运行流程分析,初始化阶段只会在通电时发生,此时ECU注册、初始化MR等需要数据运算,从而时间开销较大;在报文收发阶段计算需求较低,时间开销也相对较小;在更新阶段,MR数据需要动态变化更新,仍需要数据运算,因此时间开销会有增加。

随着冗余值n和处理报文数量的增大,时间开销进行线性增长,具体时间变化趋势如图7所示。当报文数量为200 条,冗余值为10时,报文时延也仅有2500 ms左右,反观文献[7,8,12]中的时间开销,其最小值也已经达到了5900 ms。同时本小节还针对ECU注册时的时间开销及全节点时间开销,将文献[7,8,12]与ESM-VN机制对比,如表3所示。整个机制的主要时间开销来源于两个方面,一是在车辆开始启动时,所有ECU均需要进行注册,因此时间开销较长;二是ESM-VN机制在进入更新阶段时,全体ECU执行更新命令计算量较大,时间开销较大。分析文献[7,8,12]发现其时间主要花费在数据的加解密或公私钥计算上,而ESM-VN机制采用多数裁决不需要进行复杂运算,能够有效节省时间开销。相比较而言,本文提出的机制至少降低了50%的时间开销,保证了报文传输的实时性。

图7 不同参数下报文处理时延

表3 时间开销对比(ms)

4.2.3 安全性分析

设置仿真实验中连接到CAN总线的ECU的数量为50 个,报文总数为200 条,初始冗余值n为3。在实验过程中,总线上的重放攻击主要分为两类,一类是利用单个报文进行重放攻击来测试该报文的攻击效果,另一类利用一组报文进行重放攻击来测试组合报文实现的攻击效果。为此分别进行实验发现,当进行单个报文重放攻击时,由于攻击者利用单条报文展开攻击测试,而ESM-VN每次随机至少生成3 个vID来传输报文,同时利用主ECU进行控制报文vID不断更新,保证在CAN总线传输时的报文ID动态变换,难以获取有效的报文和ECU的映射。并且,多条报文在经过裁决器时,由于多数裁决机制使得单条攻击报文不足以对整个结果造成影响,因此本机制在单条报文重放攻击的条件下具有较好的防御能力;当进行一组报文重放攻击时,攻击者利用不同ECU的多条报文组合来实现攻击目标,但对于多个ECU而言,每个ECU依旧收到的是单条报文指令,因此等价于单条报文重放攻击,所以依旧具有较强的防御能力。

表4总结了关于ESM-VN的安全属性并将其与文献[12,15,16]进行对比,相比较而言本方案通过随机生成vID和组合成vIDs存储的方式获得了保密性,同时利用动态更新vID实现了对重放攻击和侦察攻击的防御。同时本文还对文献[16]、无防御措施以及ESM-VN进行模拟重放攻击实验,实验假设攻击者能够监听CAN总线,窃取CAN总线上的全部数据包来获取ECU的数据信息,模拟重放攻击时,修改监听获取到的数据包,再放到总线上传输,最后计算总线服务可用率进行量化分析对比,如图8所示。

图8 总线服务可用率

表4 安全性分析对比

模拟实验在第4 s时发动重放攻击,总线服务可用率开始下降,根据实验数据分析发现,对于没有防御措施的CAN总线而言,在发动攻击后,总线服务可用率持续下降到50%左右时趋于平稳,这是由于在计算总线服务可用率时,统计整个CAN总线上全部ECU的报文,而这其中仍存在有未被攻击的报文所导致。而文献[16]通过SDN控制器定时更新ECU虚拟地址并检测恶意攻击者,在更新间隙中报文ID不发生变化,在此期间被攻击时导致总线服务可用率下降,但更新间隔过后更新完成,恢复了对重放攻击的防御能力,所以总线服务可用率重新达到100%。本文提出的机制在应对重放攻击时,多个vID以及裁决模块协同作用,使得攻击者无法有效地进行攻击,即使发送篡改后的报文也无法对实际命令结果造成影响,实验证明ESM-VN在重放攻击时能够保持较高的总线服务可用率。

通过安全性分析结果表明,本文提出的内生安全机制能够有效抵御重放攻击,并且在重放攻击时,CAN总线仍能够保持较高的安全性和可用性。

5 结束语

本文提出了一种针对CAN总线重放攻击的基于动态异构冗余思想的车载网络内生安全机制,该机制通过生成冗余虚拟报文ID、主ECU动态变换更新和报文内容拟态裁决实现了攻击感知与主动防御的协调统一,在不加密无认证的环境下有效地提高车载网络在重放攻击时的防御能力,保护数据和指令的安全。实验结果表明,与现有车载网络主动防御机制相比,该机制在报文时延开销更低,以部分空间作为代价来获得更好的防御效果。后续将根据CAN总线遭受攻击的频率、方式和部位以自适应方式生成冗余值,优化机制效率及空间利用。

猜你喜欢

异构攻击者报文
基于J1939 协议多包报文的时序研究及应用
试论同课异构之“同”与“异”
机动能力受限的目标-攻击-防御定性微分对策
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
吴健:多元异构的数字敦煌
正面迎接批判
异构醇醚在超浓缩洗衣液中的应用探索
ATS与列车通信报文分析
LTE异构网技术与组网研究