一个“@”引发的“reply-all 事件”:让 GitHub 变身发骚扰邮件的“僵尸网络”!近 40 万开发者受影响

简介: 一个“@”引发的“reply-all 事件”:让 GitHub 变身发骚扰邮件的“僵尸网络”!近 40 万开发者受影响

近日,一位 18 岁的新手因向 GitHub 仓库提交 PR(Pull Request,Pull 请求),结果一个“@”让 GitHub 变身“僵尸网络”向近 40 万开发者狂发骚扰邮件的“reply-all 风暴”热度席卷了开源圈。

image.png

一个“@”,让 40 万开发者共收到 6000+ 万封电子邮件

据悉,这位新手名叫 Rohith Sreedharan ,起初本来是想向游戏公司 Epic Games 的 GitHub 存储库推送一个虚假的 Pull 请求(向 UE 提交新代码)以获取一些贡献历史记录(试图在自述中更改 3 个单词)来“练练手”。

image.png

但在这样做的过程中,Rohith Sreedharan 为了让自己提交的 PR 尽快被合并,他在评论中 (“@”)了与 Epic Games 组织相关的所有开发者,其中就包括加入该组织以查看虚幻引擎(Unreal Engine)源代码的任何人。

结果,他的“@EpicGames/developers”这一操作触发了 reply-all 事件:向加入 Epic Games 组织的所有 GitHub 用户发送关于此 PR 的邮件通知。

也就是说,Rohith Sreedharan 错误地“@”了与 Epic Games 组织相关的所有开发者,即加入该组织以查看虚幻引擎(Unreal Engine)源代码的任何人。

结果,这个“@”一下子导致了大约 40 万使用虚幻引擎 (Unreal Engine) 的开发者收到了来自 GitHub 有关此 Pull 请求的通知邮件。

image.png

同时,Rohith Sreedharan 的这个操作还让所有这些开发者们都订阅到 Pull 请求的注释线程 —— 即只要这 40 万名开发者中有人对 Rohith Sreedharan 的 Pull 请求进行评论,那么这条评论也会被以邮件的方式通知并发送给其他 Epic Games 组织的所以成员,由此引发邮件“轰炸”事件。

关键是,Rohith Sreedharan 提交的这个 Pull 请求倍开发者发现存在着不少问题,因此又引发了大量评论及相应的邮件通知。不幸的是,电子邮件通知中的退订链接实际上并没有退订用户的 Pull 请求,因此不少开发者都收到了 150 多封电子邮件,更有甚者收到了多达 200-400 封邮件。

也就是说, GitHub 当天晚上共发送了 6000+ 万封的电子邮件。

随着该邮件“轰炸”事件的不断发展,终于有开发者发现了退订该 Pull 请求的方法 —— “右栏中位于底部、参与者列表的正上方有一个‘退订’按钮,单击它并忽略即将传入的大量通知。”

到了这里,Epic Games 也才了解到事情的来龙去脉,并立即锁定了该 Pull 请求,关闭了其评论功能,才终于结束了这场“闹剧”。

GitHub 邮件机制受质疑

目前,此次事件已经在 reddit、Hacker News 等知名社区被大量开发者热议。

image.png

其中,在 reddit 上一位名为@TomSwirly 的开发者就对此事件表示愤慨,表示“我敢打赌,在这 40 万开发者中,有很多是初学者,如果我是初学者,我很容易浪费很多时间去弄清楚到底发生了什么。”但是“走开,垃圾邮件发送者,不管你是谁。”

此外,在 linustechtips 上也有名为 @trag1c 的开发者对此次事件以及该事件的“始作俑者” —— 新手 Rohith Sreedharan 进行了点评:

image.png

“老实说,我不知道是该称这孩子为“传奇”还是“脑残”(可能两者兼有)。假设这孩子正试图在软件开发领域找到一份工作,有可能他在 Github 上有学校项目啥的,他可能认为自己可能会对一些项目做出虚假承诺,试图说自己对一些复杂的大型项目做出了贡献,比如虚幻引擎。但他犯了一个致命的错误,即“@”了整个组织,而不仅仅是审查 Pull 请求的人员...可惜的是,这可能不会对他的职业生涯方面有所帮助哦~"

另外一个值得被重视的问题,就是 —— “为什么 GitHub 允许向 40 万人发送邮件通知?”

开发者@trag1c 认为,“真的想不出有什么好的理由允许以这种方式@整个组织,这也是 Epic 隐藏代码的方式的部分问题。为了查看虚幻代码源,你必须加入 GitHub 上的该游戏组织才行,当然该组织也会允许你成为被标记为组织的一部分。但这样的话整个设置都会导致‘灾难’后果,因为您可能可以使用这样的设置使用 GitHub 来对 GitHub 进行 DDOS 攻击..."

同时,还有不少开发者也提出了关于 GitHub 应优化机制的建议,以避免此类事件再次发生。对此,GitHub 高级工程总监 Shay Frendt 也留言回应称:“很抱歉,我们当前的系统设计导致你们陷入这种情况。我们正在努力发布补丁,以尝试中断你们都陷入的反馈循环。”

推特道歉:“我错了,保证以后不会再发生了”

事件发生之后,这位 18 岁的新手开发者终于在 6 月 5 日上推特发文道歉:

image.png

“Am extremely sorry, I wasn't knowing that would be tagging a 400k members, Extremely sorry for the spam from whole heartedly, I Apologize to all the team including

@EpicGames

and

@github

, never expected this would happen, thanks for notifying me! I promise it won't happen again”

推文中,他表示对此非常抱歉,称自己不知道这个操作会标记(@)约 40 万成员,对由此产生的垃圾邮件“轰炸”事件发自内心的道歉,并向 @EpicGames 游戏、@github 公司所有团队道歉,“没想到会这样,谢谢你通知我!我保证不会再发生了”。

相信对于这位年仅 18 岁的 Rohith Sreedharan 而言,此次“邮件轰炸”近 40 万开发者的事件,一定会让他学到不少。

目前,有关此次邮件“轰炸”事件的热度在推特及各大开发者社区仍旧持续发酵,关于 GitHub 优化机制的问题我们也将持续关注。如果您对此事件有任何看法,也欢迎在评论区留言互动。

参考链接:https://github.com/EpicGames/...

相关文章
|
5月前
|
运维 供应链 安全
构建网络环境的铜墙铁壁:从微软蓝屏事件反思系统安全与稳定性
【7月更文第22天】近期,一起由软件更新引发的“微软蓝屏”事件震撼全球,凸显了现代IT基础设施在面对意外挑战时的脆弱性。此事件不仅影响了数百万台设备,还波及航空、医疗、传媒等多个关键领域,造成了难以估量的经济损失和社会影响。面对这样的挑战,如何构建更为稳固和安全的网络环境,成为了全球IT行业共同面临的紧迫任务。
92 3
|
2月前
|
监控 安全 Linux
网络安全事件应急响应
应急响应是针对网络安全事件的快速处理流程,包括信息收集、事件判断、深入分析、清理处置、报告产出等环节。具体步骤涵盖准备、检测、抑制、根除、恢复和总结。
|
3月前
|
安全 项目管理 开发工具
探索 GitHub:现代开发者的协作平台
GitHub 是一个基于 Git 的版本控制和协作平台,广泛应用于软件开发和项目管理。它不仅提供代码托管服务,还是开发者社区和开源项目的重要平台。本文介绍了 GitHub 的核心功能(如代码托管、协作工具、CI/CD 集成等)、使用技巧(如规范化提交信息、参与开源项目等),帮助开发者提升效率和协作能力。GitHub 自2008年成立以来,已成为全球最大的代码托管平台,支持团队协作和项目管理。
|
4月前
|
Web App开发 Linux 开发工具
告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
【8月更文挑战第4天】告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
告别卡顿,畅享GitHub:国内开发者必看的五大加速访问与下载技巧
|
4月前
|
Java API UED
【实战秘籍】Spring Boot开发者的福音:掌握网络防抖动,告别无效请求,提升用户体验!
【8月更文挑战第29天】网络防抖动技术能有效处理频繁触发的事件或请求,避免资源浪费,提升系统响应速度与用户体验。本文介绍如何在Spring Boot中实现防抖动,并提供代码示例。通过使用ScheduledExecutorService,可轻松实现延迟执行功能,确保仅在用户停止输入后才触发操作,大幅减少服务器负载。此外,还可利用`@Async`注解简化异步处理逻辑。防抖动是优化应用性能的关键策略,有助于打造高效稳定的软件系统。
81 2
|
4月前
|
SQL 运维 安全
GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。 Web安全与防护技术是当前安全界关注的热点,今天给小伙伴们分享的这份手册尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。
|
4月前
|
SQL 运维 安全
GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。 Web安全与防护技术是当前安全界关注的热点,今天给小伙伴们分享的这份手册尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。
|
5月前
|
机器学习/深度学习 数据采集 监控
Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别
Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别
|
6月前
|
搜索推荐 开发者 SEO
CSDN 大规模抓取 GitHub 上的项目到 GitCode,伪造开发者主页引公愤
后续影响和发展方向 GitCode是CSDN开发的一个代码托管平台,为了快速获得搜索引擎流量,CSDN采用了惯用的手段,直接搬运大量内容进行填充。接下来,他们很可能会通过SEO农场来污染搜索引擎,以获得更多的流量。这种操作不仅对开发者极不尊重,也对整个互联网环境造成了严重的污染。 写在最后 GitCode 已经出来有挺长时间了,期间没闹出过什么问题。近期,不知道 GitCode 内部的哪位领导脑子被驴踢了,做出搬运 GitHub 的仓库来丰富自己平台内容的决定。 这种无视开发者权益、恶意搬运项目的行为,必将受到开发者社区的强烈谴责,尊重开发者的劳动成果,维护开源社区的良好氛围。开发者们也应团结
143 1
|
6月前
|
网络协议 Java 程序员
TCP/IP协议栈是网络通信基础,Java的`java.net`包提供工具,使开发者能利用TCP/IP创建网络应用
【6月更文挑战第23天】 **TCP/IP协议栈是网络通信基础,它包含应用层(HTTP, FTP等)、传输层(TCP, UDP)、网络层(IP)、数据链路层(帧, MAC地址)和物理层(硬件信号)。Java的`java.net`包提供工具,使开发者能利用TCP/IP创建网络应用,如Socket和ServerSocket用于客户端和服务器通信。**
57 3