写点什么

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

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

关注

评论

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

ETHERZ流动性挖矿系统软件APP开发

开發I852946OIIO

系统开发

全面覆盖:Java面试266题—算法+缓存+JVM搜索+分布式+数据库等

Java成神之路

Java 程序员 架构 面试 编程语言

快手基于 Apache Flink 的优化实践

Apache Flink

flink

Linux 如何实现定时调度任务

Near

Linux Timer 定时调度

详解Spring5+SpringMVC5+MyBatis3.X,同时整合Redis缓存+ActiveMQ+项目等

Java架构追梦

Java spring 架构 mybatis springmvc

LeetCode题解:92. 反转链表 II,递归,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

Java并发编程:AQS的原子性如何保证

码农架构

Java java 并发

为什么你成为不了团队核心成员

数据社

团队 七日更

为了面试大厂,精选2020年大厂高频Java面试真题集锦(含答案)

Java成神之路

Java 程序员 架构 面试 编程语言

安防小区管控系统建设,智慧社区智能化集成方案

t13823115967

智慧平安社区平台建设

阿里 10 年:一个普通技术人的成长之路

阿里巴巴云原生

阿里云 云原生 技术人 自我思考 职场成长

4. 上新了Spring,全新一代类型转换机制

YourBatman

Spring Framework 类型转换 Converter

厉害,GitHub上标星90.7K「Java学习+面试指南」学会互联网大厂随便选

Java成神之路

Java 程序员 架构 面试 编程语言

Code Shared & Review(20201214-20201220)

刘璐

优化PostgreSQL Autovacuum

PostgreSQLChina

数据库 postgresql 开源 优化

MySQL修改账号密码方法大全

Simon

MySQL 七日更

看了这份阿里Redis笔记,以后出去redis的问题你随便问

Java成神之路

Java 程序员 架构 面试 编程语言

蚂蚁集团下架互联网存款产品:互联网金融是天使还是魔鬼

石头IT视角

数据结构与算法经典问题解析-Java语言描述

田维常

数据结构

业务重要?还是技术重要?

数据社

思考 团队 七日更

第九周-作业一

ray-arch

DeFi平台DAPP软件系统开发

开發I852946OIIO

系统开发

测开之函数进阶· 第1篇《递归函数》

清菡

测试开发

围观|第一代云原生企业米哈游如何让想象发生?

阿里巴巴云原生

阿里云 最佳实践 运维 云原生 游戏开发

Synchronized用法原理和锁优化升级过程(面试)

叫练

synchronized 轻量级锁 偏向锁 多线程与高并发 同步

UBI波场挖矿系统软件APP开发

开發I852946OIIO

系统开发

JVM 垃圾回收原理

梧桐

第九周总结

小兵

奋斗30天,苦心啃透java高级工程师面试1000题,涨薪10K很难吗?

Java成神之路

Java 程序员 架构 面试 编程语言

vivo 微服务 API 网关架构实践

vivo互联网技术

微服务 微服务网关 API网关 Zuul2

11 组关系带你看清 JVM 全貌

田维常

JVM

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

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