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

news/2024/7/10 22:19:07 标签: 开源, 安全, 供应链安全

软件供应链管理中,许可证和安全合规性至关重要。开源组件和库可降低风险,但需了解许可证内容。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.niftyadmin.cn/n/5430981.html

相关文章

在Flutter中创建自定义的左对齐TabBar组件

在Flutter应用程序中,TabBar是一种常见的UI模式,用于在不同的标签页之间进行导航。然而,默认情况下,Flutter的TabBar在水平方向上是居中对齐的。本文将介绍如何创建一个自定义的左对齐TabBar组件,以满足特定的布局需求…

android api 34 编译ffmpeg with libfdk-aac

利用ffmpeg-android-maker编译,地址Javernaut/ffmpeg-android-maker: Contains a script that assembles FFmpeg library for Android (github.com)libfdk-aac编译脚本 #!/bin/bash NDK$ANDROID_NDK_HOME # 这里需要替换成你本地的 NDK 路径 HOST_TAGlinux-x86_64…

1.2 课程架构介绍:STM32H5 芯片生命周期管理与安全调试

1.2 课程架构介绍:STM32H5 芯片生命周期管理与安全调试 下面开始学习课程的第二节,简单介绍下STM32H5芯片的生命周期和安全调试,具体课程大家可以观看STM32官方录制的课程,链接:1.2. 课程架构介绍:STM32H5…

基于springboot的七彩云南文化旅游网站的设计与实现(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装七彩云南文化旅游网站软件来发挥其高效地信息处理的作用&am…

Kotlin:runBlocking导致App应用出现ANR问题实例

runBlocking简介 runBlocking 是常规函数; runBlocking 方法会阻塞当前线程来等待; runBlocking 的主线程会一直 阻塞 直到 runBlocking 内部的协程执行完毕。 runBlocking导致App应用出现ANR问题实例的效果 点击页面上的 刷新按钮 调用 refreshByrunBlo…

[云原生] Prometheus之部署 Alertmanager 发送告警

一、Alertmanager 发送告警的介绍 Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。 Alertmanager 负责处理由 Prometheus Serve…

CRC校验(FPGA实现)

1 什么是CRC校验? CRC(循环冗余校验)是一种校验和算法,用于检测数据传输或存储中是否发生了错误。它通过对数据流进行特定的数学运算(比如按照多项式进行除法运算),生成一个特定长度的校验结果,将其附加到数据中一起传输或存储。接收方可以使用相同的算法对接收到的数…

音视频如何快速转二维码?在线生成音视频活码的教程

音频文件的二维码制作步骤是什么样的呢?扫描二维码来展现内容是很流行的一种方式,基本上日常生活中经常会用的图片、音频、视频等都可以使用生成二维码的方式。现在很多的幼儿园或者学校会录制孩子的音频或者视频内容用来展示,那么二维码制作…