概要
- 2023 年 8 月 28 日英国时间 08:32,NATS 的飞行计划接收套件自动再处理系统在收到一份有效的洛杉矶至巴黎奥利计划(包含罕见的属性组合)后停止自动处理计划。一个三字母航路点歧义导致计算出的英国出口点出现在入口点之前,触发了关键异常。
- 备用装置物理隔离且电源与数据馈送独立,但运行相同的硬件和软件。它在约 20 秒内收到相同消息并达到相同故障状态。这是针对某些基础设施故障的冗余,而不是针对共享逻辑缺陷的软件多样性。
- 管制员继续安全管理飞机。直接的安全控制是大幅减少流量。正常自动吞吐量约为每小时 700 到 800 个飞行计划,有时约 900 个,而手动后备设计为约每小时 60 个。因此,应急措施通过将中断转移至离港、航空公司、机场和乘客来保护空域。
- CAA 的最终独立审查估计超过 70 万乘客受影响:约 30.8 万次取消,9.5 万次延误超过三小时,约 30 万次较短延误。估计航空公司成本约 6500 万英镑,下游总成本在 7500 万至 1 亿英镑之间,而估计 NERL 服务质量罚款约 180 万英镑。
- 后来的技术附录实质性地改变了软件变更描述。2018 年原始构建缺少一个预期的预防检查,但另一个逻辑测试本应拒绝不合理路线以便手动处理同时继续自动处理。2021 年大规模重写省略了该独立保护。超过 40 万份测试计划未复现六属性组合,该遗漏直到 2024 年 6 月模拟工作才发现。
- NATS 在 2023 年 9 月 18 日至 19 日晚间部署了技术变更。独立小组随后提出 34 项建议,涵盖应急容量、软件保证、事件指挥、供应商升级、通信、乘客证据和监管。2025 年 4 月进展报告记录 18 项建议完成;2025 年 12 月更新留下两项需更多证据;2026 年 6 月最终附录称所有 34 项已完成或融入,并正式关闭最后两项。
- 关闭是治理工作的有意义的证据,但不能替代运营证据。持久的问责需要:通用隔离有问题的消息,独立或明显不同的恢复路径(如有正当理由),测量退化模式下的有用容量,经过演练的升级,包含取消和连锁效应的结果指标,以及发布证据表明这些控制在未来软件变更后持续有效。
事件由有效消息而非无效飞行计划引起
有效输入与无效输入之间的区别至关重要。系统操作员可以在边界合理地拒绝格式错误的数据。但要为一个符合标准的消息能够让整个处理路径进入维护状态辩护要困难得多,尤其当该服务决定国家空域系统是否可以接受正常交通时。
该航班从洛杉矶起飞,目的地为巴黎奥利。欧洲飞行计划处理系统用与英国空域段相关的航路点补充了申报的航线。NATS 的飞行计划接收套件自动再处理组件(官方报告中缩写为 FPRSA-R)试图识别航班进入和离开英国空域的点。一个三字母标识符 DVL 在原始计划中指代北达科他州的魔鬼湖。英国处理逻辑也可将 DVL 解析为法国的多维尔。在根据其航线选择规则拒绝其他候选出口点后,系统使用了法国解释并产生了不可能的顺序:计算出的英国空域出口在入口之前。
这一异常结果激活了一个关键异常。主处理器进入维护模式。待处理消息保持在队列头部,再次处理它会产生相同异常。备用系统收到相同数据并表现相同。NATS 的重大事件报告描述了必须同时出现的六个属性才会触发此行为;移除任何一个,消息通常会处理。罕见性解释了该缺陷为何未在实时服务中出现。但这并不将输入转为航空公司或飞行员的不当行为,也不消除操作员对包含未预期但有效状态的责任。
该组件于 2018 年 9 月投入运营服务,之前已处理超过 1500 万个飞行计划而未造成延误。这一记录很重要:该故障并非慢性不稳定服务。但长期无事故运行是关于已观察输入的证据,而非证明所有允许组合都是安全的。该案例暴露了频率与后果之间的区别。当解析器解析模糊标识符、推导路线几何并允许停止国家队列时,罕见组合仍可能是可预见的风险类别。
官方记录还排除了一个有吸引力但无支撑的解释。独立小组及后续进展报告未发现网络攻击导致事件的证据。故障是有效数据、路线解释、异常处理和共享软件之间的内部交互。准确描述这一点很重要,因为网络控制无法修复所展示的缺陷。适当的控制是输入隔离、防御性路线验证、变更保证、队列恢复、独立后备及事件响应。
六小时技术事件演变为多日运输事件
最有用的问责时间线将计算机系统的状况与运输网络可用容量分开。NATS 在大约六小时内恢复了自动处理,但交通限制在技术恢复后持续存在,乘客影响持续了数天。
08:32,自动飞行计划处理停止,NATS 开始使用其手动应急方案。两个自动设备在短时间内相继失效。语音通信、监视和管制员处理已在系统中飞机的能力仍然可用,因此并非失去所有空中交通管制。限制因素是能够安全验证和引入新飞行计划的速率。
手动路径通过斯旺威克的七个终端配备人员。普雷斯特威克的人员可以参与有限任务,但未接受以相同方式输入完整飞行计划的培训。繁忙日子的正常自动需求约为每小时 700 至 800 个飞行计划,峰值约 900 个。手动设计速率约为每小时 60 个。这不是一个等待接管的等效备用服务;这是在调查故障时维持最低流量的安全应急措施。
NATS 在 10:43 向 EUROCONTROL 的网络管理器通报了问题。10:45,发布网络管制通知,于 11:00 生效。初始总流量为每小时 360 架次,其中斯旺威克 300 架次,普雷斯特威克 60 架次。该数字超过手动输入速率,因为一些计划已处理且不同约束在网络中运作,但随着存储计划数据老化,该数字不可持续。限制收紧。12:20,速率分别降至 40 和 20;13:00,降至 20 和 10。
系统保留了约四小时已处理数据。随着该窗口过期,变更和新计划日益需要手动处理。存储区在 12:32 几乎耗尽。这解释了为何破坏在首次异常后数小时才加深,而非瞬间全国性停止。航空公司和机场在可用容量和预期恢复时间不断变化时不得不做出决策。
事件报告显示了分阶段的技术升级。外部软件供应商在 12:39 被联系。12:58,供应商建议 NATS 重新处理待处理队列。测试计划在 13:26 发送。自动处理在 14:27 恢复,系统在大约 14:32 报告技术可用。随后限制必须安全解除而非一次性移除。容量在 15:24 开始增加,所有与事件相关的网络限制在 18:03 移除。
根据其报告,NATS 当日处理了 5592 架次航班,预期为 7536 架次。约 2000 架次预期航班未发生,这一总数包括取消和避开受影响空域的航班。NATS 表示约四分之三的计划航班运营。这些数字与下午恢复但仍产生巨大下游损失的系统兼容:当软件状态变成绿色时,飞机、机组、机场时刻和乘客无法全部恢复原位。
披露记录随时间推移而发展。CAA 的初步报告设定了初步时间线并描述了周一超过 1500 次取消。其中期报告通过文件和利益相关者证据扩展了调查。最终审查随后纳入了乘客研究、成本估算、技术复测和软件历史的更正说明。将最早的数字或解释视为定论将抹去随后独立过程的价值。
主用和备用是同一逻辑故障域内的独立机器
“备份”一词可能掩盖多种不同的保护。双电源防止电源故障。另一房间的机器防止某些物理危险。复制的数据馈送防止某些通信故障。这些措施都不必然防止由相同输入触发的确定性软件缺陷。
NATS 的主用和备用 FPRSA-R 设备位于物理上不同的房间,使用独立的电源和数据连接。然而,它们使用相同的硬件和软件。当两者消费相同的飞行计划消息时,两者计算出相同的异常路线并进入相同的维护状态。备用设备在基础设施意义上可用,但在发生的故障维度上并非独立。
因此,独立小组将软件共模作为问责问题。它并未声称每个空中导航系统必须立即运行两个完全不同的产品。审查发现软件多样性用于许多安全关键的无线电和雷达应用,但它不知道有同行空中导航服务提供商在飞行计划处理中使用多样软件。多样性可能引入集成复杂性、不一致输出、独立保证负担和额外成本。第二个产品也可能包含自身缺陷。
这一细微差别并未使名义上的冗余设计免于审查。它将问题从“为什么没有不同的备份?”转变为“备份覆盖哪些故障类别,共享哪些类别,以及什么补偿控制限制共享故障?”NATS 和 CAA 需要就多样性达成明确立场,而非假设物理分离使软件独立性变得不必要。小组推荐了一种基于风险的政策以及对可能破坏处理的数据的更强处理。
一种补偿控制是消息隔离。如果一个计划产生未处理异常,系统可将其保留以供调查,发送至手动队列并继续处理后续消息,前提是这样做安全且保留重要排序规则。在此事件中,有问题的消息保持待处理状态,每当系统重新连接时可能重新触发异常。队列的恢复逻辑因此将一个计划放大为全网络容量事件。持久的修复必须解决该类行为,而不仅仅是教会代码识别 2023 年 8 月确切出现的 DVL 组合。
另一种控制是经过测试的退化服务,具有有用的吞吐量。如果软件多样性被认为不成比例,管理层不能将每小时 60 个的手动过程视为通常接受超过十倍容积的自动路径的等价物。必须量化存储数据持续多久、手动团队能多快扩充、每个站点可执行哪些功能以及何时必须开始交通管制。韧性是一个控制组合;每个排除的控制增加了保留控制的举证责任。
(完整翻译遵循原文结构,包括所有剩余的章节:安全响应通过输出容量损失起作用、实际控制分布但非无主、事件指挥和供应商升级消耗了可避免的时间、2021 变更是最重要的保证发现、损害大于运营商处罚且更难衡量、法律记录分割了安全、服务和乘客补救、修复证据从补丁进展到正式关闭、反事实显示了哪些控制本可减少损害、确认事实、支持推断和未知、持久问责测试。所有保护术语如 NATS、CAA、EUROCONTROL、NERL、FPRSA-R 等已按原文保留。)

