是不是快下班了?工作结尾了吗?

编程开发

腾讯微信成为 GitHub 秘钥扫描合作伙伴

2022年12月21日 17:11:11 · 本文共 1,728 字阅读时间约 6分钟 · 1,636 次浏览
腾讯微信成为 GitHub 秘钥扫描合作伙伴

GitHub 已经支持扫描公共存储库和私有存储库关于微信的秘钥、Token,包括微信公众号、小程序、微信支付等功能的秘钥,并转发给腾讯,你将在腾讯收到秘钥泄露的通知。

什么是秘钥泄露

我们在开发软件时需要对接第三方的接口,那就需要秘钥来证明自己的身份,工程师在测试完成后进行代码提交,往往一时疏忽把秘钥一起提交给了代码仓库,其他开发者拉取仓库代码后,你的秘钥就被泄露了。

这个提交代码时提交秘钥的失误操作,真的真的非常常见,我本人、我身边的人、我使用的其他库,都看见过代码中包含秘钥。

GitHub 秘钥扫描合作伙伴计划

GitHub提供秘钥扫描合作伙伴计划,GitHub会扫描仓库,查找已知的密码格式,并上报给合作伙伴,比如你把阿里云的账户秘钥提交到了 GitHub 上,阿里云那边就会收到 GitHub 的通知,并在阿里云管理界面上对你进行提示,告诉你你秘钥可能已经泄露。

如果你是厂商,并且想加入 GitHub 秘钥扫描合作伙伴计划,可以参考:https://docs.github.com/en/developers/overview/secret-scanning-partner-program

目前已知的厂商列表包含了阿里云、    腾讯云、京东云、AWS、Azure、Google Cloud 以及这次新提到的腾讯微信。

所有公开存储库,默认都会开启这个秘钥扫描

为存储库配置机密扫描

  1. 在存储库的主页。 在存储库名称下,单击“设置”。
  2. 在边栏的“安全性”部分中,单击“代码安全性和分析”。
  3. 如果尚未对存储库启用 Advanced Security,请在“GitHub Advanced Security”右侧单击“启用”。
  4. 查看启用 Advanced Security 的影响,然后单击“为此存储库启用 GitHub Advanced Security”。
  5. 当您启用 Advanced Security 时,secret scanning 可能会因为组织的设置而自动启用。 如果显示“Secret scanning”带有“启用”按钮,则仍需通过单击“启用”来启用 secret scanning 。 如果你看到“禁用”按钮,则表示 secret scanning 已启用。

GitHub 与腾讯微信的服务

GitHub 会将在仓库中扫描到的密钥转发给腾讯微信,腾讯微信将通知受影响的用户进行警告通知,腾讯微信的相关文档参见:https://pay.weixin.qq.com/docs/merchant/development/key-leak-mitigation-guide.html,GitHub的博客参见:https://github.blog/changelog/2022-12-19-tencent-wechat-is-now-a-github-secret-scanning-partner/

极狐GitLab 的秘钥扫描

极狐GitLab 同样支持秘钥扫描,极狐GitLab 14.5 更新了密钥检测扫描器,以检测 47 种新的 “可识别的” 密钥模式。这使得极狐GitLab 密钥检测的检测范围达到了 90 多个可检测模式。

启用极狐 GitLab 秘钥扫描

你需要具备 GitLab Runner 来运行流水线的能力,通过配置 .gitlab.ci.yml 文件,在底部增加:

include:
   - template: Jobs/Secret-Detection.gitlab-ci.yml

在运行流水线时,极狐 GitLab 将进行秘钥扫描,如果你希望了解更多内容,请参见:https://docs.gitlab.com/ee/user/application_security/secret_detection/#supported-secrets

秘钥泄露之后怎么办

首先,你应该立即作废秘钥,申请新的秘钥,然后,你可以从历史记录中完全移除秘钥。

从存储库历史记录中清除文件

警告:任何操作都无法彻底清除,因为秘钥可能已经包含在数据库中、其他分支中、已经被克隆的仓库中、fork的仓库中,一旦提交应该视为已经泄露。

如果将敏感数据(例如密码或 SSH 密钥)提交到 Git 仓库,您可以将其从历史记录中删除。 要从存储库的历史记录中彻底删除不需要的文件,可以使用 git filter-repo 工具。

从存储仓库中删除敏感数据

  1. 首先,请先下载安装 git-filter-repo 工具。
  2. 然后克隆最新的存储仓库,并进入仓库目录中。
  3. 执行 git filter-repo --invert-paths --path <泄露的文件路径>
  4. 将包含敏感数据的文件添加到 .gitignore,以确保不会意外地再次提交。
  5. 执行 git push origin --force --all 强制推送本地更改以覆盖线上的存储库,以及您向上推送的所有分支。 需要强制推送才能从提交历史记录中删除敏感数据。
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.renfei.net/posts/1605491069670129675
评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

微信搜一搜:任霏博客