1. 扳道工的断指

雨水砸在铁轨上的声音像是有人在用铁锤敲打一口破钟。

本杰明·霍尔特把扳道工专用手电咬在嘴里,左手拽紧雨衣领口,右手握住扳道器的铁杆用力往下压。铁锈和雨水混在一起,顺着他的指缝往下淌。哥谭市南郊货运编组站的照明系统三天前就报修了,调度中心的回复永远是那句“已列入下周维护计划”。

本杰明在这里干了十七年,知道“下周”的意思就是“等出了事再说”。

今夜要扳的是第三轨道和第七轨道的交叉道岔。货运列车再有四十分钟进站,他得把道岔从手动状态切回自动模式。借着闪电的光,他瞥了一眼信号灯——绿灯常亮,表示自动控制系统确认轨道已锁死。

他松开了扳道器。

就在这一瞬间,信号灯的颜色变了。

从绿到红,又跳回绿色,闪烁频率快得像是某种工业警报。本杰明下意识后退一步,但手还没完全离开铁杆,道岔突然自行启动,重达三吨的钢铁轨条开始移动。他的右手被卡在扳道器的齿轮组和铁轨接缝之间。

疼痛在三秒后才抵达大脑。

本杰明没有尖叫。他后来在医院的病床上告诉调查人员,那三秒钟里他想到的是十七年前刚入行时老师傅说过的话——“信号系统是铁路的灵魂,灵魂出了问题,肉身就是一堆废铁。”

他用左手从口袋里摸出折叠刀,把卡在齿轮里的手套割断,整个人向后仰倒,摔进铁轨旁的碎石堆里。右手中指、无名指和小指已经不在原来的位置上了。血被雨水冲散,顺着枕木的缝隙流进排水沟。

货运列车进站的汽笛声从两公里外传来。

本杰明用雨衣裹住右手,踉踉跄跄走向值班室。他经过信号塔的时候,抬头看了一眼塔顶的信号灯控制柜。柜门半开着,里面有一盏维修指示灯在闪——不是故障的红灯,也不是正常的绿灯,而是一种他从未见过的、缓慢的蓝色脉冲光。

他记住了这个细节。

事后,麦克莱恩运输公司的安全事故调查组给出的结论是“操作人员在设备未完全归位时提前松手,导致齿轮回弹造成挤压伤”。公司愿意按照联邦雇主责任法支付医疗费,但拒绝承认设备存在任何缺陷。

本杰明·霍尔特的姐姐艾米丽·霍尔特不买账。

艾米丽四十二岁,哥谭市劳工权益法律事务所的合伙人,从业十五年专门代理工人索赔案件。她弟弟出事后的第三天,她穿着深灰色西装站在麦克莱恩公司总部大楼的会议室里,对面坐着公司法律顾问团队的四名律师和一个从没笑过的风险管控总监。

“你们说设备没问题,”艾米丽把一沓照片推到桌子中央,“那我请教一下,事发当晚的信号灯控制柜为什么柜门大开?维修记录显示最近一次检修是三个月前,但柜门上的封签编号是当月批次的。谁打开的?为什么打开?”

风险管控总监看了看自己的律师,律师微微摇了摇头。

“那扇柜门与霍尔特先生的受伤没有因果关系。”对方律师说,“联邦雇主责任法要求原告证明雇主的过失是伤害的近因。我们尊重霍尔特先生的遭遇,但这不是公司的责任。”

“近因?”艾米丽冷笑了一声,“等上了法庭,我会让你们好好解释什么叫近因。”

但艾米丽心里清楚,这场官司不容易打。

联邦雇主责任法的因果关系标准在各巡回法院之间存在分歧。有的法院采用“起了作用”的宽松标准,有的法院则要求原告证明过失是伤害的“实质原因”。麦克莱恩公司一定会把案子往严格标准的辖区推,而她需要更多的证据。

证据在开庭前一周出现了。

那天晚上十一点,艾米丽在事务所加班整理证人证词,电脑屏幕右下角弹出一封加密邮件。发件人地址是一串毫无规律的字母数字组合,后缀是暗网常用的匿名转发域名。邮件正文只有一句话:

“信号灯不会自己改变颜色。附件里有你想要的东西。”

附件是一个压缩包,解压后是一段代码截图。艾米丽不是程序员,但她看得懂截图上的时间戳——正是本杰明出事那一刻。代码的注释字段用了一种她从未见过的语言,语法结构像是俄语和德语的混合体,但变量名全部是英文。

她拨通了弟弟的电话。

“本,出事那天晚上,信号灯有没有出现什么奇怪的现象?”

电话那头沉默了几秒钟。“蓝色,”本杰明说,“控制柜里有一盏蓝色的灯在闪。我没跟调查组说这个,因为我怕他们觉得我精神出了问题。”

艾米丽挂了电话,把代码截图转发给了一位在哥伦比亚大学教计算机科学的同学。同学在凌晨三点回复了她,只有一行字:

“这是工控系统的远程注入代码,目标协议是铁路信号控制系统。艾米丽,你从哪里弄到的?”

艾米丽没有回答。

她独自坐在办公室里,看着窗外哥谭市永不熄灭的灯火。这座城市有两百万人口,每天有四百列货运列车进出,十五座水处理厂昼夜运转,七座变电站供应着整片东海岸的电网负荷。这座城市的所有命脉都由工业控制系统管理,而这些系统的背后是一行又一行的代码。

如果代码可以被远程注入,那信号灯可以在没人触碰的情况下自己变色。

那道岔可以在没人扳动的情况下自己移动。

那一个人可以在没人靠近的情况下,被机器碾碎手指。

或者说,被机器杀死。

艾米丽把邮件转发给了自己私人邮箱,然后删除了事务所电脑上的所有痕迹。她决定不把这份证据立刻交给法院。她需要先弄清楚发件人是谁,以及他为什么要帮她。

或者说,他到底想从她这里得到什么。

同一时刻,距离哥谭市三十公里的南区水处理厂,质检员维克多·陈正在值夜班。

维克多是华裔移民第二代,三年前从加州理工学院环境工程系毕业,本该坐在工程师办公室里画图纸,却因为一场学术造假丑闻被导师牵连,最终只能在市立水厂做一名基层质检员。他每天的工作是定时采集过滤池水样,检测余氯含量和大肠杆菌指标,在表格上签字,然后把表格放进档案柜里。

这份工作无聊到让人发疯。

所以维克多养成了一个习惯:在夜班间隙,他会用笔记本电脑写代码。他真正的兴趣不是环境工程,而是网络安全。大学期间他曾作为白帽黑客团队“凤凰巢”的核心成员,协助联邦调查局破获过多起针对金融系统的网络攻击案。但那也是过去的事了。现在他只是一个在水厂值夜班的质检员,在暗网论坛上用化名发表一些工控系统漏洞分析文章,换取几个匿名同行的点赞。

凌晨两点十五分,维克多合上笔记本电脑,拿起取样瓶走向三号过滤池。

过滤池的深度是四米,池壁由钢筋混凝土浇筑,顶部覆盖着防雨棚。按规定,采样时必须佩戴安全绳和防滑鞋。但维克多和所有老员工一样,觉得系绳子太麻烦,每次都直接走到池边蹲下取水。

今晚他蹲下去的时候,发现池水表面浮着一层油状薄膜。

这不正常。

维克多直起身,准备回值班室拿检测仪器。就在他转身的瞬间,脚下的防滑格栅板突然发出了一声脆响——固定螺栓松脱了。

他失去平衡,双手在空中挥舞了一下,什么都没抓住。

水花溅起的声音被过滤泵的轰鸣声掩盖了。

四米深的过滤池,池壁光滑没有抓手,水温只有八度。维克多在落水的第一秒灌了一大口水,第二秒本能地踩水浮出水面,第三秒开始向池边游。他是游泳好手,四米的距离只需要几下划臂。

但他的手碰到池壁的时候,发现本应常年关闭的循环泵进水阀打开了。

那是一个直径四十厘米的管道口,位于水面下方半米处。泵机运转产生的吸力在水下形成了一道看不见的涡流。维克多的腿被水流卷住,整个人被拉向管道口。

他终于喊出了声音,但值班室离这里有两百米,中间隔着六道隔音门。

凌晨四点,接班质检员发现了漂浮在过滤池中的维克多·陈。

哥谭市警局法医给出的死亡结论是“意外溺水,死者未按规定佩戴安全绳,负有主要责任”。水厂方面表示哀悼,同时强调所有安全设施均符合行业标准,循环泵进水阀处于自动模式,开启是正常的水质调节操作。

维克多的哥哥陈默在洛杉矶收到消息的时候,正在给一家网络安全公司做渗透测试咨询。

他放下电话,订了最近一班飞往哥谭市的红眼航班。在机场候机厅里,他用笔记本电脑登录了弟弟生前使用的加密云存储空间。密码没有改过,还是他们兄弟俩共用的一套密钥。

云盘里有一个新建的文件夹,创建时间是维克多死前四十分钟。

文件夹的名字叫“FOR_MO”。

里面是一段没写完的Python脚本、三张水厂工控系统架构的截图,以及一个文本文件。文本文件里只有两行字:

“哥,他们发现了我在查的东西。如果我不在了,去找麦克莱恩的信号灯案。”

“这不是意外。”

陈默关上电脑,广播正好响起登机通知。窗外一架飞机的尾翼划过跑道上空,夜航灯一红一绿,像是某种遥远的、无声的问答。

他在登机口站了很久。

然后打开了手机上的暗网浏览器。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

您的邮箱地址不会被公开。 必填项已用 * 标注