结论先行:一起云数据库服务商被入侵的事件里,客户存在库里的事务数据据称没有被碰到,被带走的是控制平面、查询历史与支持工单。这类数据听起来不敏感,但它是一张地图:谁在用、用得多少、从哪连进来、出了问题找谁。风险从这里开始。
本文只谈外围系统里的数据卫生与导出行为监控,不谈应用密钥怎么清点,也不谈事件发生之后内部处置的先后顺序。
被带走的到底是什么
按攻击者单方面公布的口径:约 10.6TB、约 490 万个文件;约 18 万条租户组织记录、40 多万个邮箱地址;11 万多个接口密钥,其中 4 万多个被声称仍然有效;约 2065 万条客户 SQL 语句;约 1.02 亿条数据库网关连接记录;413 个私有代码仓库。需要强调,这些数字来自攻击方披露,尚未获得独立验证;涉事服务商在官方声明中确认了内部系统被未授权访问、部分数据被复制、源代码被窃取,但没有确认上述规模。
双方有一处口径差异值得留意:攻击方称大量密钥是明文且仍有效,服务商称导出的是加密后的密钥,并引用外部调查机构对一个样本的测试结果,认为无法直接使用;同时服务商也承认,是否还有其他可用凭证泄露仍在调查。这类分歧在事件早期很常见。对客户来说,处理方式不取决于谁的说法占上风——先按「可能有效」来处置。
比规模更值得看的,是节律
服务商声明的关键时间点:9 月 9 日至 10 月 7 日,攻击者利用被盗的服务账号凭据访问了部分内部系统;10 月 7 日发现,当天开始禁用相关凭据;10 月 14 日称已识别的被盗凭据全部失效、未授权访问路径已封堵,同期修复了外部机构报告的四个漏洞并完成第三方复测。
攻击方给出的细节更值得琢磨:据称从 9 月 8 日到 30 日,通过一条复制通道每六小时导出一次控制平面数据,累计 88 次,期间未触发检测。这个说法未经独立确认。但如果属实,它恰好说明可被发现的不是「哪一次访问」,而是「一种节律」——固定间隔、固定目标、固定数据量。异常导出的告警之所以常被漏掉,是因为多数单位只监控失败与权限拒绝,不监控「成功的、规律的、量级异常的读」。
企业侧能改的三处数据卫生
一是查询窗口与历史。不少人在 SQL 编辑器里存着带连接串的示例、真实表名与字段注释、临时调试用的样例数据。这些内容会跟着查询历史一起被导出。规范做法是把查询历史当作一份对外可见的材料来管理:敏感字段打码、样例数据用脱敏副本、生产连接信息不落在编辑器里。
二是工单与支持材料。为了排查问题,工单里常出现配置文件片段、账号、拓扑截图、日志摘录。这些内容一旦成批外流,等于把内部结构整理好交给了对方。
三是命名本身。组织名、项目名、集群标识看起来只是标签,却能直接回答「哪套环境值得下手」。给关键业务起一个不带业务含义的标识,代价很小。
把「异常导出」当成一类告警
与其等外部通知,不如在自己这侧建三条线:导出与查询的频次基线,也就是同一账号、同一接口的日常量级;时段异常,比如非工作时段的大批量读;去向异常,比如导出到非惯常的地址或客户端。三条里任何一条被触发,先按事件处理,不等定性。
这三条不需要额外的大平台,多数日志与数据库审计能力就能覆盖,缺的往往是把它们当成固定告警项写进值班手册。
边界与前提
三点说明。其一,本文所述事件过程与数字引自公开报道及涉事服务商的官方声明,双方口径差异已如实标注;攻击方披露的数字未经独立验证。其二,文中不出现具体企业、产品与人员信息。其三,本文讨论的是客户侧的数据卫生与监控,不构成对该事件的定性判断。
深圳市奇摩计算机有限公司在为客户做运维交付时,对托管与外部服务建两份台账:一份记接口与账号,一份记数据流向;异常导出与非常规时段访问列为独立告警项,处置动作写进值班手册。预约咨询,可以先从托管服务的账号与数据流向台账盘起。
