阿灵顿那家汽车旅馆位于一条僻静的支路尽头,紧邻一座加油站,前台是一个彻夜打瞌睡的老年印度裔男人。科尔多瓦用现金付了两晚的房费,没有登记车辆信息。房间在二楼尽头的角落,窗户朝向一片漆黑的停车场和更远处的高速公路隔音墙。她关好门,拉上窗帘,把运动背包放在写字台上,然后从包里拿出笔记本电脑和那台已经被反复拆装过的主控设备。
蒂娜坐在床边,把U盘插进电脑的USB口,手指在触控板上快速滑动。她把NSIB服务器日志和那台设备固件的完整镜像并排打开在两个窗口里,开始了交叉比对。科尔多瓦站在她身后,双手撑在椅背上,盯着屏幕上滚动的代码行。
大约二十分钟后,蒂娜停住了手指。她指着屏幕上的一段时间戳记录说:“你看这里。三个月前那次激活测试的源IP确实是南方管教所行政楼的出口网关,但这个IP在日志里只出现了这一次。而在那之后的第七天——也就是我们之前在固件里看到的那条回传记录——回传的目标地址虽然是华盛顿的NSIB服务器,但回传的数据包头部有一个额外的标记字段,标记着一个内部的回调地址。我顺着那个回调地址解析了一下,发现它指向的是阿什兰水利局的一台旧服务器,那台服务器在系统升级日志里显示为‘已退役’,但它的IP地址依然处于活跃状态。”
科尔多瓦俯下身,看着屏幕上那个IP地址。“水利局的旧服务器……维加在水利局工作过。如果这台服务器已经被标记为退役,那它仍然活跃只有一种可能——有人把它从官方清单里移除了,但保留了物理连接。而且那个回调地址只有知道系统底层架构的人才能使用。”
“所以三个月前的激活测试不是一次探针。”蒂娜的声音变得缓慢而谨慎,“它是一次数据转发测试。那个激活操作发送了一个请求到南港节点,南港节点收到之后把它的状态信息回传到了水利局的那台旧服务器,旧服务器再转发到华盛顿的NSIB节点。这个操作本质上是建立了一条南港节点→水利局旧服务器→华盛顿的回传链路。”
科尔多瓦直起身,在房间里走了几步。这条链路的逻辑意味着,克劳斯在三个月前所做的不是“测试南港节点是否可用”,而是“测试南港节点能不能通过旧服务器向华盛顿发送数据”。如果华盛顿那边的NSIB服务器接收到了来自旧服务器的数据包,那就说明克劳斯已经把南港节点纳入了自己的信息传输网络里——而赫尔曼和华盛顿方面可能只是这条链路末端的被动接收者。
“蒂娜,你能不能查到那台旧服务器在三个月前的日志?它有没有发送过除了南港数据之外的其他数据包?”
蒂娜的手指在键盘上敲了一连串命令,然后摇了摇头。“旧服务器的存储空间很小,只能保留最近六十天的日志。三个月前的那部分已经被覆盖掉了。但我在NSIB日志里找到了一条注释,是系统自动生成的,记录了那次回传数据包的大小——它大约有四百兆字节。四百兆在南港节点那种只传递简单状态信号的设备里是不正常的。那四百兆字节里应该包含其他东西。”
科尔多瓦的脑海里浮现出一个逐渐清晰的轮廓。如果南港节点在三个月前被激活测试,并且在回传时附带了四百兆字节的数据,那么南港节点可能从一开始就被设计成一台数据收集器——它不是一个简单的攻击装置,而是一个通过SCADA系统伪装、实际上在偷取市政网络内流转的数据截获器。那四百兆字节可能是从阿什兰市政系统的某个服务器里被复制出来的内部文件。
“我们需要知道那四百兆是什么。”科尔多瓦说,“你能从NSIB服务器的存储里找到那段回传数据的存档吗?”
蒂娜的手指在触控板上停顿了一下。她抬起头,看着科尔多瓦:“NSIB服务器只接收并转发数据,它本身不会长期保存接收到的数据内容。但如果那段数据被转发到了某个第三方平台——比如那个回调地址对应的水利局旧服务器——那台旧服务器在数据被覆盖之前可能还保留着一部分备份。旧服务器的存储介质是机械硬盘,机械硬盘在被覆盖之后,磁道上仍然会有残留信号。如果你能拿到那台旧服务器的物理硬盘,我可以用一个数据恢复工具扫描磁道的残余磁场,也许能还原出部分内容。”
科尔多瓦看了看时间——凌晨一点二十分。她拿起手机,给哈罗德·温特发了一条短信,问他水利局那台被标记为“已退役”的旧服务器是否还在物理机房里。回复在三分钟后到来:“那台服务器在退役清单上,但从来没被搬走过,现在还在水利局三楼的旧设备间里。门锁是旧的,我可以帮你打开。”
科尔多瓦把手机放回口袋,转向蒂娜:“我们天亮之前赶回阿什兰。你留在这里,继续从远程角度分析NSIB日志的所有元数据。我一个人回去取硬盘。”
蒂娜皱了一下眉头:“你一个人回去太冒险了。赫尔曼知道你离开了华盛顿,他可能会在阿什兰的机场或者交通枢纽布置人手。”
“他会在机场和火车站布人,但他不会想到我会从阿什兰支线机场走货运通道出来。我在那里有一个前同事,是做地勤的,可以帮我绕过旅客大厅。”科尔多瓦把运动背包的拉链拉好,把那台主控设备留在房间里,只带了手机、钱包和一把折叠刀,“你在这里等我。如果我在明天中午之前没有联系你,你就把U盘里的所有数据交给联邦调查局华盛顿办事处的总监察长办公室,不要经过任何地方层级。”
蒂娜沉默了一秒,然后点了点头。科尔多瓦走到门口,侧耳听了一下走廊里的动静——什么也没有。她拉开房门,快步走出去,沿着走廊尽头的消防楼梯下到底层,从汽车旅馆的后门穿过加油站,走向高速公路匝道口。
她等了一辆去往华盛顿市区的夜间巴士,在车上坐了四十分钟,然后转乘一趟凌晨发往阿什兰方向的通勤列车。这趟列车很空,车厢里只有另外三个乘客,都戴着帽子在睡觉。她坐在靠窗的位置,看着窗外沿线的路灯和树影交替掠过,手指插在口袋里,摸到那枚U盘的冰凉外壳——她把它从蒂娜那里要了一份副本,以防蒂娜的位置被锁定。
列车在阿什兰东站停靠时是凌晨四点五十分。站台上空无一人,只有一只流浪猫在长椅下面蜷着。科尔多瓦走出车站,在二十四小时便利店买了一杯热咖啡,然后叫了一辆网约车去水利局大楼。她在水利局后门和温特碰了面,老人穿着羽绒背心,手里拿着一把旧钥匙。
他们走进三楼那间积满灰尘的设备间,里面堆着几台被拆掉电源的旧机柜。温特指了指角落里那台立式塔状服务器,外壳的白色已经泛黄,侧面贴着一张褪色的资产标签。科尔多瓦用工具拧开外壳螺丝,取出那两块机械硬盘,用防静电袋包好,塞进背包里。温特看着她做完这一切,一句话没说,只是在她转身离开时轻轻握了一下她的手腕。
“探员,”他说,“这台服务器退役的时候,我记得最后一条日志是一个自动备份任务,把某个系统的年度运行数据复制到了这里。我不知道那是什么数据,但那个备份任务在系统关闭前一天还运行过一次。”
科尔多瓦点了点头,谢过他,然后从水利局大楼后门消失在黎明前最暗的那段夜色里。她在一家通宵营业的汽车旅馆开了一间房,把硬盘连接到随身携带的读取器上,启动蒂娜远程传给她的数据恢复软件。屏幕上开始逐条显示磁道残余信号的扫描结果,进度条缓慢地向前推进,像一条细线爬过深色的刻度。
进度达到百分之七十四的时候,屏幕上弹出了一段可读的文本片段。那是一个文件名的碎片,只有五个字母和一个扩展名——“BUDG”。那四百兆字节里有一份预算文件。科尔多瓦盯着那个文件名,手指悬在键盘上方。一份市政预算文件被截获并转发到华盛顿——这才是南港节点真正的目的。攻击只是掩饰,数据掠夺才是核心。
她合上电脑,在昏暗的房间里坐了很久。窗外,阿什兰的第一缕晨光正在慢慢地爬过天际线。她忽然意识到,那四百兆字节的预算文件如果涉及的是水利系统未来三年的升级预算,那它可能包含的全是各个节点的物理位置、设备型号和维护窗口期。拿到那份文件的人,就等于拿到了阿什兰整座城市基础设施的完整弱点目录。
而克劳斯在三个月前,亲手把这份目录送了出去。


暂无评论,来抢沙发吧!