对于自动驾驶汽车(AV),定位的安全性至关重要,它的直接威胁是GPS欺骗。幸运的是,当今的自动驾驶系统主要使用多传感器融合(MSF)算法,通常认为该算法有可能解决GPS欺骗问题。但是,没有任何研究表明当下的MSF算法在GPS欺骗的情况下是否足够安全。本文专注于生产级别的MSF,并确定了两个针对AV的攻击目标,即偏离攻击和逆向攻击。为了系统地了解安全性,我们首先分析了上限攻击的有效性,并发现了可以从根本上破坏MSF算法的接管效果。我们进行了原因分析,发现该漏洞是动态且随机地出现。利用这个漏洞,我们设计了FusionRipper,这是一种新颖的通用攻击,可以抓住机会并利用接管漏洞。我们对6条真实的传感器迹线进行了评估,结果发现,对于偏离和逆向攻击,FusionRipper在所有迹线上的成功率分别至少达到97%和91.3%。我们还发现,它对欺骗不准确等实际因素具有高度的鲁棒性。为了提高实用性,我们进一步设计了一种精巧的方法,该方法可以有效地识别出攻击参数,两个攻击目标的平均成功率均超过80%。我们还将讨论可行的的防御方法。
攻击工具:FusionRipper
尽管我们在前文(二)中的分析表明,在现实中确实存在MSF的接管漏洞,但此类漏洞仅出现在由不确定性因素(例如算法不准确和传感器噪声)造成的不确定时期内,而这种不确定性是无法通过观测得到的。因此,攻击者必须在实际的攻击中抓住和利用这种脆弱时期。利用这个知识,我们提出了一组新颖的攻击方法来攻破MSF,称其为:FusionRipper。
阶段一:漏洞分析
在此阶段,攻击者执行分析性的GPS欺骗,并观察受骗汽车对欺骗的反应以分析何时出现脆弱时期。在我们的设计中,尽可能减少攻击参数,尽可能地简化实现难度和增强鲁棒性,因此在此阶段我们使用恒定参数进行欺骗,即始终将δk^a设置为常量d。尽管这种分析方法很简单,但是我们稍后的评估结果表明,它能够实现很高的攻击成功率,非常接近理论上限。
在不断欺骗的同时,攻击者实时跟踪受骗汽车的位置,并测量他们相对于车道中心的偏离。如果这种偏差大到导致受骗汽车表现出不安全的驾驶行为,例如即将发生非必要的跨越车道行为,则将受害汽车视为处于脆弱时期。我们认为触碰当前车道的左车道线或右车道线(0.295米)的偏差作为确定脆弱时期的阈值。我们容易认为,经过设计和测试的自动驾驶系统很少会出现较大的位置偏差,因为其考虑到了常规情况下的传感器噪声问题。例如,百度Apollo在真实道路上评估的BA-MSF误差在0.054米以内,远远小于0.295米。因此,当出现这种罕见的偏差时,很可能是由于持续不断的欺骗造成的,MSF算法需要从GPS信号中获取数据更新,从而很可能导致其进入一个不确定的时期。
阶段二:攻击性欺骗
在确定了脆弱时期后,攻击者可以执行攻击性的欺骗来触发接管效应,从而迅速引起较大的偏差。如前文有效性分析所示,在接管效应期间,偏差呈指数增长。因此,我们在攻击性欺骗阶段选择指数增长的欺骗。如上图所示,一旦攻击者确定了一个脆弱时期,它便切换为使用
,基数在每个具体的欺骗点上设置的欺骗距离,i为递增幂次数。
普适性
由于FusionRipper旨在利用任何基于卡尔曼滤波器(KF)的MSF普遍存在的接管漏洞,因此其设计基本上适用于任何基于KF的MSF算法。
测试结果
我们使用真实世界的传感器轨迹评估FusionRipper,具体来说使用KAIST Complex Urban (评估自驾系统的数据集)。KAIST数据集包括18条普通轨迹和2条高速公路轨迹,都与BA-MSF兼容。我们选择3条本地轨迹和2条高速公路轨迹,将它们截短至最初的5分钟,以使评估易于管理。在选择局部轨迹时,我们选择平均MSF状态不确定性最小(即最可靠)的轨迹。
攻击成功率
上图显示了对于这两个攻击目标,d和f的所有组合中FusionRipper的最佳成功率。它既显示单个轨迹的结果,又显示所有轨迹的平均值(粉红色的粗线)。如图所示,对于所有轨迹,即使最小攻击持续时间低至30秒,两个攻击目标的平均成功率也始终超过75%。当最小攻击持续时间增加时,所有跟踪的成功率会相应增加。这是显而易见的,因为攻击者有更高的机会捕获易受攻击的时期。特别是,攻击持续2分钟时,至少存在d和f的一种组合,可以实现偏离攻击的成功率超过97%(平均98.6%),实现逆向攻击的成功率超过91%(平均95.9%)。在实际中,攻击者很有可能找到这种2分钟的拖延机会来发动FusionRipper攻击。
攻击参数选择
上表列出了每个轨迹的攻击成功率最高的3种参数组合。如表所示,FusionRipper的攻击效果对d和f的组合很敏感。这促使我们设计一种精确的方法来识别有效的d和f组合以提高攻击的实用性,这将在后面的中进行详细介绍。
攻击两阶段的必要性
高攻击效率是两个攻击阶段相结合的结果。为了具体解释这一点,我们对其进行了消融研究,在该研究中我们分别删除了实验的两个阶段之一。仅对于漏洞分析阶段,我们应用距每个起点的恒定溢出距离d。仅对于攻击性欺骗阶段,我们使用从起点开始直接枚举d和f的不同组合作为攻击参数。我们以ba-local的轨迹作为测试轨迹。
上表显示了该研究的实验结果。如表所示,两种单一攻击配置对于这两个攻击目标最多只能达到14%和7%,远低于FusionRipper的98%和97%。这意味着仍然有一些非常不确定的时期,使得只有阶段1或只有阶段2的攻击可以成功。但是,在没有彼此帮助的情况下,成功率非常有限。这具体表明了FusionRipper两阶段设计的必要性。请注意,由于花费在漏洞分析阶段上的时间,FusionRipper的攻击成功时间比仅阶段2攻击的攻击成功时间要长。但是,实际上平均约30秒的攻击时间对于攻击者来说已经是可以接受的。因此,这种时间优势远不如提高FusionRipper的成功率。
攻击参数分析
到目前为止,我们的结果表明对于每条轨迹,始终存在一个攻击参数组合d和f,可以实现高成功率,并且对实际因素具有很高的鲁棒性。但是,我们还观察到攻击成功率对攻击参数的选择很敏感。因此,我们需要一种可以在实际攻击之前有效识别出高成功率攻击参数的具体方法。因此,在本节中,我们探讨设计这种方法以进一步提高FusionRipper的实用性。
算法设计
我们的分析方法是按照一种简单的策略设计的:使用d和f的不同组合进行攻击试验,直到找到具有足够高成功率的组合。更具体地说,试验进行了许多次分析。在每一循环中,攻击者都选择d和f的一个组合并尝试多次。选择组合时,攻击者会按照参数空间中从小到大的顺序进行排序,因为较大的组合会更容易地被发现输入有异常,从而直接导致攻击失败。该方法的伪代码下述所示。
算法测试
我们使用前文中使用的5条KAIST轨迹(KAIST轨迹是使用同一车辆在不同道路上收集的)。我们将5条轨迹分为两组,其中4条为分析轨迹,即代表离线的攻击试验;1条为评估轨迹,用于评估分析轨迹中所选的d和f,即代表实际攻击,最后使用它们的平均成功率来衡量最终的剖析效果。
上图显示了算法分析输出的d和f作为攻击参数的平均成功率(柱状图),以及不同的攻击参数分析试验(一次实验为90秒)次数(条形图)。如图所示,平均成功率随着攻击者在每个分析回合中进行更多的攻击试验而增加,因为随着更多的攻击试验,d和f组合的配置成功率在统计上更接近真实值。尤其是,当每个分析回合的试验次数为40次时,我们的分析算法可以找到d和f组合,其中偏离和逆向攻击的平均成功率均超过80%(分别为84.2%和80.7%)。在这种情况下,平均分析成本仅为42个时间为90秒的攻击试验,即约为1小时。
防御措施讨论
GPS反欺骗
我们的攻击基于GPS欺骗,因此一个直接的防御方向是利用现有的GPS欺骗检测或防御技术。但是,如今GPS欺骗检测和预防都不能完全解决问题。在检测方面,已经提出了许多技术,它们利用信号功率监视,基于多天线的信号到达角检测或基于众包的交叉验证。但是,它们要么被更先进的欺骗器所规避,要么仅适用于有限的领域,例如机载GPS接收器。在预防方面,基于密码认证的民用GPS基础架构可以从根本上防止直接制造欺骗GPS信号;但是,它需要对现有的卫星基础设施和GPS接收器进行重大修改,并且仍然容易受到重放攻击的影响。
MSF和LiDAR
另一个防御方向是改良MSF算法和LiDAR定位,这是影响现实中接管漏洞的两个最重要因素。从根本上说,实际中的这种MSF算法中的不确定状态是由于LiDAR定位算法的不准确和传感器噪声引起的。并且正如我们的分析所示,即使对于当今自动驾驶汽车中使用的高端传感器和生产级LiDAR,这些误差和噪声也足够大且频繁,足以使FusionRipper得以利用。为了对此进行改进,需要在传感器和基于LiDAR的定位方面取得技术突破。
利用独立的定位源(例如基于摄像机的车道检测)作为不安全状态下的定位。
对于能够短期内实现的方案来说,一个有希望的方向是利用独立的定位源来交叉检查定位结果,从而充当不安全状态下的定位源。例如,由于偏离和逆向攻击都将导致受骗汽车偏离当前车道,因此应该可以通过基于摄像头的车道检测来检测故障,这是当今许多车辆模型中可用的成熟技术。但是,我们发现在当今的自驾系统设计中,并未普遍考虑使用这种技术。例如,百度Apollo(5.5版)仅将其用于相机校准,而Autoware则根本不使用它。这可能是因为车道检测输出是当前车道边界内的局部定位,因此无法直接用于与MSF的全局定位进行比较。但是,本文中发现的漏洞表明应考虑在将来的本地自驾系统中至少添加一种故障期的安全功能(至少用于异常检测)。当然,我们需要进行更多调查才能了解这种故障期的安全功能在防御中的有效性和可靠性。例如,当将基于摄像机的车道检测应用于异常检测时,由于需要仔细考虑由于变道需要而偏离当前车道的汽车。此外,还应当考虑车道线有可能不明显或不完整。此外,基于摄像机的车道检测本身很容易受到攻击。
请注意,即使此类故障期的安全功能可以执行完美的攻击检测,我们的攻击仍会导致受骗汽车的全局定位功能遭到拒绝服务。这可能使受骗汽车处于不安全的情况下,例如在高速公路车道中间停车,因为受骗汽车既无法正确到达目的地,也无法安全地找到路肩以停下来。因此,更有用的防御方向是纠正被攻击的定位结果。如何在攻击下利用其他独立的定位源来有效地进行这种校正仍然是一个挑战,这有可能是未来有价值的工作方向。