互联网时代,人与人、人与社会交互过程中产生的行为数据、画像数据、信息数据等正在呈指数级增长,数据的价值和重要性不言而喻。数据库作为数据的载体,产品和技术也越来越成熟。近几年,不论是商业数据库帝国的蓬勃发展,还是开源数据技术的不断推陈出新,数据库技术的焦点似乎都集中在高性能、低延迟、多场景化应用方面,却很少去关注数据库安全。
今天我们来好好聊一聊数据库安全。
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或损坏。安全保护措施是否有效是数据库系统的主要技术指标,而数据安全如同一个木桶,整个防护体系是否坚固完全取决于短板。即使网络层、操作系统的安全防护已相对完善,如果存放核心信息的数据库得不到应有的保护,同样会造成较为严重的数据安全危机。
数据库安全事件时有发生,处理事故时稍有不慎将会酿成灾难性后果。近日,一次波及范围甚广的事故造成大量用户的数据库异常,导致业务停滞,大量网友在微博吐槽致使TO B类业务登上微博热搜榜实属罕见,短时间行业内外用户的朋友圈被事故文章霸屏。
这样的数据安全事故正在给高速发展的互联网服务发出一个“数据安全危机”的红色预警。接下来我们一起盘点“数据安全”的几大重灾区——“天灾”(自然灾害、IDC故障)和“人祸”(黑客攻击、数据信息泄露、人为操作失误)。
天灾和人祸
一、“天灾”
火灾、地震、雷击等自然灾害对数据中心造成的物理伤害会导致数据安全危机。比如雷击,轻微情况可引起设备短路故障,严重则会引发火灾。IDC也存在着断电、网络故障、设备老化等一系列影响数据安全的因素。
某商业银行核心系统数据库中心出现故障,导致存取款、网银、ATM等多项业务中断长达30多个小时,异地分支机构完全依靠手工办理业务。
二、“人祸”
人为导致的数据安全危机占数据安全故障总数的的70%。怎么样,这个数据是不是触目惊心。
其中也可以分为有意操作和误操作。有意操作是指明知道一些操作会造成数据中心故障,仍执意去做的,这些人往往人流网希望通过造成数据库系统运行瘫痪,而达到不可告人的目的。常见的有黑客、情报人员、商业机密小偷等等,他们攻击的对象往往是数据库里的数据。
国内知名信息安全团队“雨袭团”发布报告称,在一年半的时间内,高达8.6亿条个人信息数据被明码标价售卖,个人信息泄露造成的总体经济损失达915亿元,在巨额损失背后是隐藏极深却又庞大的黑色产业链,即数据黑产。
误操作是指本意并不想破坏数据库系统,由于技术积累经验不够或疏忽引发了数据安全故障。这种故障占到了人为故障的80%以上。网上一直以来都个脍炙人口的段子“从删库到跑路”来调侃这一现象。
印度McDelivery(麦乐送)应用泄露了220多万麦当劳用户的个人数据。此次用户数据泄露的根源在于McDelivery公开可访问的API端点(用于获取用户详细信息)未受保护。黑客利用该问题枚举该应用的所有用户,并成功窃取了用户的数据。
某物流公司工程师在操作删库过程中,错选了RUSS数据库,打算删除执行的SQL。在选定删除时,因其操作不严谨,光标回跳到RUSS库的实例,在未看清所选内容的情况下,便通过执行删除,RUSS库被删去,导致物流系统故障,无法使用并持续约590分钟。该程序员也因为操作问题被“跑路”了。
关于数据库安全危机的预防与应对,数据君也走访了诸多初高阶DBA。
初级策略
重启系统,重启系统,重启系统,重要的事情说三遍;
先冷备恢复,然后从增量log里面恢复实时数据;
先策划好方案,没有出来方案之前,先按兵不动,防止二次事故发生;
磁盘数据恢复;
别自建数据库系统了,用云数据库。
高阶观点
数据库系统的监控手段和历史信息记录为系统的稳定运行提供了保障,通过对这些数据分析,不仅可以找到故障原因,还可以根据进行优化,避免发生二次故障;
从初期的数据中心规划设计,到机房建成的验收测试,再到机房运营过程中对于机房的定期检测和对于突发状况的预案等,每一项都需要经过严格的审查;
禁止使用存储进程,存储进程难以调试和扩展,更没有移植性;
数据订正时,要先select,避免误删去,确认无误才能更新句子;
重要数据永远不要直接删去,标记为“删去”状态。不能给程序的用户all privileges、delete、drop等高危命令的权限;
应用的网络进行分层规划(接入层、应用层、数据层)。数据层只对固定的应用服务器开放,数据库尽量只放在内网;
周密的备份,即使管理员跑路也不怕。