原文题目《VoltageIDS: Low-Level CommunicationCharacteristics for AutomotiveIntrusion Detection System》
车载电脑功能的不断扩展本意是为了提高司机的安全性和舒适性,然而这也造成了其被攻击的可能性的增加,而如今应对这些攻击的方法都存在一定的缺陷,并且这些方法大多数都需要对CAN协议进行更改才能发挥作用。本文聚焦在保护车内网,提出了一个比较新的入侵检测的车内系统,叫做VoltageIDS。这个系统充分利用了CAN信号的特性作为其指纹,并且其并不需要对现有系统结构进行更改,也通过真实的汽车证明了其有效性。这也是第一个能够区分错误和总线关闭式攻击的汽车入侵检测系统。
目录
文章介绍
相关工作
车内CAN网络上已有的攻击模式
已有的汽车IDS
VoltageIDS知识背景
信号不一致性
CAN协议
总线关闭模式(Bus-Off Attack)
系统模型
ECU识别/汽车IDS
攻击者模型
攻击类型
本文方法
1.信号检测和预处理
2.特征提取
3.1伪装攻击
3.2总线关闭攻击
4.渐进式/增量学习
方法评估
实验设置
训练集大小
特征提取
真实车辆上模拟伪装攻击
在汽车中有许多的电子控制单元(ECUs),这是行车电脑,比较豪华的车上大概都能找到50-100个ECU,每一个都被分配了特定要执行的功能,并且由于它们各自执行的功能会被划分为一组一组的车内网子网,而这些ECU之间发送消息会通过能够提供稳定通信的CAN协议系统。但CAN协议缺少消息来源识别的功能,因此导致车辆容易受到攻击,且随着汽车功能的发展,车内CAN网络的接入点也在不断增加,就更利于攻击者进行入侵。本文提出的入侵检测系统IDS,叫做VoltageIDS,不需要对现有的行车系统进行更改就能起作用。
本文的出发点是在于,根据电气特性来区分合法的或非法的ECU,即使它们发送相同的消息,攻击者也难以模仿ECU固有的电气特性(electrical characteristics)。因此本文贡献在于:
除了直接物理连接一台笔记本电脑会能造成攻击外,间接入侵车内CAN网络的方式有:
因为大多数CAN网络上的消息都是周期性发送的,因此这也是许多IDS所能充分利用来检测入侵的一个特点,攻击者注入的消息很明显会加快信息频率,这就是基于消息频率的汽车IDS。但后来出现了更高明的攻击者,能模拟车内CAN网络的消息发送频率。基于消息频率的汽车IDS的局限被发现后,基于表现行为特性的入侵检测模式被提出了,连接在CAN网络上的ECUs有着独特的行为特性,如果CAN保温和已识别的ECU无法配对了,就被认为ECU被损坏入侵了。
有研究者利用ECU发送消息的时钟偏移的特性进行ECU识别,但是这后来被证明是可以被攻击者模仿的。而利用ECU发送的CAN的电气特性来识别ECU也被很多学者研究,但都有局限,因为要考虑CAN网络上同时有多条来自不同发送ECU的仲裁决定过程,也要考虑真实的汽车上路情况,不适合用扩展帧格式,也不宜对已存在的ECU做硬件上的修改。
本文所提出的检测系统的方法来源于对两个不同ECU发送相同消息进行的观察,在物理层上,这两个喜好还是会有不一致性的,即使这两个ECU是同一个厂商做的产品。这种现象可能也有一部分原因是在于他们有不同的电缆长度和随着电缆长度增加而增加的布线电阻。
总线关闭攻击:这是一种新提出的攻击。上面提到,根据CAN的标准,标识符字段以外的字段同时传输比特被认为是一种错误。一个ECU在试图传输隐性0状态时检测到显性1状态,那他的传输错误计数器TEC会增加,也就是比特错误会使计数器的数+1,当累积到超过255,会进入总线关闭模式,ECU被强制关闭,这种情况下,攻击者就可以利用这种错误处理机制对车内CAN网络进行一种DoS攻击。此时系统很难分辨到底是错误还是攻击。
ECU可以向汽车内的CAN网络上发送与它们的功能相关的CAN消息报文,比如发动机的ECU只能传输与发动机有关的CAN报文。本文的VoltageIDS会分析CAN报文的电气特性来识别是哪个ECU发送的,判断好是哪个ECU发送的报文才有的特性后还要判断这个ECU是否能传输CAN报文,验证无效的话都会被认为是该ECU被破坏了。
攻击者可以发送看似有效的CAN报文,但很难模仿电气特性,VoltageIDS分析的是物理层中的CAN电信号,而非数据层的CAN报文,但被攻击者破坏的ECU很难产生电信号,攻击者还需要安装一个额外的设备来产生电信号,但这很容易被司机识别,因此不予考虑。
在不考虑攻击者能在物理层面直接连接设备攻击车内网的情况下(因为会被司机发现), 攻击者也就是汽车网络的黑客想要造成汽车内部功能混乱必须要有能够访问车内CAN网络的方法,他们可以使用不同类型的ECU作为访问的渠道:
VoltageIDS能覆盖的检测范围有:
VoltageIDS由三个阶段组成:1.信号检测和预处理;2.特征提取;3.入侵检测(又根据攻击类型分为伪装攻击和总线关闭攻击)。
由于有噪声的存在,所以CAN协议的两条信号线的电压可能与理想期望值不同,VoltageIDS通过测量和检查来自差分通道的信号,而不是单独的通道来减少噪声数量。而电子CAN信号可以被分为显性0态和隐性1态,显性0态时发送者主动发送的,隐性1态则是电阻被动返回的电压,因此Voltage更多考虑显性0态,也就是主导状态,因为它可能包含了更多有关发送者的电气特性。
并且VoltageIDS关注状态1->0和0->1的信号部分,被看作正斜率和负斜率。IDS处理电子CAN信号为的就是获得主导状态、正斜率、负斜率。
一共考虑了包含时间/空间领域中来自主导状态、正斜率、负斜率的各20个标量特征如下表,总共60个特征。但这也有可能造成太大的计算量,所以采用SFS算法挑选可用的特征。挑选的特征都是经过评估函数来减小分类错误率MCE。
VoltageIDS通过构造一个多分类器检测伪装攻击,分类的数量等于车内网ECU的数量。所以就是一个监督学习带有训练和测试两个步骤, 训练阶段要用特征和对应的CAN报文的ID打好标签的进行训练。测试阶段就对一个新的CAN报文提取特征进行判断。
前面的多分类器只能识别那些已经基于其电气特性训练好的ECU,而对于总线关闭攻击这种多个报文同时传输的情况,电气特性可能会混合,但只会被模型分类到一个ECU,因此VoltageIDS只能先将这种信号分类为未知。
本文要采用的新的检测方法需要识别未用于训练分类器的新数据或未知数据。VoltageIDS使用了一个简单的基于阈值的方法检测位置信号,作为基本模型的扩展,即使用一个带有RBF的SVM应用于单分类器的技术。对于混合的信号,可以创建一个单分类器,即考虑所有信号都来自同一个ECU的可能性,给出得分表示其与合法ECU的匹配程度,小于指定的阈值被视作位置信号。
电压信号是对环境因素很敏感的,比如温度和时间都可能对其造成影响。VoltageIDS在温度变化的情况下也不太有效,因此又基于增量学习的方法对VoltageIDS进行了改进。输入数据持续更新已有的分类器,也就是动态监督学习。选用了一种方法增强SVM分类器的鲁棒性,便是递减学习,让旧数据排除在分类器之外。
在CAN总线原型和真实的汽车上评估VoltageIDS的效果。
只考虑CAN总线原型上产生的信号,每个ECU上选100个输入作为测试。Fig.2.显示了平均F得分,精度和召回率。可以看到随着训练集大小增加,得分也在升高。
特征提取是选择相关特征的子集用于模型构建,为了简化模型、缩短训练时间和减少过拟合提高概括性。像主成分分析一样把原始特征空间投射到低维空间。但选择最有可能的特征组合到一起并不一定会达到最好的效果,有时候也会过拟合。
挑选了真实车辆上的诊断CAN子网—DCAN用来测试伪装攻击下的模型效果,发现F得分结果并不是太好。可能的原因是VoltageIDS没法很好的区分同一个ECU发送的带有不同CAN ID的CAN报文。作为代替方案,认为每个ECU都有一个特定的ID用于诊断协议。相较于使用普通的CAN ID,使用代替方案效果更好。再考虑温度变化的情况下,结果也是可以接受的。
总线关闭式攻击检测和温度变化影响后续再更...