ToB企服应用市场:ToB评测及商务社交产业平台

标题: 开源软件指南 [打印本页]

作者: 郭卫东    时间: 2024-9-24 13:43
标题: 开源软件指南
目录

什么是开源软件
开源软件的汗青和哲学
什么是开源许可证
开源许可证的类型
​编辑
开源合规性
版权和知识产权合规性
安全合规性
什么是开源软件政策
开源软件安全
库存和软件物料清单(SBOM)
依赖项更新
开源漏洞扫描
二进制存储库管理器
开源软件的当前趋势
开源为我而生,不为你而生
政府对开源软件的爱好




什么是开源软件

开源软件(OSS)是原作者已授予明白版权和使用权限的软件,允许所有用户以他们以为合适的方式访问、检察和修改这些步伐的源代码,而无需支付版税。
这与专有、闭源软件形成对比,专有、闭源软件通常须要付费许可,并且除软件版权所有者外,任何人都不能添加、修改或分发。
事实证明,使用开源软件的成本服从是不可抗拒的。如今,开源组件通常占新应用步伐代码库的80%或更多。供应链中几乎没有产品不依赖OSS。
OSS有着悠久的汗青和丰富多彩的社区,他们奉献本身的时间(通常是无偿的)为所有人免费提供数百万个有用的库和步伐。
开源软件的汗青和哲学

在“开源软件”出现之前,只有“免费软件”,而谈到免费软件的汗青,就不能不提免费软件之父理查德·斯托曼。
斯托曼是自由软件基金会(FSF)的首创人,也是GNU公共许可证的作者,以使用版权法以“病毒式”方式强制实行自由而闻名。
自1980年代以来,斯托曼一直是免费软件的坚定提倡者。他至今仍是FSF的负责人,并撰写有关免费软件的文章。
我们大多数人以为免费软件是不须要花钱就能得到的软件,但“自由是指言论自由,而不是免费啤酒”是免费软件提倡者的口头禅。
斯托曼以为“开源”和“免费”软件之间存在区别。虽然自由和开源应用步伐的维恩图基本上是一个圆圈,但他以为这两个术语强调的是不同的理念。
自由软件基金会的四项基本自由是自由软件运动的支柱——他们并不特别关心自由软件给企业带来了多少自由。
开放源代码促进会(OSI)成立于1998年,由BrucePerens和EricRaymond创立,OSI对自由软件持更务实的看法。
对于Perens和Raymond而言,“开源”一词消除了“自由软件”的政治包袱,并约请企业使用和贡献越来越多的免费向所有人开放的库和应用步伐。
OSI可能对企业加入OSS更为友好,但它仍然以自由主义哲学为基础。斯托曼的四大自由中的许多都反映在他们对OSS的十点定义中。
正如政治通常所表现的那样,大多数开发人员对“自由”与“开源”软件并没有猛烈的感觉。
您可能会看到更中性的首字母缩略词“FOSS”,代表“自由和开源软件”,甚至“FLOSS”,代表“自由自由和开源软件”,其中“免费”又回到了“不花任何钱”的常见含义。
在21世纪初之前,许多公司对其开发人员使用OSS持猜疑甚至完全敌视的态度,但使用现成的开源组件而不是花费开发人员的时间重新发明轮子所带来的成本节省变得不可忽视。
什么是开源许可证

开源许可证详细阐明了使用或修改软件组件的条款和条件。许可证文本将包罗在开源项目的发行版中,可以是源代码文件的解释,也可以是单独的README文件中。
世界上有200多个开源许可证,但许多都是多余的。OSI只承认大约80个独特且真正开源的许可证。绝大多数开源项目只属于8个许可证。
开源许可证的类型

所有开源许可证分为三类:
强版权左派:这些许可证要求任何来自开源项目的代码,即使原始代码未经修改就使用,也必须继续其许可条款。流行的版权左派许可证包括GNU和AfferoGNU公共许可证(GPL和AGPL)。
弱版权左派:这些许可证通常允许使用未经修改的开源组件,而无需新项目继续其许可证。但是,对开源组件的任何修改都必须得到原始许可证的许可。流行的弱版权左派许可证包括较宽松的GNU公共许可证(LGPL)、Microsoft公共许可证(MsPL)和Eclipse公共许可证(EPL)。
宽松许可证:这些许可证允许开发人员使用甚至修改开源组件,而无需最终应用步伐遵循任何特定许可证。流行的宽松许可证包括MIT许可证、伯克利软件分发许可证(BSD)和Apache2.0许可证。


开源合规性

使用开源代码的组织必须留意遵守知识产权(IP)法,并低落恶意活动者利用OSS漏洞进行违规和攻击的风险。
版权和知识产权合规性

IP合规性和政策在很大水平上取决于兼容性:开源组件的许可证是否相互兼容,以及许可证是否与项目的团体业务目的兼容。
许可证之间的兼容性。宽松的开源许可证适用于所有人,但强版权许可证和弱版权许可证通常相互不兼容。
例如,即使打算根据开源许可证发布最终项目,GPL下的组件也不能与MsPL下的组件一起使用,由于这两个许可证都要求衍生作品的源代码在同一许可证下得到许可,没有双重许可的空间。
与业务目的兼容。组织经常在本身不开源的项目中接纳开源组件。宽松许可证允许这样做,而强版权许可证则不允许。弱版权许可证的组件通常可以在闭源项目中使用,但必须按照许可证中规定的特定方式使用或链接。
安全合规性

并非所有OSS项目在质量和安全性方面都一样。荣幸的是,通过使用自动化工具,开发人员通常可以在将某个开源软件包添加到他们的项目之前了解其中存在多少严重漏洞。
许多组织制定了规则,以阻止开发人员使用存在太多问题的组件。我们将在背面的部门中深入探讨开源安全性。
什么是开源软件政策

OSS政策为团队或整个组织提供了正确使用开源组件的标准。目的是最大限度地发挥使用这些组件的利益和影响,同时解决可能出现的技术、业务和法律风险。
OSS政策首先要选择对于特定项目或所有开发团队始终允许、有时允许(通过升级过程)或永远不允许的许可证。
OSS政策还须要包罗根据漏洞风险允许或不允许哪些组件的规则。这通常是通过根据漏洞的严重水平决定引入项目的开源组件可能存在的漏洞数目来实现的。
100%无漏洞的开源组件确实很少见。OSS政策通常不允许任何具有高或严重漏洞的组件,但允许一些中、低严重漏洞。
开源软件安全

使用OSS而不是重新编写代码并非没有缺点。OSS质量参差不齐,许多组件存在缺陷、不安全且更新不一致。以下是解决开源软件安全问题的一些紧张工具和留意事项。
库存和软件物料清单(SBOM)

不可能留意您甚至不知道的产品中的漏洞。软件清单和SBOM对于全面了解软件依赖关系以及编制须要监控和更新的事项列表都很紧张。
依赖项更新

专有软件供应商通常会推出更新,而开源项目则不一定云云。开源项目的支持有限,并且会根据项目社区的规模而有很大差异。因此,使用开源组件的组织须要自动监控漏洞和更新,以确保实时修补和修复所有组件。
自动化依赖性健康工具大大减轻了开发人员跟踪和安排更新的压力。
开源漏洞扫描

软件组合分析(SCA)是一种应用步伐安全测试工具,可资助管理开源组件。SCA工具会自动扫描您的源代码以识别开源组件、许可数据和已知漏洞。
SCA工具提供对开源组件的可见性,并提供优先级和自动补救步伐来资助修复漏洞。
工作原理如下:
漏洞优先级排序是通过权衡多种因素而自动完成的,例如漏洞是否已被广泛利用(KEV和公开漏洞)、漏洞是否可能在不久的将来被利用(EPSS)、漏洞被利用的严重性(CVSS)以及特定于供应商的看法。
漏洞修复通常使用工具提供的信息(例如漏洞位置)手动完成。某些工具还可能提供有关修复怎样影响您的构建的发起。高级工具提供根据漏洞政策启动的自动漏洞修复工作流程。这些政策根据漏洞检测和严重水平、CVSS评分和新版本发布触发。
抱负情况下,您应该寻找能够无缝集成到软件开发生命周期中的SCA工具。这样做有助于在早期阶段解决漏洞,由于在早期阶段,问题更容易、更便宜地得到解决。
SCA通常用于软件开发生命周期的构建过程中。代码摆设后,DAST和IAST等漏洞扫描步伐有助于测试应用步伐是否存在常见漏洞。
二进制存储库管理器

以下是使用二进制存储库的主要利益:





欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4