编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

免费扫描开源许可证和依赖!项目的合规保护伞:FOSSA!

wxchong 2024-06-14 13:30:06 开源技术 10 ℃ 0 评论

背景

事实上,使用开源组件 or 模块在任何公司都是不可避免的,但是你在商业化软件中使用开源组件就一定会牵扯到合规性,一旦你卖的商业工具违反了开源许可证内容,那就大概率要吃官司,我举一部分例子:

  1. Cisco 和 Free Software Foundation (FSF) 案件:2008年,Free Software Foundation (FSF) 起诉 Cisco,FSF 认为思科在 Linksys 路由器中使用了 GPL 授权的软件,但未遵守 GPL 的要求。
  2. VMware 和 Christoph Hellwig 案件:2015年,Linux 内核开发者 Christoph Hellwig 起诉 VMware,认为 VMware 违反了 GPL 许可证,VMware 的 ESXi 中用到了 Linux 内核代码,但没有开源。
  3. Versata 软件公司和 Ameriprise Financial 案件:2010年,Versata 指控 Ameriprise Financial 违反了其商业软件的许可证协议。
  4. BusyBox 诉讼:BusyBox 的开发者起诉了包括 Best Buy、Samsung、Westinghouse 等,依旧是 GPL 许可证。
  5. Artifex Software 和 Hancom Office 案件:Artifex Software 是 Ghostscript 的开发者,Ghostscript 是一个开源 PDF 和 PostScript 解释器;2016年,Artifex 起诉 Hancom,认为 Hancom 在未遵守许可证的情况下在其办公套件中使用到了 Ghostscript。
  6. Google 和 Oracle 的法律诉讼案件:Oracle 认为谷歌未经过他们的许可,通过非法复制核心 Java 技术来开发 Android 系统。
  7. ...

以上都是由开源许可证导致公司吃官司的实际案例,所以在发布商业化软件工具时,特别是对出海型企业来说,保证开源组件的许可证合规性是很关键的点

Fossa 是什么?

我们主要是使用 Fossa 的 Free 版本,用来做开源许可证合规管理,当然还有一些基础的依赖项分析和漏洞告警之类的;付费版功能就多了一点,可以做 SBOM 生成和扫描,但本文不涉及这些“高级”功能:

开始使用

首先我们需要在 Fossa 上注册一个免费账户:

https://app.fossa.com/auth/register

注册成功之后再设置好 API Key,方便我们在命令行 or 流水线上使用 Fossa:

https://app.fossa.com/account/settings/integrations/api_tokens

设置完毕之后,下载 Fossa Cli:

https://github.com/fossas/fossa-cli

配置完毕后,再把上面的 API Key 配置到 Cli 中:

export FOSSA_API_KEY=XXXX

配置完毕后直接分析即可:

cd $MY_PROJECT_DIR
fossa analyze

使用举例

举例,我克隆一个项目:

https://github.com/oschina/kooder

然后使用 fossa analyze 扫描一下,扫描结果在网页看:

https://app.fossa.com/projects

页面上会有详细的许可证 issue 和一些简要的依赖分析:

这里是说,kooder 这个项目里有两个"可能"未经许可的依赖,"可能"出现的许可证冲突,点进去看:

点进详情看一眼:

如果想针对这个问题提一个工单,Fossa 是可以和 Jira 集成的,也能给一个 URL 连接到你的工单系统:

除了许可证,Fossa 的免费版本也有依赖分析,如下:

随便点开一个依赖项,我们还能看到 path,例如:

对于大部分公司来说,这些许可证分析和依赖分析功能已经足够用了。

后记

出海企业在发布商业化软件时,保证开源组件符合其许可证要求真的很重要,至少能避免被碰瓷吃官司,毕竟从全球化角度看合规也是产品很重要的一部分。

Fossa不仅帮助企业监控和管理开源组件的使用,确保合规,还提供依赖项分析和漏洞警报功能,这就能基本保证我们在开发过程中可以及时识别和处理可能出现的许可证安全隐患,从而有效地降低法律风险。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表