GitHub 推送保护功能全面上线并免费开放
GitHub 已将推送保护功能(Push Protection)推进至正式可用(General Availability, GA)阶段,并宣布该功能对所有公共仓库免费开放。推送保护功能旨在检测代码推送过程中可能包含的敏感信息(如密钥、密码等),以防止这些信息被意外泄露。
主要功能与特点
适用范围:
- 所有公共仓库均可免费使用推送保护功能。
- 对于私有仓库,推送保护功能需配合 GitHub Advanced Security (GHAS) 许可证使用。
检测与提示:
- 当推送的代码包含敏感信息时,系统会触发提示,显示敏感信息的类型、位置以及修复步骤。
- 提示信息会直接集成到开发者的工作流中,包括 IDE 或 CLI 环境。
- 推送保护功能仅会拦截那些误报率较低的敏感信息,具体支持的敏感信息类型可在 GitHub 文档 中查看。
绕过机制:
- 用户可以选择绕过推送保护,但需要提供原因,例如标记为测试所需、误报或稍后修复。
- 绕过操作会自动触发邮件通知,发送给仓库和组织管理员以及预定义的安全管理员。
- 所有绕过操作均可通过审计日志、警报视图 UI、REST API 或 Webhook 事件进行审查。
- 如果标记为“稍后修复”,系统会创建一个开放的安全警报;其他情况下,则会创建已关闭的解决警报。
配置与启用:
- 推送保护功能可通过 Code security and analysis settings 启用。
- 可以为所有新的公共仓库和启用 GHAS 的私有仓库自动启用推送保护。
- 当推送保护拦截提交时,可以在 CLI 和 Web UI 中指定自定义资源链接。
自定义模式:
- 用户可以定义自定义模式以扫描和拦截特定类型的敏感信息。
- 建议在发布和启用自定义模式之前,先使用内置的“试运行”功能进行测试。
- 自定义模式通过正则表达式指定。
用户反馈与开发者观点
- 开发者 greysteil 在 Hacker News 上提到,该功能目前是仓库级别的设置,预计在 6 月或 7 月将推出用户级别的设置,允许用户默认配置以阻止向任何公共仓库推送可识别的敏感信息。
- darthbanane 提出担忧,认为如果扫描器检测到敏感信息,意味着该信息已经离开用户设备并传输到互联网上。
- awesome_dude 回应称,扫描器确实会看到这些凭证,是否认为这些凭证已“泄露”取决于用户个人的判断。
- greysteil 还透露,GitHub 的扫描系统是为应对其规模而设计的,旨在最小化误报率并确保扫描速度足够快,以便在
git push请求/响应周期内完成。该系统利用了 Intel 的 Hyperscan 作为正则表达式引擎。
总结
GitHub 推送保护功能的全面上线为开发者提供了更强大的代码安全防护能力,尤其是对公共仓库的免费开放,进一步降低了敏感信息泄露的风险。通过灵活的绕过机制、自定义模式和高效的扫描系统,GitHub 在保障安全的同时也兼顾了开发者的便利性。未来,用户级别设置的推出将进一步提升该功能的实用性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。