遵循开源软件安全路线图
毫无疑问,开源软件对于满足联邦任务所需的开发和创新至关重要,因此其安全性至关重要。
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 安全性,进而使政府能够针对关键任务运营进行创新。
相关文章:

遵循开源软件安全路线图
毫无疑问,开源软件对于满足联邦任务所需的开发和创新至关重要,因此其安全性至关重要。 OSS(运营支持系统) 支持联邦政府内的每个关键基础设施部门。 联邦政府认识到这一点,并正在采取措施优先考虑 OSS 安全ÿ…...

294_C++_
1、全部大致解析: struct alarminfo_t {unsigned int alarmid;INTF_ALARM_INFO_S pAlarm; };typedef enum{INTF_IO_ALARM_E= 0, //I/O探头告警开始INTF_MOTION_ALARM_E, //移动侦测告警开始INTF_AI_ALARM_E,...

【计算机网络笔记】网络地址转换(NAT)
系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…...

【flink理论】动态表:关系查询处理流的思路:连续查询、状态维护;表转换为流需要编码编码
文章目录 一. 使用关系查询处理流的讨论二. 动态表 & 连续查询(Continuous Query)三. 在流上定义表1. 连续查询2. 查询限制2.1. 维护状态2.2. 计算更新 四. 表到流的转换1. Append-only 流2. Retract 流3. Upsert 流 本文主要讨论了: 讨论通过关系查询处理无界流…...

2023年09月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 以下选项中,不是tkinter变量类型的是?( ) A: IntVar() B: StringVar() C: DoubleVar() D: FloatVar() 答案:D tkinter 无 FloatVar()变量类型。 第2题 关于tkinter,以下说…...

Ubuntu16.04上安装Docker
Ubuntu16.04上安装Docker 更新 apt 包索引: sudo apt-get update安装依赖包,以便使用 HTTPS 仓库 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加 Docker GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu…...

FSOD论文阅读 - 基于卷积和注意力机制的小样本目标检测
来源:知网 标题:基于卷积和注意力机制的小样本目标检测 作者:郭永红,牛海涛,史超,郭铖 郭永红,牛海涛,史超,郭铖.基于卷积和注意力机制的小样本目标检测 [J/OL].兵工学报. https://…...

Windows系统中搭建docker (ubuntu,Docker-desktop)
一、docker安装前的准备工作 1. 开启CPU虚拟化,新电脑该默认是开启的,如果没开启可以根据自己电脑型号品牌搜索如克开启CPU虚拟化。当开启成功后可在设备管理器中看到。 2.开通Hyper-V 通过 Windows 控制面板 --> 程序和功能 -->启用或关闭…...

使用记录-MongoDB
find常用方法 在 MongoDB 的 find 方法中,可以使用各种查询操作符来执行不同类型的查询。其中之一是 $in 操作符,它用于在一个字段中匹配多个值。 $eq 操作符: 用于匹配字段值等于指定值的文档。 // 查询 age 字段等于 25 的文档 db.colle…...

用归并排序算法merge_sort( )求解 逆序对的数量 降低时间复杂度为 nlogn
题目简述 给定一个序列有n个数,求n个数中逆序对的个数,逆序对的定义:i < j && a[i] > a[j]。 输入格式 第一行包含一个整数n。 第二行包含 n 个整数(所有整数均在1~1e9范围内),表示整数数…...

大功率电源芯片WD5030L
电源管理芯片作为现代电子设备中最关键的元件之一,直接影响着设备的性能和效率。而大功率电源芯片作为电源管理芯片中的一种,其性能和应用领域更加广泛。本文将介绍一款具有宽VIN输入范围、高效率和多种优良性能的大功率电源芯片WD5030L,并探…...

Spring Boot使用EhCache完成一个缓存集群
在上一篇在SpringBoot中使用EhCache缓存,我们完成了在Spring Boot中完成了对EhCaChe的使用,这篇,我们将对EhCache的进一步了解,也就是搭建一个EhCache的缓存集群。 集群 在搭建一个EhCache的时候,我们需要先了解&…...

yolov5模型代码怎么修改
yaml配置文件 深度乘积因子 宽度乘积因子 所有版本只有这两个参数的不同,s m l x逐渐加宽加深 各种类型层参数对照 backbone里的各层,在这里解析,只需要改.yaml里的各层参数就能控制网络结构 修改网络结构 第一步:把新加的模块…...

VIM去掉utf-8 bom头
Windows系统的txt文件在使用utf-8编码保存时会默认在文件开头插入三个不可见的字符(0xEF 0xBB 0xBF)称为BOM头 BOM头文件 0.加上BOM标记: :set bomb 1.查询当前UTF-8编码的文件是否有BOM标记: :set bomb? :set bomb? 2.BOM头:文…...

Go 使用Viper处理Go应用程序的配置
在开发Go应用程序时,处理配置是一个常见的需求。配置可能来自于配置文件、环境变量、命令行参数等等。Viper是一个强大的库,可以帮助我们处理这些配置。 什么是Viper? Viper是一个应用程序配置解决方案,用于Go应用程序。它支持JS…...

hadoop安装网址
Hadoop是什么 1)Hadoop是一个有Apache基金会所开发的分布式系统基础架构。 2)主要解决海量数据的存储和海量数据的分析计算问题。 3)广义上来说,Hadoop通常是指一个更广泛的概念---Hadoop生态圈。 Hadoop发行版本 Hadoop发行的…...

JavaMail邮件发送服务
记录一次使用基于SpringBoot来设置发送邮件的服务 导入依赖 <!--邮件发送--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>${springboot.version}</ve…...

【918.环形子数组的最大和】
目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:int maxSubarraySumCircular(vector<int>& nums) {int sum0;for(auto x:nums) sumx;vector<int> f(nums.size());vector<int> g(nums.size…...

Unity Quaternion接口API的常用方法解析_unity基础开发教程
Quaternion接口的常用方法 Quaternion.Euler()Quaternion.Lerp()Quaternion.Inverse()Quaternion.RotateTowards() Quaternion在Unity中是一种非常重要的数据类型,用于表示3D空间中的旋转。Quaternion可以表示任何旋转,无论是在哪个轴上旋转多少度&#…...

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

海康Visionmaster-环境配置:VB.Net 二次开发环境配 置方法
Visual Basic 进行 VM 二次开发的环境配置分为三步。 第一步,使用 VS 新建一个框架为.NET Framework 4.6.1,平台去勾选首选 32 为的工程,重新生成解决方案,保证工程 Debug 下存在 exe 文件,最后关闭新建工程࿱…...

51单片机应用从零开始(四)
51单片机应用从零开始(一)-CSDN博客 51单片机应用从零开始(二)-CSDN博客 51单片机应用从零开始(三)-CSDN博客 详解 KEIL C51 软件的使用建立工程-CSDN博客 详解 KEIL C51 软件的使用设置工程编绎与连接程序…...

Django下的Race Condition漏洞
目录 环境搭建 无锁无事务的竞争攻击复现 无锁有事务的竞争攻击复现 悲观锁进行防御 乐观锁进行防御 环境搭建 首先我们安装源码包:GitHub - phith0n/race-condition-playground: Playground for Race Condition attack 然后将源码包上传到Ubuntu 为了方便使…...

【数据结构】希尔排序(最小增量排序)
👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…...

Android Native崩溃信息分析和 工具(addr2line和ndkstack)使用
这里以一个实际的crash案例未demo进行分析和讲解。针对native的崩溃信息。一般来讲,较快的方式是直接检索到backtrace,然后通过分析和使用工具addr2line和 ndk-stack等定位到出问题的地方。这里截取了一段 崩溃日志,具体如下: 01…...

2023年05月 Python(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 明明每天坚持背英语单词,他建立了英语单词错题本文件“mistakes.txt”,将每天记错的单词增加到该文件中,下列打开文件的语句最合适的是?( ) A: f = open(“mistakes.txt”) B: …...

SQLite3 数据库学习(文章链接汇总)
参考引用 SQLite 权威指南(第二版)SQLite3 入门 SQLite3 数据库学习(一):数据库和 SQLite 基础 SQLite3 数据库学习(二):SQLite 中的 SQL 语句详解 SQLite3 数据库学习(三…...

【VSCode】Visual Studio Code 下载与安装教程
前言 Visual Studio Code(简称 VS Code)是一个轻量级的代码编辑器,适用于多种编程语言和开发环境。本文将介绍如何下载和安装 Visual Studio Code。 下载安装包 首先,我们需要从官方网站下载 Visual Studio Code 的安装包。请访…...

分布式教程从0到1【1】分布式基础
1 分布式基础概念 1.1 微服务 微服务架构风格,就像是把一个单独的应用程序开发为一套小服务,每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是 HTTP API。这些服务围绕业务能力来构建,并通过完全自动化部署…...

Ubuntu22.04 部署Mqtt服务器
1、打开Download EMQX (www.emqx.io)下载mqtt服务器版本 2、Download the EMQX repository curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash 3.Install EMQX sudo apt-get install emqx 4.Run EMQX sudo systemctl start…...