何德峰,徐晨辉,漏小鑫
(浙江工业大学 信息工程学院,浙江 杭州 310023)
随着车联网技术的快速发展,网联车通过无线通信网络实现车与车、车与人、车与环境设施之间的数据交互,极大地增强了车辆获取周边环境和行驶数据的能力。如果进一步应用协同自适应巡航控制、预测巡航控制和车辆队列控制等先进辅助驾驶控制技术[1-4],网联车不仅可以提高车辆行驶的平稳性,还可以通过缩短安全车间距以减少行车能源消耗,提高车辆的经济性,同时可以缓解交通堵塞,提高行车的效率和安全性[5-9]。由于车辆通信网络的开放性和行驶环境的复杂性,网联车巡航控制系统容易受到来自外界的各种恶意数据攻击,如随机数据攻击、隐蔽虚假数据攻击和拒绝服务(DoS)数据攻击等[10-12]。随机攻击以最大程度破坏系统运行为目的,隐蔽虚假数据攻击通过避开常规故障检测器实施注入攻击目的[11],如文献[13]提出的远程线性攻击可以避开卡方检测器,DoS数据攻击以阻塞系统通信网络,造成数据延迟或丢包为目的[11]。一旦多种数据攻击同时产生,常规故障检测器就无法有效地检测出攻击,对网联车巡航控制系统的决策会造成严重破坏,进而威胁车辆和乘员的驾乘安全[12,14]。
目前,网联车巡航控制系统的数据攻击检测已引起了国内外学者的关注,如文献[15]考虑车内网络(如CAN总线)安全性,详细总结了近年来网联车的网络安全研究结果;文献[16]从计算机网络和IT角度分析网联车系统的网络安全问题,但目前仅有少量研究从控制系统角度探讨网联车巡航控制系统的数据攻击检测方法;文献[17]将网联车巡航控制系统的DoS攻击影响建模为一阶时滞系统,采用滑模观测器在线估计巡航控制系统时滞的大小检测DoS攻击及其水平,但该方法不能用于检测随机攻击和隐蔽虚假数据攻击,也没有考虑巡航控制系统的内在时滞的影响。近年来,部分学者从信息物理融合系统角度研究更宽泛车辆控制系统的数据攻击检测问题,其主要思想是根据系统模型建立基于卡尔曼滤波器的数据攻击检测方法,如文献[18]应用扩展卡尔曼滤波估计无人机的状态,提出了基于新息序列的攻击检测方法,同时考虑机动模式对攻击检测产生的影响,通过取残差-范数修正检测量;文献[19]在扩展卡尔曼滤波的基础上提出了基于Holt两参数法的攻击检测方法,并用于智能电网的虚假数据攻击检测;文献[20]采用标准卡尔曼滤波算法在线检测车辆控制系统的DoS攻击;文献[21]采用扩展卡尔曼滤波算法检测网联汽车GPS数据的DoS攻击;文献[22]集成卡尔曼滤波器和粒子群滤波器以设计车辆控制系统虚假数据攻击和非正常操作状态。现有基于卡尔曼滤波器的网联车巡航系统数据攻击检测方法大都假设已知系统噪声参数,且没有考虑实际噪声的变化情况,导致滤波器估计误差偏差大,进而影响网联车巡航系统数据攻击检测的准确性。笔者研究网联车巡航系统的数据攻击检测问题,特别是针对实际情况下网联车巡航系统测量噪声参数的随机性与未知性,提出一种基于自适应卡尔曼滤波的网联车巡航系统数据攻击检测方法。首先,对于网联车自适应巡航控制系统模型,分别建立随机数据攻击、隐蔽虚假数据攻击和DoS数据攻击的数学模型;其次,根据噪声的初始值和接收到的传感器测量值,估测出网联车巡航系统测量噪声的均值和方差,以此来降低噪声对数据攻击检测精度的影响,并通过改进状态估计方程得到新的状态预测值,利用自适应卡尔曼滤波器估计值计算估计残差,将残差进行归一化处理后作为新的卡方检测量,根据攻击阈值实现网联车巡航系统数据攻击在线检测目标;最后,结合网联车变速巡航工况仿真实验来验证所提出方法的有效性。
网联车纵向自适应巡航控制系统如图1所示。由图1可知:车载传感器实时测量本车车速、加速度和车间距等车辆信息,并将数据通过云端转发给后车。同时,云端也是监控端,根据接收的数据监控每一辆车的行驶状态。后车自适应巡航控制器根据接收到的数据,实时调整车辆行驶状态,实现网联车队自适应巡航控制。
图1 网联车自适应巡航控制系统
以B车为例,假设采用PID型自适应巡航控制器,其中控制变量为车辆的加速度,控制目标是实现安全车距和安全车速的自适应巡航。考虑双层结构车辆自适应巡航系统,建立车辆自适应巡航控制系统状态空间模型[1,4]为
(1)
式中h为安全车距策略的时间常数。假设dr为理想的安全车距,则h满足dr=hv。w=[w1w2w3]T为过程噪声;ε为量测噪声,假设两者都服从高斯分布,且满足的条件为
(2)
式中:E[·]为期望;Q为已知的过程噪声协方差矩阵;r为量测噪声均值;R为量测噪声方差,r和R均未知。
(3)
假设参数选择合理使巡航控制器具有良好的控制性能。与非网联ACC系统模型相比,模型式(3)增加了一项外部输入(即前车的加速度),该数据通过车载通信网络接收。获得前车的加速度信息有助于使CACC车辆保持更好的协同性,从而提高车辆的经济性和舒适性[24]。然而,通信网络中存在的丢包、衰减等问题,同样会影响数据的准确性,并降低车辆的控制性能。
考虑网联车巡航控制系统常见的随机攻击、隐蔽虚假数据攻击和DoS攻击[25]。后车可通过传感器测得与前车的相对车速,进而计算得到前车的速度,却无法测得前车的加速度,而只能依靠车联网的无线通信网络进行接收。因此,被攻击的目标可假设为网联车发送给云端的数据中的加速度值。攻击的目的一方面是为了欺骗监控端,另一方面是为了扰乱被攻击车辆后方的车队,引发事故。取ya为云端接收到的加速度值,并对3 种数据攻击进行建模。
1) 在随机数据攻击情况下,攻击者以最大程度地破坏车辆巡航控制系统状态为目的,而不关心是否会被攻击检测器检测到。随机数据攻击行为可建模为
(4)
式中τ为任意的加速度攻击数值,由攻击者随意设定。
2) 在隐蔽虚假数据攻击下,攻击者的目的是避开数据故障检测器,成功注入车辆巡航控制系统虚假数据攻击,具有很强的隐蔽性,其攻击模型为
(5)
(6)
对等式两边取模,可得
(7)
因此,当ρk=Cμk-1时,攻击可以在不改变残差模长的情况下,对巡航控制系统状态造成破坏。由于此类攻击下的残差处于没有攻击时残差的正常范围内,可以避开数据故障检测器的检测,故其极具隐蔽性。需要注意的是,在隐蔽虚假数据攻击的起始时刻,由于μ=0,因此该时刻的残差会发生变化,进而该时刻的攻击会被检测器检测到,但是从后一时刻开始,因为μ≠0以及ρ=Cμ,所以攻击具有了隐蔽性,可以避开检测器的检测。随机数据攻击和隐蔽虚假数据攻击这两者在形式上相似,但是攻击的复杂度不同。前者无需考虑任何约束,计算复杂度低;而后者需要考虑具体模型的参数,计算复杂度高,占用资源多。另外,巡航控制系统DoS数据攻击的目的是为了堵塞网联车与云端之间的通信网络,使得云端无法正常接收到数据,进而使后车巡航控制系统决策错误,攻击模型为
(8)
当攻击使得通信网络被堵塞时,将它作为丢包的情况处理,即云端接收到的数据中只有噪声。
卡尔曼滤波器以最小化估计误差为准则,利用系统输入输出量和已知模型参数估计系统状态[26]。标准卡尔曼滤波器需要提前已知过程噪声和量测噪声的统计特性,但网联车巡航系统在实际中噪声往往是未知且随机变化的,难以精确地获得其统计特性。为降低噪声的不确定性对估计器的影响,笔者采用基于量测噪声动态估计的自适应卡尔曼滤波器,它在利用输入输出量估计系统状态的同时,也估计包含在输出量中的量测噪声的统计特性,从而通过实时更新噪声参数修正估计器,进而降低估计误差。考虑网联车巡航控制系统的量测噪声未知,对量测噪声的均值r和方差R进行实时估计。采用次优MAP常值噪声估计算法[26],得到实时估计公式为
(9)
(10)
将式(9,10)中的算术平均用权重系数来代替。以rk为例,计算可得
(11)
(12)
将式(11,12)与标准卡尔曼滤波算法相结合,就可得到基于量测噪声动态估计的网联车巡航系统自适应卡尔曼滤波算法。当系统受到攻击时,直接使用自适应卡尔曼滤波无法区分攻击和噪声,即滤波器会把攻击当作噪声来估计,当攻击值足够大时,系统很可能会因为庞大的计算量而发生故障。为了解决上述问题,考虑在自适应滤波前增加判决条件,即当残差小于设定的阈值时,使用自适应滤波对噪声进行估计;反之,说明发生异常,有可能数据发生错误,也有可能系统受到攻击,此时停止对噪声的估计,采用上一时刻噪声的估计值。判决阈值的具体设定并不唯一,会随着环境的不同而发生变化,在实际应用中可根据具体环境进行调整。
本节分析常规卡方检测器对数据攻击的检测性能,并在此基础上提出了一种新的卡方检测法,用于检测网联车巡航控制系统隐蔽虚假数据攻击。
卡方检测器需要的变量可以直接从卡尔曼滤波器中得到,因此能够很好地与卡尔曼滤波器兼容,同时减少了检测需要的计算量。卡方检测器利用残差信号构建检测量,并将检测量与固定的阈值比较,以此判断是否受到攻击[25],具体原理为
(13)
(14)
常规数据攻击如随机数据攻击,将会改变网联车巡航控制系统z的值,但不改变β的值,因此σ的值会因为攻击而改变,当它超过阈值时,攻击会被检测出来。隐蔽虚假数据攻击在初始时刻之后的时刻既不改变z,也不改变β,所以σ的值不变,因此卡方检测器无法检测该攻击。
由于常规的卡方检测器无法检测网联车巡航控制系统隐蔽虚假数据攻击,而该攻击虽然不改变残差,但是会改变网联车巡航控制系统状态,因此考虑对巡航系统状态进行分析。结合网联车巡航控制系统模型(3)和自适应卡尔曼滤波,当网联车巡航系统未受攻击时有
(15)
当网联车巡航系统受到攻击时有
(16)
式中:ρk为k时刻的攻击值;μk-1为到k-1时刻为止因攻击产生的系统状态变化量。
(17)
(18)
(19)
至此,可以得到基于状态残差的卡方检测器,由于系统状态会因攻击而改变,因此该检测器能检测隐蔽虚假数据攻击。然而相较于常规的卡方检测器,它需要生成新的状态估计方程,并且无法直接从卡尔曼滤波器中得到攻击检测所需要的全部数据,因此需要更大的计算量,占用更多的资源。
为检验笔者提出的基于状态残差的新卡方检测器的检测效果,分别考虑随机数据攻击、隐蔽虚假数据攻击和DoS数据攻击,采用常规卡方检测器和新卡方检测器分别检测。仿真参数如表1所示,其中随机数据攻击、量测噪声和过程噪声由Matlab函数randn生成。
表1 仿真参数表
系统外部输入为前车的加速度。假设前车在0~10 s以0.5 m/s2的加速度起步,在20~40 s以1.2 m/s2的加速度加速,在60~80 s以1.2 m/s2的减速度减速,在其余时间保持匀速,加速度为0。
未受攻击时,车辆状态的变化情况如图2,3所示。由图2可知:在车辆起步和加速时,速度增大使得理想的安全车距增长,因此前车相对本车的速度为正,本车和前车拉开车距,且加速度越大,相对速度越大;在车辆减速时,速度减小使得理想的安全车距缩短,因此前车相对本车的速度为负,本车和前车缩短车距;在车辆匀速时,理想的安全车距不变,因此前车相对本车的速度为0,本车和前车保持稳定的车距。在整个过程中,云端的滤波器能很好地估计出相对速度。由图3可知:量测噪声使得滤波器接收到的加速度与车辆本身的加速度相比存在一定误差,而滤波器能有效地降低噪声的影响,使得估计值尽可能地逼近真实值。
图2 正常情况下的车辆相对速度估计
图3 正常情况下的车辆加速度估计
本节检验检测器对随机攻击的检测效果。攻击发生的时间段为10~40 s。图4,5分别展示了车辆加速度和相对速度的变化情况。由图4可知:未受到攻击时,云端的滤波器能有效地估计出加速度的值,同时降低量测噪声的影响;受到攻击时,滤波器接收到的加速度值因为攻击而极大地偏离了真实值,因此估计值和真实值之间也出现了很大的误差。然而,相较于攻击直接造成的误差(即接收值与真实值之间的误差),估计值与真实值之间的误差要小很多,这说明自适应卡尔曼滤波器具有弹性,对攻击有一定的抵御作用。攻击结束后,估计值能很快地逼近真实值。由图5可知:未受到攻击时车辆正常行驶,相对速度的估计值与真实值基本一致;受到攻击时,相对速度的估计值偏离真实值,出现明显误差;攻击结束后,估计值又很好地逼近真实值。
图4 随机攻击下的车辆加速度估计
图5 随机攻击下的车辆相对速度估计
两种检测器对攻击的检测情况如图6所示。由图6可知:两种检测器都能有效地检测出随机攻击。当系统未受攻击时,检测量保持较小的值;当受到攻击时,检测量的值瞬间增大。通过设定合理的检测阈值,可以及时、有效地检测随机攻击。
图6 随机攻击检测
本节检验检测器对隐蔽虚假数据攻击的检测效果。攻击从30 s开始,随着滤波器的迭代,攻击引起的状态变化量会越来越小,因此后续时刻攻击值会越来越小,当攻击降到噪声等级后,视为攻击结束。
在隐蔽虚假数据攻击下,车辆加速度的变化情况如图7所示。由图7可知:未受攻击时,加速度变化情况与4.1节类似。受到攻击时,在攻击的起始时刻,加速度估计值与真实值之间的误差最大,之后误差慢慢减少。在33 s左右,攻击结束,加速度估计值收敛到真实值。
图7 隐蔽虚假数据攻击下的车辆加速度估计
两种检测器对攻击的检测效果如图8所示。由图8可知:在未受到攻击时,两种检测器的检测量都保持较小的值,受到攻击时,卡方检测器的检测量在攻击的起始时刻瞬间增大,到下个时刻后,又立刻降到正常值,说明该检测器只能在攻击的起始时刻检测到攻击,这也验证了第1.2节中对该攻击的描述中的部分内容。新卡方检测器的检测量在攻击的起始时刻达到最大值,之后随着攻击的减小而减小,最后在34 s左右降到正常值。由此可得,新卡方检测器能有效地检测隐蔽虚假数据攻击,而常规的卡方检测器无法检测该攻击。
图8 隐蔽虚假数据攻击检测
本节检验检测器对DoS攻击的检测效果。攻击发生的时间段为20~70 s。在DoS攻击下,车辆加速度的变化情况如图9所示。由图9可知:未受攻击时,估计值能很好地跟随真实值;受到攻击时,滤波器接收到的数据中只有噪声,因此估计值无法继续跟随真实值;攻击结束后,估计值又快速收敛到真实值。
图9 DoS攻击下的车辆加速度估计
两种检测器对攻击的检测效果如图10所示。由图10可知:两种检测器都能检测DoS攻击。相较之下,新卡方检测器比常规的卡方检测器更加敏感。由DoS攻击的特点可知:当加速度为0时,DoS攻击不会对系统产生影响,因此在加速度为0的时间段内,检测量会回归正常值。
图10 DoS攻击检测
在检测随机攻击和DoS攻击时,由于新卡方检测法是基于状态残差的,而在攻击结束的时刻,系统状态中依旧存在攻击的残余分量,因此检测量不会立刻降为正常值。
提出了一种基于量测噪声动态估计的自适应卡尔曼滤波的检测方法来检测针对网联车辆的数据攻击。首先,构建了网联车辆跟车巡航模式下的动态模型,根据模型描述了包括隐蔽虚假数据攻击在内的数据攻击和DoS攻击;其次,采用自适应卡尔曼滤波器来降低量测噪声的未知性对估计的影响,并在此基础上提出了一种基于状态残差的新卡方检测器;最后,比较常规的卡方检测器和新卡方检测器对数据攻击和DoS攻击的检测效果。Matlab的仿真结果表明:常规的卡方检测器能检测随机攻击和DoS攻击,但无法检测隐蔽虚假数据攻击,而笔者提出的新卡方检测器能有效地检测上述3 种攻击。后续研究工作考虑在滤波过程中对过程噪声进行动态估计,并研究自适应卡尔曼滤波的判决阈值与噪声参数的关系。