删库跑路,这一几乎每个程序员都懂得一个都市传说,让sudo rm -rf成了大佬蒙骗萌新的高频词汇,甚至还有极致快乐版的sudo dd if =/dev/zreo of=/。
此前,也有过一起删库跑路事件,某科技公司技术总监,因离职不满,便“删除数据库索引和部分表”,导致SaaS服务瘫痪。当然,结局就是被判处有期徒刑两年半,缓刑三年。
然而,最近又有一名勇士,拿起了这把双刃的“屠刀”,超过300万商户被影响,市值瞬间蒸发10个亿!
删库跑路并没有想象中潇洒
据了解,事件的主角便是在香港上市的国内领先微信公众平台开发服务商——微盟。从公开信息上显示,这家公司提供微信商城、餐饮O2O、智慧城市等营销解决方案,而沃尔玛、百草味、洽洽、森马等耳熟能详的品牌也是其客户。
从微盟发出的公告来看,2月23日19点微盟发现出现故障,截止到2月25日7点尚未完全修复,而老用户数据的修复预计要到2月28日晚上24点前完成。
值得注意的是,犯罪嫌疑人已通过登录账号和IP地址被追查到,并且并非误操作,而是故意删库。
据微盟公告与业内人士观点,乐观点的话商家的商品、订单、会员、营销、店铺装修、数据分析等模块的数据,在28日24时前,有可能恢复。
当然,删库跑路的后果也是非常严重的,据某位使用该平台的商户表示,其一半业务成交量都经由微盟进行。而因处于疫情期间,线上销量极大,在这个节骨眼上,顾客均无法正常下单。微博上,也有商家倾诉自己的无奈。
官方网站显示,微盟成立于2013年4月,现有员工超3200人,渠道代理商超1600家,注册商户超300万。
远程“云”办公影响精神状态?
一场突如其来的新冠状肺炎与春节,完全改变了我们的生活和办公状态,许多公司采取了在家远程办公。曾经我们都以为有了电脑和足够的零食就能“宅到长毛”,但很多人都发现自己原来是个“假宅”。
当然,从春节到现在,近乎一个月时间的“禁闭”,的确似乎太难熬了。在此方面,微博还进一步就远程办公与员工精神状态问题的讨论。
不用早起、不用化妆、可坐可躺可撸猫……这是一些网友在家办公的状态,而部分网友也表示,自己从996升级到了007,也有人哀怨道远程办公一周比上班一个月还累。
有些人享受远程办公的自由,也有人不习惯过于“自闭”的禁闭式生活,还有媒体称远程办公将是未来的主要工作模式,但是“远程办公表示并不背着个锅”。
这几日,许多单位也陆续复工,相信在严格的防护下,员工的精神状态也会有一定的改善。
从技术角度看这件事
有大神分析,对于老商家的来说,商品、订单、会员、营销、店铺装修、数据分析等模块的数据量很大,很难恢复;而对于新商家来说,因为微盟从本地把代码和数据结构重新搭建新的数据库,新商家注册开新店,消费者进店访问、购买,产生新的数据,是有可能实现的。
从这件事来看,起初微盟对外宣布的是腾讯云的问题,而后的公告中值得注意的是,“核心”运维遭到“严重”破坏,作为非常了解最底层、最核心数据库的核心岗位人员,删线上数据库,估计连备份数据都一口气删除了,不然,微盟不会拖了几十个小时还啥都没恢复回来。
另外,通过这件事还反映了一个问题,这位只有2年运维经验的员工,在运维圈基本上算是初级运维,但在微盟的公告中竟然是“核心运维”,而且一次删库的破坏力如此巨大。因此,数据库镜像都没起作用。通过种种迹象表明,微盟的运维权限过高且管控不足,另外这种高危操作居然没有审批机制,备份数据竟然也失效了。
据知乎某位运维大神表示,以MySQL为例,一天的binlog(数据变更日志)数据都是非常大的,另外备份选择的通常是全库冷备+binlog热备的形式,甚至还包括多副本保存、异地保存、线上线下保存、文件加密权限隔离等方式,但99%的中小企业都不会做这些看起来相当麻烦的事情。
从法律角度看这件事
此前这种案例也并非毫无先例,2013年7月戚某在昆明市呈贡区速客网吧因与网管发生矛盾,便非法入侵速客网吧收费服务器,并将其管理系统软件数据库文件删除,致使网吧营业数据丢失,并导致380余台客户机超过5小时停机,法院判处其有期徒刑二年,缓刑二年。
而在2018年6月,某科技公司技术总监被老板宓某某告知离职,虽然后面也已提交了辞职报告,但仍然不爽,一气之下登录了公司在阿里云上的数据库,为了不是很明显,他选择删除了数据库上的一些关键索引和部分表格,导致服务CPU飙升、数据库查询缓慢、接口报错、个别服务直接瘫痪,期间造成直接经济损失 225 万元,故障处理人力成本 7.12 万元最终因邱某自愿认罪并赔偿了公司 8 万元,杭州市余杭区人民法院酌情予以从轻处罚,并对被告人邱某判处有期徒刑二年六个月,缓刑三年。
所以删库跑路这件事,不仅要赔偿相关损失以外,还要承担相关法律责任。
而另外有法律专家分析,但对微盟公司而言,除了可能要赔偿用户损失外,(视情况)可能自己还要承担法律责任。没错,自己是受害人,仍然有可能会被二次伤害。
原因在于我国《网络安全法》第 21 条规定:国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改:(一)制定内部安全管理制度和操作规程,确定网络安全负责人,落实网络安全保护责任;(二)采取防范计算机病毒和网络攻击、网络侵入等危害网络安全行为的技术措施;(三)采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月;(四)采取数据分类、重要数据备份和加密等措施;(五)法律、行政法规规定的其他义务。
即,网络运营者必须对其数据库进行定级等保,采取必要的措施进行保护。如果数据库没有任何保护措施发生问题,就不能只怪犯罪嫌疑人了,只能自己再承受相关行政处罚了。
如何正确使用rm -rf
其实rm -rf命令本身并不是一个“坏东西”,它是删除文件夹及其内容的最快方法之一。但一个标点错误就可能会导致不可恢复的系统损坏。与rm命令选项是:
rm 命令用于删除文件。
rm -r命令以递归方式删除文件夹,甚至是空文件夹。
rm -f命令在不询问的情况下删除“只读文件”。
rm -rf /:强制删除根目录中的所有内容。
rm -rf *:强制删除当前目录/工作目录中的所有内容
rm -rf. :强制删除当前文件夹和子文件夹。
rm -rf ~将删除主文件夹中的所有文件,
rm -rf .*将删除所有配置文件。
因此,提醒大家在执行rm -rf要格外小心。为了防止意外删除文件,最佳实践是在“.bashrc”文件中创建'rm'命令别名为'rm -i',它会要求确认每次删除。
万一不小心删库了怎么办?
其实误操作并不少见,某个网友就表示一次在测试上线之前的外网操作中,便不小心把新库还原到正式库了,雪上加霜的便是日志模式居然是简单,该网友感叹“屋漏偏逢连夜雨”。在向领导汇报后,毫无退路之际,网友突然想到阿里云有快照功能,联系阿里云工程师并利用云盘恢复镜像,经过10小时的折腾,总算解决了问题。
对于删库这个问题,网络技术大佬认为权限问题永远是大问题,做好权限回收,开发数据库和线上数据库分离,线上数据库管理权限(一般指修改表结构权限与删表权限)禁止回收,也不提供给业务直接用。
另外,公司管理上,最好有自己的 DB 运维产品,线上数据库只允许查,改的话要有审批流程。
值得注意的是,在进行清理数据库之前一定要检查进程,是否存在数据库进程,如果存在则宁愿不搞也不要深夜搞。清理数据库一定要梳理相关具体执行步骤和命令,并详细记录反馈,按照流程进行操作,宁愿多租几天机房也不要丢掉数据。
最后,在备份方面,也应该冷备、热备双管齐下,一天一备。
【1】I2C和SPI总线,嵌入式工程师爱用哪个?
【2】单片机软件抗干扰的这几种办法,以后不能说不知道了
【3】终于整理齐了,电子工程师“设计锦囊”,你值得拥有!
【4】半导体行业的人都在关注这几个公众号