跳至主要内容

关于仓库安全建议

您可以使用仓库安全通告在私密环境中讨论、修复并发布关于公共仓库中安全漏洞的信息。

谁可以使用此功能?

仓库安全通告和私密漏洞报告在 GitHub.com 的公共仓库上可用。

关于仓库安全通告

漏洞披露是漏洞报告者(例如安全研究人员)与项目维护者之间协作的重要领域。双方需要从发现潜在危害的安全漏洞的那一刻起,一直合作到向全世界披露漏洞——理想情况下还伴随补丁的发布。通常情况下,当有人私下向维护者通报安全漏洞时,维护者会开发修复、验证并通知项目或软件包的用户。更多信息请参阅 关于安全漏洞的协同披露

仓库安全通告允许公共仓库的维护者在私密环境中讨论并修复项目中的安全漏洞。协作完成修复后,仓库维护者可以发布安全通告,以公开披露该安全漏洞给项目社区。通过发布安全通告,仓库维护者可以更方便地让社区更新包依赖并研究漏洞的影响。

使用仓库安全通告,您可以

  1. 创建安全通告草稿,并使用该草稿私密讨论漏洞对您项目的影响。
  2. 在临时私有分支中私密协作修复漏洞。
  3. 在补丁发布后,发布安全通告以提醒社区该漏洞。

您还可以使用仓库安全通告重新发布已经在其他地方披露的安全漏洞详情,只需将漏洞的细节复制粘贴到新的安全通告中即可。

您也可以使用 REST API 创建、列出和更新仓库安全通告。更多信息请参阅 仓库安全通告的 REST API 端点

您可以为安全通告的贡献者致谢。更多信息请参阅 编辑仓库安全通告

您可以创建安全策略,为人们提供报告您项目中安全漏洞的说明。欲了解更多信息,请参见 向您的仓库添加安全策略

如果您在仓库中创建了安全通告,该通告将保留在您的仓库中。我们会将针对依赖关系图支持的任何生态系统的安全通告发布到 GitHub Advisory Database(github.com/advisories)。任何人都可以对已发布在 GitHub Advisory Database 中的通告提交更改。更多信息请参阅 编辑 GitHub Advisory Database 中的安全通告

如果安全通告专门针对 npm,我们也会将该通告发布到 npm 安全通告中。更多信息请参阅 npmjs.com/advisories

您还可以加入 GitHub Security Lab,浏览安全相关主题并为安全工具和项目做出贡献。

CVE 标识编号

GitHub Security Advisories 基于通用漏洞披露(Common Vulnerabilities and Exposures,CVE)列表构建。GitHub 上的安全通告表单是与 CVE 描述格式相匹配的标准化表单。

GitHub 是 CVE 编号机构(CNA),有权分配 CVE 标识编号。更多信息请参阅 CVE 网站上的关于 CVE以及CVE 编号机构

当您为 GitHub 上的公共仓库创建安全通告时,可以提供已有的 CVE 标识编号。如果您希望为项目中的安全漏洞获取 CVE 编号,但尚未拥有,可向 GitHub 申请。GitHub 通常会在 72 小时内审核该请求。申请 CVE 编号并不会使您的安全通告公开。如果您的安全通告符合 CVE 条件,GitHub 将为其保留一个 CVE 标识编号,随后在您将安全通告公开后发布该 CVE 细节。拥有安全通告管理员权限的任何人均可申请 CVE 编号。

如果您已有想要使用的 CVE(例如使用除 GitHub 之外的 CVE 编号机构),请在安全通告表单中填写该 CVE。这在您希望在发布时让通告与其他通讯保持一致时尤其有用。如果您的项目已由其他 CNA 覆盖,GitHub 将无法为其分配 CVE。

一旦您公开了安全通告且 GitHub 为该漏洞分配了 CVE 标识编号,GitHub 将把该 CVE 发布到 MITRE 数据库。

安全通告的发布

发布安全通告会通知您的社区该漏洞的相关信息,从而帮助他们更容易更新包依赖并研究漏洞的影响。

当您从公共仓库发布草稿通告时,可见性级别如下:

  • 任何人都可以查看当前版本的通告数据,以及已被受惠用户接受的通告致谢。
  • 协作者可以查看通告的对话历史。

安全通告的 URL 在发布后不会更改。

如果需要更新或纠正已发布的安全通告中的信息,您可以编辑该安全通告。参阅 编辑仓库安全通告

已发布安全通告的 Dependabot 警报

GitHub 将审核每个已发布的安全通告,将其添加到 GitHub Advisory Database,并可能使用该安全通告向受影响的仓库发送 Dependabot 警报。如果安全通告来源于分叉仓库,仅当该分叉拥有以唯一名称在公共包注册表上发布的包时,才会发送警报。此过程可能需要最长 72 小时,GitHub 可能会联系您以获取更多信息。

修复版本的重要性

只要可能,您应在发布通告前 为安全通告添加修复版本。如果不添加,通告将以未提供安全版本的形式发布,Dependabot 将仅提示存在问题,而不提供可安全升级的版本。

根据漏洞的不同,您可能需要调整处理方式。如果修复版本是

  • 即将可用,并且您有能力,在修复准备就绪时再披露问题。
  • 正在开发但尚未可用,请在通告中说明此情况,并在发布后随后编辑通告。
  • 未计划,请在通告中明确说明,以免用户联系您询问何时会有修复。在这种情况下,提供用户可采取的缓解措施会非常有帮助。
© . This site is unofficial and not affiliated with GitHub, Inc.