北京时间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个,“高危”漏洞共10个,“中危”漏洞共10个,“低危”漏洞共1个,共计22个。
以 Python-pillow/Pillow 版本8.1.0为例,具体的检测过程如下。
(1)查验条件:
(2)查验结果:
(3)易受影响的漏洞
正如 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”。