0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

我在服务器上执行了rm -rf *

Linux爱好者 来源:Linux爱好者 作者:Linux爱好者 2021-02-02 13:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前情提要

前段时间,我在一个非公开的 Bug 赏金项目里发现了一个严重的漏洞,这个漏洞可以允许远程执行代码。在我提交漏洞报告的几个小时后,我收到了第一封邮件回复,他们说会尽快确认漏洞然后再和我联系。到目前为止一切都是正常的。

但是第二封邮件的回复揭开了整个惊心动魄的故事,就像多米诺骨牌效应一样把更多的问题暴露了出来。

关于这个事故,社区反应是这样的:

https://twitter.com/secalert/status/1339640670210945030

线上会谈前的邮件往来

我找出了这个远程代码执行的漏洞,并且在报告里用 5 个命令来演示 POC(Proof Of Concept)。因为我不想在 POC 里造成任何破坏,所以我决定用下面这几个命令:

第 1 封邮件回复说他们会认真排查报告里说到的问题。

但是第 2 封邮件的回复是这样的

亲爱的 Dave,

感谢你的报告和 POC。因为我们现在人手不足,所以只能让我们的初级工程师来验证你提到的远程代码执行漏洞。但是他在验证的过程中尝试用命令 rm -rf * 来看 web 的用户是否能造成破坏。不幸的是,因为这个命令他把所有东西都删了。我们会尝试尽快恢复数据来继续漏洞修复,当我们的问题解决的时候我们会再让你帮忙验证漏洞修复的情况。

我回复他们我随时可以来帮助他们解决问题。

接着他们第 3 封邮件的回复是这样的:

亲爱的 Dave,

跟你同步一下进度。我们已经导入了备份。但是不幸的是,我们发现本来预计的是通过 cronjob 每 3 天备份一次,但是无意中配置成了每3个月备份一次,这导致我们没有办法恢复这几个星期的数据了。我们现在已经修复了这个问题,未来也会更加注重在多个工程师之间做结对编程和代码审查。

最后第 4 封邮件的回复是这样的:

亲爱的 Dave,

感谢你耐心等候。我们已经优化了备份的流程,也尽可能地导入最新的备份。同时我们开发部门的同事也修复了你报告里提到的漏洞,现在已经热更放了出去。你现在可以再帮忙验证一下这个漏洞是否真的被修复了吗?

确认漏洞修复并且提出线上会谈

我确认了他们的漏洞已经修复了,接着向他们提出要不要进行一次线上会谈来聊聊这个案例,因为这种事情很容易发生在初学者身上,一起聊一聊的话可以分享这些踩过的坑,来防止其他人再犯同样的错误。让我很惊喜的是他们答应了。事实证明,无论是他们还是他们的公司都不是徒有虚名。

当事人愿意出来解释前因后果

首先,我要借这个机会来感谢两位当事人工程师愿意来和我线上会谈,并同意让我引用之前沟通的内容,这样可以让其他人更清楚的了解整件事的前因后果。

因为担心网络暴力和一些不好的评论,当事人要求匿名。

当然,我尊重他们的要求。下面我会用“工程师老甲”和“初级工程师张三”来指代他们。

线上会谈经过

@Dave

感谢来到这次线上会谈,再次感谢你们的勇气和无私。如果可以的话我会 @ 特定的人来向他提问,他可以通过评论来回复,如果有什么问题你不想回答的话,我们就直接跳过。

@Dave 问 “初级工程师张三”:

首先得问一下你现在还好吗,希望你从那件事情发生后到现在已经平静下来了。你可以从你的角度简要描述一下当时发生了什么吗?

@张三:

好的。

首先我得强调一下,我已经吸取了深刻的教训。我当时看到你提交的远程代码执行的漏洞很惊讶,因为我认为我们现在用的框架或者防火墙应该可以识别并阻止它。

8 月份的时候,我完成了我作为应用部署 IT 专业人员的培训,接着从 11 月份才开始在公司里从事安全相关的事情。因为当时别人问我有没有兴趣去管理一下 bug 赏金计划,我就答应了。因为新冠疫情的爆发和随之而来的节假日,我们公司人手不足,就有同事问我能不能帮忙回复一下 bug 赏金计划的邮件,如果我懂邮件里的 bug 的话,看看能不能验证一下那些 bug。因为我很想帮上忙所以就很愉快地答应了,而且也因为得到别人的赏识感到很高兴。

当我在你的邮件里读到“远程代码执行”的时候,我以为那只是能执行一下计算器或者留一张黑客组织图片的这种小把戏。我根本没有意识到它可以对操作系统造成任何实质性的破坏。然后我 Google 了一下来看看这个漏洞是不是像你描述的那样严重。接着我从 Google 出来的页面里复制了几条可能会造成破坏的命令去执行,因为我觉得我们的框架或者防火墙会去阻止它的。最后我发现了 rm -rf *这条命令,当我意识到坏事了的时候,一切都晚了,我吓坏了。几分钟后,我鼓起勇气跟同事说了刚刚发生的事情,问他能不能帮我一起处理一下。我真的很抱歉,我已经从中吸取了教训,以后我会在我操作之前多问问同事。这也是我为什么准备来做这次会谈,我希望其他的初级工程师也可以从我的事故中学到教训,不要再犯同样的错误。

@Dave:

非常感谢张三真诚地跟我们分享他的事故。

@Dave 问 “工程师老甲”:

老甲,你可以从你的角度来聊聊事情的经过以及你的第一反应是什么吗?

@老甲:

好的。

我们不该在这件事上把他单独推出来。实话实说,当我问他能不能帮忙管理一下 bug 赏金计划的时候,他立马就答应了。但老实说,我们每个人在年轻的时候接受一份任务的时候都是很开心的。所以我想保护他,我至少要承担 50% 的责任。

回到那个问题:当他跑来跟我说那个远程代码执行的漏洞的时候,我们立即明确了这是一个安全事故并且要重视起来。接着我排查了一下我们的系统,发现我们的 web 应用已经不工作了。然后我 ssh 到我们的服务器,发现整个应用的目录都空了,数据全被删除了。因为我们已经很久没有给这个系统导入备份了,所以我们这次导入要花很长时间。然后我让同事去看看备份,我来回复你邮件,告诉你我们对你提的漏洞很重视,已经着手在处理了。

我同事惊讶地发现备份是几周前的。我们接着一起看了一下系统和备份,一开始感觉是惊讶,接着是绝望。然后我们又看了 cronjob 的配置,发现是配错了,本来应该是每 3 天跑一次,结果配置成了每3个月跑一次。震惊!最后我们丢了几个星期的数据。不幸中的万幸是,这是我们不太重要的业务。我们在那天学到了很多,我们已经在内部讨论如何避免这种过失不再发生。

我们是一个有超过 400 名员工的公司,所以想把我们的业务拿去测试它的安全性。我们在论坛里听说了 bug 赏金计划,当时觉得这个计划比我们自己组建一支安全队伍要更好,所以就参与了这个计划。但是现在我们觉得,自己不组建一支安全队伍可能还是不行,至少得有人熟悉这方面的问题。因为上面的那个事故,我们会在内部再讨论一下这个问题。

不掩饰这个故障对我来说很重要,这也是为什么我们可以和你开诚布公地讨论这个问题。

另外,我们的开发团队也确认并修复了这个 bug,我们网站现在更加安全了。我要感谢你促成了这次访谈,我相信其他人会从我们的事故中学到一些东西。

@Dave

我从心底里感谢你们两位开诚布公地和我讨论这个问题。如果有什么可以帮你的,请随时给我发邮件。希望你和你的家人快乐。

最后感想

我曾幻想着那个故障没有发生。但是,我们都是普通人,因为我们想帮上忙,所以难免会犯重大的错。我们每个人都曾在某个节点犯了这样那样地错。只要我们从中学到了东西,我们就会一直变得更好。

希望这两位工程师的分享,可以帮助其他人预防此类错误。

责任编辑:xj

原文标题:我在服务器上执行了 rm -rf *

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90883
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16225

原文标题:我在服务器上执行了 rm -rf *

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    服务器数据恢复—SUN RAID6存储LUN重复映射致数据损坏与恢复案例

    服务器对这个卷进行初始化的操作,原solaris系统的磁盘报错,重启服务器后这个卷已经无法挂载。 服务器管理员寻求sun原厂工程师的帮助。sun工程师检测后
    的头像 发表于 09-25 12:01 187次阅读

    如何使用 CyCloneTCP 和 FreeRTOS NuMaker IoT 板构建 Web 服务器

    使用 CyCloneTCP 和 FreeRTOS NuMaker IoT 板构建 Web 服务器
    发表于 09-04 08:10

    如何使用 Mbed OS NuMaker IoT 板构建 Web 服务器

    使用 Mbed OS NuMaker IoT 板构建 Web 服务器
    发表于 09-04 06:33

    服务器数据恢复—服务器的卷被误删数据如何恢复?

    工作人员不慎将一台服务器的卷误删除,服务器上有一组raid5阵列。需要恢复误删除的数据。
    的头像 发表于 08-14 11:33 741次阅读
    <b class='flag-5'>服务器</b>数据恢复—<b class='flag-5'>服务器</b><b class='flag-5'>上</b>的卷被误删数据如何恢复?

    搭建并优化树莓派《的世界》服务器:全面指南!

    使用树莓派托管《的世界》服务器具有诸多优势,尤其适合那些希望搭建小型、经济高效且节能的服务器的用户。无需额外硬件:无需强大的计算机或昂贵的服务器硬件即可运行《
    的头像 发表于 08-11 16:08 1058次阅读
    搭建并优化树莓派《<b class='flag-5'>我</b>的世界》<b class='flag-5'>服务器</b>:全面指南!

    怎样阿里ECS服务器架设自己的OpenVPN服务器

    需要自己架设服务器,让现场的IR615路由连接自己的服务器。能通过自己的服务器进行数据采集和远程运维。
    发表于 08-06 06:56

    服务器数据恢复—Linux系统服务器崩溃的数据恢复案例

    服务器数据恢复环境: linux操作系统服务器中有一组由4块SAS接口硬盘组建的raid5阵列。 服务器故障: 服务器工作过程中突然崩溃。管理员将
    的头像 发表于 05-20 15:46 550次阅读

    国外bgp服务器多少钱?# 服务器

    服务器
    jf_57681485
    发布于 :2025年04月24日 14:19:00

    新加坡服务器延迟大吗?真相在这里#新加坡服务器 #服务器

    服务器
    jf_57681485
    发布于 :2025年04月18日 13:48:50

    NTP校时服务器 时钟同步服务器

    服务器
    jf_75250307
    发布于 :2025年03月19日 20:56:34

    依托raksmart服务器多种系统本地部署deepseek注意事项

    RAKsmart服务器本地部署DeepSeek时,需根据不同的操作系统和环境做好全面适配。以下是关键注意事项及分步指南,主机推荐小编为您整理发布依托raksmart服务器
    的头像 发表于 03-19 11:25 726次阅读

    服务器数据恢复—linux操作系统云服务器数据恢复案例

    某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql
    的头像 发表于 02-10 18:00 617次阅读
    <b class='flag-5'>服务器</b>数据恢复—linux操作系统云<b class='flag-5'>服务器</b>数据恢复案例

    服务器数据恢复—Zfs文件系统服务器数据恢复案例

    服务器数据恢复环境&故障: 一台zfs文件系统的服务器,管理员误操作删除了服务器的数据。
    的头像 发表于 01-16 17:27 631次阅读

    如何在Linux系统设置站群服务器IP地址

    Linux系统设置站群服务器的IP地址,可以通过以下步骤进行,主机推荐小编为您整理发布如何在Linux系统设置站群服务器IP地址。
    的头像 发表于 12-11 10:05 863次阅读