开源集成令人头痛的7个原因以及如何避免呢?

描述

 

开源软件让企业可以利用世界上最优秀、最聪明的开发人员的力量。通过提供构建产品的捷径,它可以极大地提高生产率并缩短上市时间。然而,尽管它被广泛使用(您很难找到一个不使用开源组件构建的应用程序)以及它的优点,开放软件代码对于开发人员来说可能是一个麻烦,对于那些由于开源漏洞而导致数据泄露的组织来说则是一场噩梦。

今年早些时候,OpenAI,最新的人工智能宠儿,要么拯救世界,要么毁灭世界,取决于你相信谁,成为数据泄露的受害者,原因是一个被利用的开源库漏洞。黑客将私人聊天数据暴露给了其他用户。

ChatGPT漏洞说明了使用开源组件的一个重要问题——急于进入市场。在其他一些引人注目的错误之后,该公司因过早上市而受到批评。然而,考虑到先发优势,企业不太可能愿意放慢开发时间表作为回应。

由于市场压力没有显示出任何缓和的迹象,DevOps团队能做的最好的事情就是采取积极主动的方式进行开源集成。以下是与使用开源组件相关的最常见问题,以及开发人员如何克服这些问题。

1.兼容性

开发人员可以为几乎任何功能找到开源组件。团队可以从多个资源中挑选和选择来创建创新产品。然而,每个元素都有自己的做事方式——数据格式、协议、应用程序编程接口(api)——让它们无缝通信可能是一个巨大的挑战。以下是处理兼容性问题的一些技巧:

定期检查发行说明、文档和社区论坛,了解任何更改或兼容性问题,以保持更新。

实现自动化测试,包括单元测试、集成测试和回归测试,以便在开发周期的早期捕获兼容性问题。

创建一个软件材料清单,以了解每个组件的依赖关系以及它们如何相互作用。

2.漏洞

开源的协作性质意味着,虽然源代码是免费提供的,但漏洞也是免费提供的。任何人都可以查看和分析代码,包括潜在的攻击者。开源组件中的安全漏洞可能在修补甚至识别之前就被利用了。随着网络安全和数据保护法规的迅速扩展,安全地集成开源组件通常是一个法律问题,而不仅仅是一个最佳实践。开发团队可以通过以下方式加强他们的开源网络安全态势:

使用自动化工具扫描已知漏洞的代码

审计代码以识别潜在的安全缺陷,特别是在集成新的开源元素之后

在DevOps过程中采用和实施安全最佳实践。

使用依赖项管理工具跟踪并更新项目中所有开源组件的安全问题,包括间接依赖项

制定事件响应计划,以处理发现的漏洞和安全问题

3.标准化

许多拥有多个团队从事不同项目或包含开源组件的特性的组织无法实现标准化实践。团队可能同时使用同一组件的不同版本或多个组件。每个部门都有自己使用开源组件的标准实践,这并不罕见。相互冲突的实践可能会减慢开发速度,并导致缺陷、错误和兼容性问题。通过开发一个适用于整个组织的清晰的开源治理策略来避免这些问题。该策略应该处理如何、何时以及在何处使用、跟踪和保护开源组件的所有元素。

4.过时的软件

开源软件通常依赖于社区对新特性、更新和补丁的支持。随着时间的推移,支持可能会减少,使过时的软件存在多个漏洞和关键问题。依赖于不再更新或支持的软件的开发团队将不得不在内部处理软件的管理。

使用像Kiuwan这样的软件组合分析(SCA)工具来识别和跟踪代码库中的开源软件,这样团队就可以识别任何不受支持的开源软件。从这里开始,DevOps团队可以创建一个更新和维护软件的计划。

5.许可要求

因为开源代码通常是免费提供的,所以很容易忘记它附带许可要求。使用多个开源组件的大型项目必须遵守具有不同条款和条件的许多不同类型的许可。

不遵守许可条款的企业可能面临重大风险。自动化SCA工具使团队能够看到开源代码,并在需要采取行动遵守许可条款时提醒他们。

6.知识产权曝光

与许可风险密切相关的是暴露知识产权的风险。一些开源软件包含copyleft条款。这种类型的许可证允许任何人使用该软件,前提是所有修改和衍生软件都是以相同类型的许可证生产的。使用copyleft软件的团队必须在相同的许可下发布他们使用开源组件创建的应用程序。这种类型的许可使得创建专有软件和保护知识产权变得不可能。

为了避免这种风险,开发团队需要清楚地了解代码库中的所有开源元素及其相关许可。这可能特别棘手,因为依赖项可能包含隐藏的开源组件。SCA工具可以扫描代码库以查找隐藏的开源代码,包括适用的版本和许可证。

7.可伸缩性限制

使用开源集成进行扩展可能会很复杂。一些开源软件包括开放核心模型,其中核心元素是免费的,但某些功能需要商业许可。其他项目以开源开始,但最终会过渡到商业许可。这两种模式都可能导致意想不到的费用,从而干扰组织的发展。计划扩大规模的企业应该仔细考虑如何将开源软件集成到他们的特色产品中。然后,他们要么采用可能保持开源的组件,要么为商业许可的最终成本做计划。

使用Kiuwan有效地管理开源

Kiuwan的端到端应用程序安全平台使企业可以轻松地保持在其开源组件的顶部。我们的Insights(SCA)通过降低与开源软件相关的风险来增强开发人员的能力。它自动扫描源代码组件的代码,以提供全面的风险概述。







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分