卡卷网
当前位置:卡卷网 / 每日看点 / 正文

使用开源软件安全吗?

作者:卡卷网发布时间:2024-12-20 00:44浏览数量:81次评论数量:0次

开源软件(Open Source Software, OSS)大致可以分两类:

  1. 开放源码且不用作开发目的、直接使用的软件;
  2. 开放源码但用作开发目的的、需要调用的组件。

对于开源软件的使用者,其风险可以分为以下几类:

  • OSS版本变动引入的风险;
  • 组件漏洞的风险;
  • 许可协议带来的法律风险;
  • 现有代码以及OSS的兼容性风险;
  • OSS文档质量差和过时的风险。

而使用开源软件在软件开发工作中几乎是必然的:

Black Duck Audit Services团队2023年分析了1703个代码库,并在其年度审计报告中指出,其中96%包含开源组件,其总代码中有76%是开源代码,84%的代码库包含至少一个已知的开源漏洞,48%的代码库包含高危风险漏洞。

同样,面临的安全漏洞也不容小觑,根据新思科技(synopsys)2023年的报告《开源安全与风险分析报告》显示:

1703个代码库中,54%的代码库有开源协议冲突,31%的代码库包含没有协议或自定义协议的开源代码,89%的代码库包含超过4年以上未更新的开源代码,91%的代码库包含过去2年未更新的组件,84%的代码库包含至少一个开源漏洞,5%的代码库包含有漏洞的Log4J版本,11%的Java代码库包含有漏洞的Log4J版本。

于是,在1998年发现该问题后,人们最初是使用电子表格和文档来跟踪开发人员使用的所有开源组件,这是一种SCA(Software Composition Analysis)技术,用于管理开源组件的使用。但是人工的统计效率低下,且没有一个较好的管理标准,于是2002年,第一个手动开源扫描工具诞生,但是这种技术早期仍然误报率高,需要人工干预,不符合敏捷开发环境的需求。到2011年,SCA技术得到进展,能够实时自动检测漏洞和许可问题,这使得软件开发人员能在开发周期的早期就进行开源组件管理。

目前的SCA产品主要用作第三方开源组件的漏洞检测,比如Java的SpringBoot框架、Fastjson库、Log4j库,Python中的NumPy库、TensorFlow库,Javascript中的jQuery库等等,以及开源许可的识别,比如《从何同学视频看开源协议的重要性》。

要平衡安全和投入,应用SCA产品还需要少量人工投入,但同时对人员要求也较高,包括熟悉开发、熟悉漏洞、熟悉英文。

由于其核心能力涉及到代码指纹库、漏洞库以及漏洞跟踪能力,国外较为知名的SCA产品(如新思科技的BlackDuck)较为昂贵(单次扫描或产品购买),国内厂商的产品相比之下可能更为实惠,比如开源网安的《开源组件安全及合规管理平台》。

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码