“离线备份。”
会议室里没人立刻说话。
这四个字本身并不能证明什么。
两年前,第三方医疗服务公司结束与玄医合作时,做一次历史数据迁移并不算反常。真正危险的是——那次迁移申请发生在合作终止前,而且申请人正是后来离职的数据接口工程师。
苏婉清没有碰那张打印出来的权限申请单。
安全负责人调出记录:申请由一名项目主管和一名技术负责人批准,前者仍在原公司,后者已经离职;离线备份介质没有完整登记。
“现在只能确认权限确实开过。”他说,“迁移了什么、去了哪里、后来有没有销毁,都没有直接证据。”
杨复初道:“有人开过门,但不知道他拿没拿东西。”
苏婉清看向安全负责人。
“先做两件事。”
“第一,把这条线独立保存,不对外公布。”
“第二,联系那家公司,要求提供当年权限审批、资产登记和离职交接资料。”
秦叔问:“如果他们不给呢?”
“法务走正式函件。”
她停了一下。
“不要惊动那个工程师。”
杨复初看她一眼。
“怕他跑?”
“怕我们先入为主。”
苏婉清说,“现在连他有没有拿走数据都不能确认。”
下午一点十四分,数据中心第一轮全量安全检查开始。
这次检查已经不再局限于病例系统。
患者服务平台、海外协作接口、统计服务器、邮件归档、内部知识库以及备份节点全部进入审计范围。
为了避免影响正常诊疗,核心系统没有停机,只把高风险接口切换为受限模式。
集团内部权限同步收紧,二次验证、重新审批和批量导出限制同时启用。
苏婉清没有放宽:“宁愿慢一天,也不能再留下不知道从哪出去的数据口。”
下午两点零五分。
那家第三方医疗服务公司回复。
当年的项目主管仍然记得那次离线备份。
原因也很合理。
合作即将结束时,他们需要把一部分患者服务记录迁移到内部归档系统,方便处理尚未完成的保险结算和投诉。
法务追问备份后的处置。对方只确认按规定项目结束后应删除,删除证明和加密移动存储编号都还在核实。
苏婉清听完录音,没有发表意见。
这仍然不能说明数据被带走。
但至少证明那次“离线备份”不是一张没人执行的空申请。
下午三点三十八分。
数据中心监控平台突然弹出一条异常告警。
一台已经很少使用的统计节点,在短时间内连续触发大量历史查询。
安全值班人员第一反应是内部审计脚本。
可当他核对任务编号时,发现并不是。
“来源?”
“内部网络。”
“账号?”
“服务账号。”
“哪个系统的?”
值班人员继续查。
几秒后,脸色变了。
那个服务账号属于旧版海外统计接口。
按计划,它应该在两个月前就已经停用。
“断连接。”
安全主管立刻下令。
连接被强制切断。
但不到二十秒,另一台节点出现同样的查询。
这次请求目标不是统计表。
而是历史病例索引。
“封账号。”
“已经封了。”
“那为什么还能出现?”
安全人员飞快检查认证日志。
第二台节点使用的不是刚才那个服务账号。
而是一组不同的旧凭据。
“有人在轮换。”
安全主管的声音沉了下来。
“不是单一账号泄露。”
三点四十一分。
安全事件等级上调。
核心病例数据库进入增强保护模式。
外部接口全部冻结。
所有非必要批量查询被阻断。
与此同时,苏婉清正在二十七层开会。
会议室门突然被推开。
安全负责人几乎没敲门。
“出事了。”
苏婉清站起来。
“什么级别?”
“正在确认。”
“说现象。”
“有人通过内部旧接口连续查询历史病例索引。”
秦叔脸色一变。
“现在?”
“现在。”
“对方进核心病历了?”
“暂时没有证据。”
安全负责人回答,“查询的是索引层,不是完整病历内容。”
苏婉清已经往外走。
“去数据中心。”
玄医数据中心不在总部大楼。
核心服务器部署在独立机房,集团总部只保留运维终端和管理节点。
十几分钟后,远程应急会议已经建立。
主屏上不断滚动着访问日志。
系统没有黑屏,诊疗端仍能工作,但后台异常请求正一条条被标红。
安全主管指着时间轴:“十五点三十七分第一次访问历史病例索引。不到两分钟,账号切换并开始尝试读取字段映射。”
杨复初站在后面。
这些技术术语他听不完全。
“他到底拿到了什么?”
安全主管没有给一个漂亮答案。
“现在不知道。”
“那就说知道的。”
“我们确认对方进入了内部统计区域。”
“确认访问过索引。”
“目前没有确认成功读取完整病历。”
“有没有导出?”
“没有发现大文件传输。”
秦叔问:“那是不是没拿到东西?”
“不代表。”
安全主管摇头。
“小量查询可以分批带走,也可以只拿编号、字段结构、患者标签。”
苏婉清立刻想到那份二十七人名单。
真实病例编号。
错误治疗信息。
拼接出来的结论。
如果对方一直只能拿到外围字段,那么那份名单的结构就解释得通了一部分。
但她没有说出口。
“继续查。”
“不要把两件事提前连在一起。”
下午四点十二分。
第三波异常出现。
这一次目标变了。
不是病例索引。
而是数据备份管理页面。
安全团队立刻封锁对应网段。
可页面访问记录显示,对方已经完成过一次目录枚举。
“他知道我们备份怎么放?”
有人问。
没人回答。
更令人不安的是,攻击路径并不粗糙。
对方没有反复撞密码。
没有大量失败登录。
而是像知道哪些旧账号还存在、哪些接口容易被忽略。
“内部人员?”
秦叔压低声音。
苏婉清看向安全主管。
“能确认吗?”
“不能。”
“熟悉系统不等于内部人员。”
“旧配置、外包文档、历史运维资料,都可能提供这些信息。”
下午四点二十九分。
安全团队找到第一条真正有价值的线索。
异常连接最初来自一个海外云节点。
但那只是跳板。
继续向前追,只能看到多层代理。
真正有价值的,是请求头里的内部接口版本号。
V3.7-legacy。
现有系统早已经升级到V5系列。
V3.7只在两年前使用过。
正好是第三方医疗服务公司参与海外患者接口维护的时期。
会议室里的人几乎同时看向那张“离线备份”权限申请。
秦叔低声道:
“越来越近了。”
苏婉清依然没有接这句话。
“这只能证明攻击者掌握过旧接口信息。”
“不能证明是谁。”
五点零六分,安全团队完成紧急密钥轮换。
旧账号全部失效。
历史接口全部下线。
异常查询终于停止。
从第一次告警到最后一条请求消失,一共八十九分钟。
系统没有瘫痪、勒索或数据删除,真正的问题却刚开始。
“开始核对访问对象。”
苏婉清说。
“我要知道这八十九分钟里,对方到底看了什么。”
日志分析持续到晚上七点。
第一批结果出来。
异常账号一共查询过一百三十七个病例索引。
其中九十二个只访问过编号和时间字段。
三十一个访问过疗效分类。
十四个触发过更深层字段请求,但都被权限系统拒绝。
没有完整病历成功读取的直接记录。
杨复初听完,问了一句:
“二十七人名单在不在里面?”
安全负责人没有马上回答。
他把两组编号进行比对。
一个。
两个。
三个。
屏幕上不断出现匹配标记。
最后,数字停住。
十九。
二十七人名单里,有十九个病例编号,出现在今天异常查询范围中。
秦叔盯着数字:“这总能说明问题了吧?”
苏婉清没有否认关联。
但她仍然控制着结论。
“只能确认两个事件涉及高度重合的病例编号。”
“不能确认是同一批人。”
“也不能确认今天的攻击就是为了那篇文章。”
杨复初看着她。
“但至少不是巧合那么简单了。”
这一次,苏婉清没有反驳。
晚上七点四十五分。
玄医向数据安全机构提交事件报告。
对外公告只有四句话。
玄医集团监测到异常数据访问行为。
事件已被隔离。
目前未发现完整患者病历被批量导出的证据。
集团将配合独立安全机构进行调查。
没有提医学期刊。
没有提二十七人名单。
也没有提那个已经离职的接口工程师。
公告发出后,舆论迅速把黑客、争议病例和期刊文章连在一起。
苏婉清只要求公关团队保持沉默:“调查没出来之前,不替公众做推理。”
晚上九点十一分。
第三方服务公司终于发来第二批历史资料。
其中包括当年离线备份使用的资产登记表。
登记表上确实有一个加密移动硬盘。
序列号完整。
领用人也明确。
正是那名后来离职的数据接口工程师。
但归还栏——
是空的。
秦叔盯着那一格。
“东西没还?”
法务负责人摇头。
“只能说记录里没有归还签字。”
“也可能是漏填。”
苏婉清说。
“联系公司确认实物。”
电话很快接通。
十分钟后,结果回来。
公司资产库里查不到这块硬盘。
销毁记录里也没有。
没人能够证明它后来去了哪里。
晚上十点零三分。
安全负责人又拿来一份新结果。
“今天异常访问的一百三十七个病例里,还有一组很奇怪。”
“什么?”
“有八个病例,不在那二十七人名单中。”
“但他们有共同特征。”
屏幕切换。
八名患者。
来自不同国家。
治疗结果不同。
年龄也不同。
唯一一致的是——
他们都曾接受过较完整的玄医治疗流程,并且拥有超过十二个月的随访记录。
杨复初皱眉。
“为什么查他们?”
没人知道。
安全负责人继续往下翻。
“还有一点。”
“这八名患者最近一个月,没有任何媒体曝光。”
“也没有出现在医学期刊争议里。”
“换句话说,对方主动找了他们。”
苏婉清盯着八个编号。
如果只是为了制造舆论,查已经公开争议病例就够了。
没有必要额外寻找八名长期随访患者。
除非——
对方想要的并不只是黑料。
她没有把这个推断说出来。
“把八个人单独列出来。”
“不要联系患者。”
“先查所有共同字段。”
安全组开始重新比对。
十一点二十七分。
第一条共同点出现。
八名患者全部做过同一种深度疗效评估。
十一点四十一分。
第二条。
他们的长期随访数据里,都记录过一个指标——
神经功能恢复曲线。
杨复初看到这个词时,神色终于变了。
秦叔注意到。
“这个指标有什么特殊?”
杨复初没有马上回答。
他盯着屏幕上的八个病例。
过了几秒,才缓缓开口。
“这不是普通随访指标。”
“这是后来为了研究夺命索魂针长期效果,才专门加进去的。”
苏婉清转过头。
“谁知道?”
“核心医疗团队。”
“数据团队。”
杨复初顿了一下。
“还有负责那个研究项目的人。”
会议室里安静下来。
安全负责人忽然想起什么,迅速打开权限记录。
检索。
筛选。
几秒后,一份名单出现在屏幕上。
拥有这组研究数据访问权限的人并不多。
最下面还有一个已经失效的机构账号。
账号备注栏写着一行字:
联合研究数据接口。
而接口授权方的名称,让所有人都停住了。
不是那家第三方医疗服务公司。
也不是海外合作医院。
而是一家此前从未进入他们调查范围的机构。
苏婉清看着那个名字。
“先不要动。”
“把它所有历史授权记录调出来。”
安全负责人点开详情。
页面加载了几秒。
随后,一条权限变更记录出现在最上方。
就在数据中心遭到异常访问的前一天晚上——
这个早已失效的联合研究账号,曾被人短暂恢复过。
恢复时间:
二十三点四十七分。
持续时间:
十一分钟。
随后再次关闭。