UCI研究人员利用漏洞攻破多传感器融合定位算法
自动驾驶领域目前最强的MSF(多传感器融合)定位算法,再次被攻破了。
攻击之下,平均30秒内,正常行驶中的自动驾驶汽车就撞上了马路牙子:
不仅GPS被忽悠瘸,LiDAR、轮速计和IMU一起上都没能阻止。
并且,攻击算法的成功率竟然达到了90%以上。
连多传感器融合定位算法达到SOTA的百度Apollo,在仿真环境也中了招。
这项最新研究,来自加州大学尔湾分校(UCI),目前已发表在信息安全领域四大顶会之一的USENIX Security 2020上。
多传感器融合如何被忽悠?
GPS欺骗是目前常见的一种攻击手段,并且在智能手机、无人机、游艇,甚至特斯拉汽车上都能生效。
有调查显示,自2016年以来,在俄罗斯就发生过9883起GPS欺骗事件,影响了1311个民用船只系统。
不过,在自动驾驶业界,研究人员们通常认为多传感器融合(MSF)算法,能有效对抗GPS欺骗。
但加州大学尔湾分校的研究人员们却通过仿真环境测试发现,桥豆麻袋,这里面还有漏洞可以钻。
MSF方法安全性分析
研究人员通过实验分析发现,由于传感器噪声和算法误差等实际应用中存在的动态因素的影响,MSF会出现可信度相对降低的窗口期。
在此期间,GPS欺骗能够导致MSF输出的偏差呈指数级增长。
根据分析日志,研究人员发现,在这种情况下,LiDAR输入实际上变成了离群值,无法提供修正。
也就是说,被忽悠瘸了的GPS在某种程度上成了自动驾驶汽车定位的主导输入源,会导致多传感器交叉验证的机制失效。
研究人员称此为接管效应(take-off effect)。
FusionRipper攻击方法
基于接管效应,研究人员设计了名为FusionRipper的攻击方法,能够抓住接管漏洞出现的窗口期,对行驶中的自动驾驶车辆进行攻击。
攻击方式有两种:
其一,是车道偏离攻击。目的是让目标自动驾驶汽车向左或向右偏离车道,直至驶出路面。
其二,是错道攻击。目的是让目标自动驾驶汽车向左偏离,驶入逆向车道。
攻击一旦成功,造成的危险是显而易见的:撞上马路牙子,掉下公路悬崖,撞上对向来车……
需要说明的是,在这项研究中,研究人员假设攻击者可以发起GPS欺骗来控制目标车辆的GPS定位,导致受攻击的GPS接收机输出置信度高但实际误差大的位置信息。并且,攻击者可以在攻击过程中实时跟踪受害车辆的物理位置。
攻击方法具体分为两个阶段。
首先是漏洞分析。在这一阶段,攻击者开始GPS欺骗,并在MSF可信度下降的窗口期出现时,测量目标自动驾驶车辆的反馈信息来进行分析。
识别出窗口期之后,就进入攻击性欺骗阶段,即攻击者开始进行指数级欺骗,以触发接管效应,快速诱发出最大偏差。
FusionRipper有多猛
那么,这样的攻击算法,成功率有多少呢?
研究者们首先采用了6种真实世界里的传感器,在仿真环境中对FusionRipper进行评估,每次实验的时间为2分钟。
其中,攻击成功的结果分为偏离正常车道行驶、和驶入逆向车道两种。
也就是说,在2分钟内,如果攻击算法让车子偏离了车道、或是开到了逆向车道上,那么攻击就成功了。
如下图,两种攻击方式分别可以实现至少97%和91%的成功率。
也就是说,在FusionRipper的攻击下,跟车2分钟内,自动驾驶汽车就有97%的几率偏离车道行驶,91%的可能开到逆向车道。
不仅如此,与其他攻击算法对比的结果发现,FusionRipper甚至能完美攻击目前「最强的」自动驾驶算法。
在3种比较先进的MSF算法上,研究者们将FusionRipper和普通的随机攻击算法进行了对比测试。
下图是测试的结果,可以看见,在JS-MSF和ETH-MSF这两种自动驾驶算法上,普通的随机攻击还是很有用的,导致车辆偏离车道的成功率会比导致其逆向行驶的成功率更高。
然而,当普通的随机攻击算法遇上BA-MSF后,就「蔫了」,从图中显示的数据结果来看,成功让汽车偏离车道、或是逆向行驶的几率,只有3.7%和0.2%。
相对的,FusionRipper算法却依旧保持了强劲的势头。
即使在面对BA-MSF时,FusionRipper也有97%的几率让自动驾驶汽车偏离轨道。
事实上,由于这种算法对攻击参数的选择非常敏感,研究者们提出了一种离线方法,可以在实际攻击前选出高效的攻击参数。
当然,这让攻击条件本身也受到限制,攻击者需要拥有与受害者型号相同的自动驾驶车辆,也就是需要有相同的传感器组,攻击才能被完成。
如下图,测试结果表明,这种离线方法在攻击时,最终能成功实现偏离车道和发生逆行的概率都至少能达到80%以上。
听起来,这个漏洞后果很严重,不过研究者表示,能找到解决的办法。
这种攻击的根本原理,依旧是GPS信号欺骗。
如果利用现有的GPS信号欺骗检测技术(例如监控信号功率、基于多天线的信号到达角度检测、或基于密码认证的GPS基础架构),某种程度上可以进行防御,但这些现有技术,都无法完全解决问题。
从根本上来说,需要提高的是MSF的定位置信率,这是克服系统弱点的唯一方法,但尚不清楚目前何时能实现这样的突破。
不过,通过独立的定位源来交叉检查定位结果、减轻攻击,仍然是一个可行的方向,其中一种方法就是基于摄像头的车道检测。
当然,要实现这样的攻击,成本其实也并不低。
据作者介绍,硬件方面主要包括两个部分:价值在2500美元(约合1.7万人民币)左右的高端GPS spoofer,以及一辆能够实时跟车、精准定位目标车辆的自动驾驶车辆。
所以,研究者表示,文中提到这种攻击算法可能被应用的一种比较现实的情况,是攻击者是自动驾驶行业的竞争对手。
瞄准最强自动驾驶开源系统
不挑特斯拉,不选谷歌,团队这次专门挑了百度的Apollo下手,原因何在?
对此,论文一作、UCI在读博士生沈骏杰表示,选择Apollo的原因,其实比较现实:它的系统开源。
Apollo有着目前世界上最大的自动驾驶开源社区,影响范围广、便于研究。
当然,选择Apollo的原因也不仅于此。
百度Apollo MSF(BA MSF),刚好是生产级多传感器融合算法实现的经典案例。
这次用来实验的Apollo系统,已经通过了现实中厘米级精度的评估,不仅算法定位的方式非常先进,而且是基于MSF的定位算法中「最靓的仔」(SOTA)。
不仅如此,Apollo工程师此前也用实验证明,其自动驾驶系统可以通过多传感器融合等方式来防御GPS信号欺骗。
能带偏毫无防备的自动驾驶系统,那不算什么。
但,如果能拐跑这种自带防御能力的高级系统呢?
在这种情况下,Apollo就算是躺着也能「中枪」了:
研究团队的算法,直接就带偏了「多传感器融合」这一防御算法。
他们在实验时,特意将Apollo作为一个案例,并发现通过特定的GPD信号欺骗方式,可以让汽车在某些情况下发生大于10m以上的偏移,并且这种攻击成功率在90%以上。
作者表示,目前他们已经联系了29家自动驾驶公司,就这一新攻击算法进行了交流。在收到的回复里,已经有17家开始针对这个问题展开调查。其中有1家已经开始着手研发防御/缓解手段。
这种攻击有现实可行性吗?
百度Apollo也同样和研究团队进行了一系列沟通。
对于这项技术,Apollo官方回应,在接到研究报告的第一时间,出于对人身安全、无人车安全的极大重视,他们已经在现实环境中对实车进行了测试。
不过,与研究团队给出的仿真结果不同,Apollo的工程师发现FusionRipper对实车并没有影响。
Apollo方面还进一步进行了解释:无人车是软、硬件结合的产物。真正投入运营的车辆,无论是硬件设备还是软件系统,与实验室条件完全不同。
在实际测试,Apollo实车采用RTK GPS技术,该技术定位精度在厘米级别,远高于平常所用的GPS接收器的米级别精度。如果受到论文所假设的欺骗干扰,不能产生厘米级置信度的错误RTK。
如果试图欺骗GNSS接收机并产生错误的RTK结果,需要极高的硬件成本,对抗数十个卫星校验,以及车上双天线校验,理论上几乎不可能完成。最后,Apollo有多传感器融合和GPS伪造检测能力辅助识别欺骗。
另外,Apollo工程师指出,该项研究采用的Apollo MSF是2018版本,之所以能在仿真场景中攻击成功,是因为当时版本中的MSF并未实时将LiDAR等传感器数据与GNSS位置信息进行强校验。
而在最新的工程实践中,Apollo已经对此完成了优化。即使攻击者通过近距离长期尾随自动驾驶车辆,并持续发射GPS欺骗信号,导致无人车车载高精度接收机的所有信道都被欺骗,最终位置输出偏差,MSF也可以通过新增的相对稳定、不受外界干扰的激光定位作为观测值强校验,进行规避。
Apollo方面还建议,类似的硬件安全研究,应该在真实环境中进行进一步测试,以便最终落地工业。为此,Apollo未来也计划与各个高校建立合作。
说到底,把自动驾驶车辆忽悠瘸,本就不是攻防研究的本质目的。
挖掘现有方法背后的安全问题,让自动驾驶系统更加安全,才是相关研究的意义所在。
相信开放的技术交流、合作,也会让我们离更加安全的自动驾驶更进一步。