论文名称:Evading Voltage-Based Intrusion Detection on Automotive CAN
CAN网络现在广泛应用于现代汽车中来实现不同电子控制单元ECU的通信。但CAN目前容易受到ECU的伪装攻击,也就是被攻击的ECU(攻击者)冒充未受攻击的ECU(受害者)并且欺骗受害者的CAN消息。最有效的针对这种伪装攻击的方法,是基于CAN总线电压的入侵检测系统(VIDS),该系统使用总线上的电压指纹识别消息来源。因为电压指纹是ECU的硬件特性,攻击者的ECU没办法控制修改硬件特性,因此VIDS被证明可有效检测每次涉及单个攻击者的伪装攻击。
首先,本文提出新的电压破坏策略,即:利用两个受损的ECU(攻击ECU和同谋ECU)的能力来破坏VIDS记录的总线电压。再结合CAN协议的基本缺陷,可提出一种新的伪装攻击,称为DUET,这种攻击可避开所有的现有的VIDS且不需要考虑VIDS中涉及的特征和分类的算法。DUET采用两阶段攻击策略,首先在VIDS的再训练模式下操纵受害者ECU的电压指纹,接着在VIDS操作模式下模拟被操纵的指纹。在真实总线实验中验证DUET模拟成功率达90%。
为了有效应对DUET,本文提出了一种有成本效益的、轻量级的防御系统RAID,让每个ECU都能在其帧格式中进行协议兼容的修改,在VIDS再训练模式中生成一种独特的“方言”。也就是说RAID可以防止ECU电压指纹损坏,并能重新启用VIDS检测所有ECU伪装攻击。
CAN是有线广播网络,实现车内的一个个电子控制单元ECU之间的通信,但是随着物联网发展,车内的ECU越来越多了,涉及的接口如蓝牙,WIFI,USB也越来越多,因此更容易遭到攻击。攻击者可以通过入侵一个ECU从而渗透到CAN系统,就可以对其他ECU展开多种攻击,尤其是,被攻击者控制的ECU能冒充另一个攻击者无法远程破坏的ECU,并伪造后者发出的CAN消息,从而破坏汽车关键功能,这就是伪装攻击。
为了应对为伪装攻击,诞生了多种入侵检测系统IDS,其中最有效的是VIDS,其能够在每个CAN报文传输期间测量总线电压并计算电压指纹,这是测量电压样本的特征向量。ECU的电压指纹和发出的报文是会随着环境时间等因素波动的,因此VIDS经常转换到再训练模式,通过将电压指纹映射到其发送ECU来学习监督模型。接着在操作模式下,VIDS使用学习的模型来推断总线上每一个报文的发送来源。这样的话,配备了高频电压采样的VIDS有着高分辨率的监控和攻击检测能力,相当于是将CAN网络上的流量变化放在“显微镜”之下了。
在VIDS有这样能力之下,攻击者要想入侵系统主要面临两个挑战:
那么为了应对第一个挑战,本文替攻击者想到了一个方法,叫电压破坏(voltage corruption)
简单来说,攻击者想要入侵一个不容易被攻击的ECU(也叫受害者),需要入侵两个较为容易被攻击的ECU,一个作为攻击者,一个作为同谋(也可以叫共犯),攻击者在同谋的协助下,与受害者进行同步传输,将其电压样本叠加在受害者的电压样本上(相当于是投毒),VIDS把这样“有毒”的样本拿去训练监督模型,必然会影响其对电压指纹的构建,这样达到了破坏VIDS测量的受害者的电压指纹的目的。那么利用这种电压破坏的策略,可形成一种新的伪装攻击,称为DUET。DUET由攻击者和同谋对受害者发起,遵循两阶段训练集上“投毒”的攻击策略。这两个阶段分别成为:电压指纹操作(阶段一)和电压指纹模拟(阶段二)。
DUET让VIDS学习到“受害者+攻击者”电压样本叠在一起这样扭曲的样本数据并作为受害者的电压指纹,也成功解决了前面提到的第二个挑战。
那么有了前面的基础,每当DUET的攻击者和同谋想要欺骗受害者的消息的时候,他们就会执行基于电压指纹的模拟,这时,同谋来发送欺骗消息,攻击者使用电压破坏策略来破坏同谋的电压指纹,那么这样的话VIDS会观察到“同谋+攻击者”这样扭曲的指纹。而VIDS在再训练模式中已经被欺骗了,系统中有一个“受害者+攻击者”的扭曲指纹,那么在其操作模式下,“同谋者+攻击者”这类扭曲的指纹就都会被归类成受害者的指纹。
DUET能成功针对任何使用CAN网络的汽车开展攻击,并躲开任何VIDS的检测,还需要利用CAN协议的基本机制(总线仲裁和错误处理)、CAN的控制器功能(一次性传输)和CAN通信的共同特征(消息的周期性和消息内容的可预测性)。本文通过实验验证DUET的能力,使用了每条消息都分析电压指纹的Scission和累积八条消息分析一次电压指纹的Viden这两种典型的VIDS,结果证明成功率均在90%以上(攻击装有Viden的汽车成功率达100%)。
既然为了攻击现有的VIDS,本文替攻击者想到了DUET,那自然也要想到针对这种攻击的对策。
那么既然DUET让受害者电压变得不真实了,那自然也可以修改VIDS,让其能通过发现电压指纹的失真来检测DUET。那么改进的VIDS称为RAID,其采用和VIDS正交的方法,随机化受害者CAN消息标识符的一部分,这种随机化产生的独特的信息可以看作一种“方言”,也就是只有VIDS再训练模式下,ECU才会说这种“方言”,这种方法使得攻击者在试图和受害者同时传输时,在总线上仲裁上要么成功要么失败,总之不让它有机会同时传输消息,这样就没法执行电压破坏策略。实验表明能在低消耗下在第一个阶段防止DUET。