7. 海东国的幽灵

文京区监察医务院对面的公园里,榉树的叶子开始泛黄。

下午三点,阳光斜斜地穿过树冠,在地面上投下破碎的光斑。九十九朔夜坐在一张远离步道的铸铁长椅上,膝盖上摊着一台没有任何网络连接标记的平板电脑。黑崎冴站在长椅旁,双臂交叉,白大褂已经脱掉,但身上仍带着一股淡淡的消毒水气味。立花羽美最后一个到达,手里拿着一个牛皮纸信封。

“我先说。”九十九等两人都站定后开口,“韩志元给的秘钥列表,我已经分析过了。四万台设备,每一台都有一个独一无二的数字认证证书。想入侵其中任何一台,攻击者必须同时具备三个条件:物理设备的序列号、对应的认证秘钥,以及一个能够绕过SCADA系统安全网关的零日漏洞。”

“这三样东西,”黑崎说,“‘鸦’现在都有了。”

“不仅如此。”九十九将平板转向两人,屏幕上是一张世界地图,上面分布着数千个红色光点,密集如麻疹皮疹。“这是我追踪到的所有被入侵设备的位置。它们不是集中在一个地区,而是散布在全球十七个国家。东京约三千台,海东国仁川和首尔合计约一千二百台,其余分布在新加坡、雅加达、曼谷、悉尼甚至洛杉矶。每一台设备都在过去四周内被植入了同一套攻击框架,而这套框架的指令源——根据对僵尸网络流量的逆向分析——似乎来自海东国。”

“等等,”立花皱眉,“你刚说来自海东国?可我们之前所有线索都指向东京内部。”

“这正是关键。”九十九切换到另一张图,显示的是一组IP地址的溯源路径。“攻击指令的第一跳确实在海东国仁川市。但当我沿着这条路径反向渗透时,发现仁川的服务器只不过是一台被劫持了三年的网吧电脑。真正的主控节点——也就是发出原始攻击指令的地方——在经过十七层代理跳板之后,最终落在了一个让人意想不到的位置。”

他停下来,看了两人一眼。

“哪里?”黑崎问。

“东京都千代田区。IP地址的物理端口对应的是公正交易委员会大楼地下二层的机房。”

静默降临在三个人之间,像一块透明的玻璃突然碎裂。立花的手不由自主地攥紧了信封的边缘。公正交易委员会。那个理应调查天城科技垄断行为的独立监管机构,其内部网络竟然是攻击指令的最终跳板之一。

“这不意味着攻击者就在委员会内部。”九十九补充道,“更可能的情况是,有人入侵了委员会的服务器,将它们作为代理跳板。但要做到这一点,入侵者需要对委员会的防火墙架构、VPN接入协议和内网拓扑有极高的了解。要么是内部人员配合,要么是外部入侵者拿到了完整的内网拓扑图。”

“片山局长。”立花的声音发干,“韩志元说内部安全部在委员会里有联络人。那三封缓存的邮件,收件人就是他。”

黑崎沉默了一会儿,然后开口:“宫田手掌上的神经烧灼痕,我在德文文献里找到了对应的先例。那篇论文的作者之一,十年前离开马普研究所后加入了一家私营安全承包商。这家公司后来被天城科技收购,成了内部安全部的前身。”

“那个作者叫什么?”九十九问。

“署名是Y. Karasu。论文上的名字用的是片假名,没有汉字。”

“Karasu。”九十九重复了一遍,手指在他的记事本上敲了敲,“‘鸦’的ID就是这个——在日语里,Karasu就是乌鸦的意思。”

线索开始收拢,像一个正在被拉紧的绳结。

立花将手中的牛皮纸信封放在长椅上打开。里面是十几张打印出来的档案页,纸张边缘发黄,有反复翻阅留下的折痕。“这些是我昨晚从旧同事手里拿到的。公正交易委员会过去五年所有涉及日东经济协定的内部调查终止记录。”她抽出其中三张,“每一起被终止的调查都遵循相同的模式——匿名举报、初步核实、突然叫停。叫停的理由无一例外都是‘避免影响日东经济协定谈判’。而每一次叫停后,相关案件的电子档案都会在六个月后被迁移到一个叫做‘长期归档’的存储分区里。问题是,这个分区的物理服务器,恰好就是你们刚才说的那台——千代田区地下二层机房。”

九十九拿起那三张档案页,快速浏览。第一起是四年前某日本建筑企业在海东国机场项目中涉嫌行贿,调查启动后十一天被叫停。第二起是三年前三浦财阀旗下物流公司的掠夺性定价案——这就是立花当年被迫放弃的那一桩。第三起是两年前海东国泰成集团在日本国内某港口项目的反向投资审查,调查启动后仅五天就被冻结。

“三起案件,都和天城科技没有直接关系。”九十九放下档案。

“但都和天城科技背后的资本网络有关系。”立花说,“三浦财阀是天城科技母公司的第二大股东。泰成集团是天城科技在海东国的核心合作伙伴。而那家建筑企业——他们后来成了HT-7项目的分包商。”

“所以公正交易委员会过去五年一直在系统地压制任何可能触碰这张资本网络的调查。”黑崎将烟掐灭——他没点燃,只是习惯性地将过滤嘴捏扁,“而现在,这张网络上的两个关键节点,宫田和奥村,被一个自称要执行‘裁决’的匿名者杀了。”

“不是‘自称’,”九十九纠正道,“是‘投票’。”

他打开平板上的一个加密文件夹,里面是“零号机库”论坛的存档截图。“鸦”发布的每一个投票帖都被他保存在这里,按时间顺序排列。第一个投票帖发布于宫田正树死前三天,标题是“HT-7项目协调责任人,有罪还是无罪?”投票时长七十二小时,总投票数四十七。结果是:有罪三十九票,无罪八票。

第二个投票帖发布于奥村彰人死亡前四天,投票标题是“天城科技首席法务官——排他性合同条款设计者”。投票时长九十六小时,总投票数六十三。结果:有罪五十一票,无罪十二票。

第三个投票帖——九十九将屏幕滑到最下方——发布于今天凌晨零点。标题是:“相泽孝典。天城科技CEO。垄断协议最终决策者。”投票时长设定为一百二十小时。截至目前,参与投票的人数已经超过两百。

“五天之后,”九十九说,“如果投票结果是‘有罪’,相泽就会死。”

立花盯着屏幕上不断跳动的计票数字,感到一阵彻骨的寒意。这些投票者是谁?他们是在哪里登录的?他们按下“有罪”按钮时,是出于正义的愤怒,还是仅仅被匿名性释放出的那种无需负责的毁灭欲所驱使?他们是否知道——或者在意——自己的每一次点击,都将通过一串代码、一条光纤、一个被劫持的智能设备,最终转化为现实世界中某个活人的死亡?

“我们必须阻止这件事。”她说。

“怎么阻止?”黑崎反问,“我们连‘鸦’是谁都不知道。”

“我知道他是谁。”九十九说。

两人同时转向他。

九十九将平板切换到一张技术分析图。上面是“鸦”在过去一个月中发布的全部帖子和私信的元数据分析结果——发布时间的间隔模式、代码的缩进习惯、错别字的分布频率、加密算法的偏好选择,以及一种极特殊的注释语法:在每段代码的末尾用两个正斜杠加一个空格再加注释内容,而不是常见的一个斜杠。

“这套编码习惯,”九十九说,“和我十年前在开源社区发布的一套渗透测试框架完全一致。那套框架叫做‘Karasu’,日语里的‘乌鸦’。是我十九岁时写的,当时发在GitHub上,星标超过三千。”

“他偷了你的代码?”立花问。

“不。”九十九的声音变得低沉,像是在讲述一件自己都不愿意承认的事情,“如果仅仅是偷代码,不可能连注释习惯和空格偏好都完全一致。这个人在过去十年里一直在使用和改良我的框架,将其从一个安全测试工具改造成了武器。他对这套框架的理解水平,不亚于我自己。”

他停了一下。

“换句话说,‘鸦’要么是我认识的人,要么……就是我在代码世界里投射出的另一个自己。一个选择用我创造的工具去做那些我从未敢做的事情的人。”

黑崎的手机在这时响了。他接起来,听了几秒,脸色骤变。

“刚才接到警视厅公安部曾我部的紧急通报,”他挂断电话后说,“公正交易委员会的片山局长今天上午没有出现在办公室。他的妻子报了失踪。最后一次目击是昨晚十点,他在千代田区的委员会大楼加班,之后监控录像显示他走进了地下二层的安全室。”

“然后呢?”立花问。

“然后录像中断了七分钟。”黑崎说,“恢复后,安全室的门开着,片山不在里面。他的个人物品——手机、钱包、外套——全部留在桌上。桌上还多了一样东西。”

“什么?”九十九已经站了起来。

“一张打印纸。上面印着‘有罪’两个字。以及一只乌鸦的剪影。”

公园里的风突然大了起来,榉树的叶子沙沙作响。九十九抬头看天,云层正在快速聚集,灰白色的云团低低地压在文京区的天际线上方,像一块尚未揭开的裹尸布。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

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