我们的社区认真对待安全问题,并在创建每个组织需要的工具和标准方面发挥了作用,以遵守最近的美国行政命令。
概述
美国白宫最近发布了其 关于改善国家网络安全的行政命令(EO) (连同一个 按呼叫),以打击 "持续和日益复杂的恶意网络活动,这些活动威胁到公共部门、私营部门,以及最终威胁到美国人民的安全和隐私"。
在这篇文章中,我们将展示Linux基金会的社区已经建立的支持这个EO的东西,并指出一些其他的方式来协助未来的发展。但首先,让我们把事情放在背景中。
Linux基金会的开放源码安全倡议的内涵
我们深切关注安全问题,包括供应链(SC)安全。Linux基金会是一些最重要和最广泛使用的OSS的所在地,包括Linux内核和Kubernetes。Linux基金会以前的核心基础设施计划(CII)和现在的 开放源代码安全基金会(OpenSSF) 一直在努力确保开放源码软件的安全,无论是在一般情况下还是在广泛使用的组件中。特别是OpenSSF,它是一个广泛的行业联盟,"合作以确保开源生态系统的安全"。
ǞǞǞ 软件包数据交换(SPDX) 在过去的十年里,SPDX项目一直致力于实现软件的透明化和安全分析所需的软件材料清单(SBOM)数据的交换。SPDX。 被认可并作为ISO/IEC标准5962:2021实施具备大规模供应链的全球公司的支持,并有一个庞大的开放和闭源的工具支持生态系统。SPDX 已经 符合行政命令中对SBOMs的要求。
最后,几个LF基金会已经专注于各种垂直领域的安全。例如,LF公共卫生和LF能源已经在他们各自的部门中从事安全工作。我们的云计算行业在CNCF内的合作也有 制作了一份支持软件供应链最佳做法的指南 为云系统和应用。
考虑到这一背景,让我们来看看EO的一些声明(按照它们的顺序),以及我们的社区如何在开放合作中投入多年来应对这些挑战。
最佳实践
EO 4(b)和4(c)说
"商务部长[通过NIST行事]应征求联邦政府、私营部门、学术界和其他适当行为者的意见,以确定现有的或开发新的标准、工具和遵守标准、程序或标准的最佳做法[包括]可用于评估软件安全的标准,包括评估开发商和供应商本身的安全做法的标准,并确定创新的工具或方法,以证明符合安全做法[和准则],以加强软件供应链的安全。"在EO 4(e)(ix)的后面,它讨论了 "证明符合安全软件开发实践"。
ǞǞǞ OpenSSF的CII最佳实践徽章项目 专门确定开放源码软件的最佳实践,重点是安全,包括评估开发商和供应商的安全实践的标准(它有超过3800个参与项目)。LF也在与 SLSA (目前正在开发中)作为潜在的补充指导,重点是进一步解决供应链问题。
最佳实践只有在开发人员了解它们的情况下才有用,然而大多数软件开发人员从未接受过开发安全软件的教育或培训。LF已经制定并发布了其 安全软件开发基础课程集 任何人都可以在edX上免费获得。基金会 OpenSSF最佳实践工作小组(WG) 积极致力于确定和颁布最佳实践。我们还提供了一些具体的标准、工具和最佳实践,如下文所述。
加密和数据保密
EO 3(d)要求各机构采用 "对静止和传输中的数据进行加密"。 在网络上使用TLS("https://")协议实现传输中的加密,并且 让我们加密 是指 世界上最大的TLS证书颁发机构.
此外,LF 机密计算联盟 致力于定义和加速保密计算的采用。保密计算通过在基于硬件的可信执行环境中进行计算来保护使用中的数据(而不仅仅是在休息和传输中)。这些安全和隔离的环境可以防止在使用过程中对应用程序和数据进行未经授权的访问或修改。
供应链的完整性
EO 4(e)(iii)规定了以下要求
"采用自动化工具,或类似的程序,以维护可信的源代码供应链,从而确保代码的完整性。"
LF有许多支持SC完整性的项目,特别是。
- 在此 是一个专门为确保软件供应链的完整性而设计的框架。
- 更新框架(TUF) 帮助开发者维护软件更新系统的安全,并被各种科技公司和开源组织用于生产。
- 乌托邦 是TUF的一个变种;它是一个开放和安全的软件更新系统设计,可以保护通过空气传递到汽车电脑单元的软件。
- 签名 是一个提供公益/非营利服务的项目,通过简化采用加密软件签名(发布文件和容器镜像等工件),在透明日志技术(提供防篡改的公共日志)的支持下改善开源软件供应链。
- 我们也在资助有关工具的重点工作,以方便签名和验证来源,例如,我们正在努力 扩展git以实现对签名的可插拔支持,以及 髌骨 工具提供了一个简单的方法,为通过电子邮件发送的补丁提供端到端的加密证明。
- OpenChain (ISO 5230) 是遵守开放源码许可证的国际标准。OpenChain的应用需要识别开放源码软件组件。虽然OpenChain本身更注重许可证,但一旦这些组件被识别出来,这种识别很容易被重用在分析这些组件的其他方面(例如,寻找已知的漏洞)。
软件物料清单(SBOM)支持供应链的完整性;我们的SBOM工作非常广泛,我们将单独讨论这个问题。
软件物料清单(SBOMs)
许多网络风险来自于使用具有已知漏洞的组件。在关键的基础设施行业,如国家燃料管道、电信网络、公用事业和能源网,已知的漏洞尤其令人担忧。对这些漏洞的利用可能导致供应线和服务的中断,在某些情况下,由于网络攻击而导致生命损失。
一次性审查没有帮助,因为这些漏洞通常是在组件被开发和纳入后发现的。相反,需要的是对运行这些关键基础设施系统的软件环境组件的可见性,类似于食品成分的可见性。
软件材料清单(SBOM)是一个嵌套的清单或成分列表,构成了用于创建设备或系统的软件组件。这一点尤其重要,因为它涉及到政府机构内和关键行业内使用的国家数字基础设施,如果被渗透,会带来国家安全风险。使用SBOMs将提高对这些软件组件的操作和网络风险的理解,从他们的原产地供应链。
EO有大量关于要求软件材料清单(SBOM)和依赖SBOM的任务的文字。
- EO 4(e)要求向购买者提供SBOM "为每个产品直接或在公共网站上公布","确保和证明......在产品任何部分中使用的开源软件的完整性和来源"。
- 它还需要通常需要SBOM的任务,如:。 "采用自动工具或类似的程序,检查已知和潜在的漏洞并进行补救,这些工具应定期运行...." 和 "保持准确和最新的数据、软件代码或组件的出处(即来源),以及对软件开发过程中出现的内部和第三方软件组件、工具和服务的控制,并经常性地对这些控制进行审计和执行。"
- EO 4(f)要求公布 "SBOM的最低要素",EO 10(j)将SBOM正式定义为 "包含用于构建软件的各种组件的细节和供应链关系的正式记录......SBOM列举了产品中的[组装]组件......类似于食品包装上的成分清单。"
LF一直在开发和完善 SPDX 十多年来,SPDX在全球范围内使用,并被批准作为 ISO/IEC国际标准5962:2021。 SPDX是一种文件格式,用于识别较大的计算机软件中的软件组件和元数据,如这些组件的许可证。SPDX 2.2已经支持 美国国家电信和信息管理局(NTIA)的现行指南 为最小的SBOM要素。一些生态系统对SBOM信息有特定的生态系统约定,但SPDX可以提供所有任意生态系统的信息。
SPDX是真实存在的,并且今天正在使用,预计未来会有更多的人采用。比如说。
- 一个 NTIA的 "插件节" 展示了十个不同的生产商生成的SPDX。SPDX支持从不同的来源获取数据(例如,源代码分析、生产商的可执行文件和第三方的分析)。
- A 一些具有SPDX源SBOMs的LF项目的语料库 是可用的。
- 各种LF项目正在努力生成二进制SBOMs,作为其构建的一部分,包括 yocto 和 Zephyr.
- 为了协助SPDX的进一步采用,LF正在支付为主要软件包管理器编写SPDX插件。
漏洞披露
无论怎样,以后都会发现一些漏洞,需要修复。EO 4(e)(viii)要求 "参加包括报告和披露程序的漏洞披露计划"。 这样一来,发现的漏洞就可以报告给能够修复它们的组织。
ǞǞǞ CII最佳实践徽章的通过标准 要求开放源码软件项目具体确定如何向其报告漏洞。更广泛地说,该 OpenSSF 漏洞披露工作组 正在努力帮助开放源码软件 "成熟并倡导管理良好的漏洞报告和交流"。大多数广泛使用的Linux发行版都有一个强大的安全响应团队,但Alpine Linux发行版(广泛用于基于容器的系统)却没有。Linux基金会和谷歌资助了 对Alpine Linux的各种改进,包括一个安全响应小组.
我们希望美国能更新其漏洞平等程序(VEP),与商业组织(包括开放源码软件项目)进行更多合作,分享更多的漏洞信息。美国未能披露的每一个漏洞都是一个可以被攻击者发现和利用的漏洞。我们将欢迎这样的讨论。
关键软件
关注关键软件尤为重要--但什么是关键软件?EO 4(g)要求行政部门定义 "关键软件",4(h)要求行政部门 "确定并向各机构提供一份符合关键软件定义的各类软件和软件产品的清单"。
Linux基金会和哈佛大学创新科学实验室(LISH)制定了该报告 核心中的漏洞",初步报告和开源软件普查二该报告分析了开放源码软件的使用,以帮助识别关键软件。LF和LISH正在更新该报告。CII 确定了许多重要的项目并协助它们包括OpenSSL(Heartbleed之后)、OpenSSH、GnuPG、Frama-C和OWASP Zed攻击代理(ZAP)。攻击代理 OpenSSF保障关键项目工作组 一直在努力更好地识别关键的开放源码软件项目,并将资源集中在需要帮助的关键开放源码软件项目。现在已经有了一份此类项目的第一份清单,同时也在努力为此类援助提供资金。
物联网(IoT)
不幸的是,物联网(IoT)设备的安全性往往是出了名的差。人们常说,"物联网中的S代表着安全"。
第4(s)号行政命令启动了一项试点计划,以 "[根据现有的消费者产品标签计划]对公众进行物联网设备的安全能力和软件开发实践的教育,并应考虑如何激励制造商和开发商参与这些计划。" EO 4(t)规定,这种 "物联网网络安全标准 "应 "反映越来越全面的测试和评估水平"。
Linux基金会开发了许多物联网系统的关键组件,并且是这些组件的所在地。这些包括。
- ǞǞǞ Linux内核,被许多物联网设备使用。
- ǞǞǞ yocto项目该公司为物联网和嵌入式系统创建基于Linux的定制系统。Yocto支持完全可重复的构建。
- 边缘X铸造厂,这是一个灵活的OSS框架,促进了物联网边缘的设备和应用之间的互操作性,已经被下载了数百万次。
- ǞǞǞ Zephyr项目它提供了一个实时操作系统(RTOS),被许多人用于资源有限的物联网设备,并能够在构建过程中自动生成SBOM。Zephyr是少数几个作为CVE编号机构的开源项目之一。
- ǞǞǞ seL4微内核,这是世界上最有保证的操作系统内核;它因其全面的形式验证而引人注目。
安全标签
EO 4(u)的重点是确定。
"消费者软件标签计划的安全软件开发实践或标准[反映]安全实践的基线水平,如果可行,应反映产品可能经历的越来越全面的测试和评估水平[并]确定、修改或开发一个建议的标签,或者如果可行,一个分层的软件安全评级系统。"
ǞǞǞ OpenSSF的CII最佳实践徽章项目 (前面提到的)专门确定了开放源码软件开发的最佳实践,并且已经分出了等级(合格、银牌和金牌)。目前有超过3800个项目参加。
还有一些项目与衡量安全和/或更广泛的质量有关。
- 社区健康分析开放源码软件(CHAOSS)。 专注于创建分析和衡量标准,以帮助定义社区健康和识别风险
- ǞǞǞ OpenSSF安全度量项目处于开发过程中的 "安全 "一词,是为了收集、汇总、分析和交流有关开源项目的相关安全数据而创建的。
- ǞǞǞ OpenSSF安全评论 倡议提供了一个开放源码软件的安全评论集。
- ǞǞǞ OpenSSF安全记分卡 提供一套自动的合格/不合格检查,以提供对任意开放源码软件的快速审查。
总结
长期以来,Linux基金会(LF)一直致力于帮助提高开源软件(OSS)的安全性,这些软件为世界各地的系统提供动力。如果没有众多公司和个人在时间、金钱和其他资源方面的贡献,我们就无法做到这一点;我们对他们表示衷心的感谢。 我们总是很高兴与任何人合作,以改善开放源码软件的开发和部署,这对我们都很重要。
David A. Wheeler, Linux基金会开放源代码供应链安全总监