定义

软件组成分析 (SCA) 是识别代码库中开源软件的自动化流程。执行此分析是为了评估安全性、许可证合规性和代码质量。

公司需要了解开源许可证存在的限制及其承担的义务。手动跟踪这些义务变得太过艰巨,并且经常会忽略代码及其附带的漏洞。SCA 这种自动化解决方案最初就是开发用于这一用例,之后又经过扩展,用于分析代码安全性和质量。

在现代的 DevOps 或 DevSecOps 环境中,SCA 激发了“左移”范式的采用。提早进行持续的 SCA 测试,使开发人员和安全团队能够在不影响安全性和质量的情况下提高生产力。

SCA 的工作原理是什么?

SCA 工具可检查包管理器、清单文件、源代码、二进制文件、容器镜像等。识别出的开源会被编制成物料清单 (BOM),然后与各种数据库进行比较,包括国家漏洞数据库 (NVD)。

这些数据库包含有关已知和常见漏洞的信息。NVD 是美国政府的漏洞存储库。Synopsys 拥有自己的内部漏洞数据库 Black Duck® 知识库,这是业内最全面的开源项目、许可证和安全信息数据库。

SCA 工具还可以将 BOM 与其他(通常是商用性)数据库进行比较,以发现代码相关许可证并分析总体代码质量(版本控制、历史贡献等)。通过将 BOM 与数据库进行比较,安全团队能够识别关键的安全和法律漏洞,并迅速采取措施加以修复。


SCA 有何重要性?

SCA 的价值在于它所提供的安全性、速度和可靠性。仅靠手动跟踪开源代码已经远远不够了;这样根本无法处理数量庞大的开源。云原生应用和更复杂的应用日益普及,使得采用稳定可靠的 SCA 工具成为必然。

采用 DevOps 方法之后,开发速度飞速提升,各组织都需要不影响开发速度的安全解决方案。自动化 SCA 工具应运而生。


SCA 的优点是什么?

对于开发和安全而言,自动化开源代码分析具有以下诸多优点:

  • 全面显示代码库和应用中的开源
  • 全面展示安全风险
  • 全面展示合规风险
  • 精简构建到软件开发生命周期 (SDLC) 中的安全与合规功能

Synopsys 如何提供帮助?

Synopsys 的 Black Duck SCA 是一种综合性解决方案,可管理应用和容器中因使用开源而引起的安全、许可证合规性和代码质量风险。Black Duck 作为 SCA 领域的公认领导者,提供无与伦比的第三方代码可视性,让您能够在整个软件供应链和整个应用生命周期中对其进行控制。Black Duck能够针对第三方依赖项提供无与伦比的可视性,使您能够管理软件供应链带来的风险。

主要功能包括:

  • 多因子扫描:Black Duck 具有依赖分析、二进制,以及代码片段和签名扫描功能,提供市场上唯一的多方位扫描方案,能够识别竞争对手的单一依赖关系解决方案无法识别的开源。
  • Black Duck 知识库:Black Duck 的专有知识库是本行业最全面的开源、许可证和安全信息存储库,其中涉及的信息远远超出 NVD 等免费订阅库中的普通信息。Black Duck 知识库由 Synopsys 网络安全研究中心 (CyRC) 专家编制,涵盖超过 2,650 个独有的开源许可证、132,000 个独有的漏洞和超过 390 万个开源项目。
  • Black Duck 加强安全解决方案:该解决方案可早于 NVD 三周提供经过编制和优先排序的安全通知。Black Duck 拥有 NVD 中未列出的数千个独有漏洞,能够最全面地概括您的安全态势。Black Duck 加强安全解决方案由 CyRC 专家编制,是您获取安全信息的可靠来源。它们通过及时提供详细描述、严重程度评分和先进的补救指导,不仅准确,而且可行。Black Duck 加强安全解决方案通过自定义优先排序,能够提供最深入的分析,并且结合了最强大的个性化功能。
  • 许可证识别:Black Duck 跟踪 2,650 多个开源许可证,可以帮助您避免许可证违规,以免导致代价高昂的诉讼或损害您宝贵的知识产权。
  • 策略设置:Black Duck 提供市场上最为个性化的精细策略配置,让您能够精简安全活动。
  • 无摩擦集成:Black Duck 可无缝集成到您现有的 SDLC 和 CI/CD 工具链中,从而最大限度地减少摩擦并有助于保持开发速度。
  • 通过将第三方软件物料清单(SBOM) 导入Black Duck来简化SBOM管理,将依赖项自动映射到已知组件,并为定制或商业依赖项创建新组件。以SPDX或CycloneDX格式导出以满足特定需求。
  • 用例:Black Duck 不仅对安全团队很有用;DevOps 工程师、开发人员和法律团队都可以使用它提供的宝贵数据和信息,来强化整个组织的安全性、代码质量和法律风险防御态势。

资源