从微盟被删库谈企业安全管理

做者:易阳
治学教育信息科技 CTO&联合创始人

早上爆出一条企业安全的大新闻,微盟被删库了.......你们先来看看新闻: 程序员

很震惊!很震撼!吓得我赶忙召集全公司服务端小伙伴Review了咱们全部的安所有署!!!数据库

完全检查完以后,我放心了,咱们即使被删库也能够快速恢复! segmentfault

解决完隐忧以后,做为一个在业内安全大厂360工做五年的伪安全人士,今天跟广大作技术的小伙伴聊聊企业安全那点事:安全


01 事件复盘

公告透露出两个重大信息!咱们来看看:服务器

第一,恢复时间长,公告是这么说的:「和您同样,咱们度过了漫长的36小时,咱们预计这次故障还会持续一段」。架构

那么为何须要这么久的时间来恢复?并发

以个人经验推测,必定是生产环境的主备数据库都被删库了!而且大几率应该是作了rm -rf类型的极端操做。不用怀疑就是传说中的删库跑路!固然影响是产生了,人确定跑不了!运维

你们可能要问了,那数据库恢复下不就行了吗?没这么简单!工具

第二,更重要的信息!你们看看这句:「犯罪嫌疑人乃微盟研发中心运维部核心工做人员贺某」。原来是内部人员!网站

那为何一个普通运维人员有如此大能量?

很简单,很多互联网的运维人员基本都会有root权限。基本就是公司业务上帝级别的存在。说实话,我作管理这么多年,对运维岗位一直是当心翼翼。固然是大厂能够作的更完善,权限分层分级,就很难出现这种状况。

现实是不少中小公司,运维就那么几我的,甚至一我的。


02 防删库指南

除了微盟此次安全事故,关于删库跑路,一直是互联网的黑传说。

IT界有一个老梗,某论坛的数据库管理员抱怨本身老板一直虐待他,结果他一气之下就删库跑路了……

再假设一种状况,若是在服务器维护的时候不当心执行了 rm -rf 命令……如今整台服务器被删光了肿么办???

对于中小公司来讲,想把权限作完善作复杂,基本没有可能!想依赖运维人员自己素质和心理状态,那就是靠天吃饭!

中小公司防删库真正的答案是:作好备份!作好最小程度权限管理!**

1. 数据库备份很重要

先来看看一个标准的数据库架构图:

从上图中你们能够分析一下关键点:

主库:对应线上实时的业务,若是出现故障,整个系统和网站的访问将受到影响。从库:通常用于查询和主从切换之用。备份数据:备份方式经常使用全量备份和增量备份的方式。备份的策略包括跨机器、跨机房、跨区备份。数据是企业第一辈子产力,数据备份尤为重要。

存在数据备份问题的公司也有2个层次。最低层次的,有些公司压根就没有作备份,那出问题必定很麻烦,只能从磁盘作恢复,这个过程很是漫长!

不作数据备份的公司,长点心吧!特别是CTO或者技术负责人,淘汰的就是您这种呐!

高点层次的,有备份但只有全量备份没有增量备份。全量备份固然不能每天作,每一个公司有本身的策略,多是一个月一次也多是一周一次。若是是这种状况,那这中间的一个月或者一周的备份数据还得从磁盘作恢复,同样很慢!

微盟虽然不是大厂,也算有必定规模了,备份确定是作了。根据公告的信息,恢复须要这么久,我推断要么是全量是好久前作的,增量数据丢失了,要么是删除者作了极端操做都给干掉了!

2. 作好最小程度权限管理

BAT级别的权限管理,咱就不谈了,其实咱也不懂。懂了也没资源作。我谈谈中小厂怎么作好最小程度权限管理。 

数据库操做权限和备份权限分离

DBA负责平常主从库的管理和维护。运维负责备份数据的保存。采用全量和增量备份的方式。若是DBA删除主库,主从同步,则重库数据被删除。业务系统受到影响,运维能立刻收到业务报警,运维同事接管数据库,进行备份恢复。

权限申请、权限审批和操做执行分离

开发人员作数据库表的删除或修改操做须要申请。技术主管或负责人审批,生成审批密码。开发人员根据密码登陆特定服务器,进行相关的操做。

增长隔离层

关掉DBA操做数据库终端权限,经过yearning等审计平台执行数据库命令,高风险命令直接拒绝执行,并发出报警。技术总监或CTO确认没问题以后,才能执行。

以上三点,用最小资源去作,彻底可行。若是还作不到,那就采用云解决方案,基本上用好云的方案,问题不大。

技术管理这件事,不能彻底依赖人。看公告怎么说的:「因我的工做、生活等缘由」。具体什么缘由咱也不知道,反正人是不可控的!技术管理要有抓手!合理结合公司资源作一些限制是颇有必要的!


03 关于云方案

先说下一点我的经历:

虽然没经历过删库跑路的状况,可是身边的程序员update语句不加where条件的状况发生过2次。

第一次,所在的公司是自建机房,由DBA团队管理数据库集群。某程序员把全部帐户的积分字段改了,当时直接吓尿了。

立即中止帐户操做的全部业务,DBA全量回复0点的数据,再找到binlog的update语句的执行点,重放binlog。检查数据恢复正常,重启开始帐户相关的业务。耗时三个小时。

第二次,所在的公司使用云服务,数据库使用RDS。某程序员把跟进记录表的用户留言字段所有更改了,致使主从延时报警,销售人员没办法看用户留言的真实数据。

事情发生后,中止该表的业务,DBA经过云服务的工具直接恢复到发生问题前1秒的数据,从发现问题到解决问题也就是5分钟。

以上两个案例与删库跑路相似,都是数据丢失或数据污染以后的解决办法。可是处理起来,耗时不一样。关键点在备份上!

给个建议!自建机房的方式须要有完备的dba和运维团队,对技术要求高,中小厂商没能力自建机房的,云方案仍是要用起来。另外要关注云提供厂商提供的全套解决方案,千万别只把云方案当服务器使用。

微盟此次事故,我估计就没有采用云数据库,而是把云方案当服务器在用。云方案真正的价值在于容灾、快速扩容、紧急救火。这些能力中小公司要创建起来,不是说不可能而是难度极大。业务高速跑起来,压根没时间没资源去弄!

若是微盟用的是云数据库,云数据库通常都会保留binlog日志,先全量恢复再重放增量。这个恢复速度很是快,不会须要36小时还没弄完,产生这么大损失!

固然微盟也是受害者,说实话中国互联网发展太快,每每即使很努力也无法在不少方面考虑周全。好的是,有了云方案让一些中小公司的确会更高速的发展。看看公告:云厂商也在积极的帮助微盟作数据恢复!


写在最后的话:

技术人必定是保护用户数据的最后防线。最近几年,因为技术人员无心或者有意形成的事故不可胜数。若是代码对世界的影响不大,那么这也许就不成问题。

打个比方,若是你写了一个危害几我的的代码,影响是极为有限的。可是若是你在拥有几亿用户的平台上作一样的事情,结果必定是惨烈的!

技术人必定要遵照职业道德底线,同时关注IT安全,尤为是技术管理者。但愿咱们一块儿让技术世界更安全更精彩!


做者简介:

易洋,治学教育信息科技 CTO&联合创始人。

前腾讯 QQGAME 高级工程师,前人人网游戏大厅技术经理,前 360 技术总监,前哒哒技术 VP,现担任土豆教育 CTO & 联创。在游戏领域、直播领域、安全领域都有深厚的积累。带领过超过 100 人的团队,有较强的团队管理能力。同时对产品和运营有必定的操盘能力。

图片描述

相关文章
相关标签/搜索