Skip to main content

查找并修复第一个依赖项漏洞

了解如何通过在演示存储库中启用 Dependabot 依赖项及其功能来保护依赖项。

常见做法是在项目中使用预先编写好的代码集合(称为库或包)********。 这些代码模块能为你节省大量时间,使你无需从头开始编写大型可重用组件,从而专注于工作中更具创造性的新内容。 添加到项目时,它们称为“依赖项”,因为你的工作依赖于它们包含的代码****。

虽然使用依赖项是完全正常的做法,但这些依赖项可能包含代码漏洞,会导致你的项目存在安全隐患。 幸运的是,像 Dependabot 这样的工具可以找到依赖项漏洞、引发拉取请求来修复它们,甚至阻止它们将来发生。 本教程介绍如何启用和使用 Dependabot 及其功能,以确保依赖项安全。

设置演示仓库

现在,我们通过复刻一个包含若干依赖项漏洞的演示项目来开始操作。 由于我们不会部署项目,因此本练习不存在安全风险****。

  1. 导航到 new2code/dependabot-demo 仓库。
  2. 在页面右上方,单击“分支”。****
  3. 在出现的页面中,单击“Create fork”****。

启用依赖项安全功能

设置项目后,让我们配置 Dependabot ,以查找和创建不安全依赖项的修复方案。

  1. 在存储库的导航栏中,单击 Security and quality
  2. 在“Dependabot alerts”行中,单击“ 启用 Dependabot alerts”。
  3. 在“Dependabot”部分的“Dependabot alerts”旁边,单击“ 启用”。
  4. 在出现的弹出窗口中,阅读有关启用依赖项关系图的说明,然后单击“Enable”****。
  5. 若要允许Dependabot自动打开用于修复依赖项漏洞的拉取请求,请在“Dependabot security updates”旁边单击启用

查看不安全的依赖项

配置后 Dependabot ,让我们找出哪些依赖项包含漏洞。

  1. 在存储库的导航栏中,单击 Security and quality
  2. 要查看存储库中的Dependabot alerts,请在侧导航中单击Dependabot
  3. 要查看有关警报的详细信息,请单击警报标题。 在本练习中,单击“在 hot-formula-parser 中注入命令”。****

了解 Dependabot 警报

现在,Dependabot 已经识别出我们依赖项中的一些漏洞,让我们分解“在 hot-formula-parser 中注入命令”警报中提供的信息。

修复摘要

在警报标题下方,你可以看到针对该漏洞的简短修补程序摘要,包括要关闭的警报数量以及漏洞所在位置****。 在本例中,警报告诉我们,将hot-formula-parser包升级到版本 3.0.1 将修复文件中Dependabot标识的一个javascript/package-lock.json警报。

本部分还跟踪 Dependabot创建拉取请求以修复漏洞的进度。 修复可用后,你将看到一个标记为“ 查看安全更新”的按钮,链接到拉取请求。

Dependabot 警报的修复摘要部分的屏幕截图。

漏洞详细信息

在修复详细信息下方,Dependabot 提供有关漏洞的更多信息,包括:

  • 受影响包的名称
  • 包含漏洞的包的版本
  • 修复漏洞的包的版本
  • 有关漏洞类型以及漏洞利用方式的详细信息

Dependabot 警报的漏洞详细信息部分的屏幕截图。

在此警报中,我们发现 parse 包中的 hot-formula-parser 函数在执行用户输入前未进行充分安全检查,这将允许攻击者执行恶意命令。

提示

如果不完全了解漏洞详细信息,请尝试 要求 Copilot 对话助手 解释它们。

时间线

最后,可以在页面底部看到警报的时间线。 我们的时间线当前包含打开警报时的 Dependabot 时间戳,并在修复漏洞时自动更新。

Dependabot 警报时间线的屏幕截图。

保护依赖项

为了快速轻松地保护项目,让我们应用创建的修补程序 Dependabot 。

  1. 在带有修复摘要的警报字段中,单击“ 查看安全更新”。

  2. 在拉取请求页面上,单击查看更改的文件以查看Dependabot的更改。 查看更改后,单击以返回到拉取请求总览。

  3. 要应用修补程序,请在页面底部单击“Merge pull request”,然后单击“Confirm merge”********。

    一旦拉取请求合并,链接的 Dependabot 警报将自动关闭,修复时间将添加到时间线中。

防止未来出现依赖项漏洞

为了帮助今后避免不安全的依赖项,我们允许 Dependabot 在新版本发布时自动打开更新依赖项的拉取请求。

  1. 在存储库的导航栏中,单击“ 设置”。
  2. 在边栏的“安全性”部分中,单击 Advanced Security
  3. 在“”Dependabot version updates旁边,单击“ 启用”。

后续步骤

现在,你已试用 Dependabot 了演示存储库及其功能, 可在自己的项目上启用这些功能 ,以便轻松查找、修复和防止依赖项漏洞。