8. 完美意外

维沙卡警察总局三楼西翼的灯光在天亮之前从未熄灭过。

萨米尔坐在自己的办公桌前,面前摊着三份打印出来的系统日志,每一份都用不同颜色的荧光笔标注了异常节点。红色代表被删除的警报记录,蓝色代表被篡改的流量统计,黄色代表他尚未确定性质但直觉告诉他不对劲的数据包。三份日志叠在一起,厚度大约两厘米,但萨米尔知道这两厘米的纸张里封存着一个足以炸毁整个萨哈拉联邦执法系统的真相。

他的目光停留在红色标注最密集的那一页。昨晚八点零九分,他的账号登入了“天幕”系统,执行了一条删除指令,然后在一分钟之内登出。登出IP地址显示为他自己的办公室电脑,但那个时间点他正坐在纳迪亚的诊室里,手边只有一部手机,连局里的内网都连不上。有人远程调用了他的账号凭证,而且调用方式极其高明——不是暴力破解,不是钓鱼获取,而是直接绕过了“天幕”的双因素认证系统,用一种他从未见过的方式伪造了生物识别验证的通过信号。

他拿起桌上的内部电话,拨了技术鉴定科的号码。响了两声之后,对方接了起来,声音带着熬夜值班特有的沙哑。

“我是萨米尔·乔杜里。我需要你们帮我查一个设备的物理MAC地址。”他把昨晚那个未授权登录的会话ID报了过去,“这个会话的终端设备类型和物理地址,现在能查到吗?”

对方敲了一阵键盘,然后回答:“乔杜里探员,这个会话的终端信息显示是……空的。不是被删除了,而是从一开始就没有记录。就像有人用一个根本不存在的设备完成了登录。”

萨米尔挂断电话,把椅子往后推了推,仰头看着天花板上那盏不断发出低频嗡鸣的日光灯管。一个不存在的设备。十年前拉菲克给他上第一堂网络安全课时,提到过一个理论上的概念——“幽灵节点”。在网络拓扑中构建一个完全虚拟的终端设备,它没有物理实体,没有MAC地址,没有出厂编号,只存在于协议层的数据流中,像一个只会在镜子中出现的倒影。当时萨米尔觉得这只是教科书上的极端假设,现实中不可能实现。

但现在他知道了。拉菲克——或者说raven——在十年前就已经把假设变成了可执行的代码。

他正要把这个发现写进笔记,手机震动了。来电显示是纳迪亚。

“萨米尔,”纳迪亚的声音听起来有些急促,这和她在诊所里一贯的冷静语调形成了鲜明对比,“我昨晚把你给我的交通部数据流量截图拿给了我在国立医科大学信息工程系的一个同事看。他叫法尔汉,是我们医院信息系统安全顾问。他看完之后问了我一个问题,我需要你现在过来一趟。”

“什么问题?”

“他问我这些数据是不是来自‘天幕’系统的前身——十年前萨哈拉电信内部使用的那套网络监控架构。我告诉他不确定。然后他做了一件事——他把那些流量截图中的特征码和十年前萨哈拉电信公开过的架构文档进行了比对,匹配率高达百分之八十九。”

萨米尔从椅子上站了起来。十年前萨哈拉电信的那套监控架构,正是拉菲克在离职前负责维护的系统。而那套系统在拉菲克离职后的第二年就被宣布“全面升级”并替换为新的平台,所有的旧架构文档都被列为内部机密。

“我马上到。”他说。

二十分钟后,他站在国立医科大学信息工程系的一间服务器机房里。机房的空调温度调得很低,冷气从地板下方的通风口往上吹,带着一股氟利昂和硅尘混合的刺鼻气味。纳迪亚的法尔汉是一个戴黑框眼镜的年轻人,头发乱得像是刚从床上爬起来,但眼睛里有一种只有顶级技术专家才有的锐利光芒。

法尔汉把萨米尔带到一台大型显示器前面,屏幕上并排显示着两组数据流的结构图。左边是十年前萨哈拉电信的网络监控架构文档中描述的数据包格式,右边是昨晚交通部入侵事件中被拦截的数据流样本。

“你看这里,”法尔汉用激光笔指着两组数据的头部结构,“标准TCP/IP协议的数据包头部有固定的字段顺序——源IP、目标IP、端口号、序列号。但这两组数据在序列号字段后面都多了一个十六字节的自定义扩展字段。这个扩展字段不是任何公开协议的一部分,它是萨哈拉电信的工程师自己写的。十年前参与编写这个字段的工程师只有三个人,其中两个已经离职出国,剩下一个——”他停顿了一下,“——叫拉菲克·汗。”

萨米尔盯着屏幕上两组几乎完全重叠的数据结构图,感到一阵冷意从脊椎底部升起。这不是巧合,甚至不是模仿。这就是同一个代码库的产物,由同一个大脑设计,带着同一个工程师特有的编码习惯和美学偏好。

“还有一件事。”法尔汉切换了屏幕显示,调出一张时间轴图表。“我把昨晚入侵事件的数据流和过去十年间萨哈拉联邦境内所有已知的未破获网络入侵案件进行了特征比对。结果显示,在过去九年零十个月里,有超过一百四十起入侵事件使用了相同的扩展字段格式。所有入侵事件的目标都是执法系统或政府数据库,没有一起涉及金融盗窃,没有一起涉及个人信息贩卖。”

“一百四十起。”萨米尔重复了这个数字。一百四十,恰好和raven数据库中“已完成处置”的案件数量一致。

“这些入侵事件的分布模式也非常奇怪。”法尔汉把一张萨哈拉联邦地图叠加上时间轴数据,地图上亮起了一百多个光点,从东部港口城市到北部山区边境,覆盖了几乎整个联邦的版图。“正常的网络犯罪有明显的区域聚集性——犯罪分子倾向于在自己熟悉的地理范围内活动。但这些光点的分布完全不遵循地理邻近性原则。它看起来像是一个人在过去十年里,有意地把自己的活动均匀地撒播在整个联邦境内。”

“为什么?”

“为了制造噪音。”萨米尔身后的纳迪亚忽然开口。两个男人同时转头看向她。她靠在机柜上,双臂交叉,眼神中透出一种介于惊叹和恐惧之间的复杂情绪。

“如果入侵点集中在同一个城市,调查人员很快就会锁定一个地理范围。但如果入侵点均匀分布在全国各地,调查的方向就会从‘谁做的’变成‘怎么可能有人做到’,然后进入永无止境的跨区域协调和管辖权纠纷,最终不了了之。”纳迪亚说,“这不是单纯的谨慎。这是一种对萨哈拉执法系统官僚弱点的极度精确的利用。能做到这一点的,要么是一个大型犯罪集团,要么是——”

“一个人。”萨米尔接上了她的话,“一个人,花了十年,研究透了萨哈拉联邦每一个执法机构的内部流程。”

法尔汉摘下眼镜擦了擦镜片,重新戴上之后看着萨米尔。“乔杜里探员,这个人——不管他是谁——在过去十年里进入萨哈拉联邦政府系统的深度,可能超过了联邦政府对自己系统的了解程度。如果他想做什么坏事,他早就可以做了。但他没有。他只是不断地检索信息、建立档案、完成精准的信息干预。你知道这让我想到什么吗?”

萨米尔摇了摇头。

“一个档案管理员。”法尔汉说,“一个在黑暗中独自工作了十年的档案管理员。他把整个联邦的罪恶都编了号,做了索引,写了摘要,然后放进了只有他自己能找到的架子上。他不是黑客,他是一个在数字世界里替所有受害者整理证据的孤独书记员。”

机房里忽然安静下来。空调的冷气继续从地板下涌出,服务器机架上的蓝色LED灯在金属外壳上投下冷调的条纹光斑。萨米尔想起了拉菲克公寓里那个落满灰尘的铁盒,盒子里整整齐齐码着的硬盘和护照,想起了那间关着灯的书房里唯一亮着的屏幕,想起了拉菲克在停尸房里一具一具细节记录女儿尸体时那种近乎机械的冷静。

那不是冷静。那是十年独自整理罪案档案所练就的职业反射。

他的手机又震动了。这次是一条来自加密应用的消息,发件人是拉菲克。

“今晚六点,老地方。带纳迪亚一起来。”

萨米尔把手机屏幕转给纳迪亚看。她读完消息,点了点头,然后转向法尔汉。“你刚才说十年前参与编写那个扩展字段的工程师只有三个人。另外两个人的名字你能查到吗?”

法尔汉敲了几下键盘,调出一份萨哈拉电信十年前的内部人事档案。屏幕上出现了三个名字——拉菲克·汗、一个叫巴希尔·库雷希的高级架构师、还有一个叫瓦卡尔·纳迪姆的网络协议工程师。

“巴希尔·库雷希,”法尔汉念着屏幕上的信息,“十年前在萨哈拉电信内部审计中被发现与一起数据泄露事件有关,在调查完成之前突然辞职,移居到了坎布尔。之后他的信息就从公开记录中消失了。瓦卡尔·纳迪姆目前仍在萨哈拉电信任职,现在是网络安全部的总监。”

萨米尔把这个信息记下来。然后他忽然想到了一个问题。“法尔汉,你说拉菲克是编写这个扩展字段的工程师之一。那么他写的部分具体是什么?”

法尔汉打开了架构文档的详细分工表,往下翻了几页,然后停住。他的表情出现了微妙的变化。

“这个扩展字段的结构分成三个模块:加密层、传输层和隐藏层。拉菲克·汗负责的是隐藏层——也就是让整个字段在普通流量分析中看起来像是随机噪声,不被任何监测系统识别为异常数据。”法尔汉顿了一下,“换句话说,他写的是让这套监控架构‘看不见’的那一部分。而如果有人在之后的系统升级中删掉了他写的这部分代码,那么所有基于这套架构运行的监控系统——”

“——都有一个他们看不见的盲区。”萨米尔完成了他的句子。

这个盲区存在了十年。在这十年里,萨哈拉联邦的所有执法机构都在用一套号称“无死角”的网络监控系统,而这套系统的底层架构中嵌着一个由拉菲克·汗亲手编写的隐蔽层。这个隐蔽层可以在任何时候被激活,让指定的数据流量从所有监控屏幕上彻底消失。

十年前,拉菲克以为他写的代码会在自己离职后被清除。但升级系统的人显然没有删掉那个隐蔽层——也许他们觉得太复杂不敢动,也许他们根本没发现它的存在。

不管原因是什么,结果是同一个:拉菲克在不知不觉中给自己留下了一把钥匙。而raven用这把钥匙,在十年里开了一百四十扇门。

萨米尔离开信息工程系大楼时,天已经全亮了。校园里陆续出现了上早课的学生,有人在草地上铺着毯子看书,有人在咖啡车前排着队,有人骑着自行车穿过梧桐树荫往实验室方向去。所有这一切看起来都如此正常,如此平静,像是这个世界上没有任何暗流在肉眼不可及的地方涌动。但萨米尔知道,在地表之下,在光纤线缆中,在服务器机架上,在那些不断闪烁的蓝色LED灯后面,一场持续了十年的静默战争正在进入它的终章。

他走到停车场,打开车门时手机再次震动。这次不是拉菲克,是局里的值班员。

“乔杜里探员,有个新情况需要你回来处理。维沙卡国立法律大学官网的学籍公示页面上,今天早上更新了一条新的公示信息。是一个女学生的退学公示,退学原因写的是‘因遭受暴力犯罪导致死亡’。这条信息发布之后不到一小时,被人在社交媒体上转发了超过六千次。现在联邦教育部的新闻办公室打电话来问我们这是怎么回事,他们要一个官方的解释。”

萨米尔靠在车门上,闭上了眼睛。

社会性处决第一阶段。

那个电话,那个三天期限的倒计时,他全都知道。但当他亲眼看到这枚齿轮开始转动时,仍然感到一阵从脊柱深处向上蔓延的寒意。

“那个学生的名字叫什么?”他问,尽管他已经知道了答案。

“阿米拉·汗。”值班员说,“法学院三年级,GPA排名全院第二。等一下……这个案子是不是和两周前旧棉纺厂那个——”

萨米尔挂断了电话。

他发动汽车,驶出停车场,汇入早高峰的车流。城市在他周围运转,一如既往——公交车在站台前排队上下客,小贩推着铁皮车在人行道上摆摊,写字楼的玻璃幕墙反射着清晨的橙色阳光。一切都和昨天一样,和前天一样,和过去十年里的每一个早晨一样。

但在那些不断变化的手机屏幕上,在成千上万个社交媒体的信息流中,阿米拉的名字正在以几何级数的速度扩散。一个被联邦最高法院当庭释放的案件,一个被所有主流媒体默契回避的名字,此刻正通过一条高校官网的常规公示,像病毒一样渗透进萨哈拉公共舆论的每一个角落。没有人能阻止它——因为删掉一条学籍公示需要走教育部的行政流程,而走完这个流程至少需要两周。到那个时候,阿米拉的名字已经刻在了这个国家的数字记忆中,再也无法被抹掉。

萨米尔在红灯前停下车,看了一眼副驾驶座位上的加密硬盘。硬盘里存着法尔汉刚才展示的所有数据——十年前的扩展字段结构、一百四十起未破获入侵案件的分布图、以及那个隐藏在萨哈拉联邦监控系统底层的、由拉菲克亲手编写的盲区代码。

绿灯亮了。他踩下油门,向左转入通往城西老港区的岔路。

在他身后,维沙卡市的上空正在升起一轮明亮的太阳。阳光照在国立法律大学的钟楼上,照在旧棉纺厂锈迹斑斑的屋顶上,照在城西港口堆场上那些满载来自世界各地货物的集装箱上。它也照在拉菲克公寓的窗户上——窗户里,那个独自坐在黑暗中的男人刚刚合上了笔记本电脑,站起来,走到墙边,把阿米拉和法蒂玛的两张照片从墙上取下来,放进了一个旧帆布背包里。

然后他推开门,走进了阳光中。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

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