美国国防部依赖的关键代码竟由莫斯科程序员独立维护
- 浏览次数 312
- 喜欢 0
HackerNews 编译,转载请注明出处:
美国国防部及数百万用户使用的关键代码目前仅由一名俄罗斯开发者独立维护。有人对此不以为然,认为互联网的半壁江山本就依赖于某些人的个人项目。网络安全圈的这番骚动,凸显出人们对国家行为体可能对个体维护者施加影响的担忧。
Hunted Labs的安全研究人员近期重点关注了“fast-glob”,这是一个广泛应用于Node.js环境中进行快速文件和文件夹搜索的工具。报告指出:“由单人维护的状况给超过5000个软件包(包括Node.js中的容器镜像及美国国防部系统内的容器)带来了供应链风险。我们的调查发现,在经批准的国防部系统中,超过30个容器存在此组件。”
GitHub上的依赖关系图显示,该代码被超过2700万个代码仓库使用,并在JavaScript包管理器NPM上每周获得7500万次下载。
Hunted Labs报告称,fast-glob的维护者mrmInc(本名Denis Malinochkin)一直居住在莫斯科,并曾为俄罗斯科技巨头Yandex工作。众所周知,Yandex在与俄罗斯政府合作进行公民跟踪、审查和压迫方面有所配合。报告认为这是一个风险点,“鉴于开源社区往往在几乎不了解贡献者背景的情况下就盲目采纳项目”。但目前并无迹象表明该开发者曾有任何不当行为。
该开发者强调,从未有人要求他操纵该工具、向项目引入隐藏更改或收集分享系统数据。Malinochkin甚至联系了The Register并解释,他从2016年起就开始独立开发fast-glob,这远早于他加入Yandex的时间。这个完全开源的项目完全在本地运行,任何人都可以查看代码。
播客主、博主兼Anchore公司安全副总裁Josh Bressers站出来为这位俄罗斯开发者辩护。他在一篇博文中论证:“让THE WHOLE F*CKING PLANET运转的软件是由一个人写的。在一个国家。但我们不知道是哪个国家。注意,不是同一个人,但就是一个人。几乎所有的开源软件 literally 都是由一个人完成的。”专家用数据支持了这一说法:在ecosyste.ms跟踪的1180万个开源项目中,约有700万个由单人维护。由于400万个项目的维护者人数未知,实际数字可能更大。“实际上比这还要多,”Bressers说,“其中一大批项目将会是一个人维护的。”由单名开发者维护的代码几乎占据了NPM上最受欢迎代码库的一半。“大约13000个下载量最大的NPM包中,有一半是仅由一个人维护的,”专家强调。许多独立开发者还拥有不止一个软件包,并且其中可能没多少人拥有他们可能需要的适当资源。
Bresser认为,真正的供应链风险在于维护者薪酬过低和工作过度,而不在于他们来自哪个国家。“让我们面对现实吧,俄罗斯人还没蠢到去给一个住在俄罗斯的人所拥有的软件包植入后门。他们会做一些事情,比如假装来自另一个国家,用像Jia Tan这样的名字,而不是Boris D. Badguy。这可不是《波波鹿与飞天鼠》的剧集。”
这场讨论在程序员和技术专业人士驱动的社区论坛Lobste.rs上热度渐起。计算机科学家Kornel Lesinski认为,维护者的数量并不是衡量协作的正确标准,因为一个普通的NPM依赖树涉及许多不同的人。发布小型独立的软件包,比让多个维护者在一个单一的整体库上协作更为便利。然而,其他人则表示担忧,认为任何国家行为体能够接触到的代码都可能被滥用。当面对秘密法院的令状时,开发者将没有太多选择。“我对俄罗斯政府的信任程度与对一个人的信任程度截然不同。”一位开发者说。
尽管许多人同意过分关注单一维护者可能有些夸大其词,但对地缘政治或系统性风险保持谨慎的认识仍然必要。Hunted Labs的研究人员承认,替换或修复fast-glob没有快速简便的解决方案。“最佳选择是让mrmInc为项目增加额外的维护者和监督机制,新的维护者需为开源社区所知且居住在民主社会。这是最简单的解决方案,能立即保护使用fast-glob的数百万项目。”Hunted Labs建议道。其他替代方案包括选择不同的工具,或者对其进行分叉(fork)并维护一个独立的版本。
然而,研究人员也敦促立即从美国国防部或情报界使用的产品中移除fast-glob。美国国防部此前曾发布一份备忘录,指示所有技术必须经过验证,确保其安全,能防范来自俄罗斯及其他对手的潜在供应链攻击。
消息来源:cybernews;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文