数据安全保护别只盯数据库:那盘备份磁带才是暗门
凌晨两点,运维群里弹出一张截图。备份目录的权限是777。底下有人回了个“?”然后补一句:这破机器三年没人登过了。真事。我当时在南京做一个政务云迁移,看到这张图,后背有点凉。
大家都盯着生产库,防火墙、WAF、堡垒机,一层又一层。可数据安全保护很容易被撕开的口子,常常是那个没人看的备份盘。它像什么?像你把家里值钱的东西复制了一份,放在门口鞋柜里,还贴了张纸条:备用钥匙在垫子下面。
备份不是保险箱,它更像第二现场
备份数据也是数据。这句话听起来像废话。但很多团队做数据安全保护时,默认生产库才是“资产”,备份是“副本”。副本嘛,随便放。结果呢?勒索软件进来先找备份。攻击者不傻——删了备份,你就没法恢复,赎金才好谈。2023年某地一家医院被勒索,生产库有快照,备份服务器却挂在同一套域里,一个管理员账号通吃。到头来快照和备份一起被加密。这叫什么?把锁和钥匙放同一个抽屉,还上了同一把锁。
所以先拆一个词:备份加密。不是给备份文件改个后缀,也不是压缩包加个密码。它至少要管三段:数据从源端出来时的加密、传输过程中的加密、落到备份介质上的加密。源端加密比较稳,数据还没出数据库就变成密文;传输用TLS,防的是链路上被截;落到磁带、对象存储、NAS上的密文,防的是介质被偷、被误挂载、被运维顺手拷贝。三段里缺一段,都像门锁装了三道,窗户开着。
不过话说回来,加密本身不复杂。AES-256、SM4,库或者备份软件都支持。真正难的是密钥。我见过一个项目,备份文件加密了,密钥存在同一台备份服务器的/etc下。配置文件里还明文写着密码。你猜怎么着?攻击者拿到备份服务器,等于拿到密文和钥匙。加密成了摆设。
企业数据库备份加密与密钥分离存放架构图
密钥管理才是真功夫
聊密钥管理,别一上来就KMS。KMS是密钥管理服务,能生成、存储、轮换密钥,还能做访问审计。但KMS不是万能药。你得先想清楚:谁有权限解?什么时候解?解完的明文去哪?
常用套路叫信封加密。说人话:数据密钥加密数据,主密钥加密数据密钥。数据密钥可以经常换,主密钥待在KMS或者HSM(硬件安全模块)里,不出来。备份软件每次备份生成一个数据密钥,用主密钥包一层,存进备份元数据。恢复时先找KMS解数据密钥,再解数据。这样即使备份介质丢了,没有KMS权限,密文就是一堆乱码。
关键动作有几个。密钥和密文分离存放,这是底线。备份在A机房,KMS在B机房,权限体系别用同一套。最小权限,恢复密钥的权限只给少数人,别给整个运维组。轮换,主密钥定期换,数据密钥每次备份换。审计,谁在什么时候解了哪个密钥,日志得留。还有一条容易漏:密钥备份。KMS自己挂了,主密钥丢了,你的备份就永远打不开了。这不是段子,有公司真这么干过,末了拿磁盘去数据恢复公司,人家也没辙。
类比一下。你家保险箱里放的是数据密钥,主密钥是你脑子里的密码。密码忘了,保险箱还在,但打不开。所以主密钥得做离线备份,分人分片保管。两把钥匙,三个人拿,少一个都开不了。麻烦吗?麻烦。但数据安全保护这事,舒服往往意味着漏风。
运维人员查看数据库审计日志与密钥操作记录场景图
日志和审计:出事之后能不能说清楚
日志和审计:出事之后能不能说清楚
再说一个常被忽略的点:日志。备份系统的日志、KMS的日志、数据库的审计日志。它们本身也是敏感数据。你想想,审计日志里可能有SQL语句、表名、甚至身份证号。日志没脱敏,等于把敏感数据又抄了一份。所以数据安全保护的范围要画大一点:日志脱敏、日志加密、日志访问控制,一个都不能少。
我遇到过挺离谱的配置:数据库审计日志开着,但日志文件权限是644,普通开发账号能读。问为什么,答:方便排查问题。方便是方便,可数据安全保护不是让所有人方便。后来改成只读账号+脱敏视图,排查问题走审批。开发同事骂了两天,第三天线上一查,发现一个慢查询把用户手机号打进了日志。你说这日志要是被拖走,算谁的?
审计的价值不在“有日志”,在“能说清楚”。谁在几点几分恢复了哪个库的哪个备份,用了哪个密钥,从哪个IP进来,有没有二次审批。这些信息串起来,才叫审计轨迹。只存日志不分析,跟不存差不多。更别说日志被删了。所以日志服务器要独立,权限要收,建议上WORM(一次写入多次读取)存储。听着重,但出事的时候,它是你能拿出来的证据。
误区、边界,还有一点冷思考
误区、边界,还有一点冷思考
常见误解一:加密等于安全。错。加密只保护“静态”和“传输中”的数据,数据在被解密使用的那一刻,还是明文。内存抓取、调试接口、DBA账号泄露,都能绕过加密。所以数据安全保护得配访问控制、行为审计、脱敏。误解二:备份能恢复就行。恢复测试做过吗?我见过备份任务天天成功,真恢复时发现磁带是空的。备份不是目的,可恢复才是。误解三:脱敏等于不可逆。很多脱敏只是掩码,手机号中间四位变星号,原始值还在库里。真要给测试环境用,得做不可逆脱敏或者合成数据。
边界在哪?加密有性能开销。全库透明加密对写性能有影响,备份加密对备份窗口有影响。你得算账。密钥管理增加运维复杂度,小团队可能扛不住一套HSM。那就退一步:至少把备份和密钥分开,至少把权限收住,至少把日志独立。别一步到位,也别一步不走。
说实话,数据安全保护没有银弹。它更像收拾屋子:你知道东西在哪,知道谁能进,知道丢了怎么找。备份磁带那盘东西,别让它成为暗门。下次巡检,除了看生产库,去备份服务器上敲个ls -l。权限是不是777?密钥是不是在旁边?日志是不是谁都能看?这三个问题答不上来,就别急着说自己做了数据安全保护。