侧边栏壁纸
博主头像
Monkey部落博主等级

Monkey部落,分享技术、经验、遇到的问题及解决方法,欢迎大家互相讨论分享。

  • 累计撰写 59 篇文章
  • 累计创建 36 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Github上把敏感文件或者API秘钥上传公共库并开放为public权限导致秘钥泄露

Monkey部落
2022-10-16 / 0 评论 / 0 点赞 / 130 阅读 / 899 字

Github上把敏感文件或者API秘钥上传公共库并开放为public权限导致秘钥泄露

背景

我们在开发项目时,可能会使用到一些加密文件,例如私钥,或者使用到一些云服务商提供的ak(Access Key Id)或者sk(Secret Access Key),使用这些时需要格外注意,不能泄露给别人,否则可能别人会恶意调用你的接口,例如短信,可能会导致短信欠费,但是,如果我们不小心上传到了自己的开源项目上,我们可以通过以下步骤,删除git提交记录,注意,一定要对仓库有所有权,有删除仓库权限,如果是上传到别人的项目,该方法不适用。

提示:一般上传到github仓库的项目,如果被检测到有阿里云或者腾讯云的ak或者sk,云服务商会发送消息通知,如果收到通知消息,需要尽快处理,也可以使用GitGuardian对github仓库进行扫描,也可以发现公开的ak或者sk。

步骤:撤销提交的敏感文件

  1. 首先需要将github上的仓库先设置为私有,防止其他人员可以访问到这个敏感文件,减少泄露程度。

image-20211030163024466

  1. 克隆github仓库到本地

  2. 删除远程github仓库

image-20211030162918487

image-20211030162954645

  1. 下载BFG Repo-Cleaner

    BFG Repo-Cleaner是一款能够快速的清除错误的git历史记录的工具。

  2. 使用BFG Repo-Cleaner重写git提交历史

    下面举例:假如目前错误提交了application.yml文件,该文件包含了一些敏感信息的配置,例如短信的配置, 需要删掉application.yml相关的提交记录

  3. 拷贝下载后的BFG Repo-Cleaner到和你项目平级的文件夹中

  4. 在项目中删除application.yml,并且commit,可以备注 “clean commit”

    这一步可以不用做,但是我们为了对比前后效果,可以多提交一个移除文件的commit记录。

    git commit -m "clean commit"
    
  5. 执行BFG

    目前测试项目使用的就一个分支,不确定是否会影响仓库中的其他分支,小伙伴们可以自己可以使用单独项目先进行测试,测试是否会影响所有分支

    java -jar bfg-1.14.0.jar 项目名/.git --delete-files "application.yml"
    
  6. 查看日志

    git log -p
    

    可以看到相关的git提交记录中的application.yml文件都会被删除

  7. 在github上重新创建新的仓库,将修改后的本地仓库和新的远程仓库关联,重新push所有文件和提交记录

  8. 检查泄露的相关API、秘钥的使用情况

    登录相关服务提供商的后台,查看API 秘钥的使用情况,例如阿里云、腾讯云等,也可以使用GitGuardian扫描Github仓库,查看使用还存在秘钥泄露的情况。

注册GitGuardian

友情链接

关注微信公众号「平哥技术站」, 每日更新,在手机上阅读所有教程,随时随地都能学习。

觉得写的还不错的小伙伴,请作者喝杯咖啡☕ ,支持一下。😊

如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。

0

评论区