阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

微盟删库事件的深度复盘报告

  • 2020-04-22
  • 本文字数:4151 字

    阅读完需:约 14 分钟

微盟删库事件的深度复盘报告

引言

人有“三不朽”:立德、立功、 立言。人无德不立,德才兼备,方堪大任,致良知。

本次故障及事件简要回顾

  • 2020 年 2 月 23 日,18:56 分,微盟研发中心运维部核心运维人员通过 VPN 登入服务器,并对线上生产环境进行了恶意破坏;

  • 2 月 23 日 19 时,微盟内部系统监控报警,出现大面积服务集群无法响应;

  • 2 月 25 日 7 时,生产环境和数据部分恢复,预计 25 日晚 24 点完成生产环境修复,新用户恢复业务。老用户预计到 2 月 28 日晚上才能恢复。


微盟事后对恶意破坏生产环境的嫌疑人进行追踪分析,成功定位到嫌疑人登录账号及 IP 地址,并于 24 日向宝山公安局报案。目前犯罪嫌疑人已被宝山区公安局刑事拘留,承认了犯罪事实。

事件影响

首先最直接的是经济上惨痛损失。本次事件对微盟自身及行业都有较大影响。据相关统计,截至 2020 年 2 月 25 日 10 点整,微盟集团报 5.620 港元,跌幅 5.23%。2 月 24 日至 2 月 25 日 10 点整,微盟集团市值约蒸发 12.53 亿港元,同时带给微盟客户的损失不可估量。


对于微盟的老用户,将面临超过 5 天的系统故障。对疫情期间本来正在经受门店歇业重创的商家来说,则是双重致命打击,真可谓屋漏又逢连阴雨。


其次,更深层次的是微盟的社会公信力受到较大影响。此事件是典型的运维安全侧事件倒灌公司经营危机,此事件或将极大影响微盟的社会形象和商业生态。难免会让公众质疑其管理、服务和技术。


再者,此次事件对 IT 圈,对运维同行,对远程办公等等,都将是一次深深的警示教育,让人深思,深刻警醒,也因此对运维发展,IT 与企业业务关系都将产生深远影响。

网友说法

就在前天晚上的晚餐时间,微盟出了一件大事,一个心情剧烈波动的运维同学删除了数据库,哗然一片,幸运的是,在微盟和腾讯云的努力下,相关的数据都在有条不紊的恢复当中。


回溯这两年的删库事件,可以说层出不穷,有误删的,有介质损坏的,有人为的,单从这件事来说,非常严重,始作俑者被拘留,企业受到很大的损失。所以怎么吸取教训,怎么避免,下面通过网友对微盟事件的一言一语,面面俱到,管中窥豹,可见一斑,以部分预见事件全貌。


高手总在网友间,他们懂礼仪,知法律,通技术,会管理,下面就来看看各位网友怎么评议微盟事件:



大咖观点一:需要什么样的权限来约束运维?

很多人纠结于当今远程办公场景下的 VPN 的权限,此权限不是彼权限,今天我们谈的是有关危险行为限制方面的权限,而不是运维职位所需要的履职权限。


其实人的行为比预想中的更加危险,尤其对于要害职位更甚,而这个危险一般来自于


不知道这个行为有多么危险;


会故意的执行这个明明知道非常危险的一个行为,所以对于权限的控制首先要从对危险行为限制开始。


一直以来,笔者始终觉得在生产线环境下通过命令的方式是一种非常不好的习惯,在领导前面炫技的除外。


在我看来,一个公司的运维的技术能力强弱、安全管控体系是否完善完全可以通过运维人员的具体操作和权限控制来看出一二,完全人肉的敲命令显得运维能力和安全管控体系越弱,自动化平台化进行运维能力的输出,则运维能力和安全管控体系越强。


rm、mv、alias 等危险命令应受到严格的制约;应使用尽量细化的权限认证;禁止直接使用 root 用户,这些耳熟能详的其实都是运维的门规,在日常运维中属于必备的 checklist。可事实真的如此吗?如何通过这些有效的手段来限制这些危险的行为?


一个良好的运维输出能力应该是这样的,人管代码,代码管机器,而不是人管机器。大家可能还记得 DevOps 的宗旨,提高组织级的效率和质量,放在这里,何尝不是一种很好的解决办法,危险的行为通过机器来执行。从信息审计的角度来看,每一次的现网环境的改动,也是一点变更,也是一次环境的发布,你可以追踪,可以回溯,可以记录,可以审计。


我们又回到阿西莫夫.机器人三定律,定律三:除非违背第一及第二定律,机器人必须保护自己。当一些危险的行为发生时,作为系统的使用者和管理者理应进行防范,除了 checklist 以外,还有更好的方式吗?那就是分而治之,操作人发起操作请求,审核人审核操作请求,机器来执行请求。


过于放大权限的控制,其实也是不对的,这属于一种开倒车,并不是所有的动作都是具备危险行为的动作。因为故障和灾难不同,除了人为的,老天有时候也会跟你作对,介质损坏,设备故障,病毒感染都会让你的权限管控失去作用,该发生的故障都会不请自来,你的 checklist、运维流程和权限系统将会毫无作用,所以需要什么样的权限来约束运维,又不会增加太多的人力物力财力,无非三点。(一)框定极具危险行为的动作;(二)平台化自动化的运维方式;(三)线上复核的流程。

大咖观点二:备份该怎么做?

对于观点一中提到的,当你的 checklist 和权限控制都无法 hold 住的时候,你需要的是一个具备实操的备份和恢复的手段。


通常来说,在没有热备份的情况下执行危险操作,不亚于开着 200 迈的跑车不系安全带,活着是你幸运。而在此次事故中,我们发现恢复时间是最亮的电,不亚于顺丰删库事件中的恢复时间,十分的漫长。


经过仔细分析,除了始作俑者同时删除了主备两套库,只保留了冷备份,这也是不幸中的万幸,备份大家都有,那备份到底行不行?


备份时间的问题,全量和增量时间会影响你备份数据的数据失真,打个比方,你备份数据恢复到现网环境,在这时间段内,你对数据有一些增删改,那么你备份的数据就存在失真,所以你需要热备份,且还需要备份所有 DDL 和 DML 语句的记录。


恢复的验证,很多公司执行备份策略数年中,从没进行过恢复测试,其实真正有重大故障或灾难来临时,你会发现,各种问题让你恢复失败,比如介质问题、数据问题,还有操作问题。

反思和总结

工程师的职业道德

首先运维以这种形象走向社会的前台中央,为同行所不齿,常言道,出来混是要还的!正如一位行业前辈专家所言:删数据是犯法的行为,践踏了技术人员的底线,应该严惩!


在谈工程师道德操守前,理一下道德、制度、法律的关系,准确说靠道德和职业素养约束自身,靠制度规避风险,靠法律惩罚违规。其实所有风险完全靠技术来解决,成本将会非常的高昂,只有通过制度、技术,企业文化,价值观各个方面来预防和警戒。


对于管理者来说,要使员工有所成就,意味着要把人看成是一种有着特殊的生理与心理特点、能力、缺陷以及拥有不同行为模式的有机样本,还意味着要把人力资源看成是活生生的人而不是物。


对于工程师来说,需要的不仅仅的操守,更需要的是对法律和职业的敬畏之心,人生在世,要对自己负责,对家人负责,对社会负责。

云厂商的选择

云计算引爆了互联网的发展,越来越多的企业选择了上云,同样可以预见,云计算的明天就像今天的电力一样,完全成为了信息经济社会的基础资源。


因此,云厂商的选择格外重要。对于微盟来说,事故发生后,腾讯云技术团队就第一时间与微盟对齐,研究制定修复方案,协助微盟将损失降到最低。


删库事件是不幸的,但选择腾讯云又是幸运的,不难想象,如果没有腾讯云的协助,后果可以想象。

法律法规普及

根据《最高人民法院、最高人民检察院关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释》第四条:


破坏计算机信息系统功能、数据或者应用程序,具有下列情形之一的,应当认定为刑法第二百八十六条第一款和第二款规定的“后果严重”:


(一)造成十台以上计算机信息系统的主要软件或者硬件不能正常运行的;


(二)对二十台以上计算机信息系统中存储、处理或者传输的数据进行删除、修改、增加操作的;


(三)违法所得五千元以上或者造成经济损失一万元以上的;


(四)造成为一百台以上计算机信息系统提供域名解析、身份认证、计费等基础服务或者为一万以上用户提供服务的计算机信息系统不能正常运行累计一小时以上的;


(五)造成其他严重后果的。


实施前款规定行为,具有下列情形之一的,应当认定为破坏计算机信息系统“后果特别严重”:


(一)数量或者数额达到前款第(一)项至第(三)项规定标准五倍以上的;


(二)造成为五百台以上计算机信息系统提供域名解析、身份认证、计费等基础服务或者为五万以上用户提供服务的计算机信息系统不能正常运行累计一小时以上的;


(三)破坏国家机关或者金融、电信、交通、教育、医疗、能源等领域提供公共服务的计算机信息系统的功能、数据或者应用程序,致使生产、生活受到严重影响或者造成恶劣社会影响的;


(四)造成其他特别严重后果的。


根据《中华人民共和国网络安全法》第二十一条:国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改:


(一)制定内部安全管理制度和操作规程,确定网络安全负责人,落实网络安全保护责任;(二)采取防范计算机病毒和网络攻击、网络侵入等危害网络安全行为的技术措施;(三)采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月;(四)采取数据分类、重要数据备份和加密等措施;(五)法律、行政法规规定的其他义务。

安全意识

安全意识培训不能少,安全不仅仅是安全技术的责任,更是企业中每一个人的责任,按照网络安全法,谁运营谁负责,因此企业法人更需要义无反顾的承担运营安全第一人的角色。


安全运维是一个立体工程,全员工程,尽可能降低每个环节的风险,才能降低整体的风险面!单一防御面一失万无,没有 100%的安全,但安全意识是万无一失的核心基因。

文化底蕴思考

中国文化,源远流长,讲究仁义,立德为先。以德立本,无本不立。本立而道生,道生则万达,正如古训:人有“三不朽”,立德、立功、 立言。


孔子所谓的仁,其实就是佛家讲的大彻大悟、明心见性后的境界,一旦大彻大悟后,就会明白这个世界根本无我无他,万物本是一体的,整个世界,整个宇宙都是我们自己。


王阳明曾说过,“无善无恶心之体,有善有恶意之动,知善知恶是良知,为善去恶是格物。”


结语


古人说:“大学之道,在明明德,在亲民,在止于至善。”核心价值观,其实就是一种德,既是个人的德,也是一种大德,就是国家的德、社会的德。国无德不兴,人无德不立。


服人者,以德服为上、以才服为中、以力服为下。作为有技术特色职业运维同行,希望大家共勉,唯有德才兼备,方堪国家大任,致大道良知。


本文转载自技术琐话公众号。


原文链接:https://mp.weixin.qq.com/s/s3vTxerygn1ABS4dzlES1Q


2020-04-22 17:12758

评论

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

模块一作业

闲人Eric

架构实战营

思路一转,春暖花开!动动手指,这段程序性能又双叒提升2s~15s

靠谱的程序员

MySQL MyBatisPlus Mybatis-Plus

亚马逊 CTO Werner Vogels:2023 年及未来五大技术趋势预测

亚马逊云科技 (Amazon Web Services)

人工智能 大数据 亚马逊云科技

迎战大厂!“金九银十”和秋招通过率达95%的Java面试要点集锦

钟奕礼

Java 程序员 java面试 java编程

MySQL锁,锁的到底是什么?

Java永远的神

MySQL 数据库 程序员 面试 后端

面向场景级的业务资产沉淀和开放

原力在线

架构 DDD 场景 业务资产

3月寒窗!啃透美团保姆级分布式进阶技术手册,4月终入美团定L8

程序知音

Java 分布式 java架构 后端技术

AngularJS进阶(十五)Cookie ‘data‘ possibly not set or overflowed because it was too large

No Silver Bullet

Cookie AngularJS 12月月更

架构实战营模块1第2课 - 如何画出优秀的架构图

净意

极客时间运维进阶训练营第五周作业

老曹

Linux 定时器介绍

eng八戒

c 定时器 Linux Kenel C++

AngularJS进阶(十六)脏值检查及语音识别集成

No Silver Bullet

语音识别 AngularJS 12月月更 脏值检查

架构实战-模块1作业

mm

架构实战营 10期

防治“虚假种草”,小红书技术团队干了这几件大事

小红书技术REDtech

关于Linux中作业调度 crond 和 systemd.timer 使用场景

山河已无恙

Linux Kenel 12月月更

100页6W字的Java面试题,去过大厂面试的程序员都说被问到过

钟奕礼

Java 程序员 java面试 java编程

程序员:平安Java岗面试耗尽了我毕生所学,想了想,还是去阿里吧

钟奕礼

Java 程序员 java面试 java编程

“算法考核没过,老板找我聊了3个小时”:离职程序员重刷数学题

钟奕礼

Java 程序员 java面试 java编程

Apache NiFi + MatrixDB 20行代码实现数据实时入库!

YMatrix 超融合数据库

三一重工 超融合数据库 YMatrix apachenifi nifi

使用CSS实现图片的磨砂玻璃效果

山河已无恙

12月月更

8年程序员年初被迫毕业,前后面试30家公司,如今终于拿到Offer!

程序员小毕

程序员 面试 程序人生 后端 架构师

cmake 入门笔记

eng八戒

c makefile 工程管理 cmake C++

AngularJS进阶(十四)AngularJS路由问题分析

No Silver Bullet

路由 AngularJS 12月月更

面对当下最热的多模态,为什么这些业界和学界专家说“不必追热点”

小红书技术REDtech

下次面试再一上来就问我线程有哪些状态,我上去就是给他一 jio

钟奕礼

Java 程序员 java面试 java编程

关于K8s中资源配置范围管理(LimitRange)的一些笔记

山河已无恙

12月月更

刨析一下C++构造析构函数能不能声明为虚函数的背后机理?

eng八戒

继承 纯虚函数 C++

C语言怎么给函数添加形参的默认值

eng八戒

c 函数 参数默认值

信号量的无序竞争和有序竞争

eng八戒

c Linux Kenel 信号量 C++

看完这篇,还不懂JAVA内存模型(JMM)算我输

JAVA旭阳

Java 并发

Nginx动静分离、缓存配置、性能调优、集群配置

C++后台开发

nginx 中间件 性能调优 后端开发 C++开发

微盟删库事件的深度复盘报告_文化 & 方法_技术琐话_InfoQ精选文章