技术文章

了解最新技术文章

当前位置:首页>技术文章>技术文章
全部 39 常见问题 0 技术文章 39

开发人员生命周期快速入门

时间:2023-09-12   访问量:1044

在本指南中,我们将介绍 Sonatype Lifecycle 解决方案是什么,以及它如何帮助您更快地选择更好的组件并构建更好的软件。我们将为您提供一些很好的提示,帮助您开始将 Lifecycle 集成到您的环境中,帮助您将组件智能添加到日常工作流程中。


使用 Sonatype 生命周期构建更好的应用程序

Sonatype Lifecycle 充当实施组件生命周期管理的组织的大脑。在生命周期中,您将找到一个平台,该平台提供管理策略、查看组件和应用程序信息以及使用我们的集成来评估应用程序和存储库的功能。

Sonatype 平台可帮助您在为项目选择组件时做出明智的决策。通过预先做出明智的依赖关系选择,您可以专注于自己的创新,并让 Sonatype 平台确保您的软件元素来自维护良好、获得适当许可且具有安全意识的项目。


更智能的修复

注意: 高级开发包 (ADP) 已集成到通用生命周期产品中。这些更改可通过 IQ Server 版本 100 及更高版本进行访问。对于 IQ Server 版本在 100 到 134 之间的用户,您的管理员可能需要重新上传组织的现有生命周期许可证或重新启动 IQ Server 才能看到这些附加功能。


Sonatype Lifecycle 的开发人员功能 为开发团队提供了自动化的、基于策略的依赖关系管理解决方案。这使得团队能够采取更主动的方法来确保其产品的安全性,从而减少外部团队的监督并增强对项目的信心,同时又不会失去敏捷开发的动力。增强的功能包括:

这些功能提供了许多好处,包括:

让我们更深入地了解每个功能。

重大变化

Breaking Changes 目前仅适用于 Maven 生态系统。

此功能可帮助您了解组件的升级路径中是否引入了不兼容的代码。了解何时引入不兼容的代码(或重大更改)可以帮助您确定升级路径是简单的版本升级还是需要更复杂的代码更改。

显示重大更改功能的组件详细信息页面

当组件的两个版本之间没有重大更改时,对应用程序本身的代码应该影响不大 - 您应该能够简单地升级到组件的新版本并继续。这些类型的修复可以优先于可能需要额外开发工作的修复。更好的是,如果不需要更改代码,修复可以自动化。了解升级到修复违规的版本可能需要的工作量有助于您正确确定优先级并计划在适当的时间完成工作。

传递求解器

传递求解器可在“组件详细信息”页面上访问,它是一组推荐策略,可提供对组件已知依赖关系的深入了解。它向您展示了传递性与其直接依赖关系之间的联系,然后帮助您快速关注首先要修复的内容以及如何修复。通过提供直接依赖项及其传递性的建议,您可以更有效地降低应用程序中的风险。

利用为Maven建立的识别和链接,传递求解器为我们的推荐引擎引入了额外的策略:  

显示传递求解器功能的组件详细信息页面

笔记

传递求解器目前仅适用于 Maven 生态系统的组件。

如果您在查看传递求解器建议时遇到困难,请参阅此知识库文章 

发布完整性

发布完整性功能通过监控软件供应链中的活动、检测可疑行为并标记受影响的版本来自动检测有风险的组件版本版本。

Sonatype 使用机器学习自动化来快速大规模检测这些可疑的释放,让我们能够为潜在有害的软件包创建预警系统。这种自动化通过提供新的潜在恶意软件包供研究来增强我们的安全研究。这有助于我们保护我们的客户,使您能够使用Sonatype 防火墙阻止这些组件感染您的开发环境,以免为时已晚。  

检测到异常行为的组件版本将在“组件详细信息”页面上以红色评级为“可疑”。

显示发布完整性功能的组件详细信息页面

不良行为者通过将恶意代码注入或劫持您今天可能使用的合法项目来攻击软件供应链。发生这种情况时,升级到受感染项目的较新版本可能会感染您的应用程序或系统,而您却没有意识到发生了任何变化。

发布完整性可以检测可疑软件包,这些软件包使用旨在诱骗您将其添加到应用程序中的技术,例如Typosquatting用户可以针对组件的完整性评级编写策略,从而允许在Sonatype 防火墙处阻止可疑组件,并在其集成开发环境 (IDE) 中引起开发人员的注意。由于发布完整性可以通过机器学习自动化快速进行此分析,因此即使是最新的恶意软件包版本也可以尽早阻止。   

卫生等级

Health & Hygiene 提供的数据可帮助确保您仅使用来自最佳供应商的开源组件。这可以提高应用程序的质量并降低生产力损失的风险。在这种情况下,供应商是一个生成应用程序中使用的组件的项目,例如Spring FrameworkLog4j   

卫生评级用于总结供应商的健康状况:

显示卫生评级功能的组件详细信息页面

面向开发人员的 Sonatype 集成

与 Sonatype Lifecycle 集成提供了一种简单的方法,可以将组件智能添加到您的开发过程中并构建更好的应用程序。无论是在 IDE 中查看组件信息,还是将评估结果添加到 Jenkins 构建中,开发人员都可以使用生命周期数据来提高工作效率,而无需牺牲速度和可靠性。

Sonatype Integrations 团队努力确保开发人员拥有良好的 Lifecycle 体验。他们希望让您的工作变得更轻松,并且他们提出了一些出色的集成和插件来帮助您做到这一点。

IDE 中的 Sonatype Intelligence

对于开发人员来说,Sonatype Lifecycle IDE 集成旨在在您熟悉的环境中工作。您可以直接在 IDE 中获得有关组件质量的即时反馈,包括架构、许可和安全信息,让您能够就组件选择做出明智的决策。

这意味着您可以在出现任何构建警告或失败之前主动进行更改并选择更好的组件。我们的 IDE 集成可让您根据组织的开源策略快速审查应用程序中使用的组件,从而大大减少因复杂而详尽的研究而浪费的时间。下面的图形和信息提供了您可以通过 IDE 和生命周期集成访问的数据示例:

IQ Server 与 Eclipse 集成示例



头号

组件列表您将在此处看到项目中找到的组件列表,并通过其工件标识符和版本号进行标识。颜色指示器表示潜在的违规情况(红色=严重,橙色=中度,黄色=低度,蓝色=无)。具有较深字体的组件表示它们是应用程序中包含的直接依赖项。通过传递依赖引入的组件以较浅的字体显示。

第二个

推荐版本推荐的版本基于同一组件的较新版本的可用性,该版本不违反应用程序的任何配置策略。如果存在这样的版本,则会显示带有建议版本的超链接。单击该链接将在版本图中选择推荐的版本,并使用有关该版本的信息填充版本详细信息。有关更多信息,请参阅有关IDE 推荐版本 的帮助文档 

数字三

版本图显示所选组件的不同可用版本的各种属性。旧版本显示在左侧,新版本显示在右侧。图表左侧和右侧的箭头可让您查看完整范围的可用版本。单击图表中的任何部分,就会显示该特定版本的所有信息。有关更多信息,请参阅有关IDE 组件信息视图的帮助文档 

数字四

版本详情显示所选组件和版本的详细信息。详细信息包括:组件标识符(因语言而异)、版本、覆盖的许可证、声明的许可证、遵守的许可证、最高策略威胁、最高安全威胁、年龄、标识源以及项目网站的链接(如果有)。有关更多信息,请参阅有关IDE 版本详细信息 的帮助文档 

数字五

查看详细信息和迁移按钮查看详细信息按钮会打开一个对话框,显示该组件所违反的所有策略的列表;为每个组件声明的许可证以及源代码中观察到的威胁级别;以及发现的安全问题列表。当您选择与当前使用的版本不同的非易受攻击的版本时,“迁移”按钮将变为活动状态。按下该按钮将打开一个对话框,帮助您迁移到较新的组件。    

Sonatype 目前提供与IntelliJ IDEAEclipseVisual Studio的 IDE 集成   

查看源代码控制管理中的评估结果

用于源代码控制管理 (SCM) 的 Sonatype 生命周期 是一组功能,使开发人员能够及早了解代码更改。为此,我们与持续集成 (CI) 协同工作,将有关应用程序组件的策略信息直接推送到 SCM 中。

Sonatype Lifecycle for SCM 具有以下特点:

要使用 Sonatype Lifecycle for SCM,首先配置Lifecycle 以允许访问公司的源代码控制管理平台。对于大型组织,我们建议启用自动源代码控制,以便CI 和 CLI 集成在从本地克隆存储库运行时配置应用程序源代码控制连接(CI 系统中的常见做法)。    

配置完成后,提交将立即收到自动提交反馈 

IQ 服务器与 GitHub 集成的示例

IQ 服务器与 Gitlab 集成的示例

单击详细信息链接或状态可打开生命周期应用程序评估报告。在那里,您将看到该组件当前使用的版本以及其他易受攻击和不易受攻击的版本。   

启用并正确配置 SCM 生命周期后,应用程序还将开始看到针对任何新策略违规的自动拉取请求以及建议的补救措施。  

IQ for SCM 中的自动拉取请求

有关更多信息,请参阅我们的SCM 生命周期帮助文档,以及源代码控制管理中的策略评估技术指南。    

使用 Jira 插件自动创建票证

Sonatype Lifecycle Jira 插件可让您针对策略违规自动创建 Jira 票证,从而使开发团队能够专注于应用程序安全性。该插件使用 Lifecycle Webhook 违规事件在发生新违规时触发票证创建。发现问题时,会在链接的应用程序中创建 Jira 票证,并自动为每个组件创建一个票证。

对于程序员来说,这意味着您可以使用已用于故事跟踪和错误修复的工具轻松查找和分类策略违规行为。

IQ Server 创建的 Jira 票证示例

有关更多信息,请参阅有关Sonatype Lifecycle for Jira的帮助文档以及详细介绍新的Sonatype Lifecycle for Jira Integration 的指南  

使用 Sonatype 防火墙阻止不良组件

Sonatype Firewall 自动隔离违反策略的组件,防止质量问题进入您正在开发的软件。此过程可立即降低风险并避免浪费的返工。

防火墙的工作原理是提供审核和隔离功能,使您能够保护您的开发环境免受有风险或不需要的组件的侵害。启用审核后,向代理存储库添加和删除组件会导致存储库管理器联系 IQ Server 并评估代理存储库中的组件。如果发现违规行为,则会在您的存储库管理器中进行汇总,然后在 IQ Server 中详细说明。

例如,在 Nexus Repository 3 中,审核结果汇总在“存储库”视图的“IQ 策略违规”列中,如下图所示。    

Nexus Repo Manager 3 与防火墙之间的集成示例

在这里,您将看到 (1) 按最高违规级别列出的组件计数,(2) 隔离组件的计数,以及 (3) IQ Server 上存储库结果的链接。

有关更多信息,请参阅有关生命周期和存储库管理的帮助文档

评估 CI 服务器中的扫描结果

Sonatype Lifecycle 可以分析软件开发中使用的组件的安全性和许可证特征。当与持续集成服务器集成时,它会成为定期执行的动态分析,可能会在服务器上运行的每个构建中发生。

适用于 Jenkins 的 Sonatype 平台插件会扫描构建工作区中的组件,创建有关找到的所有组件的摘要文件,然后将该文件提交到 Lifecycle 以进行详细的策略评估。生成的报告包含安全和许可证信息的详细分析,并且该报告的摘要被发送回 Jenkins 服务器以包含在构建结果中。可以从 Jenkins UI 访问详细评估报告的链接。  

IQ 与 Jenkins 集成示例

Sonatype 还与其他 CI 服务器集成,例如BambooAzure DevOpsGitLab CI 我们所有的 CI 工具都允许您对由 Sonatype Lifecycle 支持的配置构建生成的工件执行全面的安全和许可证分析,并轻松访问应用程序组合报告。   

有关更多信息,请参阅我们有关生命周期和持续集成的帮助文档。

使用 Chrome 扩展检查包

Sonatype Lifecycle Chrome 扩展可让您在下载包之前对其进行检查。该插件需要有效的 Sonatype Lifecycle 许可证。在 Chrome 浏览器上安装该插件后,您可以从多个存储库(仅举几例)扫描包,例如 Maven、npm、Nuget 和 PyPi。

Nexus IQ Chrome 扩展程序

通过 Chrome 扩展,您可以访问生命周期数据,例如组件信息(格式、软件包、版本)、安全性(严重性、来源、威胁类别、参考详细信息)、许可(声明和观察),以及最重要的修复(版本历史、推荐版本)。

有关更多信息,请参阅GitHub 上的Sonatype Lifecycle Chrome 扩展项目。  

使用我们的社区工具扫描项目

OSS Index 是一项开源社区服务,它聚合来自可信来源(例如常见漏洞和暴露 (CVE)列表)的安全数据。  

OSS Index 提供全面的生态系统支持,并且借助不断增长的社区集成列表,可以轻松开始将安全数据合并到您最喜欢的工具链和工作流程中。以下开源扫描工具由 Sonatype 官方支持,无论有没有 Lifecycle 许可证都可以使用: 

要详细了解如何将整个开发工具链中的开源漏洞信息与预构建的工具和应用程序集成,请参阅我们的OSS 索引集成页面。  

回顾

正如您所看到的,Sonatype 提供了多种方法来将组件智能添加到您的开发工作流程中。作为第一步,我们建议您设置 IDE 集成。这将允许您查看组件信息和推荐版本,甚至迁移和修复修复程序,所有这些都在您已经使用的环境中进行。


上一篇:Nexus 生命周期快速入门

下一篇:软件物料清单 (SBOM) 快速入门

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部