短剑。
利奥盯着屏幕上那行字,嘴唇无声地动了动,把这个名字在嘴里重新尝了一遍。三年了。这个名字像一枚被埋进皮肤深处的弹片,你以为伤口已经愈合,但阴天的时候它还是会隐隐作痛。
短剑不是真名,是代号。他们每个人都取了一个代号。埃文·哈里斯叫幽灵,因为他写的代码像鬼魂一样在网络里穿梭,不留下任何可以追踪的日志。短剑叫短剑,因为他偏好精确而锋利的攻击方式——只切入目标,从不波及周围。还有零号。零号什么都不叫自己,所以别人叫他零号。
三个少年,在暗网的某个角落里搭建了一个属于他们自己的数字王国。他们不图钱,不图名,只想证明自己比所有人都聪明。那个年纪的男孩对“聪明”有一种近乎病态的执念,仿佛智力是唯一能让世界向他们弯腰的东西。后来埃文被捕,短剑销声匿迹,零号彻底消失了——至少他们以为零号消失了。
利奥把文档关掉,打开了电脑的系统日志。有人在这台机器里植入了远程访问工具,时间可能早于他拿到这台电脑的那一刻。学院配发的设备,统一采购,统一安装系统镜像。如果有人能污染镜像文件,就等于在所有新生的电脑里都种下了一颗种子。
这是一个令人不安的推断,但利奥此刻没有时间沿着它往下挖。短剑的消息里提到了两件更重要的事:第一,雷丁顿家的电表用了错误的协议进行排查,说明有人在试图逆向工程那次攻击;第二,零号不喜欢别人浪费时间。
这句话的潜台词是:零号知道有人在查,零号在看。
利奥从床上站起来,走到窗前。河对岸的变电站依然亮着那排橘色的指示灯,在夜色中像一串沉默的眼睛。他忽然意识到一个问题:短剑是怎么找到他的?他的新身份是联邦证人保护计划的一部分,所有档案都被封存,所有数字足迹都被清理重建。如果短剑能找到利奥·卡特,那么零号也能。
这个念头让他后脑勺发凉。
第二天上午,利奥做了一件很普通的事情——去学院教务处确认选课。他在注册窗口排队,和旁边的学生闲聊了几句关于新学期课程安排的话,表现得像一个完全正常的十九岁新生。这是他在这三年里学到的另一个技能:在人群中制造一种模糊而温和的存在感。不特别热情,不特别冷漠,不特别聪明,不特别愚蠢。人们会记住一个极端的人,但不会记住一个刚刚好的人。
教务处的行政助理是个扎马尾的年轻女人,胸前的工作牌上写着“菲比”。她接过利奥递来的选课表,在键盘上敲了几下,忽然皱了皱眉。
“你的系统账号有一个安全提示,”菲比盯着屏幕说,“要求你尽快修改初始密码,并在账户设置中绑定手机验证。这是学院新的安全政策,上周刚下发的通知——你们新生应该都收到邮件了。”
“我没注意到,”利奥说,“谢谢提醒。”
菲比把选课表推回来,笑了笑。那个笑容很职业化,但眼神里有一丝异样的停留,像是她在什么地方见过这个人,只是一时想不起来。利奥接过表格,转身离开。他走进走廊尽头的洗手间,把自己锁在隔间里,深吸一口气。
菲比的眼神有问题。不是认出了埃文·哈里斯——那张脸从未被媒体曝光过,所有庭审记录都对未成年人进行了匿名处理。但菲比可能见过利奥·卡特这个身份档案里的某张照片,而那让她产生了一种朦胧的熟悉感。熟悉感是身份暴露的前奏。他必须更小心。
他掏出手机,连上公共无线网络,打开了一个完全不同的匿名浏览器。接下来的四十分钟里,他坐在洗手间的隔间里,用一种极其谨慎的方式搜索了“清算日”这个词。
这个词第一次出现是在八个月前的某个暗网论坛上。那个论坛的名字叫“天平”,服务器架设在赫伯利亚半岛,采用三层代理跳转和端到端加密,正常手段几乎无法追踪。论坛的口号是一行拉丁文——“Fiat iustitia, et pereat mundus”,意思是“即使世界毁灭,也要让正义实现”。
利奥没有直接进入“天平”,因为直接访问会留下入站流量记录。他用了一个迂回的方法:通过公共搜索引擎的缓存快照,浏览那些被无意中索引到的论坛页面。这些快照不完整,而且大多数是几个月前的旧数据,但足以让他拼凑出“清算日”组织的基本轮廓。
这个组织大约有八十到一百二十名核心成员,外围参与者无法统计。他们的运作方式让利奥感到脊背发凉:任何人都可以在“天平”论坛上提交一个“目标”——他们认为逃脱了法律制裁的罪人。提交者需要提供公开的新闻链接、法院文件或者其他可被验证的材料。然后,组织内部会进行初审,筛选出符合条件的案件,提交给一个由资深成员组成的委员会进行第二轮审查。
委员会审查通过后,案件会被放入一个公开的投票池。
任何人——字面意义上的任何人,只要能通过一个简单的验证码测试证明自己不是机器人——都可以在投票池中投下自己的意见。“清除”或者“保留”,二选一。投票使用分布式账本技术记录,不可篡改,但投票者的身份被多层加密保护。当某一案件的支持票数达到门槛,并且在一个月内保持稳定领先,就会进入“执行阶段”。
这整个过程叫做“公投”。
利奥读到这一段的时候,手指在手机屏幕上停住了。他想到的不是技术的精密——这套系统的架构虽然在匿名性和安全性上做得很好,但在技术上并非前无古人。真正让他感到不安的,是参与者的数量。
如果只有十几个人,这只是一个封闭的极端小圈子。如果参与人数达到了成百上千甚至上万,那就意味着每一张投票背后都是一个普通人——他们在白天可能是邮递员、会计、咖啡师或者便利店收银员,然后在夜晚打开一个匿名浏览器,点击一个按钮,决定另一个人的生死。
他们在做这件事的时候,可能正在吃晚饭,可能在陪孩子写作业,可能在刷新社交媒体的间隙里随手投了一票。他们感觉不到任何重量,因为那一票被分摊了。被分摊的罪恶感不像罪恶感。它轻得像一片羽毛,而足够多的羽毛可以压死一个人。
利奥继续往下翻。缓存快照显示,“清算日”在过去十个月里完成了至少四起被确认的“执行”。两起在美国——不,在奥斯特拉联邦——一起在卢森尼亚,一起在卡普坦共和国。目标分别是一个涉嫌内幕交易但未被起诉的银行家、一名因程序瑕疵被释放的连环施暴者、一个在海外避税天堂隐匿资产的矿业大亨,以及——
以及詹姆斯·雷丁顿。
格拉斯顿的对冲基金经理。内幕交易、养老金欺诈、在审计调查开始前六天离奇“意外死亡”。这些都是媒体在葬礼之后才开始零星报道的内容,因为活着的时候,雷丁顿的律师团队压住了所有负面新闻。
利奥把手机关掉,塞进口袋。隔间外有人进来洗手,水龙头哗哗响了十几秒,然后是烘手机的轰鸣声。等那个人离开后,他才从隔间里走出来,在镜子前洗了把脸。镜子里那张脸看起来有点陌生——不是因为容貌变了,而是因为它同时属于埃文·哈里斯和利奥·卡特两个人。
他开始往走廊另一头走,脑子里反复转着一个问题:如果“清算日”真的存在,如果他们真的在用公投决定目标,那么用来执行这些谋杀的工具从哪里来?
答案是零号。
零号拥有埃文·哈里斯三年前写的全部代码。那些代码不只是针对交通信号系统。埃文当时正处在一个疯狂积累的阶段,他写了几十个模块,涵盖了工业控制系统几乎所有常见的通信协议——Modbus、DNP3、IEC 60870、BACnet、LonWorks,甚至包括一些电力系统专用的IEC 61850规约。这些东西就像一把把钥匙,而整个奥斯特拉联邦的基础设施上挂着无数把对应的锁,每一把锁都等着被打开。
三年前,钥匙的主人被锁进了笼子。现在,有人捡起了那把钥匙。
下午五点,利奥离开学院,沿着河岸走回公寓。天色暗得很快,铅灰色的云层压得很低,风里带着一种要下雪的味道。他路过河滨大道时,刻意在雷丁顿的房子对面停了一会儿。那是一栋现代风格的白色住宅,大面积的玻璃幕墙和灰钢框架,门口没有任何警戒线,看不出这里曾在几天前死去一个人。智能豪宅——利奥在心里重复了一遍这个词。雷丁顿的每一个房间都由中央控制系统管理,灯光、温度、音乐、安保,包括那个控制心脏起搏器的手持终端。所有设备通过家庭网络连接到一个统一的网关,而网关对外暴露的端口,就是这栋房子的致命伤口。
利奥没有站太久。他知道自己出现在这里的每一秒都在增加暴露风险。
回到公寓楼下,电梯的显示屏坏了,闪着乱码。他走楼梯上四楼,在口袋里翻钥匙的时候,发现402的房门是虚掩的。
他停住了。指尖在门把手上方悬停了两厘米。房间里面很安静,没有翻动的声音,没有任何动静。但门缝里透出的光比出门时他留的那盏灯要亮得多——有人多开了一盏灯。
利奥用两根手指推开房门,身体侧在门框旁边,做好了随时后退的准备。
房间里坐着一个人。
是个年轻女人,大概二十五六岁,短发,穿着一件深灰色的西装外套,坐在他唯一的那把椅子上。她面前的桌上放着一杯冒着热气的咖啡——从楼下便利店买的,纸杯上的蓝色标志还没撕掉。她看起来像是已经坐了一段时间,等得很有耐心。
“你好,利奥,”她抬起头,露出一双颜色很浅的眼睛,介于灰色和绿色之间。声音平静,不带敌意,也没有笑容。
她伸手从外套内侧掏出一个皮夹,打开。里面是一张联邦探员的证件,照片下面印着一行字:奥斯特拉联邦调查局,网络犯罪处,特别探员塞丽娜·瓦莱克。
“你有两个选择,”瓦莱克说,“要么告诉我你是怎么知道詹姆斯·雷丁顿会在死前六天被审计调查的。要么解释一下,为什么一个刚入学三天的网络安全新生,会在学院沙箱里用Modbus协议扫描程序去测试——恰好在雷丁顿被杀的第二天。”
她把咖啡杯端起来,喝了一口。
“我会很认真地听。”


暂无评论,来抢沙发吧!