【解读】Synopsys发布2024年开源安全和风险分析报告OSSRA

软件供应链管理中,许可证和安全合规性至关重要。开源组件和库可降低风险,但需了解许可证内容。Synopsys 2023年审计发现,超过一半的代码库存在许可证冲突。MIT许可证是最常用的宽松许可证,但也与其他许可证存在不兼容风险。点此获取报告原文(中文翻译版本,访问密码:6277)。

在这里插入图片描述

1. 一些关键发现

1.1. 绝大多数开源软件使用者并没有更新他们使用的组件

2022至2023年间,高风险漏洞增加了54%(26个百分点),造成这种情况的原因可能不止一个。例如,有可能是经济衰退和随之而来的裁员导致用于寻找和修补漏洞的人员数量减少。此外,审查发现,91%的代码库包含了比最新版本落后10个或更多版本的组件,由此
可以得出一个简单的结论:绝大多数开源软件使用者并没有更新他们使用的组件。

在这里插入图片描述

1.2. Top 10 的漏洞中,有8个都可以映射到同个CWE

CWE-707CWE 20、79、80、97、937的支柱。CWE-707涉及从上游组件读取数据或发送数据到下游组件之前,没有满足安全需求。不能正确地净化输入可能会带来跨站脚本(XSS) 和SQL注入等漏洞利用攻击。

CWE项目将“支柱缺陷”定义为最高级别的缺陷,是与之相关的所有类别/变体缺陷的基础。如果想深入理解CWE,可以参阅博主文章《「 网络安全常用术语解读 」通用缺陷枚举CWE详解》

在这里插入图片描述

1.3. 其他关键数据

  • 在扫描的1,000多个代码库中,有96%包含开源代码
  • 77%的源代码和文件来自开源
  • 53%的代码库存在开源许可证冲突
  • 84%的代码库在安全风险评估中发现了漏洞;74%有高风险漏洞
  • 91%的代码库中包含比最新版本落后10个或更多版本的组件

2. 为什么开源软件供应链安全如此重要?

开源软件供应链安全是指确保开源软件在开发、分发和使用过程中的安全性。随着开源软件的广泛使用,开源软件供应链安全变得越来越重要。如果开源软件供应链存在安全漏洞,可能会导致严重的安全风险,例如数据泄露、系统崩溃等。因此,保护开源软件供应链的安全性对于确保软件供应链的安全性和可靠性至关重要。

3. 为什么开发者需要保持开源组件的持续更新?

使用商业软件的组织都知道,他们的软件会被自动“推送”补丁和更新,或者至少会收到供应商的通知,告诉他们有更新可以下载(通常是非常重要的更新)。但这种情况在开源软件中很少出现,开源软件的使用者需要自己关注组件的状态,自己去下载可用的新版本。

过时的开源组件可能包含已知漏洞,这些漏洞可能会被攻击者利用。此外,过时的开源组件可能不再得到维护,这意味着开发者无法获得安全更新和补丁。因此,开发者需要定期更新和维护其使用的开源组件,以确保其应用程序的安全性和可靠性。

4. 为什么软件供应链管理需要软件物料清单 (SBOM) ?

SBOM 是一份详细的清单,列出了软件中使用的所有组件、依赖项和许可证信息。通过使用 SBOM,组织可以更好地了解其软件中的组件来源、许可证合规性和安全漏洞,从而更好地管理其软件供应链。此外,SBOM 还可以帮助组织遵守法规要求,例如美国国家标准与技术研究院 (NIST) 的软件供应链安全指南。

美国第14028号行政命令 (EO) “提升国家网络安全”规定,软件供应商必须直接向采购方提供SBOM,或者在公共网站上公开其SBOM,并且政府和非政府方面可能都需要查看SBOM,以确保软件产品符合SBOM的最低要求。

Black Duck审计团队发现,在2023年审计的代码库中,超过一半 (53%) 包含存在许可证冲突的开源软件。下图为常用的Top 10开源软件许可,关于开源软件许可证的详情介绍可参阅博主文章《带你正确认识开源软件》。

在这里插入图片描述

在美国及其他国家,创造性的工作(包括软件)默认会受版权的保护。未经创作者授权,任何人对该软件的使用、复制、分发或修改均不合法。即使最友好的开源许可证(如MIT、BSD)也会规定用户在使用软件时需要承担的义务。如果代码库中包含的开源代码许可证与该代码库的总体许可证存在冲突,就可能存在潜在的许可证风险。

5. 参考

[1] Synopsys 2024年开源安全和风险分析报告(访问密码:6277)


在这里插入图片描述

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

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

相关文章

AI新工具(20240315) 用户通过点击图像的特定部分实现域区图像动画; 先进的机器人操作框架

✨ 1: Follow-Your-Click 用户通过点击图像的特定部分实现域区图像动画 Follow-Your-Click 是一个开放领域的区域性图像动画创作工具,它可以通过简短的提示语实现图像中特定区域的动画效果。这种功能允许用户通过点击图像的特定部分并输入简短的指令(例…

ViT学习笔记

一、Embedding层 对于标准的Transformer 模块,要求输入的是 token (向量 ) 序列,即二维矩阵 [num_token, token_dim] 在代码实现中,直接通过一个卷积层来实现以ViT- B/16为例,使用卷积核大小为 16x16 , stride 为 16 …

【Streamlit学习笔记】实现包含多个sheet的excel文件下载

1、什么是Streamlit Streamlit是一个免费的开源框架,用于快速构建和共享漂亮的机器学习和数据科学Web应用程序,官网链接 Streamlit Streamlit API链接 API reference 实际项目中遇到的问题:包含多个sheet的excel文件下载,下面将给…

二维数组_矩阵交换行

任务描述 给定一个5*5的矩阵(数学上,一个rc的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。 输入格式: 输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格…

传输层的UDP协议

1. UDP协议报文格式 1.1 16位端口号 UDP协议报文中,端口号占2个字节,包括 源端口号 和 目的端口号。 1.2 16位UDP长度 UDP报文长度为2个字节 ,即UDP数据报长度为0~65535,也就是64kb。 1.3 16位UDP检验和 数据在网络传输的…

k8s helm 删除 tiller

kuberneter 上面装了 helm 想卸载还并不是那么简单, 参考 stackoverflow 回复 kubectl get -n kube-system secrets,sa,clusterrolebinding -o name|grep tiller|xargs kubectl -n kube-system delete kubectl get all -n kube-system -l apphelm -o name|xargs kubectl dele…

DHCP在企业网的部署及安全防范

学习目标: 1. DHCP能够解决什么问题? 2. DHCP服务器如何部署? 3. 私接设备会带来什么问题以及如何防范? 给DHCP服务器配置地址: 地址池: DHCP有2种分配模式:全局分配和接口分配 DHCP enable

element el-table 表格限制多选个数

本次的功能的要求是: 原本的引入的elment 的表格,去除全选框,版本对比的按钮,需要在选择版本,并且版本个数为2的时候,可点击,进行版本对比操作每次选择版本的时候,目前已有两个选择…

酷轻松气囊按摩护膝全新上线,科技呵护膝部健康

在快节奏的现代生活中,膝部健康问题逐渐引起人们的重视。长时间的站立、行走或运动,都可能对膝部造成不同程度的压力和损伤。 特别是家里有老人一直被老寒腿、关节发凉疼痛困扰的,经常一遇到下雨天,膝盖就不舒服;尤其到…

HDC2010+STM32读取数据发送到onenet平台

第一次用HDC2010用stm32l051单片机读取数据看了2天的datasheet都没看明白,好在在老板的帮助下里面的数据读取出来。之后的工作一个人好在顺利完成。以下记录一下写的代码 /* USER CODE BEGIN Header */ /********************************************************…

Linux下非阻塞IO实验二

一. 简介 前面一篇文章编写Linux驱动代码(轮询函数的实现),来处理 Linux下应用程序以非阻塞方式访问设备。文章地址: Linux下非阻塞IO实验一-CSDN博客 本文编写另外一种驱动代码实现方式,与上面实现的区别主要是阻…

Selenium WebDriver类的常用属性和方法汇总

WebDriver类是 Selenium WebDriver 提供的用于控制浏览器的核心类之一,它提供了许多属性和方法来管理浏览器会话、导航到不同的网页、定位和操作页面元素等。下面分别归纳其属性和方法: **属性:** 1. capabilities: 返回当前会话的浏览器的…

rsync+inotify-tools文件传输

目录 rsync rsync概述 rsync优缺点 rsync参数 rsync命令 rsync同步源 linux 安装rsync 安装rsync服务端 安装rsync客户端 windows 安装rsync rsync实践 inotify-tools inotify-tools概述 innotify-tools 命令、参数、事件 rsync客户端安装inotify-tools innotif…

鸿蒙-自定义组件的生命周期

目录 自定义组件的生命周期 1.aboutToAppear 2.aboutToDisappear 3.onPageShow 4.onPageHide 5.onBackPress 日志输出 1.显示页面 2.页面点击返回按钮 3.页面跳转 4.页面返回 自定义组件的生命周期 先来一段列子 import router from ohos.router Entry Component…

虚拟机VMware上 centos7 的网络配置

第一步:权限的切换 由普通用户切换到超级用户 用户名为:root 密码为:自己安装 linux 时第一次设置的密码 su -root超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。当看到你的命令提示符为“$”时,证明切…

华为配置敏捷分布式SFN漫游实验

配置敏捷分布式SFN漫游示例 组网图形 图1 配置敏捷分布式SFN漫游示例组网图 组网需求数据规划配置思路配置注意事项操作步骤配置文件 组网需求 某医院通过部署敏捷分布式网络给医护人员提供WLAN接入服务,以满足医护人员办公的最基本需求。管理员希望终端在覆盖区域内…

pytorch之诗词生成6--eval

先上代码: import tensorflow as tf from dataset import tokenizer import settings import utils# 加载训练好的模型 model tf.keras.models.load_model(r"E:\best_model.h5") # 随机生成一首诗 print(utils.generate_random_poetry(tokenizer, model)…

k8s admin 用户生成token

k8s 版本 1.28 创建一个admin的命名空间 admin-namespce.yaml kind: Namespace apiVersion: v1 metadata: name: admin labels: name: admin 部署进k8s kubectl apply -f admin-namespce.yaml 查看k8s namespace 的列表 kubectl get namespace查看当前生效的…

WRF模型教程(ububtu系统)-WPS(WRF Pre-Processing System)概述

一、WPS简介 WRF 预处理系统 (WRF Pre-Processing System,WPS) ,集成了基于Fortran和C编写的程序,这些程序主要用于处理输入到real.exe的数据。WPS主要有三个程序和一些辅助程序。 二、各程序介绍 主要的程序为geogrid.exe、ungrib.exe、met…

paddle ocr识别文字

paddle使用 # pip install paddlepaddle2.5.2 -i https://mirror.baidu.com/pypi/simple # pip install paddleocr2.7.0.3 -i https://mirror.baidu.com/pypi/simplefrom paddleocr import PaddleOCR from PIL import Image import numpy as npimage Image.open(./2.png) ocr…