写点什么

来自外太空的计算错误:宇宙射线干扰了我的心脏起搏器,我差点因此丧命

  • 2023-05-13
    北京
  • 本文字数:6734 字

    阅读完需:约 22 分钟

来自外太空的计算错误:宇宙射线干扰了我的心脏起搏器,我差点因此丧命

地球遭受来自太阳及太阳系以外的亚原子粒子袭击会是导致我们手机和电脑小故障的原因,而随着技术发展微芯片越做越小,这种风险也在增加。


啪。她胸口的一处肌肉抽搐了一下。啪。又一下。Marie Moe 不仅能感觉到,甚至还能低头看到,就在她胸骨左侧的肌肉在明显地抽动,伴随着剧烈的心跳节奏而抽搐。这位网络安全研究员当时正在一架飞机上,离目的地阿姆斯特丹还有大约 20 分钟的旅程。她在恐慌中当即意识到是自己的心脏起搏器出了问题,这个植入她胸口的小小医疗设备依赖电流脉冲稳定着她的心跳。难道是其中一个连接起搏器和她心脏的电线断了或者松了吗?Moe 示警了机舱乘务,他们很快便在机场安排了一辆救护车等候她。他们说,要是飞机离阿姆斯特丹再远一点,飞行员就会在另一个机场紧急降落。当 Moe 被送到附近的一家医院后,医生对她做了详细的检查。一位心脏起搏器的技术员很快找到了问题的所在:在这个装置中用于存储起搏器数据的微型计算机,一个对起搏器运作至关重要的部分,不知为何坏掉了。


至于 Moe,她认为最有可能造成这起事故的嫌疑人是来自外太空的宇宙射线:一连串的亚原子粒子就像是斯诺克台桌上的球一样,在地球大气层中相互碰撞,而其中一个球在飞行途中撞上了她心脏起搏器中的内置计算机。理论上来说,粒子在撞击时造成了电子不平衡,修改了计算机的内存,并最终让她体内救命技术在除硬件外都永久变得面目全非。


计算机故障时,人们常常都会认为是软件的问题,编程出了错之类。但电离辐射,乃至于从太阳中发射出的质子射线,这些都有可能导致故障。这种情况被称作是“单粒子翻转”,是极为罕见的,再加上宇宙射线没有留下任何痕迹,我们不可能确定它们是否真的与故障有关。但人们还是将其当作是许多特殊计算机故障案例的潜在罪魁祸首。如为某位候选人凭空增加数千张选票的计算机,或者是飞行途中骤然下降数百英尺、导致几十名乘客受伤的商业客机。



太阳耀斑(图左侧的爆裂)和太阳上的物质喷发都被称作是日冕物质抛射,是太空中高能粒子的来源之一(图源:美国国家航天局)


人类社会只会愈发依赖电子科技,宇宙射线对人类生活方式的潜在风险也愈发值得考量。主要原因在于,随着微型芯片技术不断小型化,破坏数据所需的电荷数量也在变小,宇宙射线也会更容易对其造成影响。除此之外,来自太阳的巨大抛射有时会向地球发送大型粒子波,也就是所谓的空间天气。在不远的将来,我们会遇到更多因大规模磁暴而导致的计算机故障。Moe 所遭遇的心脏起搏器事故发生在 2016 年,她在出院后收到了起搏器制造商的详细故障分析报告。已经成为网络安全公司 Mandiant 高级顾问的 Moe 回忆道:“我就是从这份报告中了解到比特翻转的”。数据在起搏器的内存中以比特的形式存在,也就是人们常说的“0 和 1”。根据故障报告中的解释,部分比特的颠倒或翻转导致数据变动,并最终造成了软件出错。就像是在房间的一长串电灯中,按错了一端摇杆的开关,房间的某个部分会一直处于黑暗中。软件的错误致使起搏器进入了“备用程序模式”,并以默认每分钟 70 次的频率为她的心脏起搏,“因此导致了非常难受的抽搐,”Moe 解释道。起搏器的技术人员在医院维修时,不得不先将设备恢复出厂设置,并在后续重新为适配 Moe 的心脏重新调整配置。然而故障报告中并没有给出明确的结论,到底是什么导致了这些关键比特被翻转,仅仅是将宇宙辐射当作是一种可能性。“很难百分百确定,”Moe 说,“我没办法给你更多解释。”


在 2008 年一起传播甚广的事故中,澳航一架飞机在西澳大利亚上空时,仅十分钟便两次骤降数百英尺,造成机上数十名乘客受伤。


人类最早认知到这类故障的存在至少可以追溯到十九世纪七十年代,研究者论证来自外太空的辐射可以影响卫星的计算机。这类辐射形式不一,来源也各异,并不局限于我们的太阳系系统。其中的一种情况是:地球大气中的原子受到来自太阳抛射时质子的撞击,从原子核中释放出中子。这些高能中子本身不带电荷,但是在它们撞击其他粒子后会引发携带电荷的二次辐射。计算机内存设备中的比特有时会以一个小小的电荷形式存在,这些空气中的二次辐射可能会造成比特翻转、状态转换,从而造成数据变动。


扩展阅读:



地球大气层替我们抵挡了大部分辐射,而随着高度的增加,宇宙辐射也会增强。比如飞机上的人们相比在陆地上,会更多地暴露在这类辐射中,这也是为什么飞行人员每个月能飞行的时间是有限的。但 Moe 也强调道,如果这种亚原子干扰真是她的心脏起搏器故障的原因,那这种情况一定非常罕见。


“植入心脏起搏器的益处远远高于了风险,”她补充道,“实际上我会更信任我的装置,我知道它会有备用计划以防万一代码出差错。”


但从理论上来说,宇宙射线对其他计算机却可能造成毁灭性打击。在 2008 年一起传播甚广的事故中,澳航一架航班在飞行至西澳大利亚上空时,仅十分钟便两次骤降数百英尺,造成机上数十名乘客受伤,多数伤者在事故发生时并未坐在座位上或系好安全带。乘客之中有的四肢挫伤,或头部撞击机舱内壁,一名系好安全带的孩童因剧烈颠簸导致腹部受伤。


在澳大利亚运输安全局的调查中发现,在、飞机颠簸之前,机载系统根据错误的计算数据误判了飞机的实际飞行角度,从而导致了机头两次俯冲。至于导致这起事件的根因,报告称“证据不足以断定是‘电离粒子更改数据’从而导致事故发生”,没有完全否定其可能性。而至于其他可能性,研究人员要不将其判定为“极其不可能”,要不就是“不可能”。



太阳耀斑产生的高能粒子与大气层相互作用,让地球两极上空出现激光(图源:Alexander Gerst/ESA)


类似的案例还有比利时选票收集机器,在 2003 年一次选举中给一位候选人增加了 4096 张选票,有些人推测这也是电离辐射干扰计算机的结果。


另外,曾在 2013 年挑战《超级马里奥 64》游戏最快通关记录的玩家,操作的角色在游戏中突然离奇闪现到半空中,追溯后发现是用于判断这个小胡子角色在任何时间的三维位置数据发生了反转。数据分析几乎没有给出任何关于这种“上翻”行为的解释,因此在该事件的讨论中出现了宇宙粒子干预游戏盒的可能性。


最近,在 Mozilla 软件工程师 Travis Long 在他发布于 2022 年四月的博客中称,公司的火狐浏览器定期从用户使用中收集到的遥测数据里,有时会包含难以解释的错误,就像是有个别的比特被翻转了一样。Long 称,最近这种疑似因比特翻转导致的 bug 与一场地磁暴的出现相吻合。


“我甚至怀疑我们能从这些遥测数据中的单粒子反转事件反向探测到一起宇宙事件。”Long 如是写道。


或许电离辐射真的是这些事件的幕后黑手,即使是我们在互联网上浏览都有可能遇到比特翻转的情况。目前供职于 Trail of Bits 公司的网络安全研究者 Artem Dinaburg 在 2010 年便意识到了这个问题的存在,他注册了一批与许多常用域名仅有一字之差的错误域名。


以“bbc.com”为例,不小心打错字的话会变成“bbx.com”,毕竟在英文键盘上“x”紧挨着“c”。但对比特错误来说却完全不同,比特错误意味着“bbc.com”中一个字母都至少有一位二进制编码错误。字母“b”的二进制编码是“01100010”,字母“c”的二进制编码是“01100011”。假如我们只翻转字母“c”最右侧的比特,将其从 0 变为 1,那么将得到“b”,而网址则会变为“bbb.com”。


世界上很多计算机中都存在单比特错误,有时也会有多比特错误,并且会影响软件在搜索的域名。– Artem Dinaburg


比特翻转存在于计算机内存之中,它本身对于用户并不可见,人们最多关注到其结果。以网站链接为例,比特翻转可能发生在各种不同阶段,无论是电脑在因特网上请求网站页面,还是所连接的网络服务器对请求做出相应。


在 Dinaburg 注册了一些经过比特翻转的域名之后,他便开始守株待兔了。“令我震惊的是,(这些网址)真的收到了连接请求,”他回忆道,“在世界上很多电脑中都存在单比特错误,有的还有出现多比特错误,如果这些翻转发生的时间地点过于巧合,那么它们真的会影响到软件所搜索的域名。”


但在上述所有例子中,我们都没办法证明真的是宇宙粒子造成的影响。或许有人会倾向于这种解释,但其他更普通的理论显然更容易让人接受。Dinaburg 认为,计算机内存错误也可能是他实验记录中网络连接背后的原因。


去年,经历过 2013 年超级马里奥离奇 bug 的游戏速通者在 YouTube 上发布了一段视频,他的游戏在进行到一半时卡死了。视频的标题“真的是电离粒子吗?”似乎在暗示这次速通失败只是一起普通游戏 bug。同是速通游戏玩家的 pannenkoek2012(网名)提供 1,000 美元(900 英镑),悬赏任何可以解释 2013 年马里奥突然浮空事件的人,虽然其本人“更倾向于是硬件故障”,而非宇宙粒子。


在一定情况下,确实有确凿的证据证明是多个比特翻转导致的辐射。为返回卫星,一组研究团队近期调查了一颗卫星在轨道飞行的两年时间内,记录的两千多个比特错误,并于 2020 年发表了研究成果。这些数据错误会在卫星飞行途中被自动纠正,但如果没有纠错,它们将造成飞行器位置计算错误。


研究团队通过研究卫星的内存记录,在轨道路径上标记了错误发生的时间和地点。其中有大量错误点出现在一个叫南大西洋异常点(SAA)的区域,该地区表面强烈的宇宙辐射对卫星和航天器的计算机系统造成了破坏。据美国国家航天局称,宇航员曾注意到,当航天飞机(已退役)经过 SAA 时,他们的笔记本电脑有时会崩溃。



至少一起商业航班在飞行途中所遭遇的机载计算机数据篡改被怀疑与单粒子颠覆事件中的高能粒子有关(图源:Alamy)


但在陆地上,单粒子颠覆事件的发生就显得更加随机,也更难证明宇宙射线有参与其中。对于意大利特伦托大学的 Paolo Rech 来说,我们周围的放大的亚原子粒子滑动性并不是什么新鲜事。“永远无法完全确定,这才是它有意思的地方,”这是他对于超级马里奥浮空事件的评论。但就如 Rech 所解释的,这种粒子对数据微小改动且仍造成影响的的可能性是毫无疑问存在的。


Rech 的实验室中有设备可以人为加速中子,并将其向电子产品发射,以跟踪粒子流所引起的比特错误,实验中所模拟的是地球表面上中子通量的一亿倍。“与其守株待兔几个月或几年,不如让错误发生在几秒或几分钟内。”Rech 所指的是他和同事在英国 ISIS 中子和介子源及美国洛斯阿拉莫斯国家实验室所进行的工作。


这确实是一种研究单粒子颠覆事件在外界环境影响的方法,不过是为了方便而加快了速度。Rech 和同事还有另一个更具体地目标,随着车辆自动驾驶技术的兴起,车载计算机系统也有可能因宇宙射线而故障。万一在车辆自动驾驶过程中,安装在车辆头部的摄像头图像受损,导致车载计算机未能检测到车前的行人,后果不堪设想。


这种事件万一后续再发生,理论上会损坏很多地区的电力线和网络电缆。


Rech 和同事利用仿照受宇宙射线影响所人工生成的扭曲图像训练神经网络,已经将这类错误的几率降低了十倍。然而由于研究尚未发表,Rech 不能透露实验前后的具体准确概率。这种干预措施可以让未来的自动驾驶车辆更加安全,但并不会消除宇宙射线导致其他问题的可能性,并且给保险公司提出了一个有趣的难题。


“如果车辆可以完全自主驾驶,你要怎么证明事故的发生是因为宇宙射线呢?”Rech 说,“这是非常有挑战性的,或者说,根据定义这是不可能的。”在事故原因模棱两可的情况下,人类、技术制造商,甚至是宇宙空间天气状况,到底过错方在谁可能会很难断定。Rech 还提到了另外一点,从理论上来说,建一个粒子加速器并将其对准计算机内存模块,故意或恶意诱发计算机系统中的比特错误是完全有可能的,但想真正有效地做到这点也是非常困难的。


自然的辐射源仍旧是大头。需要澄清的是,宇宙射线或空间天气等现象就像地球上的天气一样是变化的,大型风暴也有可能出现。在 1859 年九月初,地球大气层中观测到了有史以来最强烈的地磁风暴。这件以英国天文学家 Richard Carrington 命名的卡林顿事件是由太阳耀斑引起的,大量亚原子粒子被抛射向地球,而地磁活动引发的无与伦比的极光诱发了电线之中的电荷。多个电报员的报告都声称看到了设备中的火花迸溅。


加州大学欧文分校的 Sangeetha Abdu Jyothi 称,如果此类事件在未来出现,理论上会破坏多个地区的电力线和网络电缆,“这种带电粒子还可能会导致数据损受损”,她补充道,“目前,我们还很难预测实际会造成的损害程度”。



宇宙射线探测器被用于预测空间天气是否会构成某种威胁(图源:Don Despain/Alamy)


同属加州大学欧文分校的 Daniel Whiteson 也同意这一观点,他称这类事件可能会是“灾难性的”,我们对太阳内部的物理状态还没有足够的认知发展,无法提前预测大型太阳喷发前兆。他和同事提出了一种,从数百万的智能手机摄像头中收集数据以检查电磁干扰情况的方法,这些摄像头对部分亚原子粒子非常敏感,可以帮我们更好地了解发射向地球的宇宙射线的普遍性和本身性质。


无独有偶,英国兰卡斯特大学的 Michael Aspinall 及其同事,在最近的皇家学会夏季展览会上着重提及了在英国建造中子监测装置的计划。他认为这种装置有利于填补我们追踪周围环境中来往中子能力上的空白。“目前全球只有不到 50 个这种地面中子监测器运行,且没有一个是在英国境内”。这个监测器将会搭建在苏格兰或康沃尔郡,如果在未来它监测到危险的中子活动峰值,会将信息传递到英国气象局,后者可以据此建议航空当局停飞飞机或采取其他预防措施。


考量这种计划时我们也需要考虑当前背景,重要的是宇宙射线不太可能频繁导致计算机系统的重大错误。美国 Compass Datacenters 公司的数据中心经理,Tony Grayson 说,他从不认为辐射所带来的威胁重要到需要和业内同事探讨,主要是因为数据中的细小的比特级错误往往无关紧要,通常会被自动纠错软件改正。


随着计算机芯片中的晶体管更新换代,先进的半导体越来越小,也愈发容易受到电磁干扰的影响。


如果一个数据中心想要针对宇宙射线进行防护,比如用铅做内衬,其造价将会是令人瞠目结舌地高昂。但如果将数据以地理分布备份,那么将便宜很多。Grayson 说,即使是最糟糕的情况,用户也可以将数据转移到备份服务器上。


然而,对于部分应用来说,宇宙射线所带来的威胁应被认真对待。以现在飞机中连接飞行员控制装置和方向舵的电子设备为例,半导体公司 Microchip 技术部门的 Tim Morin 称,主要的航空航天和国防部制造商所使用的组件都能抵抗某些宇宙射线影响,他所在的公司是这些组件的主要供应商。“仅仅是针对由中子引起的单粒子颠覆有免疫,”他说,“我们不受这种影响”。


Morin 没有细说他们公司为生产不受中子干扰的计算机芯片所具体采取的措施,只说与材料和电路设计有关。


很明显,不是每个应用程序都需要这样的高级防护,也不是每一种计算机内存都能做到这种防护,Morin 补充道,但对于那些让飞机和卫星飞在我们头顶上空的组织来说,这显然是一个需要考虑的重要因素。


几乎所有我们所依赖的技术都或多或少地受这种风险影响。更重要的是,随着计算机芯片中的晶体管更新换代,更为先进的半导体越做越小,也更容易受到电磁干扰。


“状态逆转所需要的电荷很小,”Rech 解释道。只需要一个微小原子的话,从原则上来说,亚原子粒子诱发电荷状态逆转的概率就会增加,除此之外,无论是电话还是洗衣机设备,计算机芯片的数量越来越多,“设备暴露出可攻击的总体面积大幅增加,亚原子所能够影响的目标也越来越多。”


其后果不言而喻地严重。但在目前还是很难判断这会为我们、为现代社会的动力系统带来多少损害。对 Marie Moe 来说,六年前飞往阿姆斯特丹的航班上,心脏起搏器的异常行为让她这个维持自己心脏健康运作的重要设备有了更深的认知,这件事甚至还让她开始了对心脏起搏器中网络安全漏洞的研究。


如果游离的中子真的是这一切的幕后推手,那将带来相当巨大的连锁反应。至少比特翻转还是带来了一定的结果,尽管这个结果非常吓人。


“我其实真的很高兴,”她说,“这件事发生在了我身上。”


查看英文原文


The computer errors from outer space By Chris Baraniuk(https://www.bbc.com/future/article/20221011-how-space-weather-causes-computer-errors)


声明:本文为 InfoQ 翻译,未经许可禁止转载。


今日好文推荐


后摩尔定律时代,如何提升云效益的天花板


可悲的现实,大部分技术领导者可能并不称职


百度回应文心一言“套壳”质疑;TikTok在美经历生死时刻;IT外包行业面临最大规模裁员,埃森哲将暴力裁员1.9万人 | Q资讯


集成GPT-4的编程神器来了,GitHub发布Copilot X:编程30年,突然就不需要手敲代码了?!


2023-05-13 20:016845

评论

发布
暂无评论
发现更多内容

手机

ES_her0

28天写作 3月日更

产品经理训练营 Week9 学习心得

Mai

filecoin矿机系统开发|filecoin矿机软件APP开发

系统开发

收藏!这些IDE使用技巧,你都知道吗

xcbeyond

IDEA 技巧 3月日更

B+树索引优点

一个大红包

3月日更

容器 & 服务:Kubernetes扩容

程序员架构进阶

Docker 容器 kubernete 28天写作 3月日更

Wireshark 数据包分析学习笔记Day15

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

翻译:《实用的Python编程》06_04_More_generators

codists

Python

DCache 分布式存储系统|Set, ZSet 缓存模块的创建与使用

TARS基金会

nosql 缓存 分布式 MySQL 高可用 TARS

uni-app跨端开发H5、小程序、IOS、Android(二):开发工具HBuilderX使用技巧

黑马腾云

微信小程序 uni-app App 3月日更 Hbuilderx

mybatis实现分页的几种方法

xiezhr

mybatis 分页 mybatis分页

Python 的特殊变量 __name__

HoneyMoose

打卡学习VBA和PYTHON week01

小怪兽

IT蜗壳教学

github 这样用,事半功倍

hepingfly

Java GitHub 搜索 使用技巧

产品经理训练营 Week9 作业

Mai

Go训练营第5周——评论系统架构设计

Glowry

(28DW-S8-Day27) 销售流程重整

mtfelix

28天写作

GO训练营第6、7周——可用性设计

Glowry

GO训练营第8周——分布式缓存与事务

Glowry

如何评估需求优先级?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

epoll源码分析以及在Redis中的实现

Linux服务器开发

redis 后端 epoll web服务器 Linux服务器开发

filecoin挖矿软件开发|filecoin挖矿APP系统开发

系统开发

低代码/无代码,作为IT开发界的“新英雄”它究竟有何神技?

优秀

低代码 无代码开发

经典排序算法分析

roseduan

算法 排序算法

算法攻关-最长公共子序列_1143

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 最长公共子序列

filecoin云算力软件开发|filecoin云算力APP系统开发

系统开发

"无密码时代"已经来临!

龙归科技

身份认证

聊聊 Python 自动化脚本部署服务器全流程(详细)

星安果

Python 自动化 服务器 部署

JDBC—往MySQL中写入Blob数据时,出现错误:com.mysql.jdbc.PacketTooBigException: Packet for query is too large (5724349 > 1048576)

打工人!

Java MySQL JDBC Blob

后台产品导航栏原型设计小教程

lenka

3月日更

GO训练营第9周——网络编程

Glowry

来自外太空的计算错误:宇宙射线干扰了我的心脏起搏器,我差点因此丧命_语言 & 开发_Chris Baraniuk_InfoQ精选文章