SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。
一、前言
现代开发项目中,应用程序中使用的大部分代码都是由开源代码构成的,其余的代码主要是作为"胶水"来组装和调用各种函数。据中国信息通信研究院统计的数据, 2020年中国已经使用开源技术的企业占比为88.2%,比2018年增长6.8%;有计划使用的占9.5%;暂未计划使用开源技术的企业占比为2.1%, 可以看出,中国开源软件应用比例逐年提升。 开源让这些软件更安全吗? 根据通信研究院数据显示,2020年热门开源项目中至少含有一个漏洞占84%,较2019年增长9个百分点;含有高危漏洞的占60%,较2019年增长11个百分点。
下面介绍两个例子
- 最显著的例子就是去年爆发的Log4j2漏洞,Log4j2 是一个开源的基于 Java 的日志记录工具。该日志框架被广泛的应用于各种常见的服务中(spring-boot-starter-log4j2、Apache Struts2、Apache Flink)。从Apache Log4j2 漏洞影响面查询的统计来看,影响多达44029个开源软件,涉及相关版本软件包更是达到了340657个。
- 2020年国内第一起一起关于 GPL 版权纠纷案裁判文书公示。一审判决书显示,GPL3.0 协议是一种民事法律行为,具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国《合同法》调整的范围。一审判定两侵权被告公司赔偿原告公司经济损失及维权合理费用共计 50 万元,并停止侵权行为。
目前开源软件所面临的除了以上介绍的