5月3日,一些程序员查看自己托管到GitHub上的代码时发现,他们的源代码和Repo都已消失不见,取而代之的是黑客留下的一封勒索信!
黑客在信中表示,他们已经将源代码下载并存储到了自己的服务器上。受攻击者必须在10天之内,往特定账户支付0.1比特币(约合人民币3800元),否则他们将会公开代码,或以其他的方式使用它们。
黑客勒索信
据悉,攻击者使用的是一个名为 “gitbackup” 的账号,其所攻击的代码托管网站包括github、Bitbucket 和 GitLab。目前共有约 1000 名用户遭到了代码勒索,其中至少有 392 个不同的GitHub用户。目前还不清楚此次攻击会有哪些有价值的代码被窃取。
GitHub 392 人遭到勒索
在各大社交媒体上,一些受害者将遭到攻击归咎于Atlassian开发的Git GUI应用程序SourceTree,认为黑客利用了其中的漏洞。
但攻击波及的范围涵盖多个平台,The Register报道称,这次攻击很可能是针对无意识的安全性较差的存储库,而不是特定的漏洞。
ZdNet报道称,黑客极有可能是通过扫描互联网上的Git配置,然后提取了其中的登录凭证登录Git库,来完成的这波操作。
GitHub 上本身有很多内容是公开并被鼓励传播的。而被攻击的私有代码也可能并不是那么重要,甚至只是还未完成的内容。所以目前该比特币地址还未收到任何赎金,还遭到了不少举报。
黑客的攻击让这些代码托管平台如临大敌。
GitHub 发出最新官方声明:公司已经与受影响的团队,以及其他被攻击的网站共同进行了调查,并没有发现 GitHub 的登录验证系统被攻破。受损帐户的帐户密码均以明文形式存储在相关存储库的部署中。
GitLab 的安全总监 Kathy Wang 告诉 BleepingComputer:
我们根据昨天提交的赎金票据确定了消息来源,并立即开始调查此问题。我们已确定受影响的用户帐户,并且已通知所有这些用户。
Bitbucket 网站表示:他们计划在未来 24 小时内回滚受影响的代码库。
根据官方声明,这次黑客攻击事件最大的问题在于用户帐户的密码以明文形式存储在相关代码库的部署中。
因此提高安全意识才是保护自己代码的最好方法。
官方建议使用以下方法防止密码被黑客盗取:
1、使用强密码,降低被黑客破解的风险;
2、用密码管理工具存储密码,不要使用明文;
3、开启双因素身份验证,并使用SSH密钥提高。
如果你已经不幸中招,也不要急着交赎金,因为即使交钱也无法保证代码不会被黑客公开。
幸运的是,StackExchange 安全论坛的成员发现黑客实际上没有删除,仅仅是改变了 Git 提交标头,这意味着在某些情况下可以恢复代码提交。他还通过尝试访问 hash 的方式试出黑客的「删除」代码实际上只是修改了 HEAD 中的内容。同时,也给出了自己的「破解」方式,并得到了人们的点赞。
1、输入
git checkout origin/master
可以看到黑客攻击的 commit;
2、输入
则可以看到所有的被删除文件;
3、输入
git checkout origin/master
git reflog # take the SHA of the last commit of yours
git reset [SHA]
可以帮助你恢复 origin/master
最后,如果你的本地还存有代码,输入
就可以恢复所有内容了。
从个人层面上来讲,可能有的程序员会认为把代码上传到 GitHub 上可以作为备份,进行代码的管理,就是防止代码丢失。但是没有意识到公开库的危害性。法律意识淡薄以及对代码的安全性重视不够。
从公司层面来讲,可能没有对代码的管理以及代码安全性的重要性对员工进行普及和教育。员工之所以把代码上传至 GitHub 备份,可能公司没有进行代码管理的仓库以及代码管理的规范。公司应该给员工提供代码管理的仓库和工具,进行统一管理,另外加强员工对代码安全性和代码管理的意识。
即使是个人代码,也应该加强安全意识
有的程序员会用 Python 去爬虫 GitHub 上的开源代码,用正则表达式去匹配可能出现密码的地方,收集密码。公司的代码,尤其是后端服务器代码,可能会有很多加密和解密 secret,key 之类的,也有数据库密码,这些密码和隐私安全信息一旦泄露,就会引起很大的安全事件。
所以,即使是个人的代码,在上传至 GitHub 做开源的时候,涉及到密码的地方,一定要注意保护隐私,不要使用自己的真实密码,应该修改后再上传,注意保护自己的隐私。