“机智号”成功试飞火星,但它使用的开源软件安全吗?

枫少@KillBoy
枫少@KillBoy
管理员
219
文章
0
粉丝
资源分享476,355字数 1160阅读3分52秒阅读模式
AI智能摘要
你是否想过,让人类首次在火星飞行的软件,竟依赖着成千上万陌生开发者的代码?“机智号”直升机的成功背后,是开源力量的辉煌胜利,也是安全风险的悄然潜伏。它使用的59个开源库中,竟藏有22个已知漏洞,包括1个“超危”级别!当开源推动人类迈向星辰大海,它的安全防线却可能千疮百孔。这场技术奇迹的背后,究竟隐藏着怎样的数字隐患?
— AI 生成的文章内容摘要

北京时间4月19日,美国航空航天局 (NASA) 研发的直升机型机器人“机智号” (Ingenuity) 在火星上完成垂直起飞、滞空和垂直降落的动作,全程共计39秒。虽然旅程仅为10英尺(约3.05米)左右,但却成为人类的一大里程碑,证明了受控航天器登陆火星的可能性。

开源软件发挥关键作用

GitHub 发布博客文章指出,实际上构建“机智号”的团队规模要远大于JPL 的6000名员工。这个1.8千克重的直升机背后是 Aero Vironment、洛克希德·马丁和高通等知名公司的承包商,而鼎力支持这款强大软件的,是数千名遍布全球的开源开发人员,而这些人甚至不知道自己做出了多么大的贡献。

“机智号”直升机在其导航计算机上运行着嵌入式 linux 发行版。该版本大部分使用 JPL 的开源飞行控制框架 F Prime (F’) 通过 C++ 编写而成。同时,Python 生态系统从地面控制到飞行建模再到数据处理等整个过程都发挥了关键作用。

近1.2万名开发人员向“机智号”所使用的开源软件贡献了代码、文档、图形设计等,使 “机智号“ 的发射成为可能。为祝贺开源软件的这一历史性时刻,GitHub 为所有贡献人员添加了新徽章,表彰他们对人类发展进步做出的贡献。JPL 分享了为”机智号“做出贡献的所有开源项目,GitHub 以此为据颁发徽章。

这些开源库安全吗?

GitHub 开发者关系的高级总监 Martin Woodward指出,“我们发现了多层次的依赖关系。单个项目可能具有10个或不到10个依赖关系,而且呈蜘蛛网结构,每个依赖关系还依赖于其它项目。不知不觉中,无数开发人员为项目做出了巨大贡献。“NASA 与 GitHub 共享了”机智号“所依赖的59个开源库及其版本,如下图所示。

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片1

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片2

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片3“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片3“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片3

 

那么,“机智号“所使用的这些开源软件版本是否安全?奇安信开源卫士团队对此进行了检测。

结果发现,至少有五个开源库中存在严重等级不同的漏洞。其中,“超危”漏洞共1个,“高危”漏洞共10个,“中危”漏洞共10个,“低危”漏洞共1个,共计22个。

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片4

 

以 Python-pillow/Pillow 版本8.1.0为例,具体的检测过程如下。

(1)查验条件:

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片5

 

(2)查验结果:

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片6

(3)易受影响的漏洞

“机智号”成功试飞火星,但它使用的开源软件安全吗?-图片7

 

开源软件的安全性

正如 GitHub 在文章中所提到的那样,“机智号”大量使用开源软件的情况和当前所有交付的软件系统一样,其中99%的系统依赖于开源组件。Python 的核心贡献人员 Carol Willing 指出,“就像在湖中投掷了一块卵石,小小的贡献就能泛出涟漪,产生更大的影响。而这就是一种开源之美,其他人可以利用你的出色工作并将其发扬光大,让它变得更强大更有意义。“

随着开源软件的广泛应用,它的安全性也愈发重要。开发和交付的加速,使得软件开发环境愈加复杂,对第三方应用和平台的依赖愈发增强。近期,Contrast Labs 发布《2021年开源安全报告》指出,“开源库为攻击者提供了两种主要的漏洞利用途径”,一是通过已发现漏洞实施攻击,二是通过库来源引入漏洞实施攻击。开源软件背后调用或依赖的其它开源软件也可能存在漏洞,这种深层关联下的开源软件很难通过漏洞扫描工具发现,从而导致所有使用最终产品的企业变得易受攻击,而这种情况一直不断上演,比如 OpenSSL “心脏出血”漏洞事件、SolarWinds 开源供应链事件等。因此,需要尽早在开发生命周期中部署开源安全工具和进程,在不耽误开发的情况下对漏洞优先级进行排序、检测并解决它们。

参考来源

  • https://github.com/readme/nasa-ingenuity-helicopter
  • https://docs.github.com/en/github/setting-up-and-managing-your-github-profile/personalizing-your-profile#list-of-qualifying-repositories-for-mars-2020-helicopter-contributor-badge
  • https://mp.weixin.qq.com/s/5_RW08OMx8nC8Icj-r0SKQ

题图:Pixabay License

文内视频:NASA 官网

转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

 

本文作者:, 转载请注明来自FreeBuf.COM

https://www.freebuf.com/sectool/270249.html

 
枫少@KillBoy
评论  47  访客  47
    • Pixel_像素小子
      Pixel_像素小子 0

      这开源漏洞这么多,NASA也敢用?有点不敢信

      • 落花微雨
        落花微雨 0

        前几天刚学嵌入式linux,没想到火星直升机也跑这系统,离谱🤯

        • 梦魇织匠
          梦魇织匠 0

          F’框架居然是C++写的,难怪稳定性扛得住火星环境

          • 宇宙编译器
            宇宙编译器 0

            Python居然从地面控制到数据处理全包了,生态是真的强

            • 寒江蓑
              寒江蓑 0

              pillow还有超危漏洞?那飞行图像处理不会出问题吧?

                • 黄大仙使
                  黄大仙使 0

                  @ 寒江蓑 pillow只是图像处理的一环,但太空环境容不得半点马虎

                • SchnitzelVonCrumb
                  SchnitzelVonCrumb 1

                  说实在的,依赖链这么深,查漏太难了,感觉像赌博

                  • 雪凝霜
                    雪凝霜 0

                    我之前做项目就踩过依赖嵌套的坑,升级一个库能崩掉三个模块

                      • 鹿角王子
                        鹿角王子 1

                        @ 雪凝霜 前几天刚搞完项目的依赖更新,简直噩梦,一模一样

                      • 糖人匠钟三一
                        糖人匠钟三一 1

                        GitHub发徽章倒是挺暖心,可安全检测能不能也跟上啊

                        • 绣花楼
                          绣花楼 1

                          这种级别的项目都用开源,说明社区力量真不能小看

                          • 嫉妒的荆棘
                            嫉妒的荆棘 0

                            要是火星上突然崩了系统,重启都来不及吧hhh

                            • 鹦鹉咕咕
                              鹦鹉咕咕 0

                              开源软件虽然漏洞多,但NASA肯定做了冗余设计,不然不敢这么用。

                              • 靛青迷雾
                                靛青迷雾 0

                                没想到Python在太空项目里这么重要,看来学Python不亏。

                                • 小刺猬
                                  小刺猬 1

                                  这种依赖嵌套确实头疼,我们项目现在都开始做安全扫描了。

                                  • 交响曲
                                    交响曲 0

                                    火星环境那么极端,软件稳定比功能多重要多了。

                                      • HyperCore
                                        HyperCore 0

                                        @ 交响曲 超危漏洞在火星上爆发,修都修不了,只能祈祷了吧

                                      • 午后茶话
                                        午后茶话 0

                                        给GitHub发徽章这操作挺有意思,算是给开源社区的正向反馈。

                                        • 躺平协会会长
                                          躺平协会会长 1

                                          超危漏洞在太空项目里出现,听着就吓人,不过应该都打了补丁吧?

                                            • 藕香榭
                                              藕香榭 0

                                              @ 躺平协会会长 重启都不行,火星上蓝屏了只能等地球指令,想想都窒息

                                            • 复古风情
                                              复古风情 1

                                              嵌入式linux能上火星,我们公司连个工控系统都搞不定,差距太大了。

                                                • 甜筒小丸子
                                                  甜筒小丸子 1

                                                  @ 复古风情 我们厂里连个树莓派都跑不稳linux,人家都上火星了,破防了

                                                • 绯红之羽
                                                  绯红之羽 1

                                                  这种项目肯定有备份系统,真崩了也能切到备用的,就是延迟高点。

                                                  • 10
                                                    10 0

                                                    飞行图像处理应该用了多个库,pillow可能只是其中一环,不过有漏洞总归是隐患。

                                                    • 一杯清茶
                                                      一杯清茶 0

                                                      依赖管理现在都有工具了,不过升级前还是得好好测试,不然真容易出问题。

                                                      • 金蟾老祖
                                                        金蟾老祖 0

                                                        这依赖链太深了,查漏成本得有多高啊🤔

                                                        • 忧郁的琴
                                                          忧郁的琴 1

                                                          Python生态强归强,但一堆包版本对不上就离谱

                                                          • 社牛博士
                                                            社牛博士 0

                                                            NASA敢用肯定做过隔离和加固,普通项目可学不来

                                                            • 刺猬
                                                              刺猬 0

                                                              我们实验室用的工控系统连linux都跑不稳,别说上天了

                                                              • Sage贤者
                                                                Sage贤者 1

                                                                说白了还是得靠冗余设计顶着,代码再干净也怕意外

                                                                • 光明之刃
                                                                  光明之刃 0

                                                                  开源是香,但安全审计跟不上,迟早出大事

                                                                  • 炉火的温暖
                                                                    炉火的温暖 0

                                                                    没想到自己提的PR也能间接上火星,离谱又骄傲

                                                                    • 杏花微雨
                                                                      杏花微雨 0

                                                                      这漏洞数量有点吓人,火星上可没法热修复啊

                                                                      • 貂貂小姐
                                                                        貂貂小姐 0

                                                                        pillow那个超危漏洞具体影响啥功能?有人知道吗

                                                                        • 边塞诗客
                                                                          边塞诗客 1

                                                                          开源软件上火星,这操作太秀了

                                                                          • 夜雨孤灯
                                                                            夜雨孤灯 0

                                                                            F’框架用C++写确实稳,但开发效率估计低得一批

                                                                            • 魂锁心门
                                                                              魂锁心门 0

                                                                              开源依赖链深得像迷宫,查漏补丁怕不是要人命

                                                                              • 赤焰使
                                                                                赤焰使 0

                                                                                前几天刚在项目里遇到pillow版本冲突,没想到NASA也踩这坑

                                                                                • 尘埃之光
                                                                                  尘埃之光 1

                                                                                  火星环境那么恶劣,软件容错肯定拉满了,不然早翻车了

                                                                                  • 乖乖虎
                                                                                    乖乖虎 0

                                                                                    GitHub发徽章挺酷,但安全检测滞后是不是有点形式主义?

                                                                                    • 熊熊大大
                                                                                      熊熊大大 0

                                                                                      Python全栈上火星?生态强是真的,就是包管理太玄学

                                                                                      • 甜豆小奶包
                                                                                        甜豆小奶包 1

                                                                                        开源贡献者自己都不知道上了火星,这事挺科幻的。

                                                                                          • 话多小彩虹
                                                                                            话多小彩虹 1

                                                                                            @ 甜豆小奶包 这么一说还真挺魔幻的

                                                                                          • 布丁饭团
                                                                                            布丁饭团 1

                                                                                            要是真因为一个低危漏洞导致任务失败,那可太冤了

                                                                                            • 思维褶皱的探险家
                                                                                              思维褶皱的探险家 0

                                                                                              嵌入式linux上天成功,说明基础系统其实够用了,别老想着换新轮子

                                                                                              • 酱坊吕
                                                                                                酱坊吕 1

                                                                                                这种关键系统居然还用带漏洞的库,NASA心真大🤔

                                                                                                • 暗巷回声
                                                                                                  暗巷回声 1

                                                                                                  开源库有漏洞还能成功,运气也是实力的一部分吧

                                                                                                匿名

                                                                                                发表评论

                                                                                                匿名网友

                                                                                                拖动滑块以完成验证