Table of contents
管理软件的依赖性
活动编号:GGI-A-23。
描述
依赖项识别程序用于查找代码库中实际使用的依赖组件。因此,组织机构必须建立并维护其代码库的已知依赖组件列表,并关注已认定供应商的后续更新。
建立和维护已知依赖组件列表是下列工作的核心推动因素和先决条件:
- 知识产权和许可证检查:某些许可证不能混合使用,即使作为依赖组件也是如此。人们必须了解其依赖关系才能评估相关的法律风险。
- 漏洞管理:最脆弱的那部分软件决定了整个软件的脆弱程度(可参考Heartbleed 缺陷案例)。人们必须了解其依赖关系才能评估其相关的安全风险。
- 软件的生命周期和可持续性:依赖组件社区的活跃程度对于bug修复、优化和新功能开发是一个的积极特征。
- 根据“成熟度”标准审慎地选择所使用的依赖组件:其目标是使用安全的,拥有健全的运维良好的开源组件库,其社区具备健康、活跃、反应迅速,以及愿意接受外部贡献的特点。
可行性评估
识别和跟踪依赖组件是降低与所有代码复用相关风险的必要步骤。此外,实施工具和流程来管理软件依赖关系是妥善管理产品质量、合规性和安全性的先决条件。
要考虑以下问题:
- 如果软件被破坏、攻击或被起诉,公司的风险是什么(成本、声誉等)?
- 代码库对于人员、该组织机构或业务是否至关重要?
- 如果应用程序所依赖的组件改变了,其代码仓库会发生什么?
最基本的首要步骤是进行一次软件成分分析(SCA)。为了展开全面的SCA分析或依赖关系映射,可能需要业内专业的咨询公司支持。
进度评估
以下验证点将呈现此项工作的进展:
- 对所有公司内部开发的代码中识别依赖组件。
- 对所有公司内部执行的外部代码识别依赖组件。
- 将一个容易配置的软件组成分析工具(SCA)或依赖组件识别程序添加到项目的持续集成研发流程中。
- 使用依赖组件的分析工具。
工具
- OWASP 依赖项检查:dependency-Check 是一种软件成分分析 (SCA) 工具,尝试检测项目依赖项中包含的公开披露的漏洞。
- OSS Review Toolkit:一套帮助审查开源软件依赖项的工具。
- Fossa:快速、便携、可靠的依赖性分析。支持许可证和漏洞扫描。语言无关;与 20 多种构建系统集成。
- Software 360。
- Eclipse Dash 许可证工具:获取依赖项列表并请求 ClearlyDefined 检查其许可证。
- FOSSology项目: FOSSology 是一个开源项目,其使命是促进开源许可证的合规性。
建议
- 定期对依赖组件和知识产权进行审核,以降低法律风险。
- 理想情况下,将依赖组件管理集成到持续集成研发流程中,以便尽快识别并修复问题(新的组件依赖关系、许可证不兼容等)。
- 持续跟踪与依赖组件相关的漏洞信息,及时让用户和开发人员了解这些情况。
- 通报与错误许可证相关的风险。
- 为项目制定一个简单的解决方案,以便在其代码库上设置许可证检查。
- 传达其重要性并帮助项目将其添加到其持续集成研发流程中。
- 针对依赖组件的相关风险设置明确的关键绩效指标(KPI)。
资源
- 现有的OSS许可的OSS许可证合规性工具页面。
- 自由开源软件许可证合规性:软件成分分析工具,作者:Philippe Ombredanne, nexB Inc.
- 软件可持续性成熟度模型。
- CHAOS:开源社区健康度分析开源软件。
下一步工作建议
- GGI-A-21 - 管理法律合规性 在能够跟踪知识产权和许可证不兼容之前,需要识别其开源软件中的所有依赖组件。
- GGI-A-22 - 管理软件漏洞 在能够跟踪其代码资产中的漏洞之前,需要识别其开源软件中的所有依赖组件。