陈 平 苏牧辰 陈浩贤 汪仕浩 邓黎明 曹岸杰
1(复旦大学大数据研究院 上海 200433)2(网络通信与安全紫金山实验室 南京 211111)3(上海识装信息科技有限公司 上海 200090)4(复旦大学大数据学院 上海 200433)5(复旦大学计算机科学技术学院 上海 200433)6(上海卫星工程研究所 上海 200240)
2020年9月24日,《车联网网络安全白皮书(2020年)》[1]正式由信息化部网络安全管理局中国汽车技术研究中心牵头编制及发布.白皮书明确了基于车联网产业高速发展的现状下,车联网安全已成为汽车行业智能化发展的必要保障;强调了因智能车性能提升所带来的网络安全攻击面暴露问题,从车内、V2X(vehicle-to-everything)、基础设施设备3大领域分析了包含电子控制单元(electronic control unit, ECU)、车载网关、传感器、T-Box(telematics box)、车载信息娱乐系统(in-vehicle infotainment, IVI)等多个主体面临的威胁与攻击.针对这些攻击例如已知漏洞攻击、反汇编攻击、移动应用重打包等,白皮书提出安全策略可由关键系统组件加固、入侵检测、CAN(controller area network)总线认证加密、传感器安全防护及空中下载技术(OTA)安全升级5大方面组成,并提出了相关建议,为主机厂商、零部件供应商及产业链相关企业的实践活动提供参考.车联网安全已经引起相关部门的高度重视.
近年来,一些基于IoV(Internet of vehicles)场景的安全漏洞频发.车辆网络存在安全隐患.CAN,FlexRay等车载网络协议缺乏安全性设计.车载数据传输主要是基于编码功能,根据ID进行校准和接收滤波,有的仅提供循环冗余校验,缺乏数据加密、车载网络中接入认证容易受到嗅探、盗窃、伪造、篡改和重放等攻击威胁,难以保证车载网络的安全性.根据Upstream Security的《2021年全球汽车网络安全报告》[2]显示,10家一级供应商和汽车制造商开发的40多个ECU中发现了300多个安全漏洞.与汽车相关的CVE漏洞已超过110个,涉及51家汽车制造商.我们根据对这些漏洞的调研分析,将车联网安全问题总结为4大类,即网络安全、数据安全、ECU安全、系统与软件安全.攻击者通过这些攻击途径可最终触达智能车驾驶系统,操纵车上的各种功能,如车辆的制动系统、转向、油门的控制等,造成以下功能安全问题:
1)网络安全.
汽车内的组件需要进行协作才能使汽车运行起来,各组件之间的通信依赖车内网络.车内网络包括CAN网络、LIN网络、以太网络等.
以CAN为例,CAN协议是车载网络中最广泛最主流的协议,其传输速率比较高,应用于与汽车安全相关以及实时性要求高的地方,如动力系统等[2].由于其在设计时注重通信速度,没有考虑信息安全问题,所以具有一些安全缺陷.2010年,Koscher等人[3]研究了CAN协议的固有弱点及其在现实世界实现中的缺陷(例如偏离标准),并对总线执行了实际的攻击.2015年,Miller等人[4]研究了汽车攻击的可能性范围,其涵盖了各种各样可能的攻击面.通过物理途径控制不同的车辆功能,如刹车、转向和加速.Sharma等人[5]研究了有关CAN网络的攻击面,包括媒体播放器(media player)、OBD-II(on-board diagnostics)、bluetooth、WiFi、TCM(telematics control module).
2)数据安全.
车联网的数据安全维度不仅限于单台车辆或车辆所属人在车辆行驶过程中产生的数据.车联网存在于个体车辆内部,也存在于集群车辆之间,因此车联网数据安全的主体具有多样化特点,并由多角色、多技术、多流程组成,反之其中任一环节产生的数据安全威胁都有渗透至其他维度的可能性风险.
钟永超等人[6]提出在智能网络时代,车载信息娱乐系统(IVI)为满足市场需求大幅提升车载影音系统、GPS导航地图、车用移动通信、车载支付系统等性能.大量涉及车辆所有者的个人基本信息,包含个人身份信息、个人支付信息、个人地址信息等隐私信息面临泄露风险.与此同时,车辆本身的固有性能参数与动态行驶轨迹也因交互需求,承受着数据信息泄露的增量风险.
3)ECU安全.
ECU即电子控制单元,是车辆的大脑,其用途是控制汽车的行驶状态以及实现其各种功能.ECU主要利用各种传感器、总线的数据采集与交换,来判断车辆状态以及司机的意图,并通过执行器操控汽车.
对ECU的攻击可以分为3类:
第1类是网络层.这部分已在1.2.1节进行阐述,这里不再赘述.
第2类是对固件的攻击.包括固件获取、固件分析和漏洞利用.固件可以通过FLASH直接提取或从调试口读取.对ECU固件漏洞的挖掘工作往往由于其底层硬件的差异化及跨框架问题而受到限制,无法进行准确逆向虚拟化.导致ECU固件与智能系统的交互往往存在未知风险盲区.
第3类是对ECU芯片的攻击.包括侧信道攻击、故障注入攻击、物理攻击等.侧信道攻击是利用设备不经意释放出的信号进行破解的攻击方法,常用的攻击类型包括时间分析、功耗分析、电磁辐射分析等;故障注入攻击是利用故障引起电路异常,根据异常信息分析芯片内部的敏感信息,或直接利用引起电路异常改变程序运行.但基于需要获取芯片本身的前提及高技能攻击成本的背景,芯片层的暴露面从某种程度上远小于智能系统的暴露面.
4)系统和软件安全.
目前的智能车载系统仍然沿用传统的系统,如Linux和Android,所以智能车上的系统和软件安全问题也继承了许多传统的安全问题,如代码注入攻击(code injection)、代码复用攻击(code reuse)和数据流攻击(data oriented programming)等.代码注入攻击是指通过通信通道、外部接口或漏洞注入恶意代码,控制车里的系统或应用.目前针对代码注入攻击的防御方法有堆栈不可执行和地址随机化方法,可以使代码注入变得困难.当代码注入无法实现时,黑客可以通过代码复用进行攻击,通过串接现有代码片段来组装构建攻击代码,从而实现对控制流的破坏和劫持.目前针对智能车载系统和软件的安全问题主要有以下2方面的应对措施:一方面是利用硬件特征、虚拟机迁移等技术对系统和软件的代码或数据进行随机化,实现防御.如借助ARM V7架构的信任区(trust zone)进行地址随机化.另一方面是开发高性能的Fuzz工具,对智能车的安全漏洞进行挖掘,及时打上补丁,从而实现防御.
以上4种车联网安全问题相较于传统互联网,均更直接作用于汽车功能安全本身,任何攻击一旦可作用于自动驾驶系统,便可造成危害级别极高的物理伤害.显而易见,功能安全受驾驶系统安全直接影响,汽车智能化趋势往往带来更为复杂的系统,及系统为满足性能多样化所带来的安全问题.驾驶场景本身存在多样性、多变性与未知性的特点,这些特点均给自动驾驶系统的安全性设计带来巨大的挑战.例如,智能系统中安全通信协议的薄弱设计会造成协议被篡改风险,导致车辆非正常紧急制动,或意外事故中的门锁失灵均可导致一系列严重安全事故,如追尾、车身失衡侧翻等,车祸中车内人员无法逃生.车联网因其远程操控功能,其安全具有较高可利用价值,且这些安全问题不仅限于驾驶场景本身,还包括车辆定位系统与轨迹测绘系统所致的国家地理保密信息泄露、车载传感器性能提升所致的涉密地区实景信息泄露等.至今为止,多家汽车厂商,如宝马、奔驰等,都曾有智能车载系统被黑客攻陷的实例.2015年切诺基信息安全事件导致140万[7]辆车被召回,成为改变汽车行业安全设计规范的标志性事件.
因此迫切需要一套具备完整性、高覆盖度的整体化智能车载系统安全设计方案,将车联网系统安全以点到面逐步落实,实现车联网安全的纵深防御与前置,亦是本文将要提到的“内生化”.
传统漏洞如log4j等0-day漏洞,在曝出后依然会相继产生不止于首次发现的有效危害,如继2021年12月9日的低权限远程执行高危利用后,2021年12月14日log4j已进阶成为具备拒绝式服务攻击风险的漏洞.这些存在漏洞的应用系统无法进行自我修复清除可能存在的漏洞,或者对已存在漏洞造成的增量威胁无法止损,致使攻击面始终被动暴露于各种新的攻击之下,而往往人力的修复速度无法为惨重的损失买单.传统的漏洞解决方案大多停留在对基于已有的单一场景中各种确定参数的组合进行经验沉淀,建立固定模型,但以此作为防御策略,只能应对既有风险,无法解决风险的任何变形或者衍生问题.
2009年,Dlamini等人[8]提出移动目标防御(moving targets defense, MTD),其核心思想是对攻击者进行模型构建、分析、评估,运用多样化策略增加系统防御能力,使系统自身可随机进行自体伪造,从而增加漏洞被探知和利用的难度,使攻击链路更具复杂性,从而在一定程度上提高攻击者的攻击成本.然而,MTD针对复杂的攻击场景及高水平攻击手段,提出一种点状防御方案,针对单点攻击目标进行重点防护.该方案能聚焦一些较为明确的场景,但无法实现系统层面防御机制上的完整性与全面性.当系统面对新增的未知攻击手段或其他可能存在的脆弱性时,无法及时作出辨别及合理防御机制选择,易造成疏漏.
2016年,邬江兴院士[9]提出了拟态安全防御技术(简称“拟态防御”).不同于MTD,拟态防御消除了防御中的单点性,提出一种从点到面的真正意义上的防御形态.受自身性能特征及服务功能属性制约,一些目标对象易暴露漏洞,受到攻击.系统通过动态异构冗余的结构抵抗未知漏洞攻击,从而使安全防御模式从被动转为主动,将未知威胁转化为已知威胁.
在邬江兴院士拟态防御的理论基础上,扈红超等人[10]曾强调攻击行为可被分阶段模拟复现,而系统可在运营中通过随机化进行主动防御.
上述机制聚焦于研究支持QNX,Linux等自动驾驶异构OS系统的插桩式模拟执行环境,以此实现不同JS车辆自动驾驶系统的运行环境仿真模拟,并在此基础上开展漏洞驱动的模糊测试方法研究.而根据现有的运行态拟态防御机制,发现其尚存的痛点与重大挑战是运行时的每次重新随机化造成的系统延时性.运行时,系统进行随机化将中断目标应用程序,并在新的随机化代码中交换.
拟态防御在智能车载系统落地需要异构化实现,而异构化带来的时延与性能成本可能较高,为解决这个问题,需要引入要塞防御,即将异构化的实现聚焦于优先级最高的保护对象,而这些保护对象需要通过一套模型进行选择与定义.
随机化已在车辆防御系统的应用中取得了一些成果.例如,Richard等人[11]推出了动态地址验证阵列(DAVA),这是控制器局域网总线的一种新型移动目标防御协议,它主要使用存储在ECU中的动态分配数组,该数组经常更新和验证,以限制攻击者将ECU ID用于重放攻击的能力.Cho等人[12]提出了基于DRL(deep reinforcement learning)的资源分配和MTd部署框架(SAUSERER),这是一个基于多智能体深度强化学习(multiagent deep reinforcement learning, MDRL)的网络,并引入了一种基于内存的RL技术异常检测机制,以增强RL代理在对抗性攻击的情况下在部分可观察的环境中操纵观察信息的灵活性.文献[13]也提出了一种基于强化学习的协同功率控制算法,该算法通过神经网络压缩状态,并需基于神经情景的控制。此外,何意等人[14]也提出车载端安全应与车载服务端充分结合.
基于以上成果,可以认为,在车联网安全场景中,需基于与系统交互硬件本身特征,分层进行随性化与异构化,以实现其自适应化的安全保护机制.如X86架构或是当今更具高集成性的Arm架构置信区间.这个置信区间可用于实现进行态中的异步随机化,从而提高IOV的安全性.随机化应基于硬件本身特征,进行分层,建立一套计算最优安全性能效用值的系统计算模型,以支持系统动态运行过程中的防御机制决策.
2.3.1 目标描述
实验的目标是获得智能车的最佳防御模型,以该模型转换为有效的防御策略,使智能车载系统能快速达到兼顾安全与性能的平衡形态,并具有可持续性.其中,防御措施主要针对固件、硬件、操作系统3大模块.假设已知用于不同对象的合理防御方法,但是不知道单次防御动作下如何组合这些防御对象,使其在实际攻防场景中以“保护对象组”的形式,收集攻击数据,沉淀数据模型;最终,通过这些模型的训练以优化智能车载系统在各种可能的动态场景下运行得更好.盲目对全量可能需保护对象进行防御措施运用是不可取的,会大量增加系统的运行时间成本,使智能车载系统性能降低或受限,不符合工业落地需求.本文的模型建立出发点在于使系统具备自动化鉴别能力,系统可自行判别当下时刻最需受保护对象的组合,并合理实施防御措施.
附加新的身份验证手段,与此同时带来了极大的延时问题,且认证作为一道“防线”,一旦被突破,后续整个风险呈失控发展状态.显然,在处理基于未知漏洞或其他未知攻击的后门时,防御系统和机制尚缺可行机制,并存在重大风险.
2.3.2 攻击目标分组
本文将拟态防御聚焦在攻击前即静态保护阶段,核心理念是在自动驾驶系统未运行时的静态下寻找最佳安全平衡点,基于拟态防御中系统自生的随机性对QNX(quickLinux),GNU/Linux等自动驾驶系统进行保护对象排列组合,并针对这些组合预备对应的防御方式.
首先可对攻击场景进行仿真还原.假设市面上的任何攻击都并非无迹可寻.任何攻击都具备几个可量化向量,以形成攻击场景,如攻击发起时间、攻击频次、单次攻击时长、攻击对象、攻击方法、攻击造成影响,而这些向量都依附于一条完整攻击路径,因此攻击行为可被视为非单点爆发的偶发性事件,是具有流程状态的过程性事件.攻击阶段可被广义上分为攻击前、攻击中、攻击后.该程序依据已知场景中的攻击数据,例如上述攻击者的攻击周期、单次攻击尝试的时间、攻击对象进行场景化建模,使被攻击系统具备对已知威胁的初步识别比对能力.依据历史攻击对象数据,下面针对3类主要模块进行攻击目标梳理,如表1所示:
表1 3大模块攻击目标
将固件、操作系统、硬件3大模块作为3个攻击目标的父集合.这些基于攻击目标相关数据训练出的攻击模型并非只局限于固化的参数与组合,它们在已有模型之上通过与安全以外其他性能模型的关联实现聚类,并可提前找寻实现安全与性能间最佳平衡点,以用于下一轮攻击周期中.对防御机制的选择,例如针对蓝牙入侵的防御动作需控制在多少毫秒以内,可最大程度避免对性能的影响.
文献[15]提出了一种基于强化学习的协同设计自适应的防御方案,以应对心脏出血攻击,并在文献[16]中证明了其收敛性.作者使用强化学习,在系统运行时学习最佳的保护分配方式,使得保护受到的损伤最少.文献[15-16]提出的方法能实现很好的保护作用,但是也存在一定的问题:运行时进行学习,如何收集保护输入的反馈是一个难题,需要在程序中做运行时的插桩.这样的结果只能针对特定的漏洞作出防御,不能实现拟态防御.
2.3.3 模型训练
为了解决以上问题,不在真实运行的智能车载系统上收集反馈,而是将系统部署到攻防大赛中的靶机上,利用攻防大赛上真实的智能车攻防数据进行训练学习.将攻防大赛数据输入我们设计的强化学习算法(UCBB)中,从而得到最佳的保护策略,最后将其部署到智能车载系统中(如图1所示).模型的训练是一直进行的,这样可以保证学习到自适应的方法,使得智能车载系统能适应攻击者的攻击,实现拟态防御.
图1 模型框架
利用攻防大赛上真实的智能车攻防数据进行训练学习.根据24 h靶机攻击日志,可以得到系统运行的反馈,避免了插桩带来的运行时间的增加.利用这些数据,基于UCB(upper confidence bound)算法[17]进行改进,本文提出了UCBB(UCB-balance)算法,利用UCBB算法可以求得当前最优的防御方案.然而,在防御方案发生改变时,并不能立刻将其应用到系统上,因为频繁地更换方案需要耗费时间,并且可能会存在短视的缺陷,容易受到扰动的影响.所以,设定了一套更换防御设计方案的方法,只有当满足一定条件时,才对防御方案进行替换.
实验构造的模型如下:
1)攻击模型.
攻击者作为攻防大赛上的攻击方,可以针对智能车载系统靶机作出攻击,每次攻击都会记录在靶机攻击日志上.其中每次攻击都包含攻击者的攻击对象、攻击方式、靶机受到的影响等信息,这些信息作为攻击方的输入进入到防御模型中.
2)防御模型.
攻防大赛中的靶机上装载着智能车载系统,攻击者的攻击对靶机造成安全损害,被攻击日志记录下来.防御者预先有多个模块的防御手段,但是不能明确知道各种防御手段对智能车的保护作用;同时由于智能车有一定的性能要求,完全应用防御会使其性能受到损害,需要在安全和性能之间找到平衡点.
2.3.4 要塞防御评估方案
由于防御措施的方案数量繁多,需要进一步构建一种安全性的评估方案以寻找单次攻击场景下的核心要塞,并聚焦针对要塞的防御方案.我们将受到的攻击强度定义为攻击产生的可能性和可能造成的资产损失的乘积,而攻击产生的可能性分为利用难度和影响范围2个方面,可能造成的损失分为资产重要性和攻击危害性2个方面,如利用难度可以按照通过外网和内网利用划分,影响范围可以根据受影响的部件数量、受影响的智能车种类进行划分,资产重要性可以根据是否包含敏感数据、对人的威胁程度进行评分,攻击危害性可以根据攻击对车辆运行造成的影响进行评分.最终得到选择这些保护对象的安全指数u.
同时,为了找到替换防御措施的时间,将2个方案的相似度定义为
当保护对象发生较大变化或者防御效果显著提升时,则替换保护对象,使用UCB算法得到最佳保护方案.
UCB算法是为了解决多臂赌博机问题而提出的算法,UCB中关于置信上界的构建,可以使得赌博机的探索和利用达到平衡,最终能最大化收益.在本文算法中,每个保护对象的选择策略都是一个赌博机,所以利用UCB算法可以得到在靶机上收益最大化的策略.而最终的目的是要找到一个在智能车上进行保护的策略,使得智能车能在较长的时间内达到安全和性能的平衡,所以对UCB算法的改进在于能发现替换策略的时机,对智能车上的保护对象进行动态化的变更选择.
算法1.UCBB算法.
Ta(1)=0;
end for
fort=1;t++ do
ifTa(t)==0 then
Ia(t)=+∞;
else
end if
end for
ift>Nand Δ(a0,a(t))<θ1andIa(t)(t)-Ia0(t)>θ2then
选择a(t)进行替换;
break;
end if
Ta(t)(t+1)=Ta(t)(t)+1;
Ta(t+1)=Ta(t);
end for
防御者得到u(t)和Δt(t);
end for
UCBB算法旨在计算与寻找一个最佳安全性能时间点.我们通过仿真实验来说明.
将以上方法生成的数据输入到UCBB算法中,可以对具体攻击场景下的安全指数与性能指数进行估计,进而可得到对应的防御方案,方案中参数包含防御对象数量、防御动作、防御时长等.相较于全量的不定项保护,本文的优化方案的防御效果保持在一定水平的基础上,在防御时间上取得了较为显著的成果.
在模拟实验中对不同的保护对象数目进行实验,并与全量保护作比较,结果如表2所示.从实验结果可以看出,在不同的保护对象数目下,使用UCBB算法都能够合理地估计各防御对象的安全指数和性能指数,从而作出合理的策略,在安全指数下降较少的情况下,大大减少防御时间,保证了智能车载系统的性能.
表2 模拟实验结果
综上,基于攻击特征学习自适应的防御算法能帮助系统在性能和安全之间实现平衡.使得智能车载系统在保持高性能的情况下仍能对攻击具有相对较强的防御能力.后期,将通过真实靶场车机部署等方式收集大量攻防大赛中的场景化数据,优化模型,使该模型能够通过数据增量的训练形成自动化学习、策略更新的闭环,从而更好地实现防御的效果.
至今为止,各大安全厂商或学术领域对于车联网安全的相关解决方案或防御机制仍处于蒙昧阶段,呈被动形态,止损机制往往滞后于安全问题的产生.传统的防御如防火墙等无法满足车载性能提升与各数据边界、物理边界模糊的同时,无法保障风险的有效消除率.防御机制的本质依然是前置阶段对信息的加密,智能车载系统往往是静态的、具有确定性的,这也为攻击者提供了很多便利,如目标识别、防御行为检测、攻击技术测试与改进、攻击效果评估等.
面对这些基于车联网特性的挑战,内生安全将进一步聚焦于不同安全事件阶段的自适应随机化.在获取、感知攻击者的行为的前置阶段,为主动保护系统安全状态提供更高价值的决策依据.要达到上述防御效果,车内配置高性能低延迟的固件将成为刚需,而这部分成本的投入需要被更合理地规划进未来的车联网商业市场.因此,在未来的研究中,内生安全亦会将重点投入在实现安全的高经济成本与性能提升成本之间,寻求一种最佳可行方案.