汽车、医疗设备、供水系统和电网的数字部件接连被证明可以被远程破坏,飞机的计算机系统一直是少有的例外。但一支学术研究团队用十多年时间验证了另一条思路:既然联网这条路走不通,那就沿用间谍与破坏者对付离线高价值计算机的老办法——偷偷获得物理接触,插上一个能悄悄运行恶意代码的装置。

在即将于 Usenix 安全会议上发表的论文中,来自加州大学圣迭戈分校与欧柏林学院的研究者展示了一套攻击手法:接管波音 737 的自动驾驶系统改变导航方向,或者悄悄篡改飞机起飞与燃油计算中的关键数值,同时在飞行员的屏幕上伪造正常显示。研究者认为,这些细微改动可能导致的后果,从起飞时冲出跑道、偏离航线进入其他国家空域,到坠机级别的事故。
15 秒够到端口,不到一分钟装好
为完成攻击,团队做了一枚硬币大小、带 Wi-Fi 功能的原型装置,成本不到 100 美元。不到一分钟,这个硬件植入物就能被装进飞机外部一个舱盖后方的端口——航班间隙里,维修人员以及机场和航空公司的其他工作人员都能常规接触到那个位置。装好之后,它可以在 737 的一条内部网络上发送电信号,向控制自动驾驶的敏感计算机系统伪造命令,也能篡改显示给飞行员的飞机总重、外界气温等变量,而这些参数在 737 的起飞计算中至关重要。
「如果给你 60 秒时间接触一架飞机,你能做什么?」项目负责人之一、圣迭戈分校计算机科学教授斯特凡·萨维奇这样描述最初的问题意识,「结果发现有一个从外部就能够到的端口。不用任何专门工具,大约 15 秒就能接触到。然后塞进去一片比硬币大一点的电子器件,基本上就能指挥自动驾驶做什么,同时对飞行员隐瞒飞行计划的变化。」
研究者没有公开他们针对的是哪个端口,也没有披露装置伪造命令的部分细节。团队与波音保持了密切沟通,六年多前就首次向对方披露了部分研究内容,还曾在波音的测试实验室里演示过这套攻击。
从入侵汽车起步,攒出一台航电测试机
这条研究路径的起点在十四五年前。团队部分成员当年首次演示了通过互联网入侵汽车计算机系统的方法,包括转向与刹车,那次概念验证直接推动汽车厂商改变了网络安全实践,包括设立漏洞赏金计划、聘请安全研究者排查缺陷。
汽车项目之后,时任圣迭戈分校研究员的基里尔·列夫琴科提议下一步去入侵飞机。问题在于预算:「我当时指出,我们总不能买架飞机停在停车场,但他不肯罢休。」萨维奇说。此后几年,团队在二手市场上搜罗这款客机的计算机部件,累计花掉数万美元,到 2019 年攒出了一套名为 Triton 的航电测试台——本质上就是一堆用线缆连在一起的 737 计算机部件。
差不多同一时期,圣迭戈分校教授亚伦·舒尔曼正在研究黑客装在加油站收银终端上窃取支付信息的信用卡侧录装置,由此想到类似的物理接触攻击或许也适用于飞机内部总线。沿着这个思路,他当时的学生萨姆·克罗翻遍数百页波音接线图,找到一个通常只有无锁舱盖保护的端口,它连接的那条总线承载着飞行管理计算机与多功能控制显示组件的数据。克罗随后在测试台上发现,接上这条总线后,只要发出比正常通信更高电流的电信号,就能用自己的指令覆盖原有命令。团队把这个手法命名为 Bus Driver。
藏在防尘盖下的 Wi-Fi 后门
2020 年春天,团队把发现通报给波音,此后多年持续同步进展。克罗不断改进装置,直到它小到能塞进那个外露端口,藏在防尘盖下面完全看不见。装置内含一块运行攻击代码的芯片和一个 Wi-Fi 无线电模块——理论上,它能通过飞机的机上 Wi-Fi 网络连上互联网,向控制者发出信号,实现远程操控。
成型后的装置可以不留痕迹地拦截、修改并伪造发往飞机敏感系统的命令:改写自动驾驶的航路点从而改变航向,或篡改飞机重量、外界温度这类变量,同时干扰多功能控制显示组件,让改动不出现在飞行员屏幕上。让飞行员以为外界空气更冷、载重更轻,737 就可能在跑道用尽前达不到起飞所需速度;缓慢的航向偏移可能让跨洋航班朝错误方向飞到燃油耗尽,突兀的改动则可能撞上山体。「可能细微到这种程度:你在太平洋上空,四处望去都是蓝色,而这让你偏离航线 3 度,然后你就到了荒无人烟的地方。」舒尔曼说。
研究者也指出,谨慎的飞行员几乎能从设想的所有攻击中恢复:手动接管可以覆盖自动驾驶,即便显示组件被入侵,正确数值仍会出现在驾驶舱另一块屏幕上。但舒尔曼补充,飞行员「会看到数据对不上,却完全不知道原因,这会非常令人困惑」。若攻击者的改动更细微,也可能要到来不及的时候才被察觉。
波音称风险有限,研究者建议先把端口堵上
被问及这项研究时,波音回应称已针对研究者的发现,对自身部件的设计、安装和接口做了内部审查,但淡化了这种物理接触攻击的现实风险。声明写道:「我们的技术专家确信,飞机上已有的多层防护,包括系统设计层面和运行环境层面,提供了足够的缓解措施,能显著限制现实世界攻击的可行性和风险。」
研究者则表示,波音没有告知他们针对这些漏洞的任何技术修复方案,他们推测公司未来数年也未必会真的推送此类更新,毕竟商用飞机很少重新设计。不过,缺少即时安全更新并不意味着需要恐慌或停飞。论文引言里写着一句话:「本文所有作者都经常乘坐波音 737 飞机,并且预计将继续这样做。」
论文列出的修复思路中,最简单直接的是拆掉这个端口里的连接器,或者用环氧树脂把它堵死。更长期的方案包括在飞机系统软件中加入针对 Bus Driver 手法的检测能力,像部分军用飞机那样做更彻底的电气隔离,或者为系统间信号加上密码学认证以防伪造。萨维奇更看重的是运行层面的改变:「这是航空业需要提前规划防御的事情,我不会对这一条掉以轻心。」
曾担任美国网络安全和基础设施安全局顾问、也做过波音行业网络技术委员会成员的安全顾问博·伍兹在论文发表前读过这项研究,评价其「看上去是关于高能力对手现实攻击场景的扎实实证」。「完全有可能出现这样的情况:一名在职员工趁飞机停场维护时走过去,把这类东西装进去。」在他看来,随着攻击者技术能力进步,任何高度敏感系统的威胁模型都必须随之更新——现在已经可以把一整套能连上飞机 Wi-Fi、向其系统转发命令的硬件,装进一个不起眼插头的防尘盖里。「20 世纪的威胁模型,很少能在 21 世纪的工具和手法面前存活下来。」伍兹说。
来源:WIRED



