关于 GitHub Enterprise Server 的 Dependabot
Dependabot 有助于用户查找和消除其依赖项中的漏洞。你需要先为企业设置Dependabot,然后便可启用 Dependabot alerts 向用户发送有关存在漏洞的依赖项的通知,以及启用 Dependabot updates 来消除漏洞并将依赖项更新到最新版本。
Dependabot 只是可用于增强 GitHub 供应链安全性的众多功能之一。 有关其他功能的详细信息,请参阅“关于企业的供应链安全”。
关于 Dependabot alerts
使用 Dependabot alerts,GitHub 可识别存储库中不安全的依赖项,并使用来自 GitHub Advisory Database 和依赖项关系图服务的数据在 GitHub Enterprise Server 上创建警报。
我们从以下来源向 GitHub Advisory Database 添加公告信息:
- GitHub 上报告的安全通告
- 国家漏洞数据库
- npm 安全顾问数据库
- FriendsOfPHP 数据库
- Go Vulncheck 数据库
- Python Packaging Advisory 数据库
- Ruby Advisory 数据库
- RustSec Advisory 数据库
- 社区贡献。 有关详细信息,请参阅 https://github.com/github/advisory-database/pulls。
如果你知道我们应该从中导入顾问的另一个数据库,请通过在 https://github.com/github/advisory-database 中创建问题来告诉我们。
在为企业设置Dependabot 后,漏洞数据会每小时从 GitHub Advisory Database 同步到实例一次。 仅同步 GitHub 审核的公告。 有关详细信息,请参阅“在 GitHub Advisory Database 中浏览安全公告”。
您还可以随时选择手动同步漏洞数据。 有关详细信息,请参阅“查看企业的漏洞数据”。
注意: 启用 Dependabot alerts 时,不会将来自 GitHub Enterprise Server 的代码或有关代码的信息上传到 GitHub.com。
当 GitHub Enterprise Server 接收到有关漏洞的信息时,它将识别使用受影响依赖项版本的存储库,并生成 Dependabot alerts。 可选择是否自动通知用户有关新的 Dependabot alerts。
对于启用了 Dependabot alerts 的存储库,扫描会在任何推送到包含清单文件或锁定文件的默认分支时触发。 此外,当添加新的漏洞记录时,GitHub Enterprise Server 会扫描所有现有存储库并对任何易受攻击的存储库生成警报。 有关详细信息,请参阅“关于 Dependabot 警报”。
关于 Dependabot updates
启用 Dependabot alerts 之后,可选择启用 Dependabot updates。 为 GitHub Enterprise Server 启用 Dependabot updates 之后,用户可以配置存储库,以便它们的依赖项自动进行更新并保持安全。
注意:GitHub Enterprise Server 上的 Dependabot updates 需要带自托管运行器的 GitHub Actions。
默认情况下,Dependabot 使用的 GitHub Actions 运行器需要访问 Internet,以便从上游包管理器下载更新的包。 对于由 GitHub Connect 提供支持的 Dependabot updates,Internet 访问权限为运行器提供了一个令牌,允许访问托管在 GitHub.com 上的依赖项和公告。
在 Internet 访问受限或无 Internet 访问的情况下,可在 GitHub Enterprise Server 实例上为特定的专用注册表启用 Dependabot updates。 有关详细信息,请参阅“配置 Dependabot,使其在 Internet 访问受限的情况下工作”。
使用 Dependabot updates,GitHub 将自动创建拉取请求,以两种方式更新依赖项。
- Dependabot version updates :用户将 Dependabot 配置文件添加到存储库,启用 Dependabot 在发布跟踪依赖项的新版本时创建拉取请求。 有关详细信息,请参阅“关于 Dependabot 版本更新”。
- Dependabot security updates :当 GitHub 检测到存储库的依赖项关系图的依赖项之一存在漏洞时,用户切换存储库设置以启用 Dependabot 来创建拉取请求。 有关详细信息,请参阅“关于 Dependabot 警报”和“关于 Dependabot 安全更新”。
启用 Dependabot alerts
在启用 Dependabot alerts 之前,需要先为企业设置 Dependabot:
- 必须启用 GitHub Connect。 有关详细信息,请参阅“在 GitHub.com 上启用 GitHub Connect”。
- 您必须启用依赖关系图。 有关详细信息,请参阅“为企业启用依赖项关系图”。
-
在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。
-
在企业帐户边栏中,单击 GitHub Connect。
-
在“Dependabot”下,在“定期下载 GitHub Advisory Database 以便用户可以接收开放源代码依赖项的漏洞警报”右侧,选择下拉菜单并单击“启用但无通知”。 (可选)要启用警报和通知,请单击“启用并通知”。
Note
此设置仅控制实时电子邮件通知和 Web 通知。 无论选择哪个选项,命令行接口 (CLI) 警告和电子邮件摘要仍将提供。
Tip
我们建议将 Dependabot alerts 配置为在前几天不发送通知,以避免实时电子邮件过载。 几天后,可以启用通知,像往常一样接收 Dependabot alerts。
现在可以在“代码安全和分析”企业设置页中为所有现有或新的专用和内部存储库启用 Dependabot alerts。 或存储库管理员和组织所有者可以为每个存储库和组织启用 Dependabot alerts。 默认情况下,始终启用公共存储库。 有关详细信息,请参阅“配置 Dependabot 警报”。
启用 Dependabot updates
在启用 Dependabot updates 之前:
- 必须为企业启用 Dependabot alerts。 有关详细信息,请参阅上面的“启用 Dependabot alerts”。
- 必须启用 TLS。 Dependabot updates 在需要启用 TLS 的自托管运行器上运行。 有关详细信息,请参阅“企业自托管运行器入门”。
- 必须配置 GitHub Enterprise Server 以将 GitHub Actions 与自托管运行器配合使用。 有关详细信息,请参阅“GitHub Actions for GitHub Enterprise Server 使用入门”。
如果企业使用聚类分析,GitHub Enterprise Server 上不支持 Dependabot updates。
注意:启用依赖项关系图后,可以使用 Dependabot 操作。 如果引入任何漏洞或无效许可证,该操作将引发错误。 有关操作的详细信息,以及如何下载最新版本的说明,请参阅“使用官方捆绑操作的最新版本”。
-
在
http(s)://HOSTNAME/login
上登录 你的 GitHub Enterprise Server 实例。 -
在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击 。
-
如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。
-
在“ 站点管理”边栏中,单击“管理控制台”。
-
在“设置”边栏中,单击“安全”。
-
在“安全”下,选择 Dependabot security updates。
-
在“设置”边栏下,单击“保存设置”。
注意:保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。
-
等待配置运行完毕。
-
单击“访问实例”。
-
配置专用自托管运行器以创建将更新依赖项的拉取请求。 这是必需的,因为工作流使用特定的运行程序标签。 有关详细信息,请参阅“管理企业中 Dependabot 更新的自托管运行器”。
-
在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。
-
在企业帐户边栏中,单击 GitHub Connect。
-
在“Dependabot”下,在“用户可以轻松升级到非易受攻击的开源代码依赖项”右侧,单击“启用”。
启用 Dependabot alerts 时,还应考虑为 Dependabot security updates 设置 GitHub Actions。 此功能使开发人员可以修复其依赖项中的漏洞。 有关详细信息,请参阅“管理企业中 Dependabot 更新的自托管运行器”。
如果需要增强安全性,建议将 Dependabot 配置为使用专用注册表。 有关详细信息,请参阅“为 Dependabot 配置对专用注册表的访问权限”。