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

2024-06-09 1526阅读

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

背景

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

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

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

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

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

  1. 克隆github仓库到本地

  2. 删除远程github仓库

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

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

  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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]