缘奇科普-奇怪的知识又增加了

必须重视开源软件存在的安全风险

原创版权 铁君公众号作者: 字体大小选择: [ ]

  近年来,本土互联网产业和软件产业蓬勃发展,虽然取得了不少成绩,但在基础软件方面往往习惯于依赖开源,普遍对Linux、OpenStack、MySQL、Ceph等开源软件有所依赖。过度依赖开源软件不仅会导致软件产品同质化,还会增加知识产权风险和安全风险,必须予以重视。

  国内外开源软件发展情况

  开源软件的发展得益于互联网技术的发展,随着云计算、移动互联网的发展,OpenStack、k8s、Ceph等开源技术纷至沓来。这些开源项目催生了ASF、OIF、CNCF等基金会,致力于开源项目的孵化和运营。随着开源软件托管和协助平台的普及,开源全球化协作和共创的沟通成本急剧下降,开源项目数量持续提升,据测算,2026年全球开源项目数量将超过3亿。

  近年来,国内开源项目爆发式增长。根据中国信通院发布的《开源生态白皮书(2021)》,中国在全球最大开源平台GitHub上的贡献者数量已经达到了全球第二。2020年,GitHub平台上中国贡献者的数量增加了37%。Gitee2020年度报告数据指出,我国在Gitee平台上开源项目增长率达192%,达到了1500万,是2013年至2018年Gitee平台开源项目的总和。

  诚然,近年来我国开源项目爆发式增长,部分开源社区活跃度跨越式提升,但我国开源社区活跃度整体与全球仍存在差距,尤其在Issue、PR指标等方面存在较大差距。很多重点领域开源技术与项目发展还处于追赶阶段,国内云计算一般基于OpenStack,开源国产存储则高度依赖Ceph,诸多国产浏览器往往基于Chrome。

  开源的本质是开放和共享,当然也要遵循必要的协议。从开源社区获取代码,同时对开源社区有所回馈,实现“从开源中来,到开源中去”。充分利用开源模式加强技术创新应用本身并没有问题,红帽等大企业都是这里面的佼佼者。目前国内情况是,开源项目在庞大的市场和热钱的追捧下变了味道,被行业戏称“国外一开源,国内就自主”。相当一部分公司从开源社区拿来东西编改加以优化,就开始标榜“完全自主知识产权”、“自主研发”,变成了“民族骄傲”和“新锐国货”,在资本的推波助澜下摇身一变成为行业独角兽,甚至上市套现。这种乱象导致软件产品同质化严重,原本可以用来哺育国产软件茁壮成长的资源被低端产品无序竞争白白消耗掉。

  (红芯浏览器基于Chrome却标榜自主研发成为丑闻)

  开源软件存在知识产权风险

  虽然一些厂商把开源代码改头换面后鼓吹自主,但这并不意味着拿开源代码就完全不存在知识产权风险。

  近年来,开源知识产权相关法律判例逐渐增多。美国Jacobsen 诉Katzer 案件就是涉及开源许可证维权成功的案例。由于 Katzer 删除了许可通知,Jacobsen主张Katzer 违反了开源许可证。最终 Jacobsen 获得胜利并与Katzer 达成和解。无独有偶,“不乱买”案件确认了开源许可证在我国具备法律效力。本案中和开源许可证相关的争议点在于原告网站的前端代码中使用了 GPL 许可协议下的开源代码,该GPL许可协议是否约束后端代码。该案在最高法院知识产权庭终审,详尽分析了本案中 GPL 协议约束的代码范围。

  事实上,开源知识产权风险问题是相对隐蔽的。开源知识产区风险主要集中在四个方面:

  一是版权侵权风险,不遵守开源许可协议,导致版权侵权;

  二是专利侵权风险,开源软件中包含诸多软件专利,使用开源软件未得到软件专利权人的专利许可,从而导致专利侵权;

  三是商标侵权风险,未经许可使用开源软件的商标;

  四是许可证冲突。

  根据新思科技《2021开源安全与风险分析报告》统计,2020 年审计的代码库中,65%的代码库包含存在许可证冲突的开源组件,通常涉及“GNU通用公共许可证”。版权侵犯风险与商标侵权风险较易规避,而专利侵权风险与许可证冲突则较难规避。

  总之,拿开源软件改改就称自主的做法是不靠谱的。部分企业将开源软件拿来就用,既无能力,也无时间精力去思考知识产权问题,这些开源软件的知识产权风险不容小觑。

  开源软件存在安全风险

  开源软件安全风险主要包括安全漏洞风险和供应链风险。

  软件都是人写的,而人都会犯错,开源软件中必然存在bug,存在安全性或功能性漏洞。开源软件涉及源代码共享,很多配置信息中会涉及账号密码等敏感信息,如果不对代码进行审核检查,可能会造成大量敏感信息与数据随着代码的共享而泄露。开源软件公开的源代码,如果包含对企业数据库的访问代码,则可能导致整个数据库面临数据泄露的危险,也可能导致企业内部文件与用户信息的泄露。

  据美国网络安全公司Snyk发布的《2019年开源安全现状调查报告》显示,78%的漏洞存在于间接依赖关系中;37%的开源开发者在持续集成期间没有实施任何类型的安全测试,54%的开发者没有对 Docker镜像进行任何安全测试;两年内应用程序的漏洞数量增长了88%。据新思科技《2021开源安全与风险分析报告》显示,84%的代码库至少含有一个漏洞,近三年漏洞比例逐年增高,60%的已审核代码库包含高风险漏洞。据开源网安Source Check工具对热门开源项目的扫描结果看,53.8%的项目存在超危风险。

  有鉴于此,开源软件在部署后需支付较高的维护费用。特别在金融、电信、能源、交通、医疗等关键领域,更需要专业的运维团队和及时售后技术支持,一旦因为漏洞引发上层应用出现问题,出现的损失则是天文数字。正是因此,中国人民银行等五部门就公开了关于规范金融业开源技术应用与发展的意见,指明了在使用开源软件中投入维护的利害性。

  供应链风险指开源软件可能会受地缘政治影响。虽然技术本身是无属性的,但开源平台和社区是有国界的。在俄乌冲突中,GitHub就限制俄罗斯开发人员使用开源软件。GitHub CEO 发文表示,会确保全球开发者的正常访问,但同时也会遵守政府提出的出口管制和贸易法规,其中包括严格限制俄罗斯获得其维持侵略性军事能力所需的技术。西方主导的开源社区可以直接对待俄罗斯,也就可以把同样的招数用在我国身上。

  结语

  受国际环境影响,我们应当加快自主创新,在政府国企事业单位和金融、交通、教育、医疗等关键行业完成IT设施的核心技术和底层软、硬件的国产化,在存储、数据库等各方面,必须掌握核心技术和代码,必须具备自我迭代更新能力。

  对于开源软件,可以借力,但不可依赖,更不能滥用。必须加强中国自主开源生态建设和开源软件安全生态建设,摒弃过去“短、平、快”的模式,构建开源社区、厂商、开发者、开源公司都能受益的商业模式。

  现在国内也开始重视开源社区,也自建了一些开源社区,然而,罗马不是一天建成的,国外发展了很多年建成了巨大的知识库,中国刚刚开始,也许再过30年才能真正脱离国外社区自成体系。但在这以前,决不能将依赖西方开源社区开发的软件等同于自主研发。只有通过自主研发掌握核心技术,才能不被卡脖子,即使有一天GitHub停止服务,也完全可以在中国“另起炉灶”。

发表评论 (已有 条评论)

  

评论列表

    快来评论,快来抢沙发吧~