简介
本指南展示了如何为仓库配置安全功能。
每个仓库的安全需求各不相同,因此您可能不需要为仓库启用所有功能。有关详细信息,请参阅 GitHub 安全功能。
某些功能对所有计划的仓库均可用。其他功能仅对使用 GitHub 密钥保护、GitHub 代码安全或 GitHub 高级安全的组织和企业开放。GitHub 高级安全功能也已对所有公开仓库默认启用。有关详细信息,请参阅 关于 GitHub 高级安全。
管理仓库访问权限
确保仓库安全的第一步是确定谁可以查看和修改您的代码。有关详细信息,请参阅 管理仓库的设置和功能。
在仓库主页,点击 Settings,然后向下滚动至 “危险区”。
- 要更改谁可以查看您的仓库,请点击 Change visibility。有关详细信息,请参阅 设置仓库可见性。
- 要更改谁可以访问您的仓库以及调整权限,请点击 Manage access。有关详细信息,请参阅 管理对仓库有访问权限的团队和人员。
管理依赖关系图
仓库管理员可以为仓库启用或禁用依赖关系图。依赖关系图会解析仓库中的清单文件和锁定文件,以识别依赖项。
- 在仓库主页,点击 Settings。
- 点击 Advanced Security。
- 在 “Dependency graph” 旁,点击 Enable 或 Disable。
更多信息,请参阅 探索仓库的依赖关系。
管理 Dependabot 警报
当 GitHub 在依赖关系图中识别出存在漏洞的依赖项时,会生成 Dependabot 警报。您可以为任意仓库启用 Dependabot 警报。
此外,您还能使用 Dependabot 自动分流规则(auto‑triage rules)在大规模上管理警报,从而可以自动关闭或延迟警报,并指定哪些警报需要 Dependabot 提交拉取请求。有关不同类型的自动分流规则以及仓库是否符合条件,请参阅 关于 Dependabot 自动分流规则。
有关 Dependabot 提供的各项功能概览以及入门说明,请参阅 Dependabot 快速入门指南。
- 点击您的个人头像,然后点击 Settings。
- 点击 Advanced Security。
- 在 Dependabot 警报旁点击 Enable。
更多信息,请参阅 关于 Dependabot 警报 和 管理个人账户的安全与分析设置。
管理依赖审查
依赖审查能够在拉取请求合并到仓库之前,可视化其依赖项的变更。更多信息,请参阅 关于依赖审查。
依赖审查是 GitHub 代码安全的一项功能。只要启用了依赖关系图,所有仓库默认启用依赖审查。使用 GitHub Team 或 GitHub Enterprise Cloud 且已启用 GitHub 代码安全的组织,还可以为私有和内部仓库额外启用依赖审查。
要为仓库启用依赖审查,请确保已启用依赖关系图。
- 在仓库主页,点击 Settings。
- 点击 Advanced Security。
- 在 “Code Security” 右侧,点击 Enable。
- 在 “Code Security” 下,确保该仓库已启用依赖关系图。
管理 Dependabot 安全更新
对于使用 Dependabot 警报的任何仓库,您可以启用 Dependabot 安全更新,以在检测到漏洞时创建包含安全更新的拉取请求。
- 在仓库主页,点击 Settings。
- 点击 Advanced Security。
- 在 “Dependabot security updates” 旁点击 Enable。
更多信息,请参阅 关于 Dependabot 安全更新 和 配置 Dependabot 安全更新。
管理 Dependabot 版本更新
您可以启用 Dependabot 自动创建拉取请求,以保持依赖项为最新版本。更多信息,请参阅 关于 Dependabot 版本更新。
- 在仓库主页,点击 Settings。
- 点击 Advanced Security。
- 在 “Dependabot version updates” 旁点击 Enable,即可生成一个基础的
dependabot.yml配置文件。 - 指定要更新的依赖项及相关配置选项,然后将文件提交到仓库。更多信息,请参阅 配置 Dependabot 版本更新。
配置代码安全
注意
代码安全功能对所有公开仓库可用,对使用 GitHub 代码安全或 GitHub 高级安全的组织拥有的私有仓库亦可用。
GitHub 代码安全包括代码扫描、CodeQL CLI、Copilot Autofix 以及其他可在代码库中发现并修复漏洞的功能。
您可以通过使用 CodeQL 分析工作流或第三方工具,配置代码扫描来自动识别储存在仓库中的代码中的漏洞和错误。根据仓库中的编程语言,您可以使用 CodeQL 的默认设置进行配置,GitHub 将自动确定要扫描的语言、要运行的查询套件以及触发新扫描的事件。更多信息,请参阅 配置代码扫描的默认设置。
- 在仓库主页,点击 Settings。
- 在侧边栏的 “Security” 部分,点击 Advanced Security。
- 如果 “Code Security” 或 “GitHub Advanced Security” 尚未启用,请点击 Enable。
- 在 “CodeQL analysis” 右侧,选择 Set up,然后点击 Default。
- 在出现的弹窗中,审阅仓库的默认配置设置,然后点击 Enable CodeQL。
- 选择是否要启用其他功能,例如 Copilot Autofix。
除了默认设置之外,您还可以使用高级设置,它会生成一个工作流文件,您可以编辑该文件以使用 CodeQL 自定义代码扫描。更多信息,请参阅 配置代码扫描的高级设置。
配置密钥保护
注意
密钥保护功能对所有公开仓库可用,对使用 GitHub 密钥保护或 GitHub 高级安全的组织拥有的私有仓库亦可用。
GitHub 密钥保护包括密钥扫描和推送保护等功能,帮助您检测并防止仓库中出现密钥泄漏。
- 在仓库主页,点击 Settings。
- 点击 Advanced Security。
- 如果 “Secret Protection” 或 “GitHub Advanced Security” 尚未启用,请点击 Enable。
- 如果出现 “Secret scanning” 选项,请点击 Enable。
- 选择是否要启用其他功能,例如非供应商模式的扫描和推送保护。
设置安全策略
如果您是仓库维护者,最好通过在仓库根目录创建名为 SECURITY.md 的文件来制定安全策略。该文件向用户说明在报告仓库安全漏洞时应如何与您联系以及如何协作。您可以在仓库的 Security and quality 选项卡中查看。
- 在仓库主页,点击 Security and quality。
- 在左侧边栏的 “Reporting” 下,点击 Policy。
- 点击 Start setup。
- 添加有关项目支持的版本信息以及如何报告漏洞的说明。
更多信息,请参阅 向仓库添加安全策略。
后续步骤
您可以在安全功能的警报页面查看并管理警报,以处理代码中的依赖项和漏洞。更多信息,请参阅 查看和更新 Dependabot 警报、管理依赖更新的拉取请求、评估仓库的代码扫描警报,以及 管理密钥扫描警报。
您还可以使用 GitHub 的工具审计对安全警报的响应。更多信息,请参阅 审计安全警报。
如果您在公开仓库中发现安全漏洞,可以创建安全咨询,以私密方式讨论并修复该漏洞。更多信息,请参阅 关于仓库安全咨询 和 创建仓库安全咨询。
如果您使用 GitHub Actions,可以利用 GitHub 的安全功能提升工作流的安全性。更多信息,请参阅 安全使用参考。