首页 > 其他分享 >Github上把敏感文件或者API秘钥上传公共库并开放为public权限导致秘钥泄露

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

时间:2022-10-19 00:00:22浏览次数:92  
标签:文件 git 仓库 github API 提交 Github 秘钥

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

原文链接:https://monkey.blog.xpyvip.top/archives/github-mi-yao-xie-lu

标签:文件,git,仓库,github,API,提交,Github,秘钥
From: https://www.cnblogs.com/aibianchengya/p/16804705.html

相关文章