记一次 github 泄漏 accessKey

2021-04-19 10:41:49 +08:00
 AoEiuV020

突然看到阿里云的 accessKey 泄漏邮件才发现自己不小心把 key 传到 github 上了,

赶紧从床上爬起来开电脑准备删文件,第一反应就是用 filter-branch 彻底删除历史中的这个文件,强制推送覆盖 github 上的版本,

命令随便就能搜到,

git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \
  --prune-empty --tag-name-filter cat -- --all

但是,但是从阿里云给的泄漏地址打开居然还能打开泄漏 key 的文件,

仔细一看阿里云打开的是特定版本的文件,哪怕这个版本已经不在最终仓库里了,github 还是能打开的,

也就是说光自己删除数据是没用的,这看起来是 github 缓存已经删除了的 commit,

肯定要想办法删除这些缓存才行,

于是找到 github 官方文档,

https://docs.github.com/cn/github/authenticating-to-github/removing-sensitive-data-from-a-repository

其中第 8 点明确说了要联系 GitHub 支持删除缓存之类,

赶紧设置成 private 仓库,然后睡觉去了,

第二天起来发支持工单,让 github 帮忙删除,

04.18 11:39

标题:

Removing sensitive data from a repository

内容:

I submitted sensitive data to these two commits,

https://github.com/AoEiuV020/LetsEncryptManualHook/tree/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx https://github.com/AoEiuV020/LetsEncryptManualHook/tree/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I found that I cannot delete them completely,I have used filter-branch to completely delete sensitive data and force push, But these two commits can still be accessed, Please help me to delete these two commits completely,

04.18 22:19

收到工单回复,说缓存清除了,

Hi 啊 o 额 iu 鱼,

Thank you for contacting GitHub Support!

I have gone ahead and cleared the cache for you.

Please let me know what else I can assist with!

Cheers,
J.J.

至此才完成彻底删除 github 上的敏感数据,光等工单就等了十个半小时,

大家要是有删除过 github 上的却没有发工单的可以试一下删除了的 commit 还能不能打开的,

notion

5870 次点击
所在节点    程序员
30 条回复
Lemeng
2021-04-19 14:25:46 +08:00
重置了事
slert
2021-04-19 14:27:12 +08:00
所以阿里云怎么知道你泄漏了?
AoEiuV020
2021-04-19 14:32:31 +08:00
@slert 肯定是有机器人 24 小时不断扫描 github 上所有新提交吧,上传私钥几秒内就收到邮件提醒泄露了,
learningman
2021-04-19 16:49:28 +08:00
@AoEiuV020 你去找一个 gitmemory 的网站。。。为啥你会觉得没人全量扫 GitHub
AoEiuV020
2021-04-19 16:59:40 +08:00
@learningman 看了下 gitmemory 也都是爬最新数据做分析的吧,并没有保存已经删除了的数据,甚至我项目改名他就搜不到老名字了,
sudoy
2021-04-19 17:00:48 +08:00
对于公开的仓库我坚持使用.env 文件保存敏感信息,然后加到 gitignore
learningman
2021-04-19 17:11:34 +08:00
@AoEiuV020 这只是一个例子,你想想,阿里云能扫,别人也能扫
AoEiuV020
2021-04-19 17:15:16 +08:00
@sudoy 我一般也会记得把项目要用的私密文件添加 ignore,这次泄露是搞了个临时文件写着把私密文件内容存在一个变量里,以便复制到服务器上跑测试个脚本用,然后一不小心就忘记删除和其他修改一起上传了,
文件大概长这样,
key='secret=xxxx'
显然不是正常会用到的,也就没想着 ignore 什么的,
AoEiuV020
2021-04-19 17:18:08 +08:00
@learningman 这个我是知道的,我想说的是,大家只会扫最新的内容,分析之后保存自己想要数据,secret 也只是个 base64,正常扫到不会认出这是什么,应该不至于有第三方把 github 泄露过的所有东西全部保存起来需要时再都调出来查,
liangch
2021-04-20 12:11:37 +08:00
重置 key 多简单。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771582

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX