北区移民聚居区的水泵站在凌晨四点半停止了运转。
不是爆炸,不是断电,不是任何能被耳朵捕捉到的故障。水泵的叶轮还在旋转,电机的电流还在流动,但水压表上的指针以一种几乎不可察觉的速度缓缓下滑——从三点五公斤每平方厘米降到三点四,降到三点二,降到二点八。像一个人的血压在无声无息中流失,直到器官一个接一个地衰竭。
三万名居民在睡梦中没有察觉到任何异常。直到第一个人拧开水龙头,发现流出来的不是水,而是管道里残存的空气发出的那种干涩的嘶嘶声。
阿迪亚接到通知时正在蛇道边的茶摊上和拉维核对“螺丝刀”的上线时间规律。他的手机震动了一下,屏幕弹出一条市政紧急通报:北区供水全面瘫痪,原因不明,预计影响人口三万。他看完消息的第一反应不是赶往北区,而是打开“遗忘之境”。
投票页面上,北区移民聚居区的票数在昨晚出现了剧烈波动。原本排在第三位的选项,在短短四小时内飙升到了第一位。最终的票数是:圣约瑟夫医院八百二十一票,北区移民聚居区八百四十七票。二十六票的差距。
“他改了结果。”阿迪亚说。
拉维凑过来看屏幕,脸色变了。“投票页面的代码我看过,没有任何篡改痕迹。每个IP只能投一票,数据校验是通过的——”
“他不需要篡改代码。他只需要在投票的最后阶段,用他手里的所有傀儡ID集中投给移民区,然后宣布移民区是胜出者。没人会验证。没人能验证。匿名投票最大的漏洞不是技术上的,是信任上的——所有人都相信票数是真实的,因为没有人能看到别人投了什么。”
他关掉手机,站起来的动作让茶摊的塑料椅子翻倒在地。
“为什么是移民区?”拉维问。
“因为他在遵守游戏规则。投票选出了移民区,他就执行移民区。这比他自己选择目标更有力量——他不是在展示自己的意志,他是在展示投票者的意志。他在告诉所有人:‘你们选,我做。这双手不是我的,是你们的。’”
北区移民聚居区是一个在地图上几乎找不到名字的地方。它没有正式的街道名称,没有市政供水管网,没有合法的电力接入。三万名居民——大部分是从偏远乡下来的季节性劳工、建筑工地的临时工、以及在城市各个角落里做零活的日结工人——住在一片由波纹铁皮、废弃集装箱和塑料布搭建成的聚落里。他们的饮用水来自三台深井泵和一套由非政府组织捐赠的简易水处理设备。那三台深井泵,就是维克拉姆名单上标注的“可用节点”之一。
阿迪亚抵达北区时,天刚蒙蒙亮。聚居区的入口处已经聚集了一大群人,手里提着空水桶和塑料瓶,脸上的表情不是愤怒——愤怒是后来的事,此刻他们脸上的表情是困惑。那种当你拧开水龙头却什么都没有流出来、而你明明昨天晚上还用这水煮过一锅饭时的困惑。
一个穿着褪色格子衬衫的中年男人站在人群最前面,手里拿着一把大号管钳,正在试图撬开水泵房的门锁。水泵房是一个用混凝土预制板搭成的小房子,只有一间车库那么大,门上挂着一把锈迹斑斑的铁锁。但锁不是被撬开的——阿迪亚走近之后发现,锁舌已经被一种精密工具从内部顶开了,门框上只留下一个几乎不可见的划痕。
“谁进去过?”他亮出警徽。
人群发出一阵嗡嗡声。有人说昨晚看到一个穿深色工装的人在附近转悠,有人说是两个年轻人骑着摩托车来过,还有人说根本没看到任何人——水泵房的门一直是锁着的,直到今天早上水停了,他们才发现锁已经坏了。
阿迪亚推开门,用手电筒扫射内部。三台深井泵的控制柜上,每一台都插着一个陌生的设备——巴掌大小,外壳是黑色塑料,带一根短天线。他认识这种设备。米兰达在水塔实验室里给他看过类似的东西:工业控制系统的无线信号注入器,通过电磁感应向PLC的模拟输入通道发送虚假信号。
虚假信号的内容是什么,他不需要猜。水泵没有停止运转,它们只是被“骗”了——控制柜的传感器被注入器发出的信号欺骗,以为水压正常、水位正常、所有参数都在安全范围之内。于是水泵继续运转,但出水管道的阀门被另一个信号悄悄关闭了。水还在抽,只是不知道流向了哪里。
深井泵从地下抽出来的水正在被无声地排进蛇道的暗渠,流进那座一百二十年历史的迷宫,流到那些永远不会被阳光照到的角落里。
一个老人拄着一根竹竿走到水泵房门口,眯着眼睛看阿迪亚蹲在地上检查控制柜。
“这是第二次了。”老人说。
阿迪亚抬起头。
“你说什么?”
“停水。第一次是六天前的晚上,就是神庙那边出事的那晚。那次停的时间短,大概两个多小时,后来又来了。这次不知道要停多久。”
阿迪亚站起来,看着老人浑浊的眼睛。
“六天前的晚上——你能确定时间吗?”
“确定。我老伴每晚睡前要吃药,必须用水送服。那晚她没吃成,所以我记得很清楚。停水的时间是差一刻十二点。”
差一刻十二点。二十三点四十五分。与供水站接到那十三秒非法指令的时间相差不到两分钟。
“然后呢?水是什么时候来的?”
“凌晨两点多。我起来上厕所,发现水龙头又有水了。”
凌晨两点多——踩踏事件发生大约一个半小时之后。
阿迪亚在笔记本上重新画了一条时间线。二十三点四十五分,北区移民区供水被切断。二十三点四十七分,神庙北侧供水站主泵被非法指令停机。两个事件相隔不到两分钟,但北区的停水早于神庙。这不是巧合。北区不是副目标,它是主目标。神庙的停水是为了制造踩踏,而北区的停水是为了制造什么?
他一时间想不出答案,但笔记本上又多了三行字:“北区停水早于神庙——北区是最早的触发点——也许‘秩序’当初设计的第一个目标从来不是神庙。他选择神庙,是因为庙在明处。北区在暗处,死多少人都没人上新闻。”
他把这行字圈起来,在旁边写了一个新的标注:“如果这次投票选出的移民区才是他最初想攻击的目标,那么上一次的踩踏事件——也许只是为了给这次攻击做一次热身。”
上午十点,邦政府的水车抵达北区。十辆水罐车在聚居区入口排成一排,每辆车载着五千升水。对于一个三万多人的社区来说,这点水每人分不到两升。人群在水车周围挤成了一团,争吵声、哭喊声、塑料水桶互相撞击的声音混成一片。阿迪亚站在水泵房的阴影里,看着这一切,忽然想起了“螺丝刀”在投票讨论区里说过的那句话——“移民区。那里死人没人关心。”
他不自觉地握紧了拳头。
手机震动了。拉维发来一条加密消息:
“‘螺丝刀’的工作排班表和论坛上线时间——部分吻合。我需要你在北区帮忙确认一件事:北区的水泵站维护记录里有没有一个叫迪帕克·夏尔玛的名字。如果有,我就能把他和水务局的排班表对上。”
阿迪亚回复:“在这里查。给我三十分钟。”
水泵房里有一本落满灰尘的维护日志,封面被水浸过,字迹模糊。他翻到最近三个月的记录。每一页都有签名。十一月十二日——迪帕克·夏尔玛,例行巡检。十一月二十五日——迪帕克·夏尔玛,更换滤网。十二月八日——迪帕克·夏尔玛,校准压力传感器。一月六日——也就是踩踏事件发生前两天——迪帕克·夏尔玛,控制器固件升级。
他熟悉控制器的固件结构,他使用同样的梯形图语言,他在这里已经工作了至少两年。
而且他选择今天停水,因为他知道三台泵的维护周期、知道怎么让泵还在运转却不出水、知道怎么把几万升饮用水直接排进暗渠。
迪帕克·夏尔玛就是“螺丝刀”。
阿迪亚把这个名字和工号拍下来发给了拉维,附上一条文字:“‘螺丝刀’的外壳是水务局的维修工。他今天排休,但有人凌晨就看到他在泵房附近活动。查他最近六个月的通话记录、网络连接和银行流水。”
拉维的回复只有两个字。
“收到。”
阿迪亚走出水泵房,外面的阳光已经变得刺眼。水车周围的人群越来越多,有人在推搡,有孩子在哭,有一个年轻女人抱着一个空的塑料桶蹲在地上,用纱丽的一角捂着嘴无声地抽泣。他停住了。他想起赫玛,想起她弯腰捡凉鞋的那两秒钟,想起那个穿着黄色上衣回头微笑的安维。
三万人没有水喝,而制造这一切的人此刻正坐在某个地方,盯着屏幕上的新闻,在“遗忘之境”的加密频道里发表关于“效能评估”的新帖子。他可能正在敲字。
阿迪亚在笔记本上翻到新的一页。
他要通过迪帕克·夏尔玛,找到一个名字——一个不能藏在水务局工装和匿名ID后面的名字。他写道:“迪帕克有维护排班表、系统原理图和进出权限。但他没有洗钱能力,也没有电磁脉冲装置。他背后还有人。那个人懂定向微波,能在事后用假旗行动掩盖痕迹,能用‘纯净水域’这种影子公司做外围资产。他不是一个维修工——他是真正触碰电网心脏的人。他的名字不在工号系统里。”


暂无评论,来抢沙发吧!