原文题目《VoltageIDS: Low-Level CommunicationCharacteristics for AutomotiveIntrusion Detection System》
车载电脑功能的不断扩展本意是为了提高司机的安全性和舒适性,然而这也造成了其被攻击的可能性的增加,而如今应对这些攻击的方法都存在一定的缺陷,并且这些方法大多数都需要对CAN协议进行更改才能发挥作用。本文聚焦在保护车内网,提出了一个比较新的入侵检测的车内系统,叫做VoltageIDS。这个系统充分利用了CAN信号的特性作为其指纹,并且其并不需要对现有系统结构进行更改,也通过真实的汽车证明了其有效性。这也是第一个能够区分错误和总线关闭式攻击的汽车入侵检测系统。
文章介绍
在汽车中有许多的电子控制单元(ECUs),这是行车电脑,比较豪华的车上大概都能找到50-100个ECU,每一个都被分配了特定要执行的功能,并且由于它们各自执行的功能会被划分为一组一组的车内网子网,而这些ECU之间发送消息会通过能够提供稳定通信的CAN协议系统。但CAN协议缺少消息来源识别的功能,因此导致车辆容易受到攻击,且随着汽车功能的发展,车内CAN网络的接入点也在不断增加,就更利于攻击者进行入侵。本文提出的入侵检测系统IDS,叫做VoltageIDS,不需要对现有的行车系统进行更改就能起作用。
本文的出发点是在于,根据电气特性来区分合法的或非法的ECU,即使它们发送相同的消息,攻击者也难以模仿ECU固有的电气特性(electrical characteristics)。因此本文贡献在于:
- 分析已有的IDS的缺点。
- 提出的VoltageIDS可以直接在车内系统安装后上路,不需要对车内网络进行更改。
- 在CAN总线原型、真实车辆以及行驶中的车辆上验证了VoltageIDS,这是众多提出的IDS中第一次在路上尝试验证,结果证明能以较低的错误率检测到伪装攻击或总线关闭攻击。
- 解决了设备的特性可能会受到环境因素影响而发生变化的特点,比如时间和温度。
- 能识别总线关闭攻击bus-off,这是最近提出的,而VoltageIDS也是第一个能考虑到的系统。
相关工作
车内CAN网络上已有的攻击模式
除了直接物理连接一台笔记本电脑会能造成攻击外,间接入侵车内CAN网络的方式有:
- 将攻击消息注入车内的多媒体系统
- 通过汽车售后的远程信息处理控制单元TCU入侵(通过OBD-Ⅱ标准端口连接CAN网络)
- 通过连接蜂窝网络的远程信息处理设备的漏洞
已有的汽车IDS
因为大多数CAN网络上的消息都是周期性发送的,因此这也是许多IDS所能充分利用来检测入侵的一个特点,攻击者注入的消息很明显会加快信息频率,这就是基于消息频率的汽车IDS。但后来出现了更高明的攻击者,能模拟车内CAN网络的消息发送频率。基于消息频率的汽车IDS的局限被发现后,基于表现行为特性的入侵检测模式被提出了,连接在CAN网络上的ECUs有着独特的行为特性,如果CAN保温和已识别的ECU无法配对了,就被认为ECU被损坏入侵了。
有研究者利用ECU发送消息的时钟偏移的特性进行ECU识别,但是这后来被证明是可以被攻击者模仿的。而利用ECU发送的CAN的电气特性来识别ECU也被很多学者研究,但都有局限,因为要考虑CAN网络上同时有多条来自不同发送ECU的仲裁决定过程,也要考虑真实的汽车上路情况,不适合用扩展帧格式,也不宜对已存在的ECU做硬件上的修改。
VoltageIDS知识背景
信号不一致性
本文所提出的检测系统的方法来源于对两个不同ECU发送相同消息进行的观察,在物理层上,这两个喜好还是会有不一致性的,即使这两个ECU是同一个厂商做的产品。这种现象可能也有一部分原因是在于他们有不同的电缆长度和随着电缆长度增加而增加的布线电阻。
CAN协议
- 差分信号/编码:CAN使用差分信号,这使得其具有抗噪性和容错性。每条线电流相同,方向相反以产生场消除效应来降低噪声。平衡差分信号减少噪声耦合,并允许在双绞线上实现高信号速率,双绞线电缆增强CAN的高抗噪。双绞线一条是CANH一条是CANL,隐性1状态两根线偏差为3.5v,显性0状态偏差1.5v。
- CAN帧格式:CAN网络被配置为适应两种帧格式,标准帧(支持11位标识符)和扩展帧(支持29位标识符)。CAN标准确定了四种帧类型:数据帧、远程帧、错误帧和过载帧。所有真都以一个表示帧传输开始的start-of-frame位开始。本文的VoltageIDS系统涵盖了帧类型的检验,还能检验新提出的总线关闭攻击。标准的帧由四个部分组成:标识符、数据长度码DLC、数据、循环校验码CRC。数据部分最多占8位,标识符位是发送器的标识符,这代表了其优先权和意义。不同ECU一般情况下都是被设定为不能用相同的标识符,一个ECU可以有多个标识符,不同标识符对应不同的功能。
- 仲裁:多个ECU尝试同时传输CAN消息报文时,CAN网络就会提供一种无损的仲裁决定过程,以确定这种碰撞的报文之间的优先次序。仲裁决定过程要求所有ECU同步对CAN总线网络上的标识符字段的每一个比特进行采样。传送显性0位的ECU和隐性1位的ECU碰撞,则显性位ECU就可以优先。仲裁只在标识符字段内结束,传输标识符字段以外的字段被视为错误。本文的VoltageIDS忽略与标识符字段对应的信号部分,因为不清楚这种信号是一个ECU产生还是多个碰撞的ECU产生的,在仲裁时,这些电气特性混在一起很难搞清楚,所以VoltageIDS之分析标识符字段后面的字段。
总线关闭模式(Bus-Off Attack)
总线关闭攻击:这是一种新提出的攻击。上面提到,根据CAN的标准,标识符字段以外的字段同时传输比特被认为是一种错误。一个ECU在试图传输隐性0状态时检测到显性1状态,那他的传输错误计数器TEC会增加,也就是比特错误会使计数器的数+1,当累积到超过255,会进入总线关闭模式,ECU被强制关闭,这种情况下,攻击者就可以利用这种错误处理机制对车内CAN网络进行一种DoS攻击。此时系统很难分辨到底是错误还是攻击。
系统模型
ECU识别/汽车IDS
ECU可以向汽车内的CAN网络上发送与它们的功能相关的CAN消息报文,比如发动机的ECU只能传输与发动机有关的CAN报文。本文的VoltageIDS会分析CAN报文的电气特性来识别是哪个ECU发送的,判断好是哪个ECU发送的报文才有的特性后还要判断这个ECU是否能传输CAN报文,验证无效的话都会被认为是该ECU被破坏了。
攻击者可以发送看似有效的CAN报文,但很难模仿电气特性,VoltageIDS分析的是物理层中的CAN电信号,而非数据层的CAN报文,但被攻击者破坏的ECU很难产生电信号,攻击者还需要安装一个额外的设备来产生电信号,但这很容易被司机识别,因此不予考虑。
攻击者模型
在不考虑攻击者能在物理层面直接连接设备攻击车内网的情况下(因为会被司机发现), 攻击者也就是汽车网络的黑客想要造成汽车内部功能混乱必须要有能够访问车内CAN网络的方法,他们可以使用不同类型的ECU作为访问的渠道:
- 上市前的ECU:汽车生产出来时这些ECU就被安装在车内了,比如一些远程信息处理的ECU连接在外部的蜂窝网络,就很容易成为攻击目标。
- 上市后的ECU:一些汽车应用插入在OBD-Ⅱ端口就会使得车内网和外部网络连接,也会成为攻击者的目标。
攻击类型
VoltageIDS能覆盖的检测范围有:
- 伪装攻击Masquerade Attack:操纵一个管理着负责安全关键功能的ECU,还要隐藏其已经被破坏的事实,这样攻击者就能注入有害信息到车内网。
- 总线关闭攻击Bus-Off Attack:攻击者远程的发送标识字段以外的字段进行同时的比特传输,这就造成目标ECU进入总线关闭模式。
本文方法
VoltageIDS由三个阶段组成:1.信号检测和预处理;2.特征提取;3.入侵检测(又根据攻击类型分为伪装攻击和总线关闭攻击)。
1.信号检测和预处理
由于有噪声的存在,所以CAN协议的两条信号线的电压可能与理想期望值不同,VoltageIDS通过测量和检查来自差分通道的信号,而不是单独的通道来减少噪声数量。而电子CAN信号可以被分为显性0态和隐性1态,显性0态时发送者主动发送的,隐性1态则是电阻被动返回的电压,因此Voltage更多考虑显性0态,也就是主导状态,因为它可能包含了更多有关发送者的电气特性。
并且VoltageIDS关注状态1->0和0->1的信号部分,被看作正斜率和负斜率。IDS处理电子CAN信号为的就是获得主导状态、正斜率、负斜率。
2.特征提取
一共考虑了包含时间/空间领域中来自主导状态、正斜率、负斜率的各20个标量特征如下表,总共60个特征。但这也有可能造成太大的计算量,所以采用SFS算法挑选可用的特征。挑选的特征都是经过评估函数来减小分类错误率MCE。
3.1伪装攻击
VoltageIDS通过构造一个多分类器检测伪装攻击,分类的数量等于车内网ECU的数量。所以就是一个监督学习带有训练和测试两个步骤, 训练阶段要用特征和对应的CAN报文的ID打好标签的进行训练。测试阶段就对一个新的CAN报文提取特征进行判断。
3.2总线关闭攻击
前面的多分类器只能识别那些已经基于其电气特性训练好的ECU,而对于总线关闭攻击这种多个报文同时传输的情况,电气特性可能会混合,但只会被模型分类到一个ECU,因此VoltageIDS只能先将这种信号分类为未知。
本文要采用的新的检测方法需要识别未用于训练分类器的新数据或未知数据。VoltageIDS使用了一个简单的基于阈值的方法检测位置信号,作为基本模型的扩展,即使用一个带有RBF的SVM应用于单分类器的技术。对于混合的信号,可以创建一个单分类器,即考虑所有信号都来自同一个ECU的可能性,给出得分表示其与合法ECU的匹配程度,小于指定的阈值被视作位置信号。
4.渐进式/增量学习
电压信号是对环境因素很敏感的,比如温度和时间都可能对其造成影响。VoltageIDS在温度变化的情况下也不太有效,因此又基于增量学习的方法对VoltageIDS进行了改进。输入数据持续更新已有的分类器,也就是动态监督学习。选用了一种方法增强SVM分类器的鲁棒性,便是递减学习,让旧数据排除在分类器之外。
方法评估
在CAN总线原型和真实的汽车上评估VoltageIDS的效果。
实验设置
- CAN总线原型:带有12个CAN节点(ECU)的CAN总线网络,在实际中常见的CAN网络速度即500kbps的比特率下进行,CAN屏蔽板移除了大部分电阻只留下了两个。
- 真实车辆:选了两辆真实的汽车用于评估
- 电子CAN信号采集:从CAN总线原型和真实车辆中利用示波器采集CAN的电子信号。示波器连接在CAN_H和CAN_L上,获得模拟信号后通过NRZ编码规则被解码为CAN信息。
- 分类算法:matlab中使用SVM和BDT(支持向量机和决策树),线性函数作为SVM内核,BDT中有30个决策树。收集超过150组数据。随机选择数据用作训练,其他数据用作测试。
- 性能指标:使用精度precision、召回率recall,F得分F-score作为评估指标。高精度和高召回率代表了低FPR假阳率和低FNR假阴率。FPR太高会频繁报警司机会觉得不舒服。F得分表示精度和召回率的调和平均数。
训练集大小
只考虑CAN总线原型上产生的信号,每个ECU上选100个输入作为测试。Fig.2.显示了平均F得分,精度和召回率。可以看到随着训练集大小增加,得分也在升高。
特征提取
特征提取是选择相关特征的子集用于模型构建,为了简化模型、缩短训练时间和减少过拟合提高概括性。像主成分分析一样把原始特征空间投射到低维空间。但选择最有可能的特征组合到一起并不一定会达到最好的效果,有时候也会过拟合。
真实车辆上模拟伪装攻击
挑选了真实车辆上的诊断CAN子网—DCAN用来测试伪装攻击下的模型效果,发现F得分结果并不是太好。可能的原因是VoltageIDS没法很好的区分同一个ECU发送的带有不同CAN ID的CAN报文。作为代替方案,认为每个ECU都有一个特定的ID用于诊断协议。相较于使用普通的CAN ID,使用代替方案效果更好。再考虑温度变化的情况下,结果也是可以接受的。
总线关闭式攻击检测和温度变化影响后续再更...
版权归原作者 丹牛Daniel 所有, 如有侵权,请联系我们删除。