科琳墓碑上的霜开始融化了。布林·凯勒看着一滴水珠顺着刻出的日期缓缓滑落,划过那串本不该来得这么早的数字。晨光穿过头顶光秃秃的枝桠,把石溪公墓切割成一片片几何状的阴影与冷冽的金色。
十八个月。这个数字早已不再有任何意义,只剩下分量。
她把白玫瑰靠放在大理石底座旁。双手在发抖。三周前她就不再假装那是冷的缘故了——从那时起,睡眠成了别人才有的事。过去七十二小时里,她只睡了四个小时。她的身体靠加油站的咖啡和一股向前的惯性运转,因为一停下来就意味着思考,而思考会把她带到某些地方,让她再也无法正常运转。
车流的嗡鸣从公墓大门外的十六街传来。那些人正赶往各自的工作,在他们的世界里,姐妹不会因为常规手术中备用发电机失灵而死在手术台上。医院不会黑掉六分钟。凌晨两点的电话只会来自喝醉的朋友,而不是一个在候诊室里不敢与你对视的外科医生。
她站起身,靴子底下落叶咔嚓作响。她没有回头。回头从来改变不了一件该死的事。
开车去兰利要四十分钟。布林的思绪早已离开了公墓,一遍遍过着她昨天下午标记出的那些异常。那些埋在网络监测数据里的模式,别人都当作背景噪声置之不理。安检口的咖啡喝起来像烧焦的金属。她照样一口口喝了下去。
分析局的开放办公区里,日光灯嗡嗡作响,那个频率震得她下颌发酸。刷工牌,乘电梯下到地下三层,走过一排排盯着屏幕的分析员,置身于这片永远不变的人造白昼。她的工位和午夜离开时一模一样。三台显示器排成半圆。键盘旁的杯子里,冷掉的咖啡结了一层膜。
她倒掉杯子,调出夜间处理队列。
模式识别算法已经跑完了。十七个关键基础设施系统被标记为活动异常。俄亥俄和马萨诸塞的电网。亚利桑那的水处理设施。堪萨斯和内布拉斯加两州的农业监测网络。每一个都显示出同样的特征:干扰信号卡在随机噪声与有意信号之间的死角里。有结构的静电。
布林凑近中间那台显示器,滚动浏览数据包捕获记录。大部分看起来都很正常。老化的基础设施做着老化的基础设施该做的事。数字熵增。背景辐射。但只要你知道怎么看,模式就在那里。握手完成前就终止的通信尝试。本该在防火墙就被拦下的畸形请求。途经的节点在战术上毫无道理,除非有人在刻意掩盖路径。
有一个数据包格外显眼。
算法给它打上了百分之八十七的置信度标签,高到足以要求人工复核。她把它隔离出来,用三套不同的分析工具逐一跑过。源头:注册在HarrisTech国防解决方案公司名下的服务器集群,这是一家专做安全通信的二级承包商。目的地:马萨诸塞州利特尔顿的电网管理系统。加密外壳采用的是中国的结构协议,但执行方式却是美国的。干净利落的美国做法。
这种组合不可能自然出现。中国的国家行为体无法渗透美国国防承包商的基础设施,那里的安全防护层层叠叠,监控也过于周密。除非这家承包商已被攻破。又或者,这根本就不是中国人干的。
她向后靠去,手掌按住眼睛,直到眼前冒出金星。日光灯的嗡鸣越发响了。她以前经历过这种事。六个月前,她标记出一起看似俄罗斯联邦安全局针对能源部网络的侦察活动。她整理出完整的案卷,一路汇报到副局长芬奇那里,引发了跨部门响应,调动了联邦调查局和国家安全局的资源。
结果不是联邦安全局。那是一支受雇的红队,正在执行经授权的渗透测试。没人费心通知分析员,因为授权文件在三个部门之间弄丢了。
她看对了模式,却看错了威胁。就是这一点区别,差点毁了她的职业生涯。
事后,加勒特·芬奇待她很宽厚。他说模式识别是艺术,不是科学。说误报是这份工作的一部分。说她该吸取教训,继续往前走。但他的宽厚抹不掉她的名字与"反应过度"这个词并排出现在六七份事后评估报告里的事实,也改变不了如今简报会上人们看她的眼神——都在等她再喊一次狼来了。
布林调出网络拓扑叠加图,把十七个被标记的系统标注上去。它们织成了一张网。不是地理上的,而是运作上的。每个系统代表不同的关键基础设施,但合在一起,就形成了层层连锁的相互依赖。电力供给水处理。水处理支撑农业生产。农业接入食品供应链,供应链需要运输网络,运输网络需要燃料配送,而燃料配送又依赖电网。
按顺序打中正确的节点,造成的就不只是中断,而是会自我滋长的崩溃。
她的手指悬在键盘上方。她应该把这事报给加勒特。启动正式审查流程。让更多人来看看。按规程办事。但上一次,规程害惨了她。规程意味着会议、汇报,还有那些早已认定她见鬼了的人抛来的质疑。
要是她又错了呢?又一次授权测试。又一次承包商演练。又一场虚惊,坐实她作为那个分不清信号与噪声的分析员的名声。
可要是她对了呢?
她想起手术台上的科琳。黑暗中的六分钟。本该在三十秒内启动的备用发电机。一套在她姐姐去世前一年里被标记过三次需要维护的医院供电系统。那些标记被埋进了成本效益分析里。有人看过数据,认定风险可以接受。认定可以再等等。
那个决定错了。
布林再次调出数据包分析。中国式的加密结构,包裹着源自一家美国国防承包商的数据。十七个系统显示出一模一样的结构化干扰模式。或许就是信号的静电。
这就是这份工作。从无意义中分拣出有意义的。在威胁酿成灾难之前,从背景噪声里把它们找出来。可静电能掩盖信号,噪声能藏住意图。分辨二者的唯一办法,就是错得足够多次,多到你学会在所有人都叫你退后的时候,依然信任自己的直觉。
她开始整理报告,双手仍在发抖。这一次不是因为疲惫,而是因为那份重量:你是对的,却没人肯信;或者你错了,而代价是以人命来计算的。
无论哪种,这份重量都是她的。
她把文件标记好,放进加勒特的晨间队列,光标移到发送键上。日光灯依旧哼着那个不变的音符。她的咖啡又凉了。隔间之外,分析局照常运转着它每日的节奏。分析员们在噪声中追捕模式,试图赶在威胁化为死亡人数之前看见它们。
布林按下了发送。
然后她调出科琳的医院记录,开始交叉比对大华盛顿都会区的电网脆弱点。如果她错了,她需要弄清错在哪里。如果她对了,她需要知道该由谁负责。
姐姐墓前的玫瑰这会儿大概已经开始萎了。天黑后,霜会再回来。而在静电的某处,埋在十七个被攻破系统的噪声之中,有一道信号正试图冲破重围。