大数跨境
0
0

你以为的开源世界“岁月静好”,实际上有人为你“负重前行”!—从X兔事件看开源合规

你以为的开源世界“岁月静好”,实际上有人为你“负重前行”!—从X兔事件看开源合规 安势信息
2023-05-22
2
导读:X兔公然抄袭Streampark的开源项目,开源的世界是否真的会变的更好?

1

事件回顾


从1970年开源理念的诞生,到1985年FSF(Free Software Foundation)的正式创立,再到OSI(Open Source Initiative)明确了OSS(Open Source Software)的定义,到如今开源许可证多达2700种以上。历经几十年的发展后,开源已经被每一位软件行业从业人员所熟知,也已经成为数字经济的支柱产业,也是数字世界的基础设施。不管是互联网、移动应用程序,还是用于构建未来世界的操作系统和编程语言,开源软件都发挥着至关重要的作用。从某种程度上来讲,开源是当今科技产业的生命线。然而,开源圈最近或多或少都听说了X兔公然抄袭Apache StreamPark源代码的事件,虽然X兔也及时做出了道歉回应,并且X兔本身的多个项目也是基于开源进行分发的。但通过本次事件反映出来的大家对于开源合规的治理以及背后所产生的软件供应链安全隐患却是我们需要去深思的。此事件在国内开源社区激起了不小的波澜,甚至有媒体基于此事件发出了《中国的软件除了抄袭其他一无所有》(https://user.guancha.cn/main/content?id=988495)这样激烈的悲观言论。

姑且不论中国软件行业的发展,就事论事,我们先简单回顾一下本次事件,简而言之,就是某某速运旗下的X兔实时计算团队在没有声明版权的情况下(即直接删除了StreamPark开源项目源代码中Apache2.0的license header)直接copy了StreamPark中某开源项目的多行源代码,且擅自将Apache StreamPark 中使用的Apache-2.0 license 变更为GPL 3.0 license。在开源项目中擅自修改license再分发这一行为不仅是违规的,也是是明确禁止的

如果想进一步了解该事件详情的大家可以查看以下两篇推文:
推文1
推文2

就StreamPark的角度来看,这次事件无疑是令人愤怒的,甚至是讽刺的,因为事件中的X兔在国内也是开源组件(软件)的贡献者,也经常在一些重要的会大及媒体平台上对外宣称自己项目开源,鼓励大家开源。对此StreamPark甚至发出了:【不知道针对这种拿着别人项目的源码,剔除声明,修改开源协议,参加行业峰会,呼吁大家积极加入的行为,大家如何看待?】的严厉质问。在StreamPark看来,X兔坦然接受了开源为软件发展带来的美好权益,转过头却对开源项目所背负的责任及义务视若无物。

而就X兔团队来看,不论是有意或疏忽,违规copy源代码都是事实,或许X兔团队也的确是希望国内的开源生态越来越好,但是却忽略了开源合规的重要性从而导致了这次事件的发生。尽管X兔团队已经公开道歉且与StreamPark达成和解,但还是无法避免给公司都带来的商誉上的损害,在国内开源生态中也会有失公信力,甚至导致经济利益上的间接损失。

总的来看,通过这次事件,双方都受到了一定的伤害,也或许都心存“委屈”。但从这次事件来看,如果把“开源”比作推动软件发展的一把双刃剑,有好有坏的话,那么基于合规底座下的开源,才是那把能够为信息软件发展披荆斩棘的“利器”。再从细节来看,StreamPark的开源协议其实已经是开源许可协议里非常宽松和友好的那一类协议了(Apache 2.0),该协议允许个人或组织使用、修改、并且对基于此开发的软件进行商业化的售卖(前提是不违反协议)。然而尽管就是如此宽松的协议都能遭到使用者的侵权,由此可见,至少对我国来说,开源合规的治理依然“任重而道远”。无独有偶,更早时间的“罗盒案”、“风灵案”都是开源合规没得到有效治理的典型案例,想象一下,如果今天的X兔用这个开源组件开发了一款软件A并取得了商业化的成功,而如果一旦发现该组件的使用已经侵权,那么面临的不仅仅是软件A的下架,也将会面临着侵权的赔偿费用。这对任一企业来说都将是得不偿失。

2

关于开源治理


开源近些年在我国飞速发展,的确大大加速了我国各行各业的信息化数字化进程,这离不开相关从业者的努力,更离不开各类开源代码为我们带来的便利,但是也希望大家明白,开源不等于免费,开源始于贡献,才能达成共建,但贡献应是在尊重别人努力的基础上,应是在合规的基础上。所以开源合规和知识产权的意识在整个软件供应链中至关重要,身处业内的你我都应该遵守

尤其是对各种企业来说,软件供应链的透明度是开源合规的一大保障,如果自己采购的某个上游组件都是“黑盒”状态,抑或自主研发的软件是否含有开源代码都“雾里看花”的话,那么说不定哪一天法院的律师函就突然给你带来“惊喜”。

所以开源合规,怎么合规?合规治理,怎么治理?让本已经头发不多的程序员(doge)对着动不动上万行的代码去找哪些是copy来的?这当然不现实,所以如果想避免开源涉及的版权问题,那么开源成分分析(SCA)工具是必不可少的

我们从GitHub下载了X兔之前版本的代码进行了软件成分分析扫描。不难发现,其某部分代码片段后面明明白白的写着其中有代码片段的源代码是匹配于StreamPark的1.20,并且也明确标示出了StreamPark的该版本组件是基于Apache2.0发布的。(如图1)

图1:清源SCA对X兔项目的扫描结果

虽然我们不清楚本事件是“员工”个人行为还是公司行为,我们暂且认为公司“审查不严”,本次事件是员工个人行为且X兔项目组具有开源合规和版权意识,那么某某速运应该在项目上线前进行开源成分分析扫描来避免上图出现的删header问题并按照该License规定的协议进行分发。扩展到其他厂商也是一样的,特别是大厂,开发人员数量庞大且版权意识相对薄弱,企业如何确保开发人员的代码没有安全与合规问题?靠自觉?显然是不现实的。

那么试试SCA工具吧,使用SCA工具之后,相信可以避免这种“审查不严”的情况的发生。

我们继续挖。会发现还有很多类似的许可证篡改风险在工具中呈现。

1

许可证篡改风险

通过SCA工具一共发现了数十个个文件的许可证有被篡改的可能(如图2所示)。

图2:清源SCA扫描出的许可证篡改风险

删header的情况相当普遍,下面三张图是Apache基金会下Flink项目和Dinky项目的情况,我们可以通过SCA工具的代码片段对比功能看出(左侧是X兔项目,右侧是代码片段匹配到的开源项目),原本文件中的license header被删掉了。

                       图3左:X兔项目代码片段                  图3右:flink项目代码片段1
                      图4左:X兔项目代码片段                  图4右:flink项目代码片段2
                     图5左:X兔项目代码片段                  图5右:Dinky项目代码片段

我们一直强调代码片段引用这个概念,实际上在软件开发中,不是所有的开源软件引入都是把一个软件包作为整体拿过来,更多的是用一些模块,一些文件,甚至一个function,甚至几行代码,甚至改了parameter的几行代码,姑且抛开法律对于抄袭如何界定,对于组织来说,必须有能力将如此小颗粒度的copy-paste-change找出来。这里我们又找了一个例子,很明显就是我们上面提到的,“微调”之后的开源软件引入,这里想起一句名言,“凡走过必留下痕迹”。

                       图6左:X兔项目代码片段                 图6右:streampark项目代码片段

2

许可证兼容性风险


SCA工具发现了X兔引入了多个属于不同开源许可证的组件,他们与GPL-3.0-only在外部分发时是有冲突的(图7)。接下来两个图详细说明了涉及的组件,引入方式,为什么有风险等等信息。

图7:清源SCA扫描出的许可证兼容性风险

图8:清源SCA扫描出的许可证兼容性风险

诚然,开源治理不仅仅是知识产权方面的,对开源组件的使用往往也意味着大量的安全漏洞,我们在X兔项目中也发现了数百个漏洞,这些漏洞实际上为软件产品埋下了巨大的隐患,如果在软件发布后漏洞才被发现,并且漏洞还被攻击的话,那对软件开发商来说也是不可估量的损失,甚至对所有使用了有这些漏洞的开源组件的开发商来说,都是巨大的损失,就像之前轰动业内的log4j漏洞,可谓是引起了信息安全圈的“地震”。

SCA工具的部署不仅能够让软件中的各类开源组件的License变得更加透明,更是能让安全在软件开发过程中左移的有效手段,即漏洞信息可视化,方便相关团队对这些漏洞进行修复。

想要让开源更好的服务于软件信息行业,那么前提是需要遵守开源合规,与此同时要重视开源中的安全隐患,而安势信息的清源SCA工具就是对于每一家想要“拥抱开源”的企业的数字底座!

3

清源SCA

发现开源软件中安全及合规风险的基础


清源(CleanSource)SCA是安势信息研发的一款拥有完全自主知识产权的软件成分分析工具,能够帮助企业降低和管理其应用或容器中因使用开源软件和其他第三方代码(软件)引入的安全、质量与许可证合规性风险。

清源 SCA 成功通过信通院《可信开源治理工具》认证,作为国内拥有完全自主知识产权的权威SCA分析工具,可帮助企业快速构建准确的SBOM (软件物料清单), 提供清晰的软件成分可视性分析,降低软件供应链风险,并帮助企业在软件开发全生命周期对其进行管理。

图9:清源SCA

更多产品及相关资讯,或想要进一步了解我们,欢迎扫描下方二维码,还可获取试用!

关于安势信息


上海安势信息技术有限公司成立于2021年,致力于解决软件供应链中的安全和合规问题。作为中国领先的软件供应链安全治理工具提供商,安势信息以SCA(软件成分分析)产品作为切入点,围绕DevSecOps流程,着力于从工具到流程再到组织,坚持持续创新,打造独具特色的端到端开源治理最佳实践。


欢迎访问安势信息官www.sectrend.com.cn或发送邮件至 info@sectrend.com.cn垂询。


点击蓝字 关注我们

【声明】内容源于网络
0
0
安势信息
安势信息是国内先进的软件供应链安全治理解决方案提供商,提供包括清源SCA(软件成分分析)、清本SAST(静态代码扫描)、清正CleanBinary (二进制代码扫描)、安全服务等解决方案,提供各行业的软件供应链安全治理最佳实践。
内容 170
粉丝 0
安势信息 安势信息是国内先进的软件供应链安全治理解决方案提供商,提供包括清源SCA(软件成分分析)、清本SAST(静态代码扫描)、清正CleanBinary (二进制代码扫描)、安全服务等解决方案,提供各行业的软件供应链安全治理最佳实践。
总阅读294
粉丝0
内容170