就在五一假期的最后一天,一些程序员查看自己托管到GitHub上的代码时发现,他们的源代码和Repo都已消失不见,取而代之的是黑客留下的一封勒索信,这封信中表示,
他们已经将源代码下载并存储到了自己的服务器上。受害者要在10天之内,往特定账户支付0.1比特币(约合人民币3800元),否则他们将会公开代码,或以其他的方式使用它们。
勒索信内容:To recover your lost code and avoid leaking it: Send us 0.1 Bitcoin (BTC) to our Bitcoin address 1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA and contact us by Email at [email protected] with your Git login and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your code is downloaded and backed up on our servers. If we dont receive your payment in the next 10 Days, we will make your code public or use them otherwise.
要找回你丢失的代码并避免代码泄漏:将0.1比特币(BTC)发送至我们的比特币地址1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA,并通过邮件与我们联系,提供您的git登录信息和付款证明。地址为admin[at]gitsbackup[dot]com。如果你不确定我们是否有你的数据,请联系我们,我们会给你发送证明。你的代码已经被下载并备份到我们的服务器上。如果我们在接下来的10天内没有收到你的付款,我们将公开你的代码或以其他方式使用它们。
此次事件至少有300余位用户中招,不仅仅是GitHub,其他代码托管网站GitLab、Bitbucket也受到了攻击。
根据GitHub上的搜索数据显示,至少有300余名用户受到了攻击。根据GitLab公布的数据,黑客至少可以访问所有131个用户和163个存储库。
根据GitLab的官方声明,这次黑客攻击事件最大的问题在用户:
“我们有充分证据表明,受影响帐户的密码以明文形式存储在相关代码库的部署中。”
因此提高安全意识才是保护自己代码的最好方法,GitLab建议用以下方法防止密码被黑客盗取:
1、使用强密码,降低被黑客破解的风险;
2、用密码管理工具存储密码,不要使用明文;
3、开启双因素身份验证,并使用SSH密钥提高。
如果你已经不幸中招,也不要急着交赎金,因为即使交钱也无法保证代码不会被黑客公开。
至于已经被删除的代码,一位早期受害者在StackExchange论坛指出,代码其实还在,是可以恢复出来的,只是HEAD被黑客修改了而已。
他还给出了一系列补救办法,被GitLab官方推荐。
输入以下代码:
git checkout origin/master
git reflog
git reset [SHA]
能看到黑客的提交记录,并修复origin/master。但是问题还没有完全解决,如果输入git status,还是会显示:
HEAD detached from origin/master
如果你在本地备份了代码,那就好办了,直接把本地代码强制push上去:
git push origin HEAD:master --force
如果你在本地没有备份,仍然可以从远程库克隆,用git reflog或者git fsck可以找到最后一次提交并更改HEAD。
接下来唯一需要担心的可能就是黑客是否会公布你的私有代码了。