陈远知比苏晚预估的还快了两天。
逻辑炸弹植入后的第三天上午,苏晚在终端的“健康数据概览”页面刷到了一条系统通知——不是推送,是页面底部那行灰色小字变了。
原来写的是“数据由A区健康监护系统v3.2提供”。
现在多了一行:“系统正在执行全量数据校验,部分查询功能暂时受限。”
全量数据校验。
苏晚把这行字看了两遍,关掉页面,翻身面朝墙壁。
他动手了。
陈远知选在上午做这件事,时间点很有讲究。上午十点是管理层例会的固定时段——王副博士和几个行政主管都在会议室里。全量整合指令在这个节点下达,数据跑批的过程王副博士看不见,等他散会回来,结果已经出了。
先斩后奏。
陈远知在用行动告诉管理层:我还握着方向盘。延期不是失控,是暂时的技术瓶颈。我现在做全面体检,找到问题,解决问题,拿结果给你们看。
一个负责人能做的最漂亮的自救动作。
可惜他不知道体检报告已经被人动过手脚了。
整合指令下达的那一刻,A区数据存储节点里那四十七个字节醒了。
没有启动画面,没有进程提示,没有任何一个监控面板会捕捉到它的运行——因为它本不是一个独立进程。它把自己嵌进了全量整合的批处理队列里,挂在正常的数据校验任务后面,用的是系统自己的执行权限。
寄生。
指令开始逐条扫描A区存储的实验报告。每扫到一份包含“细胞活性”参数的文档,它做一件事:把数值乘以一个1.001到1.003之间的随机系数。
0.1%到0.3%的偏移。
单份报告里,这个偏移量落在实验误差的合理区间内。任何一个研究员单独打开任何一份报告,都不会觉得数字有问题——细胞活性216.7和216.3,谁能用肉眼分辨?
但全量整合不是看单份报告。
全量整合是把几万份报告的数据抽出来,和中央数据库里的原始备份做交叉比对。统计学有个基本原理:随机误差在大样本中会相互抵消,呈正态分布。
苏晚制造的不是随机误差。
每一个系数都大于1。所有偏移方向一致——全部偏高。大样本比对的时候,这个单向偏移会被统计模型立刻识别为系统性偏差。
不是噪声。是信号。
第二条指令同步运行。所有涉及“排异反应”的实验记录,时间戳被随机前移或后移一到五秒。
时间戳的篡改比数值篡改更毒。
实验报告里的时间戳不只是记录“这件事什么时候发生”——它是数据完整性校验的锚点。A区存储的时间戳和中央数据库的时间戳之间如果出现偏差,校验算法的第一反应不是“数据有误差”,而是“数据被篡改”。
因为时间戳是写保护的。正常的实验作不可能修改时间戳。能改时间戳的只有两种情况:系统故障,或人为介入。
苏晚选了一到五秒的偏移量。不是一秒,不是十秒,是一到五秒之间的随机值。
一秒太小,可能被归类为时钟同步误差。十秒太大,会触发实时告警,在数据整合跑完之前就被拦截。一到五秒,恰好落在“系统故障解释不了、但又不至于当场报警”的灰色地带。
这个灰色地带有个名字:可疑。
可疑比确定更有伤力。确定的错误可以修,可疑的痕迹只能查。一查就要追溯源头。一追就牵出志。志里藏着什么,苏晚已经替王副博士安排好了。
上午十点四十七分。
A区数据中心的主控台上,告警窗口弹了第一条黄色通知。
值班的数据工程师瞥了一眼,没当回事——全量整合跑批的时候偶尔会有校验不通过的条目,正常。
十点四十八分,第二条。
十点四十八分三十秒,第三条、第四条、第五条,连着跳。
工程师把咖啡杯放下了。
十点四十九分。告警窗口从黄色变成橙色。屏幕右侧的数据污染率指示器开始跳数——12%,19%,27%。
工程师拿起内线电话。
“数据校验异常,污染率在涨,你过来看一眼。”
另一个工程师跑过来的时候,指示器已经到了41%。
两个人盯着屏幕,看着数字一路往上蹿。每跳一下,就意味着又有几百份实验报告被标记为“与中央备份不一致”。
53%。
“这不对。”先到的工程师翻开校验明细,拉了一批被标红的报告出来看。“细胞活性参数全线偏高,幅度不大,但方向一致。时间戳……时间戳也有问题,排异反应那批记录的时间戳全飘了。”
“飘多少?”
“一到五秒。随机的。”
沉默了三秒。
“叫陈博士。”
“陈博士自己下的整合指令。”
“那更得叫。”
十点五十六分,污染率突破70%,停在了73.4%。
数字不再往上跳了——不是问题解决了,是全量整合跑完了。
A区存储里七成以上的实验报告,数据和中央备份对不上。
陈远知到数据中心的时候,两个工程师已经把初步分析拉出来了。
他站在主控台前面,看着屏幕上密密麻麻的红色标记条目,一句话没说。
从苏晚的房间到数据中心隔了三道门和一条走廊。她听不到那边的对话,看不到陈远知的表情。但她能推算。
73.4%的数据污染率——这个数字会在陈远知脑子里触发什么反应?
第一反应:不可能。A区的数据管理流程他亲手制定,每一步都有校验环节,不可能出这么大面积的问题。
第二反应:如果是真的,那么在他下整合指令之前,这些数据就已经被动过了。动了多久?从什么时候开始?谁有权限?
第三反应:A区数据安全的直接责任人。
王副博士。
王副博士在会议室里接到消息的时候,正在跟两个行政主管讨论下季度的预算分配方案。
内线电话响了。他的助理在另一头说了一句话。
王副博士的表情没有变——会议室里有其他人,他的脸维持了专业水准的镇定。但他站起来的速度比正常快了一拍。
“各位,我有个紧急事项需要处理。”
他走出会议室的时候,步速是正常步行的1.3倍。苏晚见不到这个画面,但同一条走廊上巡逻的S-1能看到。班安保注意到了一个管理层人员在快步行走,这种事平时不多见。
王副博士到数据中心的时候,陈远知已经在了。
两个人对视了三秒钟。
“数据什么情况?”王副博士问。
陈远知没有直接回答。他让工程师把校验报告投到大屏上。
红的。满屏的红。
王副博士看了三十秒。他的目光从数据概览移到校验明细,再移到时间戳异常的分布图。分布图上,异常点均匀地散落在过去三个月的实验记录里,看不出任何规律,也看不出任何集中爆发的节点。
“这不是系统故障。”王副博士说。
没有人反驳。系统故障是突发性的,影响范围通常集中在某个时间段。眼前这种均匀分布、方向一致的数据偏移,只有人为作才做得出来。
王副博士做了一个正确的决定——正确,但正中苏晚的靶心。
他调了系统志。
A区数据存储的访问志记录了过去六个月内所有对存储节点进行过写作的终端信息。志很长,大部分是正常的实验数据写入记录。
但排查软件自动筛出了一条异常。
一个数据流,源地址10.42.XX.XX,在电力维护期间通过MODBUS溢出缓冲进入了A区存储的边缘节点。数据包里携带了一段加密指令。
10.42.XX.XX。
王副博士认识这个地址。
这是他自己的办公终端。
他的手从键盘上抬起来了。不是收回,是抬——手指悬在半空中,停了快两秒才慢慢放下去。
工程师们看到了这个动作。陈远知也看到了。
没有人说话。
王副博士的脑子里跑着另一条线。电力维护那天晚上,他在办公室加班。加班什么?写那份“补充意见征求意见稿”的修订版。终端一直开着,网络一直连着。
电力切换期间,他的终端重启了一次。重启过程中终端处于无人作状态,他去走廊的茶水间倒了杯水。
就那几分钟。
谁碰了他的终端?
王副博士的第一个念头不是“外部攻击”。
他想到的是那个被他收买的底层研究员。
那个研究员知道他的办公室位置。那个研究员曾经以送文件为由,进过他的办公区域。那个研究员最近的表现有点反常——和后勤的人走得太近,交接时间过长。
是不是反水了?
收了他的钱,又卖了他的信息,最后在他的终端上种了一个后门?
王副博士没有当场说出这个猜测。他只是对着屏幕看了很久——久到旁边的工程师都开始不自在。
“先暂停所有A区的数据访问权限。”王副博士说。声音正常,语速正常。“完整的志备份拷两份,一份交安保存档,一份我带走。在查清楚之前,这件事控制在最小范围内。”
控制在最小范围内。
这句话出口的时候,陈远知已经在用另一部手机发消息了。
发给谁,王副博士用余光扫到了——陈远知的拇指滑动的方向是通讯录顶部。置顶联系人。
集团高层。
“我认为现在下结论为时过早。”王副博士盯着陈远知的方向说了一句。
陈远知把手机翻过去扣在桌面上,抬头看他。
“七成数据报废,你觉得什么时候下结论才不算早?”
不是吵架,不是质问。陈远知的语气很平。平到两个工程师都不敢抬头。越平的火越烫。
“数据没有报废。”王副博士纠正,“是校验不通过。偏移量在千分之一到千分之三之间,原始数据的结构完好,可以通过反向校正恢复。”
“反向校正需要确认偏移系数。确认偏移系数需要知道篡改逻辑。你现在知道篡改逻辑吗?”
王副博士没接话。
他确实不知道。
陈远知也没有追问。他拿起手机,把消息发了出去。
苏晚是下午两点钟确认结果的。
送餐的L-3推门进来时,手上多了一样东西——不是多的,是少了一样。餐盘里没有筷子。
L-3放下餐盘,愣了一下,低头看了看。
“啊,抱歉,我去拿。”
她转身出去了。十五秒后拿着筷子回来。
正常的失误,正常的补救。但L-3的眼圈发红。
不是哭过的那种红,是长时间盯着屏幕或者受了之后血管充血的那种。后勤人员没有理由长时间盯屏幕,那就是后者——她今天受了冲击。
一个后勤保障组的员工,在A区数据出了重大事故的当天,忘记给实验体放筷子。
压力链条又传了一级。
苏晚用终端打开“健康数据概览”。页面加载了八秒——平时三秒就出来了。页面底部多了一行红字:
“A区服务器维护中,相关数据查询功能暂停。恢复时间另行通知。”
苏晚看了一遍这行字。
然后她把页面关掉,用筷子夹了一块豆腐,慢慢吃。
豆腐的质量又下降了。蛋白质含量目测比上周低了至少一个等级。
但这不重要了。
A区的数据金库已经开了第一道裂口。不大。细到从外面看几乎察觉不了。
裂口不是用来炸开门的。
是用来透光的。透进去的光会照出里面每一个人的影子——谁站在哪个位置,手里拿着什么,背对着谁。
影子比炸弹好用。炸弹只能炸一次,影子可以反复看。
苏晚在终端上写了一句话,加在昨天那行记后面:
“今天的豆腐不好吃。”
保存。
心率64。呼吸11。体温36.4。血氧98。
八台设备忠实地记录着一个对豆腐口感不满意的实验体。