收藏 分销(赏)

依赖性问题:解决全球开源软件安全问题.docx

上传人:二*** 文档编号:4735123 上传时间:2024-10-11 格式:DOCX 页数:5 大小:169.68KB 下载积分:5 金币
下载 相关 举报
依赖性问题:解决全球开源软件安全问题.docx_第1页
第1页 / 共5页
本文档共5页,全文阅读请下载到手机保存,查看更方便
资源描述
依赖性问题:解决全球开源软件平安问题 生产者和消费者应该接受软件透明度,软件开发者和消费者应该采用软件完整性和分析 工具来实现知情的供应链风险管理。 一个孤独的程序员依靠自己的天才和技术敏锐度来创立下一个伟大的软件的想法总是 有点牵强。今天,它比以往任何时候都更像是一个神话。竞争激烈的市场力量意味着软件 开发人员必须依赖数量不详的其他程序员创立的代码。因此,大多数软件最好被认为是组 装一多样化的,通常是开源的组件,通常称为依赖项,与一些自定义代码拼接到一个新 的应用程序中。 这种软件工程范式——程序员重用开源软件组件,而不是重复他人的劳动——这已经 带来了巨大的经济收益。根据现有的最正确分析,开源组件现在占大多数软件应用程序的9 0%o经济上重要且广泛使用的开源组件一谷歌的深度学习框架TensorFlow或其Face book赞助的竞争对手PyTorch、无处不在的加密库OpenSSL或容器管理软件Kubernet es列表很长,而且还在不断增长。军事和情报界也依赖开源软件:像Palantir这样的 程序已经成为对于反恐行动至关重要,而F-35包含数百万行代码。 问题在于开源软件供应链可能会引入未知的、可能是有意的平安漏洞。先前对所有公 开报告的软件供应链危害的一项分析说明,大多数恶意攻击都针对开源软件。换言之,针 对专有软件(如SolarWinds )的抢眼软件供应链攻击实际上只占少数案例。因此,由于 现代软件依赖树的巨大复杂性,现在阻止攻击变得很困难:依赖于其他组件的组件无限地 依赖于其他组件。了解您的软件中存在哪些漏洞对于软件开发人员来说是一项全职且几乎 不可能完成的工作。 幸运的是,这事还有希望。我们建议软件生产商和政府监管机构可以采取三个步骤来 提高开源软件的平安性。首先,生产者和消费者应该接受软件透明度,创立一个可审计的 生态系统,其中软件不仅仅是通过网络连接传递的神秘blob。其次,软件开发者和消费者 应该采用软件完整性和分析工具来实现知情的供应链风险管理。第三,政府改革可以帮助减少开源软件入侵的数量和影响。 一•依赖之路 关于可重用软件组件兴起的传统说法通常可以追溯到1960年代。贝尔实验室的Dou glas McIlroy等软件专家已经注意到构建新软件的巨大费用。为了使任务更容易,Mcllro y呼吁创立一个“软件组件"子行业,用于大规模生产软件组件,这些组件将广泛适用于 机器、用户和应用程序——或者换句话说,这正是现代开源软件供应。 当开源开始时,它最初是围绕提供监督、一些管理和质量控制的技术社区联合起来 的。例如,Debian是基于Linux的操作系统,由全球开源软件开发人员网络提供支持, 这些开发人员维护和实施关于哪些软件包将成为和不会成为Debian发行版一局部的标 准。但是这种相对密切的监督已经让位于一个更自由、可以说更具创新性的包注册系统, 主要由编程语言组织。将这些注册项视为软件开发人员的应用商店,允许开发人员下载免 费的开源组件来构建新的应用程序。一个例子是Python包索引,它是Python编程语言 的包注册表,任何人——从理想主义的志愿者到公司员工再到恶意程序员——都可以在上 面发布代码。这些注册表的数量是惊人的。 这种软件模型的有效性使得社会很大程度上依赖于开源软件。开源倡导者很快就援引 莱纳斯定律为当前系统辩护:”只要有足够的眼睛,所有的错误都是浅薄的。”也就是 说,由于软件源代码是免费检查的,软件开发者在网上工作和共享代码会在影响社会之前 发现问题,因此社会不应该过分担忧它对开源软件的依赖,因为这支无形的军队会保护 它。如果你眯着眼睛,这在1993年可能是正确的。但从那以后发生了很多变化。2022 年,届时将有数亿新的几行开源代码,眼睛太少,bug就会很深。这就是为什么在2018 年8月,花了整整两个月的时间才发现一个加密货币窃取代码已被溜进下载超过700万次 的软件中。 二、事件流 故事开始于开发者Dominic Tarr将名为"event-stream"的开源JavaScript包的发 布权转让给仅通过句柄"right9ctrl"知道的另一方。转让发生在GitHub上,GitHub是 数千万软件开发人员经常光顾的流行代码托管平台。用户right9ctrl提出维护事件流,当 时每周下载近200万次。Dominic Tarr的决定是明智而平凡的。他在授权许可下免费创 建了这款开源软件一该软件按原样提供一但他自己不再使用它。他还已经免费维护了 数百个其他开源软件。因此,当right9ctrl请求控制权时,Tarr同意了该请求。 将一个开源软件的控制权转移给另一方总是在没有任何后果的情况下发生。但这一次 却出现了恶意扭曲。在Tarr转让控制权后,right9ctrl添加了一个新组件,该组件试图从 受害者的计算机中窃取比特币。数以百万计的计算机下载了这个恶意软件包,直到开发者 Jayden Serie在2018年10月发现异常。 事件流只是代码矿中的金丝雀。近年来,计算机平安研究人员发现攻击者使用了一系列新技术。有些人在模仿域名抢注:诱骗拼错软件包名称的软件开发人员下载恶意软件 (dajngo与django )。其他攻击利用软件工具错误配置,诱使开发人员从错误的软件包 注册表中下载软件包。这些攻击的频率和严重程度在过去十年中一直在增加。而且这些统 计数据甚至不包括开源软件中可能更多的意外平安漏洞案例。2021年底以来,广泛使用 的Iog4j软件包的无意漏洞促使白宫召开开源软件平安峰会。发现此漏洞后,一位记者稍 稍夸张地为一篇文章命名为〃互联网着火了〃。 三.三步走计划 值得庆幸的是,包括美国政府在内的软件生产商和消费者可以采取几个步骤,使社会 能够在最大限度地减少这些风险的同时获得开源软件的好处。第一步已经得到了美国商务 部和工业界的支持,它涉及使软件透明化,以便对其进行评估和理解。这始于鼓励使用软 件物料清单的努力。该清单是一个软件组件的完整列表或清单。有了这个列表,软件就可 以更容易地搜索可能受到威胁的组件。 从长远来看,该措施应该超越简单的组件列表,包括有关谁编写软件以及如何构建软 件的信息。借用日常生活中的逻辑,想象一种食品具有明确指定但未知且未经分析的成 分。这份清单是一个好的开始,但如果不进一步分析这些成分,大多数人都会通过。个体程序员、科技巨头和联邦组织都应该对软件组件采取类似的方法。这样做的一种方法是采 用Software Artifacts的供应链级别,这是一套用于防篡改组织的软件供应链的指南。 下一步涉及软件平安公司和研究人员构建工具。首先,签署和验证软件,其次,分析 软件供应链并允许软件团队对组件做出明智的选择。签名商店工程,Linux基金会、谷歌 和许多其他组织之间的合作,就是这样一项努力,专注于使用数字签名使开源软件的监管 链透明和可审计。这些技术方法相当于防篡改密封的数字等效物。国防部的Platform On e软件团队已经采用了 Sigstore的元素。此外,收集、管理和分析全球软件供应链以应对 攻击的软件供应链“观察站”也可以提供帮助。一个可能由大学联盟运营的观测站可以同 时帮助衡量开源软件入侵的普遍性和严重性,提供支持检测的基础数据,并定量比拟不同 解决方案的有效性。Software Heritage Dataset提供了这样一个观测站的种子。各国政 府应帮助支持这一举措以及其他类似的以平安为重点的举措。科技公司还可以采用各种 "营养标签”工程,这些工程提供软件工程供应链“健康”的概览。 然而,这些相对技术性的努力将受益于更广泛的政府改革。这应该从修复识别和披露 开源漏洞的激励结构开始。例如,软件许可中通常包含的"DeWitt条款"需要供应商在 发布对软件平安性的某些评估之前获得批准。这减少了社会对哪些平安实践有效而哪些无 效的知识。立法者应该找到一种方法来禁止这种反竞争行为。国土平安部还应考虑为开源 软件漏洞赏金设立一个非营利基金,奖励发现和修复此类漏洞的研究人员。 最后,正如最近的网络空间日光浴室委员会所提议的那样,网络统计局可以跟踪和评 估软件供应链危害数据。这将确保相关方不会被困在构建重复的、特殊的数据集上。 如果没有这些改革,现代软件将变得像弗兰肯斯坦的怪物,一个笨拙的可疑局部的汇编, 最终转向它的创造者。然而,随着改革,美国经济和国家平安基础设施可以继续受益于开 源合作所带来的活力和效率。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服