写点什么

数百 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:5610643
用户头像
张婵 InfoQ 技术编辑

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

关注

评论

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

Spring源码解析-Bean

云淡风轻

spring 源码

极客时间 - 架构师训练营 - week2 - 课堂笔记

毛聪

第二周作业

王鑫龙

极客大学架构师训练营

Spring Boot+Redis 扛住,瞬间千次重复提交(实例)

周老师

redis Spring Boot 幂等 服务Api

【喜迎端午】够强大,才够出“粽”,加入InfoQ写作平台,领取节日限定头像标识

InfoQ写作平台官方

写作平台 端午节 活动专区

依赖倒置原则理解

Thrine

作业2

annie

极客大学架构师训练营

架构师训练营-第二课作业-20200617-设计原则???

👑👑merlan

架构设计 软件设计

一周信创舆情观察(6.8~6.14)

统小信uos

新基建 信创

第二周课程学习总结

Geek_a327d3

作业

架构作业-第2周

铁血杰克

Week2学习总结

铁血杰克

架构培训 -02 学习总结 架构师实现自己架构的主要手段

刘敏

深入理解JVM垃圾回收机制 - 运行时栈帧的内存变化

NORTH

深入理解JVM 运行时栈帧

极客时间 - 架构师训练营 - week2 - 作业

毛聪

第二周 - 作业

Happy-Coming

游戏夜读 | 中国移动游戏简史

game1night

架构师训练营第二周作业

时来运转

02架构的方法论

ashuai1106

架构设计 极客大学架构师训练营 架构设计原则

RPC实战与核心原理-学习笔记(4)

程序员老王

极客大学架构师训练营第二周学习总结

竹森先生

设计模式 架构设计 极客大学架构师训练营 面向对象设计原则

外包程序员的幸福生活

四猿外

Java开发3年面试老被问到原理?不慌!SSM框架+JVM原理文档送给你

周老师

Java 程序员 面试 SSM框架 JVM原理

架构师训练营第2周作业

在野

极客大学架构师训练营

设计原则——依赖倒置原则

GalaxyCreater

架构

依赖倒置原则

金桔🍊

极客大学架构师训练营

架构师培训第二周作业

talen

架构师训练营第二周命题作业

whiter

极客大学架构师训练营

拼多多市值快 1000 亿美元了

池建强

创业 拼多多

架构师训练营第二周总结

hiqian

【总结】框架设计之架构师实现自己架构目标的主要手段

魔曦

极客大学架构师训练营

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