遵循开源软件安全路线图

毫无疑问,开源软件对于满足联邦任务所需的开发和创新至关重要,因此其安全性至关重要。

OSS(运营支持系统) 支持联邦政府内的每个关键基础设施部门。

联邦政府认识到这一点,并正在采取措施优先考虑 OSS 安全,例如国家网络主任办公室最近的 OS3I 计划、随后的公共信息请求以及网络安全和基础设施安全局的开源软件安全路线图。

这些举措将帮助各机构更好地了解、管理和降低我们国家关键基础设施所依赖的开源软件的风险。

CISA、政府领导人和行业合作伙伴等监督机构有责任为 OSS 使用设定基准预期,并确保顶级安全性来保护机构的关键数据——如果机构未能制定明确的标准,这些数据可能会受到威胁。

为了大规模减少漏洞,政府领导人需要优先考虑安全性并促进开源软件开发最佳实践。这可以分为三个增强安全性的首要考虑因素:

1. 利用受支持的企业 OSS;

2. 在开发阶段实施安全设计实践;

3. 利用人工智能。

支持的企业 OSS 提供更高的安全性

与普遍看法相反,并非所有开源软件都是生而平等的。处理敏感数据的联邦机构应尽可能使用受支持的企业开源软件。大规模使用企业 OSS 免费版本的机构无法获得确保数据安全所需的支持级别。即使它们功能丰富,免费工具项目也无法大规模提供可审核、可证明的安全性。

受支持的企业 OSS 提供了更高级别的安全性和监管,并对所提供的代码提供了额外的责任。它通过质量检查点、自动化测试和可执行的 DevSecOps 管道来实现这一点,以一致地验证对软件的贡献。它还可以更好地管理风险,并提供增强的可见性、透明度、报告和可审计性功能。

此外,应为企业版 OSS 创建和发布强化指南和最佳实践,以降低风险。同行代码审查是 OSS 社区开发中的常见做法。为了提高透明度和安全性,托管 OSS 的平台应该能够了解同行评审和贡献批准者历史记录。

公私合作伙伴关系对于提高软件开发过程的问责制和透明度至关重要。政府可以向行业合作伙伴寻求安全开源软件最佳实践的支持。

通过设计确保 OSS 安全

除了 OSS 安全路线图之外,CISA 最近还为软件提供商发布了关于安全设计实践的新指南,作为确保 OSS 安全的关键方法。设计安全的产品在软件生命周期开始时就将安全性融入其中,而不是事后才考虑或在开发过程结束时考虑。

CISA 的指导以及NIST 的安全软件开发框架(SSDF)等标准制定的指南,强化了通过设计保持软件安全的关键考虑因素,这些因素必须延续到开源环境中。具体就 OSS 安全而言,SSDF 充当确认设计安全原则的指南,并为 OSS 采用带来初始信任级别。根据设计安全原则,使用软件的开发人员和联邦领导人应考虑使用能够自动扫描漏洞并具有强大环境可见性的工具。

政府领导人应考虑确保所有软件设计安全的另一个工具是软件物料清单或构成软件的组件清单。SBOM 还包括有关用于开发、构建和部署软件工件的库、工具和流程的关键信息。记录用于生成 SBOM 的工具以及随附的数字证明可以证明工件未被修改。

在开发阶段和选择受支持的平台上优先考虑安全对于建立和维持信任至关重要。通过用于构建、测试和安全功能的单一 DevSecOps 平台,也可以更轻松地实现证明和可信度。

应用 AI 增强 OSS

联邦政府正在通过使用人工智能来扩展其能力,这是各机构在 OSS 安全之旅中应该考虑的另一个工具。人工智能有能力自动执行琐碎的任务,并将减轻开发人员的一些负担,让他们有更多时间专注于安全性。组织还应该不仅仅将人工智能用于代码开发,而应将其纳入整个软件开发生命周期,例如向非技术用户解释代码和提供安全支持。

当人工智能集成到软件开发生命周期的每个阶段时,可以帮助主动防止或减少开发过程中的审批要求。它还可以应用于新代码和自动测试创建、自动选择审阅者以及辅助修复已识别的漏洞。

考虑人工智能的政府机构应关注所使用的模型和平台、供应商透明度和编码最佳实践。人工验证代码应该继续成为一项持续的要求,并辅之以自动安全扫描。

OSS 是软件开发的基础,可促进创新并使政府能够更快地开发关键项目,为关键基础设施提供基础。遵循 OSS 安全最佳实践对于降低风险并更好地保护政府资产至关重要。

这项事业不必单独完成——联邦领导人应该寻求激励政府和行业之间的有意合作伙伴关系,以鼓励合作和问责。共同努力保护 OSS 对国家安全至关重要。利用这些考虑因素可以增强 OSS 安全性,进而使政府能够针对关键任务运营进行创新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python框架篇(2):FastApi-参数接收和验证

提示: 如果想获取文章中具体的代码信息,可在微信搜索【猿码记】回复 【fastapi】即可。 1.参数接收 1.1 路径参数(不推荐) 1.代码清单 在app/router下,新增demo_router.py文件,内容如下: from fastapi import APIRouterrouter APIRouter( prefix&qu…

ubuntu 23.04从源码编译安装rocm运行tensorflow-rocm

因为ubuntu22.04的RDP不支持声音转发,所以下载了ubuntu23.04.但官方的rocm二进制包最高只支持ubuntu22.04,不支持ubuntu 23.04,只能自己从源码编译虽然有网友告诉我可以用docker运行rocm。但是我已经研究了好几天,沉没成本太多&am…

SPASS-参数估计与假设检验

参数估计 点估计 点估计用样本统计量的值直接作为总体参数的估计值。如用样本均值直接作为总体均值的估计值,用样本方差直接作为总体方差的估计值等。 常用的点估计法 (1)矩估计法 (2)极大似然估计法 (3)稳健估计法 区间估计 因为点估计直接用样本估计值作为总体参数…

【python基础】用户输入和while循环详解

文章目录 一. 函数input()的工作原理1. 编写清晰的程序2. 使用int()来获取数值输入3. 求模运算符 二. while循环简介1. 使用while循环2. 让用户选择何时退出3. 使用标志4. 使用break退出循环5. 在循环中使用continue 三. 使用while循环处理列表和字典1. 在列表之间移动元素2. 删…

持续集成指南:GitHubAction 自动构建+部署AspNetCore项目

前言 之前研究了使用 GitHub Action 自动构建和发布 nuget 包:开发现代化的.NetCore控制台程序:(4)使用GithubAction自动构建以及发布nuget包 现在更进一步,使用 GitHub Action 在其提供的 runner 里构建 docker 镜像,之后提交到阿…

32位单片机PY32F040,主频72M,外设丰富,支持断码LCD

PY32F040 系列微控制器采用高性能的 32 位 ARM Cortex-M0 内核,宽电压工作范围的 MCU。嵌入高达 128 Kbytes flash 和 16 Kbytes SRAM 存储器,最高工作频率 72 MHz。LQFP64封装两块出头就可以拿到,我们还有开发板和开发资料帮助客户更好的开发。 PY32F040 系列微控…

Python集成学习和随机森林算法

大家好,机器学习模型已经成为多个行业决策过程中的重要组成部分,然而在处理嘈杂或多样化的数据集时,它们往往会遇到困难,这就是集成学习(Ensemble Learning)发挥作用的地方。 本文将揭示集成学习的奥秘&am…

Rust开发——使用rust实现Redis中hset

一、Redis中hset HSET 是 Redis 中用于在哈希数据结构中设置指定字段的值的命令。哈希是一种类似于字典或映射的数据结构,它存储了键值对的集合,其中每个键都包含多个字段和与这些字段相关联的值。 哈希表在 Redis 中以键值对形式存储,并通…

【libGDX】ApplicationAdapter生命周期

1 前言 libGDX 中,用户自定义的渲染窗口需要继承 ApplicationAdapter 类,ApplicationAdapter 实现了 ApplicationListener 接口,但实现的方法都是空方法,方法释义如下。 public interface ApplicationListener {// 应用首次创建时…

java版工程管理系统Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码

工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…

ArmV8常用汇编指令2

接上文,我们来分析一些具体指令。 1.加载存储指令 Load/Store可以分为立即数、寄存器等操作,格式如下: 这里Rn和Rt均为4位,原因在于,A32/T32是16个通用寄存器。因此使用4bit刚好可以遍历所有。如果是运行在AArch64&a…

Spring Task使用介绍

文章目录 Spring Task介绍cron表达式入门案例Spring Task使用步骤全注解的方式代码开发测试结果 代码仓库 Spring Task 介绍 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 定位定时任务框架 作用定时自动执行某段Java…

python爬虫概述及简单实践:获取豆瓣电影排行榜

目录 前言 Python爬虫概述 简单实践 - 获取豆瓣电影排行榜 1. 分析目标网页 2. 获取页面内容 3. 解析页面 4. 数据存储 5. 使用代理IP 总结 前言 Python爬虫是指通过程序自动化地对互联网上的信息进行抓取和分析的一种技术。Python作为一门易于学习且强大的编程语言&…

Ps:锁定图层

使用“图层”面板上的锁定图层 Lock Layer功能可以完全或部分锁定图层以保护其内容。 比如,在完成某个图层后希望它不再被修改(包括不透明度和图层样式等),可将其完全锁定。 如果不想更改图像,但对其摆放位置还在犹豫不…

SpringBoot实现IP地址归属地查询

SpringBoot实现IP地址归属地查询 功能特性 标准化的数据格式 每个 IP 数据段的 region 信息都固定了格式: 国家|区域|省份|城市|ISP,只有中国的数据绝大部分精确到了城市,其他国家部分数据只能定位到国家,后前的选项全部是 0。…

6.运行mysql容器-理解容器数据卷

运行mysql容器-理解容器数据卷 1.什么是容器数据卷2.如何使用容器数据卷2.1 数据卷挂载命令2.2 容器数据卷的继承2.3 数据卷的读写权限2.4 容器数据卷的小实验(加深理解)2.4.1 启动挂载数据卷的centos容器2.4.2 启动后,在宿主机的data目录下会…

demo(三)eurekaribbonhystrix----服务降级熔断

一、介绍: 1、雪崩: 多个微服务之间调用的时候,假如微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的"扇出"。如果扇出的链路上某个微服务的调用响应的时间过长或者不可用&am…

【flutter】使用getx下的GetMaterialApp创建路由和使用时间选择器国际化问题

GetMaterialApp是啥 网上解释说是 MaterialApp Getx properties GetMaterialApp 问题 在使用showDateRangePicker组件的时候, 一直报错 No MaterialLocalizations found 我就愁思是不是GetMaterialApp跟MaterialApp方法不一样的问题,结果不是&#…

【7】Spring Boot 3 集成组件:缓存组件 spring cache + spring data redis

目录 【7】Spring Boot 3 集成组件:缓存组件 spring cache spring data redis什么是缓存抽象声明式注解JSR-107对应SpEL上下文数据 引入依赖cache 支持的缓存类型缓存类型配置NONESIMPLEREDIS自定义配置 CAFFEINE Hazelcast...总结 个人主页: 【⭐️个人主页】 需要…

【第2章 Node.js基础】2.7 Node.js 的流(一) 可读流

🌈 Node.js 的流 🚀什么是流 流不是 Node.js 特有的概念。它们是几十年前在 Unix 操作系统中引入的。 我们可以把流看作这些数据的集合,就像液体一样,我们先把这些液体保存在一个容器里(流的内部缓冲区 BufferList&…