写点什么

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

  • 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:121056

评论

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

程序员的晚餐 | 5 月 19 日 蒜香鸡腿,味道令人惊讶

清远

美食

任何事物当中的百分之九十都是垃圾?

池建强

互联网 信息噪声

编辑距离的计算

zikcheng

算法 编辑距离

Flink 与 Hive 的磨合期

Apache Flink

大数据 flink 实时计算

识别代码中的坏味道(四)

Page

敏捷开发 面向对象 重构 CleanCode 代码坏味道

都在这儿了!5月 Flink 社区发版、更新汇总

Apache Flink

大数据 flink 流计算 实时计算

MySQL实战四十五讲基础篇总结(二)

一个有志气的DB

MySQL 日志

物联网技术栈之通信技术

老任物联网杂谈

物联网 通信

MySQL实战四十五讲基础篇总结(一)

一个有志气的DB

MySQL

Java开发架构篇:初识领域驱动设计DDD落地

小傅哥

设计模式 领域驱动设计 DDD 小傅哥 架构设计

如何讲好故事

Bob Jiang

单例模式——独一无二的对象

大头星

Java 面试 设计模式 单例模式

使用gitlab ci构建IOS包并发送通知消息到企业微信

Zoe

ios ci gitlab

你是不是对副业有什么误解?

一尘观世界

程序员 副业 认知提升 思维方式 格局

SQL 找出 100 以内的质数

zero

sql MySQ

工信部报告显示:电话越打越少 、短信越发越多……这是怎么回事?

赵新龙

短信 工信部

如何成为一名具备产品思维的软件工程师?

顾强

产品 开发者 职场

回顾 | Apache Flink Meetup 杭州站圆满结束(附PPT下载)

Apache Flink

大数据 flink 流计算 实时计算

霸榜 GitHub,一款开源的 Linux 神器!

GitHubDaily

GitHub Linux 编程 开发者工具 计算机网络

视频 | 5款免费翻译软件实测对比,从花花董花花的被删微博到北京话“你丫给我站住了”都能翻译

赵新龙

翻译

一款Python实用神器,5 行 Python 代码 实现一键批量扣图

狂师

Python 学习 效率工具 开发者工具 开发

Flink Weekly | 每周社区动态更新-20200513

Apache Flink

大数据 flink 实时计算

【玩转写作社区】Markdown & 快捷键详解

InfoQ写作社区官方

写作平台 markdown 编辑器 快捷键 玩转写作平台

比特币为什么值两万亿?

Haiyung

比特币

为什么window.open只是打开了一个空白页

阡陌r

Java 踩坑 网络协议

MySQL实战四十五讲基础篇总结(三)

一个有志气的DB

MySQL mysql事务

【教你如何写作】参与创作,领取 InfoQ 编辑训练营内训课程

InfoQ写作社区官方

写作平台 投稿 热门活动

亲密爱人

Janenesome

爱情

有趣的解谜:Python Challenge

封不羁

Python

spring事务原理

年轮

spring 源码分析

干货分享:分布式场景之刚性事务-2PC详解

奈学教育

分布式

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