开源软件运维安全防护的六个手段

开源,顾名思义,即开放软件源代码。代码贡献者可将自己编写的程序提交到开源社区的公开平台上,其他代码开发者如有类似的功能需求可以不必再自己动脑动手编写代码,而是直接集成、修改或应用贡献者公开的代码。

开源软件是通过特定类型的许可证发布的软件,作为全球软件开发的基石,已成为全球发展、数字化与信息化变革的重要技术来源。针对开源软件运维安全,建议采用如下防护手段:

1、建立软件材料清单

软件材料清单 (Software Bill of Materials, SBOM) 必须由项目维护者生成、维护和详细提供,使用自动化软件成分分析 (Software Composition Analysis,SCA) 工具检查所使用的组件,以及检查是否含有恶意代码或者漏洞组件。SBOM 必须由包存储库安全地托管和分发,并由下游用户仔细检查他们的安全性、质量和许可证需求。

2、强化静态分析检测

针对开源代码开展静态分析以检测其存在的漏洞或其他风险隐患,主要基于两种技术。一种技术为不同代码间的特征比对,该技术的本质为用同一种特征提取手段分别提取目标代码 Code_A 的特征 Ca 与参考代码 Code_R 的特征Cr 并进行对比,如果代码特征相同,则意味着代码内容一致,其风险点也一致。另一种技术为不同代码之间的依赖关系比对,该技术通常需要对完整代码而非截取代码片段进行分析,其主要基于比对不同代码中依赖的外部函数库或组件,如果目标代码 Code_A引用了已知存在风险点的代码库或函数 Code_B,则目标代码通常会存在相同的风险点。

3、加强安全身份验证

建议服务提供者提供多因素身份验证 (MFA) 或实施强密码策略,而项目维护人员应该遵循身份验证标准,例如,在可用的情况下使用 MFA,避免密码重用,或保护敏感令牌。

4、 启用分支保护规则

维护人员应该进行仔细审查合并请求,或者为敏感的项目分支启用分支保护规则,以避免恶意代码贡献。由于项目构建仍然可能发生在维护人员的工作站上,建议他们使用专用的构建服务。可以隔离构建步骤,这样攻击者就不能篡改构建完成的项目。

5、独立完成包构建

软件包的构建不应该由下载时临时构建,建议由包存储库实现,以此减少破坏项目构建的风险。如果由使用者构建,这将消除与第三方构建服务和包存储库相关的所有风险。在使用时可以通过隔离代码或沙箱来减少恶意代码执行的影响。

6、 建立开源治理体系

构筑健全的开源软件治理体系,设计符合企业自身情况的开源治理流程,有助于确保开源治理工作的可落地性,促进开源软件的管理规范化、标准化,是安全、合规地使用开源软件的根本保障。

  • 让安全治理贯穿软件生命全周期,全面保障开源软件安全;
  • 使开源软件的使用规范化、体系化,纳入企业常规管理流程;
  • 贯彻开源软件安全使用意识,明确开源治理对于企业业务发展的重要性;
  • 及时掌握开源技术发展动态,加强开源技术创新提升,掌握核心技术能力。

梳理开源软件安全风险点有助于提高对开源软件安全威胁的认识,如何把控开源软件的运维安全:

一是安全防护需要所有环节的人员去共同维护,攻击者需要找到链条中单一弱点即可,而防御者需要覆盖整个攻击面。

二是应提升所有环节人员的安全意识,从根本上解决安全问题。

三是使用规范的软件开发环节,使得代码开发流程无懈可击。

四是完善安全审计工具,协助开发者解决自写代码、引入代码中的安全问题。

五是对所有引入代码、开发人员不可信,对依赖的开源代码、开发代码多次扫描,防止投毒、漏洞的引入,甚至是内部人员的恶意攻击。

六是开源代码使用者需从官网下载代码,并根据自己需求,审查许可信息和执行漏洞扫描。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳公司减资 深圳公司变更 深圳公司减资流程

新公司法从2024年7月1日起,全体股东需要在公司成立之日起五年内缴足认缴的出资额。这一变革在社会上引发了广泛的关注和热议。 如果您公司注册资金巨大,数千万甚至上亿,那么到了出资期限后,股东出资可能会面临困难。此时&#xf…

LeetCode(454)四数相加 II⭐⭐

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] B[j] C[k] D[l] 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -2^28 到 2^28 - 1 之间&#…

Pinia处学习

修改数据的三种方式: mutate本次变化的数据,state时store中的数据

LeetCode每周五题_2024/01/08~01/12

文章目录 447. 回旋镖的数量 [01/08]题目题解 2707. 字符串中的额外字符 [01/09]题目题解 447. 回旋镖的数量 [01/08] 447. 回旋镖的数量 题目 给定平面上 n 对 互不相同 的点 points ,其中 points[i] [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 &#xff0…

大模型训练营Day2 homework

1.使用 InternLM-Chat-7B 模型生成 300 字的小故事 2.熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地: 下面开始下载和推广大模型的相关的包: 这里需要在本地上&…

uniapp自定义底部导航栏

1.新建 nav-custom.vue组件 <template><view class"nav-box" :style"{height:heightpx,background:bgColor}"><!-- 自定义导航栏 --><view class"status_bar" :style"{height:statusBarHeightpx}"><!-- u…

@Transactional 事务注解

第一、先简单介绍一下Spring事务的传播行为 所谓事务的传播行为是指&#xff0c;如果在开始当前事务之前&#xff0c;一个事务上下文已经存在&#xff0c;此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量&…

HarmonyOS应用开发学习笔记 UIAbility组件间交互 UIAbility启动,页面跳转结果回调

1、 HarmoryOS Ability页面的生命周期 2、 Component自定义组件 3、HarmonyOS 应用开发学习笔记 ets组件生命周期 4、HarmonyOS 应用开发学习笔记 ets组件样式定义 Styles装饰器&#xff1a;定义组件重用样式 Extend装饰器&#xff1a;定义扩展组件样式 5、HarmonyOS 应用开发…

MySQL的体系结构(超全总结版)

MySQL组成 连接池组件管理服务和工具组件SQL接口组件查询分析器组件优化器组件缓冲组件插件式存储引擎物理文件 存储引擎 InnoDB存储引擎 主要面向OLTP(在线事务处理)方面的应用&#xff0c;特点是行锁设计、支持外键&#xff0c;默认情况下读取操作不会产生锁。通过使用多…

布隆过滤器的原理

布隆过滤器&#xff08;Bloom Filter&#xff09;是由Burton Howard Bloom在1970年提出的一种空间效率很高的概率型数据结构&#xff0c;它用来测试一个元素是否在一个集合中。布隆过滤器可以非常快速地进行插入和查询操作&#xff0c;并且非常节省空间&#xff0c;但它有一个小…

Centos7下升级gcc/g++版本(简单 + 避坑)

在 Centos7 下&#xff0c;使用 yum 安装高版本的 gcc/g 最简单&#xff1a; yum -y install centos-release-scl yum -y install devtoolset-11-gcc devtoolset-11-gcc-c devtoolset-11-binutils需要安装哪个个版本的gcc/g&#xff0c;就把数字替换成对应的版本号。例如上面代…

船舶3d虚拟展厅线上制作降低展示成本

VR线上虚拟展厅漫游搭建平台是一种新兴的技术&#xff0c;它能够为用户提供更加真实、沉浸式的体验。目前&#xff0c;市场上有许多公司提供VR线上虚拟展厅漫游搭建平台技术服务&#xff0c;为客户提供全方位的支持。 首先&#xff0c;这些公司通常会提供专业的策划和设计服务。…

TCP三次握手过程?

TCP三次握手过程&#xff1f; 分享 回答 1 浏览 3662 一颗小胡椒 2 CISM-WSE CISP-PTS 三次握手是 TCP 连接的建立过程。在握手之前&#xff0c;主动打开连接的客户端结束 CLOSE 阶段&#xff0c;被动打开的服务器也结束 CLOSE 阶段&#xff0c;并进入 LISTEN 阶段。随后进入…

常见的硬件连通性测试方法有哪些?

硬件连通性测试是确保硬件系统正常运行的关键一环。通过采用电气测试、数据传输测试和信号完整性测试等方法&#xff0c;可以有效发现和解决硬件连接中的问题&#xff0c;提高系统的可靠性和性能。 1、电气测试 通过使用示波器、多用途表等工具&#xff0c;对硬件设备的电气参数…

记一次线上报错 GList AddChildAt NullReferenceException

文章目录 问题描述分析结果总结 问题描述 后台日志大量报错&#xff0c;去主干看无法复现 c# exception:System.NullReferenceException: Object reference not set to an instance of an object. at FairyGUI.GCompone nt.AddChildAt (FairyGUI.GObject child, System.Int32 …

make的基本操作

./configure --with-name地址 &#xff08;相关库的安装路径&#xff09; make -jn //n指定最大核数 sudo make install //也可以指定安装目录 make install prefix路径 sudo ldconfig

二进制部署

HOST HostnameIP地址flannedAPPmaster192.169.116.10ETCD\APIserver\Scheduler\Controller-Managernode1192.168.116.11172.17.28.0ETCD,Flanned,Kubelet,kube-proxynode2192.168.116.12172.17.26.0ETCD,Flanned,Kubelet,kube-proxy Kubernetes社区 Kubernetes文档 ETCD mas…

微信小程序canvas画布自由绘制/画笔功能实现

.wxml <canvas class="canvas" type="2d" id="myCanvas" bindtouchstart="update_edit_position" bindtouchmove="brush"/> .wxss 定义画布显示样式 .canvas{background-color: white;height: 65vh;width: 100%;m…

大模型时代:AI原生企业的崛起

导读&#xff1a;当前&#xff0c;以大模型为代表的人工智能技术已成为驱动经济社会发展、提升国家竞争力的关键要素&#xff0c;并以前所未有的速度重塑产业的新格局、驱动经济发展的新方向&#xff0c;并展现出强大的赋能效应&#xff0c;给千行百业带来“质量与效率”的变革…

ORPC-824,对标可替代ACPL-824/PC824等

提供隔离反馈 逻辑电路之间的接口 电平转换 DC和AC输入 SMPS中的调节反馈电路 消除接地环路 特征 电流传输比 &#xff08; CTR &#xff1a; 最低 20% 在 IF 1mA&#xff0c; VCE 5V &#xff09; 宽工作温度范围 -55~110C 高输入输出隔离电压 &#xff08; Viso 5&am…