六个月后,卡纳克普尔进入雨季。
蛇道的暗渠涨了水,那些干涸多年的岔道重新被浑浊的雨水灌满,带着地面上的泥沙和垃圾一起涌进一百二十年前英国人修建的红砖拱顶。拉维坐在渠边,脚悬在水面上方,看着水流从脚下翻涌而过,手里拿着一封刚拆开的录取通知书。信纸被雨季的潮气浸得发软,但油墨印刷的字体依然清晰——卡纳克普尔理工学院,电气工程系,全额奖学金。
他把信折好,塞进裤兜,从石板上站起来,沿着蛇道往老城区的方向走。路过茶摊时,老板叫住了他,递给他一杯热茶,说有个东西放在这里等他来取。是一台二手的笔记本电脑,外壳上有几道划痕,但键盘是全新的。没有留名字,只留了一张纸条,用钢笔写的,字迹工整得像是打印出来的——“这台电脑的防火墙是我亲自写的。别拆。”
拉维把电脑夹在腋下,继续走。他没有回头。暗渠在他身后发出雨季特有的轰鸣,像一头在地下翻身的巨兽。
米兰达在水塔实验室里打包最后一批设备。服务器阵列已经拆走了一半,剩下的几台正在被一个年轻的技术人员装进防震箱。她签了一份新的合同——不是和邦政府,而是和一所跨国工控安全公司。职位是首席威胁分析师,办公室在另一座城市,离卡纳克普尔很远。
“你真的不打算留下?”德赛站在门口,手里拎着两杯外卖咖啡。他的头发比六个月前更乱,但眼神比那时候平静了很多。
“这个地方的每一台服务器我都摸过,”米兰达接过咖啡,用下巴指了指空荡荡的机架,“每一行代码我都见过。好的代码,坏的代码,杀人的代码。再待下去,我会开始写自己的代码。而我不确定我会写出什么样的东西。”
德赛没有接话。他看着米兰达把最后一块硬盘装进防水箱,扣上锁扣,贴上标签。标签上写着——“卡纳克普尔电网安全评估档案,机密级,保存期限二十年。”
“你相信二十年之后还会有人看这些东西吗?”
“不相信。”米兰达站起来,拍了拍手上的灰,“但我相信如果没有人保存它们,二十年后会有另一座城市在凌晨断水,而另一群人会对着新闻镜头说‘这是一起不幸的意外’。”
她提起箱子,走到门口,停了一下。
“德赛,那个论坛——还在运行。”
“我知道。”
“沉默者的数量,比之前更多了。”
德赛没有回答,但米兰达也不需要他回答。她推开门,走进雨季灰蒙蒙的日光里。水塔铁门关上的声音在纺织厂废墟里回荡了一会儿,然后被雨声吞没。
阿努拉格·瓦尔玛的辞职信是在踩踏事件调查报告公布后的第三天提交的。报告里没有提到他的名字——至少正文里没有。但在附件第四十七页,有一行脚注,写的是:“神庙东区扩建工程十年前的事故,系因配电柜地基施工未达规范标准导致。当年负责安全审计并签署不予追究结论的委员会主席,已于事发后获晋升,现仍在职。”
没有人点名,但所有人都知道那是谁。
阿努拉格没有在辞职后离开卡纳克普尔。他搬回了赫玛的公寓——不是以丈夫的身份,他住在一楼那间原本用来堆放杂物的储物间里,赫玛住在三楼,带着安维的三十七个相框。邻居们偶尔看到他在阳台上坐着,面前摊着一份旧报纸,眼睛盯着某个不在报纸上的地方。
赫玛把安维的照片做成了一个数字相册,发给了阿迪亚。她在附言里写道:“这些照片不需要再挂在墙上了。它们应该被看到。被所有人看到。”阿迪亚把相册存进了一个加密文件夹,和维克拉姆的日记碎片、米兰达的代码分析报告、以及他自己那本墨绿色笔记本的扫描件放在一起。
马赫什·拉奥被从仓库带走后,一直没有开口。不是在审讯中——审讯期间他说了很多,关于萨米尔,关于代码,关于“秩序”,关于每一场攻击的技术细节。他不再开口是在两个月后,在看守所的会见室里,当他的公设辩护律师告诉他“遗忘之境”论坛已经重新上线,新管理员的ID叫“终章二世”的时候。他的嘴唇动了一下,像是要说什么,然后摇了摇头,站起来走回了监室。从那以后,他拒绝了一切探视。
但他在最后一次审讯中留下的供述,成了公诉案件的核心证据。凭借这份供述和米兰达提取的服务器日志,检察官成功起诉了十一名论坛活跃用户——不是沉默的投票者,而是那些发表过具体攻击建议、分享过入侵代码、提供过目标情报的核心成员。“螺丝刀”的旧号被证实由至少三人轮流使用,其中两人仍在逃。邦警察总局成立了专门的网络犯罪特别小组,由德赛担任技术顾问,负责追踪剩余的匿名ID。德赛在就职的第一天把“遗忘之境”的登录页面设为了自己的浏览器主页,这样他每天早上打开电脑看到的第一个画面,就是那座黑暗迷宫的入口。
而阿迪亚·夏尔马的结案报告写了很久。
不是因为没有内容可写——恰恰相反,可写的东西太多。米兰达的技术分析、拉维的论坛数据、德赛的法证报告、马赫什的供词、维克拉姆的日记、赫玛的照片——所有东西堆在他办公桌上,像一座由证据构成的积木塔,每一块都承重,每一块都摇摇欲坠。他反复整理这些材料,试图从中梳理出一条清晰的因果链条,一个可供后人参考的侦破路径。但他发现,无论他如何排列,总有一些东西无法归类,无法归档,无法放进任何一个官方报告的格式里。
比如那些沉默的投票者。
在报告的正式版本里,阿迪亚按照格式列出了所有关键发现:基础设施攻击的技术路径、论坛的组织结构、核心成员的犯罪事实、物理证据的采集与鉴定结果。他在报告末尾附上了一份建议——加强关键基础设施的网络安全审计、建立工控系统入侵检测机制、将网络教唆犯罪纳入反恐法的适用范围。这些建议后来被邦政府采纳,写进了一部以卡纳克普尔命名的网络安全法案。
但他私下里还写了另一份附录。
这份附录没有提交给任何人。他用那本墨绿色笔记本最后剩下的几页空白纸,写了一份“投票者”的数据统计:每一个ID的注册时间,每一次投票的选项,每一次登录的在线时长。然后他通过拉维的脚本,将这些ID的出口节点映射到城市地图上,形成了一张热力图。
地图上密密麻麻分布着光点。
不是集中在某个区域,不是集中在某个阶层,不是集中在某类人群。光点散落在每一个区,每一条街道,每一个住宅小区。北区移民区有,老工业区有,大学城有,神庙周边最富裕的朝圣商业街上也有。这些光点之间没有共同特征,除了一个——它们都亮过。
阿迪亚把这张地图夹进私人档案的最底层,和赫玛发给他的安维照片存在同一个文件夹里。他在旁边写了一段话,笔迹潦草,像是写到一半就开始犹豫要不要继续。
“一万四千个匿名赞成票。每一个代表一个活人。没有任何法律可以起诉他们,因为他们没有写下一行代码,没有输入过一条指令,没有碰过任何一个急停开关。他们只是在键盘上敲了一下。他们只是四十七秒。但每一票都被计入了那个让系统崩溃的逻辑门,而他们永远不会知道,当他们在午夜按鼠标时,握住他们手指的是什么样的上帝。”
拉维在雨季的第三个星期搬进了学校宿舍。
他把蛇道的窝棚拆了,石棉瓦还给了隔壁摆摊的大叔,塑料布叠好放在渠边的旧衣物回收箱旁。他只带走了两样东西——那台阿迪亚留给他的笔记本电脑,和一块刻着“老东西”三个字的砖头。
他在宿舍床头摆好砖头,室友问他这是什么,他说是一个老师的墓碑。室友没有再问。
开学的第一堂课是电路原理。教授在黑板前画着电阻、电容和电感符号,拉维坐在最后一排,用新笔记本电脑里预装的一个仿真软件搭建一座小型电网模型。他给模型设了三个故障节点,然后逐一编写自愈程序。写到第三个时,他停了手,盯着屏幕上闪烁的光标看了很久,然后把自愈程序全部删了,重新建模。这一次,他没有设故障节点。
下课铃响了。他合上电脑,走到走廊尽头的窗边,看着校园外远处那座熟悉的金顶。神庙的钟声正在敲响,和六个月前没有两样。信徒们依旧在排队,依旧在祈祷,依旧有人在许愿。
没有人记得那些匿名投票者的ID,没有人会去追问那一万四千张赞成票背后的脸孔。这座城市继续信仰它的神明,继续在每一个朝圣季迎接成千上万的信徒,继续将它的脆弱隐藏在金顶的光辉之下。暗渠里的水还在流淌,流过旧闸室,流过那间被遗弃的工作室,流过萨米尔曾经躺过的那块石板。而电网照常运行,供水照常循环,钟声照常敲响,仿佛什么都没有发生过。
阿迪亚将那页地图放进一个防水档案袋,封好,标上日期。他把袋子放进办公室最深的抽屉里,用钥匙锁了两圈。窗外雨季的乌云正在散开,神庙的金顶反射出第一缕阳光,耀眼得像一颗被重新打磨过的铆钉。
他拿起办公桌上最后一杯茶,茶已经凉了。他没有起身续热水,而是翻开笔记本的最后一页,在空白处写下最后一句话。
“有一万四千个刽子手,从未离开过这座城市。他们只是在神的门前换了一双鞋。”
然后他放下笔,将笔记本合拢。雨季的雨水顺着窗玻璃滑下来,模糊了外面的街景,也模糊了远处那座金顶的轮廓。他知道遗忘已经开始,和每一次灾难之后一样——人们会忘记恐惧,忘记愤怒,忘记那些在黑暗中被轻轻按下的键。但没有人会忘记排队时松开的凉鞋,没有人会忘记铜钟的余音,也没有人会忘记神像前长明灯里那些永不干涸的酥油。它们一直在烧,和第一天没有两样。


暂无评论,来抢沙发吧!