了解最新技术文章
在本指南中,我们将介绍 Sonatype Lifecycle 解决方案是什么,以及它如何帮助您更快地选择更好的组件并构建更好的软件。我们将为您提供一些很好的提示,帮助您开始将 Lifecycle 集成到您的环境中,帮助您将组件智能添加到日常工作流程中。
Sonatype Lifecycle 充当实施组件生命周期管理的组织的大脑。在生命周期中,您将找到一个平台,该平台提供管理策略、查看组件和应用程序信息以及使用我们的集成来评估应用程序和存储库的功能。
Sonatype 平台可帮助您在为项目选择组件时做出明智的决策。通过预先做出明智的依赖关系选择,您可以专注于自己的创新,并让 Sonatype 平台确保您的软件元素来自维护良好、获得适当许可且具有安全意识的项目。
注意: 高级开发包 (ADP) 已集成到通用生命周期产品中。这些更改可通过 IQ Server 版本 100 及更高版本进行访问。对于 IQ Server 版本在 100 到 134 之间的用户,您的管理员可能需要重新上传组织的现有生命周期许可证或重新启动 IQ Server 才能看到这些附加功能。
Sonatype Lifecycle 的开发人员功能 为开发团队提供了自动化的、基于策略的依赖关系管理解决方案。这使得团队能够采取更主动的方法来确保其产品的安全性,从而减少外部团队的监督并增强对项目的信心,同时又不会失去敏捷开发的动力。增强的功能包括:
针对与重大更改不兼容的代码的建议
使用传递求解器洞察依赖关系
通过发布完整性检测可疑包
选择具有卫生等级的优质组件的指南
这些功能提供了许多好处,包括:
减少返工和维护。 更高质量的组件选择意味着团队可以更好地了解什么适合组织政策要求。
易于升级。 使用 Sonatype 的建议和单击迁移将减少升级到下一个最佳 OSS 组件时的工作量。
提高了工程质量。 您的团队将收到代码中可疑行为的早期警告,并获得来自最佳供应商的组件的访问权限。
增加带宽。 研究高质量 OSS 组件的时间更少意味着团队将有更多时间进行创新。
让我们更深入地了解每个功能。
Breaking Changes 目前仅适用于 Maven 生态系统。
此功能可帮助您了解组件的升级路径中是否引入了不兼容的代码。了解何时引入不兼容的代码(或重大更改)可以帮助您确定升级路径是简单的版本升级还是需要更复杂的代码更改。
当组件的两个版本之间没有重大更改时,对应用程序本身的代码应该影响不大 - 您应该能够简单地升级到组件的新版本并继续。这些类型的修复可以优先于可能需要额外开发工作的修复。更好的是,如果不需要更改代码,修复可以自动化。了解升级到修复违规的版本可能需要的工作量有助于您正确确定优先级并计划在适当的时间完成工作。
传递求解器可在“组件详细信息”页面上访问,它是一组推荐策略,可提供对组件已知依赖关系的深入了解。它向您展示了传递性与其直接依赖关系之间的联系,然后帮助您快速关注首先要修复的内容以及如何修复。通过提供直接依赖项及其传递性的建议,您可以更有效地降低应用程序中的风险。
利用为Maven建立的识别和链接,传递求解器为我们的推荐引擎引入了额外的策略:
没有依赖关系的政策违规的下一个版本
建议组件的下一个版本不具有导致违规的传递依赖项。
下一个版本不会因依赖项而导致构建失败
推荐不会使构建失败的组件的下一个版本,并考虑传递依赖性。
笔记
传递求解器目前仅适用于 Maven 生态系统的组件。
如果您在查看传递求解器建议时遇到困难,请参阅此知识库文章。
发布完整性功能通过监控软件供应链中的活动、检测可疑行为并标记受影响的版本来自动检测有风险的组件版本版本。
Sonatype 使用机器学习自动化来快速大规模检测这些可疑的释放,让我们能够为潜在有害的软件包创建预警系统。这种自动化通过提供新的潜在恶意软件包供研究来增强我们的安全研究。这有助于我们保护我们的客户,使您能够使用Sonatype 防火墙阻止这些组件感染您的开发环境,以免为时已晚。
检测到异常行为的组件版本将在“组件详细信息”页面上以红色评级为“可疑”。
不良行为者通过将恶意代码注入或劫持您今天可能使用的合法项目来攻击软件供应链。发生这种情况时,升级到受感染项目的较新版本可能会感染您的应用程序或系统,而您却没有意识到发生了任何变化。
发布完整性可以检测可疑软件包,这些软件包使用旨在诱骗您将其添加到应用程序中的技术,例如Typosquatting。用户可以针对组件的完整性评级编写策略,从而允许在Sonatype 防火墙处阻止可疑组件,并在其集成开发环境 (IDE) 中引起开发人员的注意。由于发布完整性可以通过机器学习自动化快速进行此分析,因此即使是最新的恶意软件包版本也可以尽早阻止。
Health & Hygiene 提供的数据可帮助确保您仅使用来自最佳供应商的开源组件。这可以提高应用程序的质量并降低生产力损失的风险。在这种情况下,供应商是一个生成应用程序中使用的组件的项目,例如Spring Framework或Log4j。
卫生评级用于总结供应商的健康状况:
典型的供应商是那些表现出我们认为在其生态系统内 生产高质量开源软件(软件供应链状况报告,2021 年)非常重要的行为的供应商。
落后者 是这个范围的另一端,应尽可能避免。
中立 供应商缺乏任何显着的积极或消极行为。
与 Sonatype Lifecycle 集成提供了一种简单的方法,可以将组件智能添加到您的开发过程中并构建更好的应用程序。无论是在 IDE 中查看组件信息,还是将评估结果添加到 Jenkins 构建中,开发人员都可以使用生命周期数据来提高工作效率,而无需牺牲速度和可靠性。
Sonatype Integrations 团队努力确保开发人员拥有良好的 Lifecycle 体验。他们希望让您的工作变得更轻松,并且他们提出了一些出色的集成和插件来帮助您做到这一点。
对于开发人员来说,Sonatype Lifecycle IDE 集成旨在在您熟悉的环境中工作。您可以直接在 IDE 中获得有关组件质量的即时反馈,包括架构、许可和安全信息,让您能够就组件选择做出明智的决策。
这意味着您可以在出现任何构建警告或失败之前主动进行更改并选择更好的组件。我们的 IDE 集成可让您根据组织的开源策略快速审查应用程序中使用的组件,从而大大减少因复杂而详尽的研究而浪费的时间。下面的图形和信息提供了您可以通过 IDE 和生命周期集成访问的数据示例:
组件列表。您将在此处看到项目中找到的组件列表,并通过其工件标识符和版本号进行标识。颜色指示器表示潜在的违规情况(红色=严重,橙色=中度,黄色=低度,蓝色=无)。具有较深字体的组件表示它们是应用程序中包含的直接依赖项。通过传递依赖引入的组件以较浅的字体显示。 | |
推荐版本。推荐的版本基于同一组件的较新版本的可用性,该版本不违反应用程序的任何配置策略。如果存在这样的版本,则会显示带有建议版本的超链接。单击该链接将在版本图中选择推荐的版本,并使用有关该版本的信息填充版本详细信息。有关更多信息,请参阅有关IDE 推荐版本 的帮助文档。 | |
版本图。显示所选组件的不同可用版本的各种属性。旧版本显示在左侧,新版本显示在右侧。图表左侧和右侧的箭头可让您查看完整范围的可用版本。单击图表中的任何部分,就会显示该特定版本的所有信息。有关更多信息,请参阅有关IDE 组件信息视图的帮助文档。 | |
版本详情。显示所选组件和版本的详细信息。详细信息包括:组件标识符(因语言而异)、版本、覆盖的许可证、声明的许可证、遵守的许可证、最高策略威胁、最高安全威胁、年龄、标识源以及项目网站的链接(如果有)。有关更多信息,请参阅有关IDE 版本详细信息 的帮助文档。 | |
查看详细信息和迁移按钮。查看详细信息按钮会打开一个对话框,显示该组件所违反的所有策略的列表;为每个组件声明的许可证以及源代码中观察到的威胁级别;以及发现的安全问题列表。当您选择与当前使用的版本不同的非易受攻击的版本时,“迁移”按钮将变为活动状态。按下该按钮将打开一个对话框,帮助您迁移到较新的组件。 |
Sonatype 目前提供与IntelliJ IDEA、Eclipse和Visual Studio的 IDE 集成。
用于源代码控制管理 (SCM) 的 Sonatype 生命周期 是一组功能,使开发人员能够及早了解代码更改。为此,我们与持续集成 (CI) 协同工作,将有关应用程序组件的策略信息直接推送到 SCM 中。
Sonatype Lifecycle for SCM 具有以下特点:
自动提交反馈:Sonatype Lifecycle for SCM 通过将策略评估信息推送到开发人员工作的 SCM 提交和拉取请求 (PR) 中,将快速修复软件解决方案中的漏洞所需的信息置于开发人员的指尖。
自动拉取请求:Sonatype Lifecycle for SCM 将自动为具有可修复这些违规行为的可用版本的组件创建策略违规拉取请求。
拉取请求注释:当 PR 引入新的策略违规时,Sonatype Lifecycle for SCM 会为为源代码控制配置的存储库的拉取请求添加注释。
要使用 Sonatype Lifecycle for SCM,首先配置Lifecycle 以允许访问公司的源代码控制管理平台。对于大型组织,我们建议启用自动源代码控制,以便CI 和 CLI 集成在从本地克隆存储库运行时配置应用程序源代码控制连接(CI 系统中的常见做法)。
配置完成后,提交将立即收到自动提交反馈。
单击详细信息链接或状态可打开生命周期应用程序评估报告。在那里,您将看到该组件当前使用的版本以及其他易受攻击和不易受攻击的版本。
启用并正确配置 SCM 生命周期后,应用程序还将开始看到针对任何新策略违规的自动拉取请求以及建议的补救措施。
有关更多信息,请参阅我们的SCM 生命周期帮助文档,以及源代码控制管理中的策略评估技术指南。
Sonatype Lifecycle Jira 插件可让您针对策略违规自动创建 Jira 票证,从而使开发团队能够专注于应用程序安全性。该插件使用 Lifecycle Webhook 违规事件在发生新违规时触发票证创建。发现问题时,会在链接的应用程序中创建 Jira 票证,并自动为每个组件创建一个票证。
对于程序员来说,这意味着您可以使用已用于故事跟踪和错误修复的工具轻松查找和分类策略违规行为。
有关更多信息,请参阅有关Sonatype Lifecycle for Jira的帮助文档以及详细介绍新的Sonatype Lifecycle for Jira Integration 的指南。
Sonatype Firewall 自动隔离违反策略的组件,防止质量问题进入您正在开发的软件。此过程可立即降低风险并避免浪费的返工。
防火墙的工作原理是提供审核和隔离功能,使您能够保护您的开发环境免受有风险或不需要的组件的侵害。启用审核后,向代理存储库添加和删除组件会导致存储库管理器联系 IQ Server 并评估代理存储库中的组件。如果发现违规行为,则会在您的存储库管理器中进行汇总,然后在 IQ Server 中详细说明。
例如,在 Nexus Repository 3 中,审核结果汇总在“存储库”视图的“IQ 策略违规”列中,如下图所示。
在这里,您将看到 (1) 按最高违规级别列出的组件计数,(2) 隔离组件的计数,以及 (3) IQ Server 上存储库结果的链接。
有关更多信息,请参阅有关生命周期和存储库管理的帮助文档。
Sonatype Lifecycle 可以分析软件开发中使用的组件的安全性和许可证特征。当与持续集成服务器集成时,它会成为定期执行的动态分析,可能会在服务器上运行的每个构建中发生。
适用于 Jenkins 的 Sonatype 平台插件会扫描构建工作区中的组件,创建有关找到的所有组件的摘要文件,然后将该文件提交到 Lifecycle 以进行详细的策略评估。生成的报告包含安全和许可证信息的详细分析,并且该报告的摘要被发送回 Jenkins 服务器以包含在构建结果中。可以从 Jenkins UI 访问详细评估报告的链接。
Sonatype 还与其他 CI 服务器集成,例如Bamboo、Azure DevOps和GitLab CI 。我们所有的 CI 工具都允许您对由 Sonatype Lifecycle 支持的配置构建生成的工件执行全面的安全和许可证分析,并轻松访问应用程序组合报告。
有关更多信息,请参阅我们有关生命周期和持续集成的帮助文档。
Sonatype Lifecycle Chrome 扩展可让您在下载包之前对其进行检查。该插件需要有效的 Sonatype Lifecycle 许可证。在 Chrome 浏览器上安装该插件后,您可以从多个存储库(仅举几例)扫描包,例如 Maven、npm、Nuget 和 PyPi。
通过 Chrome 扩展,您可以访问生命周期数据,例如组件信息(格式、软件包、版本)、安全性(严重性、来源、威胁类别、参考详细信息)、许可(声明和观察),以及最重要的修复(版本历史、推荐版本)。
有关更多信息,请参阅GitHub 上的Sonatype Lifecycle Chrome 扩展项目。
OSS Index 是一项开源社区服务,它聚合来自可信来源(例如常见漏洞和暴露 (CVE)列表)的安全数据。
OSS Index 提供全面的生态系统支持,并且借助不断增长的社区集成列表,可以轻松开始将安全数据合并到您最喜欢的工具链和工作流程中。以下开源扫描工具由 Sonatype 官方支持,无论有没有 Lifecycle 许可证都可以使用:
AuditJS 扫描 JavaScript 项目是否存在易受攻击的第三方依赖项。
Nancy 扫描 Golang 项目中是否存在易受攻击的第三方依赖项。
Chelsea 是一个用 Ruby 编写的 CLI 应用程序,旨在允许您扫描由 RubyGem 支持的项目并报告第三方依赖项中的任何漏洞。
Jake 是一个检查 Conda 环境中漏洞的工具,由 Sonatype OSS Index 提供支持,也可以与 Sonatype 的 Lifecycle 一起使用。
要详细了解如何将整个开发工具链中的开源漏洞信息与预构建的工具和应用程序集成,请参阅我们的OSS 索引集成页面。
正如您所看到的,Sonatype 提供了多种方法来将组件智能添加到您的开发工作流程中。作为第一步,我们建议您设置 IDE 集成。这将允许您查看组件信息和推荐版本,甚至迁移和修复修复程序,所有这些都在您已经使用的环境中进行。
上一篇:Nexus 生命周期快速入门