写点什么

数百 GitHub 私有库被黑客攻击:不交赎金就公开源码

2019 年 5 月 05 日

数百GitHub私有库被黑客攻击:不交赎金就公开源码

近日,数百名使用 Git 托管服务如 GitHub、Bitbucket 和 GitLab 的开发者私有库遭到黑客清空,攻击者留下索要赎金的通知,要求在十天内向某钱包地址支付 0.1 个比特币(合人民币约 3838 元)的赎金,否则会将代码公开。


事件经过

5 月 2 日有网友在 Reddit 上发帖表示他的代码库被攻击并且被删除,黑客留下了一封勒索信。信中黑客表示,他们已经将源代码下载并存储到了自己的服务器上。受害者要在 10 天之内,往特定账户支付 0.1 比特币,否则他们将会公开代码,或以其他的方式使用它们。


要找回你丢失的代码并避免代码泄漏:将 0.1 比特币(BTC)发送至我们的比特币地址 1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA,并通过邮件与我们联系,提供您的 git 登录信息和付款证明。地址为 admin[at]gitsbackup[dot]com。


如果你不确定我们是否有你的数据,请联系我们,我们会给你发送证明。你的代码已经被下载并备份到我们的服务器上。


如果我们在接下来的 10 天内没有收到你的付款,我们将公开你的代码或以其他方式使用它们。


Git 是流行的分布式版本控制系统,开发者通常会在本地留有备份,所以删除托管服务的代码库本身意义不大,但开发者未必会愿意公开私有库。


根据报道,Atlassian 的一位安全研究员表示,BitBucket 上已经看到很多用户的代码库受到黑客的攻击。根据内部数据和在线报告,他估计受害者至少有 1000 人。在 GitHub 上搜索黑客的地址可以返回 392 个项目,意味着 GitHub 上 392 个用户的代码库被攻击了。


一些被黑客攻击的受害者表示他们在 GitHub、GitLab 和 Bitbucket 帐户中使用了弱密码,并且忘记删除几个月没用过的旧应用程序的访问令牌 - 这两种情况在网络账户被盗取的案例中都很常见。


但是证据表明,黑客已经扫描了整个互联网上的 Git 配置文件,提取了凭据,然后使用这些登录信息访问了 Git 托管服务并对帐户进行勒索。


GitLab的安全负责人表示,


我们已确定受影响的用户帐户并且已经通知了他们。我们的调查结果表明,受损帐户的密码以明文形式存储在相关代码库中。我们强烈建议使用密码管理工具以更安全的方式存储密码,并尽可能启用双因素身份验证,这两种方法都可以防止此类问题。


恢复方法

好消息是,在调查了受害者的情况后,StackExchange安全论坛的成员发现黑客实际上没有删除代码,只是修改类 HEAD 而已。这意味着这次攻击可能并不是有针对性的,而是由脚本执行的随机大量攻击,在某些情况下可以恢复代码提交。


具体恢复方法如下:


输入:


git checkout origin/master
复制代码


可以看到攻击者的提交


git checkout master
复制代码


可以看到你所有的文件


git checkout origin/mastergit reflog # take the SHA of the last commit of yoursgit reset [SHA]
复制代码


将修复你的 origin/master。但是,查看 git 状态的话,


git status
复制代码


此时显示


HEAD detached from origin/master
复制代码


这表明修复仍然不完全。


如果你的文件在本地,则运行


git push origin HEAD:master --force
复制代码


就可以修复好。


如果你在本地没有备份,仍然可以从远程库克隆,用 git reflog 或者 git fsck 可以找到最后一次提交并更改 HEAD。


在推特上,开发者社区的一些重要人物目前正在敦促受害者在支付赎金之前联系 GitHub、GitLab 或 Bitbucket 的支持团队,因为可能有其他方法可以恢复已删除的代码库。



小结

前一段国内时间也出现过企业代码被恶意公开的情况,比如大疆前员工将含有公司商业机密的代码上传到了 GitHub 的公共代码库中,造成源代码泄露,给大疆造成经济损失达 116.4 万元人民币。最终该员工获有期徒刑六个月,并处罚金 20 万人民币。


代码库被公开将给个人及企业带来很大损失,不管是个人还是企业都应该从软件或者物理的角度加强代码库的加密防御。安全问题不可小觑。


2019 年 5 月 05 日 12:5610764
用户头像
张婵 InfoQ 技术编辑

发布了 87 篇内容, 共 45.7 次阅读, 收获喜欢 215 次。

关注

评论

发布
暂无评论
发现更多内容

VSCode 插件之 - GitLens

HoneyMoose

Pod 阶段

耳东

容器 4月日更

复杂度分析

奈奈奈奈

Java

Rust从0到1-结构体-一个例子

rust struct

架构实战营模块一作业

hunk

架构实战营

架构师实战营 1 期 作业1-微信的业务架构及学生管理系统

灵霄

架构实战营

模块一-学生管理系统架构设计

华仔架构训练营

盘点 15 个好用的 API 接口管理神器

Java小咖秀

工具 工具分享

二叉树学习总结

Nick

数据结构 算法 二叉树 红黑树

自然语言处理:网购商品评论情感判定

不脱发的程序猿

人工智能 自然语言处理 四月日更 网购商品评论情感判定 文本分析

架构训练营模块一作业

Geek_e0c25c

架构训练营

模块一:课后作业

iHai

架构实战营

架构实战营作业:模块一

心晴雨亦晴(~o~)

花费一月时间吐血整理程序员必读书单,建议收藏

Silently9527

java程序员书单 程序员书单

模块一笔记:4R、3原则与设计环

去北方

【命题作业】模块 1:微信业务架构图+“学生管理系统”架构设计

小李

架构实战营

使用 lxrunoffline 管理运行wsl

LeetCode题解:剑指 Offer 49. 丑数,二叉堆,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

架构训练营——作业1

架构实战营

杭州又多了一个失意的人

箭上有毒

架构实战营 模块1 课后作业

༺NPE༻

架构实战营 模块1作业

唐江

架构实战营

架构实战营模块一作业

陈俊

架构实战营

手摸手教你阅读和调试大型开源项目 ZooKeeper

HelloGitHub

Java zookeeper 源码分析 ZooKeeper原理

马特量化交易机器人,炒币24小时不停歇

飞亚科技

模块一作业

chenmin

Prometheus2.25新特性讲解

LanLiang

Prometheus cncf openmetrics

Spark数据倾斜方案实战(二)

小舰

4月日更

【架构实战营】模块 1 作业

dragonboa

架构训练营--微信业务架构

月伴沧海

旋转木马案例

赫鲁小夫

4月日更

数百GitHub私有库被黑客攻击:不交赎金就公开源码-InfoQ