关于本指南
作为组织所有者,防止私有或敏感数据泄露应是重中之重。无论是故意还是意外,数据泄露都会对相关方造成重大风险。虽然 GitHub 采取措施帮助您防止数据泄露,但您也负责管理您的组织以加强安全性。
防御数据泄露涉及几个关键组成部分
- 采取积极主动的预防措施
- 尽早发现可能的泄露
- 发生事件时保持缓解计划
最佳方法取决于您管理的组织类型。例如,专注于开源开发的组织可能需要比完全商业化的组织更宽松的控制,以允许外部协作。本文提供关于 GitHub 功能和设置的高级指南,您应根据自身需求实施这些指南。
保护账户
通过实施安全最佳实践来保护组织的存储库和设置,包括启用 2FA 并要求所有成员启用 2FA,以及建立强大的密码准则。
-
要求组织成员、外部协作者和账单管理员为其个人帐户启用 2FA,使恶意行为者更难以访问组织的存储库和设置。有关更多信息,请参阅“在您的组织中要求启用双因素身份验证”。
-
鼓励您的用户创建强密码并妥善保护它们,方法是遵循 GitHub 的推荐密码准则。有关更多信息,请参阅“创建强密码”。
-
鼓励您的用户在其个人帐户设置中保持启用用户推送保护,这样无论他们推送到哪个公共存储库,他们都受到保护。有关更多信息,请参阅“用户推送保护”。
-
在 GitHub 中建立内部安全策略,以便用户知道应采取哪些步骤以及在怀疑发生事件时应联系谁。有关更多信息,请参阅“向您的存储库添加安全策略”。
有关保护帐户的更多详细信息,请参阅“保护帐户的最佳实践”。
防止数据泄露
作为组织所有者,您应根据组织类型适当限制和审查访问权限。请考虑以下设置以加强控制
建议 | 更多信息 |
---|---|
禁用克隆存储库的功能。 | “管理您的存储库的克隆策略” |
禁用更改存储库可见性。 | “限制您的组织中的存储库可见性更改” |
将存储库创建限制为私有或内部。 | “限制您组织中的存储库创建” |
禁用存储库删除和转移。 | “设置删除或转移存储库的权限” |
将个人访问令牌的范围限定为必要的最低权限。 | 无 |
通过在适当情况下将公共存储库转换为私有存储库来保护您的代码。您可以使用 GitHub 应用自动提醒存储库所有者此更改。 | Prevent-Public-Repos 在 GitHub Marketplace 中 |
通过验证您的域并将电子邮件通知限制为仅已验证的电子邮件域来确认您组织的身份。 | “验证或批准您组织的域” |
确保您的组织已升级到 GitHub 客户协议,而不是使用标准服务条款。 | “升级到 GitHub 客户协议” |
防止贡献者进行意外提交。 | “删除存储库中的敏感数据” |
检测数据泄露
无论您如何加强组织以防止数据泄露,有些泄露仍然可能发生,您可以使用秘密扫描、审核日志和分支保护规则来响应。
使用秘密扫描
秘密扫描通过扫描和检测在 GitHub 存储库中每个分支的完整 Git 历史记录中意外提交的秘密来帮助保护代码并确保组织和存储库中的秘密安全。任何与秘密扫描合作伙伴、其他服务提供商提供的模式或由您或您的组织定义的模式匹配的字符串,都会在存储库的“**安全**”选项卡中报告为警报。
秘密扫描有两种形式:**合作伙伴的秘密扫描警报**和**用户的秘密扫描警报**。
-
合作伙伴的秘密扫描警报——默认情况下启用,并自动运行于所有公共仓库和公共 npm 包。
-
用户的秘密扫描警报——要获得组织的额外扫描功能,您需要启用用户的秘密扫描警报。
启用后,用户的秘密扫描警报可以在以下类型的仓库中检测到:
- GitHub.com 上个人帐户拥有的公共仓库
- 组织拥有的公共仓库
- 使用 GitHub Enterprise Cloud 的组织拥有的私有和内部仓库(当您拥有 GitHub 高级安全许可证时)
有关秘密扫描的更多信息,请参阅“关于秘密扫描”。
您还可以将秘密扫描启用为仓库或组织的推送保护。启用此功能后,秘密扫描可防止贡献者推送包含已检测到的秘密的代码。有关更多信息,请参阅“关于推送保护”。
查看组织的审计日志
您还可以通过利用组织的审计日志以及 GraphQL 审计日志 API 来主动保护 IP 并维护组织的合规性。有关更多信息,请参阅“查看组织的审计日志”和“接口”。
设置分支保护规则
为确保在将所有代码合并到默认分支之前对其进行适当审查,您可以启用分支保护。通过设置分支保护规则,您可以在贡献者推送更改之前强制执行某些工作流程或要求。有关更多信息,请参阅“关于受保护分支”。
作为分支保护规则的替代方案,您可以创建规则集。规则集比分支保护规则具有一些优势,例如状态和更好的可发现性,而无需管理员访问权限。您还可以同时应用多个规则集。有关更多信息,请参阅“关于规则集”。
降低数据泄漏风险
如果用户推送敏感数据,请使用git filter-repo
工具或BFG Repo-Cleaner开源工具要求他们将其删除。有关更多信息,请参阅“从仓库中删除敏感数据”。此外,几乎可以在 Git 中撤消任何操作。有关更多信息,请参阅GitHub 博客。
在组织级别,如果您无法与推送敏感数据的用户协调以将其删除,我们建议您通过GitHub 支持门户联系我们,并提供相关的提交 SHA。
如果您无法直接与仓库所有者协调以删除您确信自己拥有的数据,您可以填写 DMCA 下架通知表格并告知 GitHub 支持团队。有关更多信息,请参阅DMCA 下架通知。
注意
如果您的某个仓库由于虚假索赔而被下架,您应该填写 DMCA 反驳通知表格并提醒 GitHub 支持团队。有关更多信息,请参阅DMCA 反驳通知。