HiBizMan永久免费
📚Log In
📋 Table of Contents28
🌐 Language

第1章 夜航

中文

咖啡已经凉透了,杯底结了一层褐色的膜。Zero盯着屏幕上那行跳动的代码,拇指无意识地摩挲着鼠标侧面的凹痕——那里被他的汗渍浸得发亮。窗外是凌晨两点的佛山,远处某栋写字楼顶的航空灯一明一灭,那频率恰好和他面前屏幕上的数据包抖动吻合,看得他太阳穴一跳一跳地疼。 他已经坐了十一个小时。从星盾总部回到家是下午三点,他洗了把脸,打开那台改装过的微型服务器,开始追那条匿名消息。ID"Echo"发来的加密信息只有一行:"你查错方向了。数据不是从星盾出去的,是从星盾进来的。" 当时他盯着这行字看了整整三分钟。手指悬在键盘上,没有敲任何一个键。对方怎么知道他查的是数据外流?他的扫描程序只在星盾内网跑了十七秒就被安琪的权限切断——十七秒,理论上连一次完整的端口扫描都做不完。除非对方就在他切断前的那个瞬间,截获了他的查询参数。 他推开椅子站起来,走到窗边。铝框窗棂上凝了一层细密的水珠,佛山潮湿的夜风从缝隙里渗进来,带着远处夜市烧烤摊的油烟味和河涌的腥气。他把额头贴在冰凉的玻璃上,强迫自己把思绪切成碎片再重新拼合。 七层跳板。 第一层是新加坡的公用邮件中继,第二层是阿姆斯特丹的VPN网关,第三层穿透了北欧某家数据中心的虚拟机集群,第四层用了洋葱路由的默认中继节点……他一路剥下去,每一层都留下了规范的转发日志,规整得像是教科书上的示例代码。太干净了。干净得让他后颈发麻。 第五层开始不对劲。数据包的TTL值出现异常递减,中间有四次路由跳转没有留下IP头记录,像是有人在传输途中把整包数据拆成了碎片、换了个容器重新封装。这是量子棱镜特有的数据塑形技术——他在国安局的密级档案里读到过,那套系统能用纠缠态光子对将数据包分解成不可解析的量子态碎片,然后在对端重组。理论上不可追踪。 他起身去厨房倒水。路过茶几时瞥见那只白色的陶瓷咖啡杯,里面还剩半指深的黑色液体,表面浮着一层油光。他端起来泼进水槽,凉水冲刷下去的时候那些油花打着旋消失在排水口。他靠在料理台边沿,指关节无意识地叩击着不锈钢台面,发出沉闷的嗒嗒声。 第六层和第七层都落在量子棱镜的核心网段内。这意味着什么?要么对方本身就是量子棱镜的授权操作员,要么对方手里有量子棱镜的穿透工具——而后者的可能性微乎其微。那套系统的物理隔离做得比星盾还彻底,据他所知整个华南地区只有三个量子接入节点,每个都架在军用级别的地下掩体里。 他回到屏幕前,手指重新搭上键盘。敲了三行指令,调出"深渊"市场的历史快照API。那是个地下数据交易所,域名每七分钟轮换一次,交易用门罗币结算,卖家ID全部经过零知识证明匿名化处理。他之前从那里捞到过"先知的残影"——一份压缩到四百兆的二进制文件,据说是先知生前最后一次扫描量子棱镜网络拓扑时留下的痕迹。 但此刻API返回的结果是404。他刷新了缓存节点,切换了三个镜像站,甚至用老K留给他的那个深度爬虫脚本扫描了暗网索引——没有。"先知的残影"被下架了。卖家账户显示"已注销",注销时间戳是今晚十九点四十七分,比他收到Echo的消息晚了不到两小时。 Zero的呼吸停了一瞬。他的手指从键盘上抬起来,悬在半空,像一只被冻住的鸟。有人在清场。有人知道他在扒这条线,而且动作比他快。 他强迫自己做了三次深呼吸。空气里有股陈旧的电子元件受热后散发的气味——他那台服务器散热风扇的轴承有点松了,转速一高就会发出细碎的咔咔声。这个声音从大学时期就跟着他,在出租屋、网吧包间、公司的临时工位上,一刻不停地响了快十年。此刻它成了唯一稳定的参照物。 他把"先知的残影"副本从加密分区里调出来。那是他凌晨三点在深渊截到的,彼时卖家还在线,标价零点七个比特币。他用老K的混币钱包付了款,下载完成后甚至连解压都没做就切断了连接。那份东西在他硬盘里躺了不到二十小时,卖家就人间蒸发了。 他开始对比卖家注销前后深渊市场的交易哈希链。区块链上的一切都是公开的,但匿名性让绝大多数交易像投入深海的石子——你只知道它落下去了,不知道是谁扔的。他的脚本花了九分钟爬完了最近七十二小时的区块记录,在卖家的最后一个交易里发现了一笔异常转账:零值交易,没有门罗币流通,但附带了四字节的元数据。 十六进制转ASCII,"0x453a484f"。"E:HO"。未完的字符串。要么是对方的签名被截断了,要么是故意的——放一个饵在那等人咬。 Zero的喉咙发紧。他把椅子往后推了一尺,双腿伸直,后脑勺靠上椅背的顶部边缘。天花板上那盏老式日光灯管在轻微频闪,每次闪动都在他视网膜上留下残影,像暗房里定时曝光的底片。他有种被人从暗处盯着的感觉——对方知道他在这,知道他在查什么,甚至知道他在哪个节点上嗅探。这种感觉比他曾经在国安局特训时被人用激光瞄准器指过后脑勺的那次还让他不舒服。 他决定做最后一件事。用一条完全独立的线路——那台从不联网的离线分析机——对"先知的残影"做了MD5校验和二进制熵值分析。文件内容完好,没有被篡改的痕迹。但他的剥离脚本在文件尾部扫到了一个隐藏的标记段,那段数据在六小时前还没有出现。 有人远程给他的本地文件打了补丁。 Zero猛地站起来。椅子腿在地砖上刮出尖锐的一声。他三步走到墙角那个家用路由器旁边,手指戳进重置孔,三秒后所有指示灯灭掉再亮起。他又转身关掉了服务器的电源键,听着风扇转速下降时的呜咽声,最后把网线从墙壁端口上拔了下来。 物理断网。他家用的不是Wi-Fi,是光纤直连。拔线之后这间四十平米的公寓就跟外界彻底割裂了。 他靠在墙上喘了几口气。但屏幕没有熄灭。 那台关掉电源的服务器显示器忽然重新亮了起来,蓝色的Windows启动画面一闪而过,然后是一个他从未见过的命令行界面——白底黑字,光标在左上角稳定地跳动。机器的风扇重新开始转,咔咔声比之前更响了。 Zero全身的汗毛都在一瞬间立了起来。他电源键按了,物理断电。他的台式机电源线从插座里拔了出来,他甚至听到了继电器的脱扣声。但这台机器正在重新启动。 不是他的机器在启动。 是别人在通过硬件级后门给他推送启动指令。电源管理芯片被劫持了,或者更糟——主板上某个ROM在物理层面已经被刷写。 他冲向屏幕,手指在键盘上飞快敲击,调出进程列表。一个命名为"system_audit.exe"的进程在占用百分之三十的CPU资源,它的父进程ID是4,那是Windows内核的System进程,不可终止。他尝试用taskkill命令强制关闭,返回"访问被拒绝"。接着用PowerShell调用了NtTerminateProcess的底层API,同样无效。 这个进程在写文件。写到他的系统日志目录里,每秒生成一个事件条目。他打开了事件查看器,看到那些日志的内容时,他的手指僵住了。 每一行都在模拟他今晚的操作记录。访问深渊市场的API、爬取区块链交易哈希、解码十六进制元数据、甚至那条匿名消息的接收日志……全部被他这个系统账户"执行"过一遍。时间戳被精确地篡改成了他进行每一项操作的真实时刻,只不过把"接收"变成了"发送",把"查询"变成了"上传"。 对方在制造证据。栽赃他往深渊市场上传了数据——把星盾内部的什么东西卖给了地下市场。 Zero咬住下唇内侧的肉,尝到了铁锈味。他的手没有停,快速拉出网络连接列表,发现那张被他拔掉网线的网卡已经重新获得了IP地址——169.254开头的自动私有地址,没有DHCP分配,说明没有连上外网。但那个进程在通过本地回环地址127.0.0.1向某个端口发送数据,数据流向指向虚拟网卡——他几天前装来测试的一个VPN虚拟适配器,当时没卸载。 对方用了预埋的代理通道。他这台机器的底层,在他不知情的情况下,早就被人开了扇门。 Zero没有犹豫。右手伸向机箱后面,摸到电源线插头的瞬间用力拔了出来。显示器一黑,风扇声戛然而止,整个房间陷入一种压迫性的寂静。只有隔壁邻居那台老空调的压缩机在嗡嗡响,透过墙壁传来像某种低频脉冲。 他站在原地没有动。手还攥着那根电源线,指节发白。房间里只剩下他自己的心跳声,咚咚咚地敲着耳膜,还有日光灯管偶尔发出的轻微噼啪。 他做了最极端的事——拔电源。如果对方能通过电源管理芯片唤醒机器,那唯一的办法就是切断一切能源。但他知道这解决不了根源问题。那块被刷写的ROM还焊在主板上,只要重新通电,那个进程就会再次启动。除非他把主板换了,或者把那块芯片从板子上吹下来。 他缓慢地蹲下身,把机箱侧板拆了。六颗十字螺丝被他一颗一颗拧下来,金属碰触金属的细碎声响在寂静的房间里被放大了数倍。掀开侧板的瞬间一股热浪扑在脸上,带着电路板特有的味道——焊锡、助焊剂、以及某些电容轻微老化后散发的酸腐气。他用手电筒照射主板表面,寻找任何异常焊接点、飞线、或者额外加装的芯片。什么都没发现。对方做得很干净,可能是在固件层面动了手脚,或者干脆在供应链环节就植入了后门。 他把侧板重新装上,没有拧螺丝。站起身时膝盖咔嗒响了一声——他蹲了太久,血液循环不畅。走到床边坐下,弹簧床垫发出一声闷响。手边的手机屏幕亮了一下,老K的头像跳出来,消息只有三个字:"还活着?" Zero盯着那三个字看了很久。指尖在屏幕上空悬着,迟迟没落下。他该怎么解释刚才发生的事?老K是他大学时的室友,现在在深圳一家安全公司做渗透测试,两人合作过很多次暗中的活计。但刚才那种级别的攻击——硬件固件层级的预埋后门,控制电源管理芯片的推送启动——不是普通黑客能搞出来的。得是手里有国家级漏洞储备的人,或者那些漏洞本身就是他开发出来的。 他打字回了一个字:"在。" 老K秒回:"你IP在半小时前出现在深渊市场的上传节点上,交易记录显示有0.2个比特币转入一个陌生钱包。我查了钱包的历史——三个月前跟星盾内部一个账户有过交互。" Zero的喉咙发干。他抬起眼,视线越过手机屏幕望向那台已经断电的机箱。侧板耷拉着一半,露出里面漆黑的主板,电源指示灯彻底灭着。但刚才那三分钟里,这堆金属和硅片组合起来的物件替他"完成"了一笔交易,从他自己的账户里转走了比特币,用他自己的IP地址,访问了他自己昨天访问过的市场,上传了可能是伪造的星盾内部数据——然后留下了全部操作日志。 有人要把他做成替罪羊。 手机又震了一下。老K:"你在听吗?" Zero拨通了语音。电话接通后他压低声音问:"那个钱包的交互记录你能截个图给我吗?要全链路的,包括中间混币器的跳转。" 老K的呼吸声在听筒里很清晰,夹着键盘噼里啪啦的背景音:"你等一下,我挂在代理上跑……但你得告诉我你招惹谁了,这摆明了是布好的局。你被人养蛊了兄弟,养熟了割。" "星盾。"Zero说这两个字的时候,窗外的航空灯恰好闪了一下,白光从窗帘缝隙里灌进来,在他脸上切出一道凌厉的明暗分界。"或者说,跟星盾有关系的某个东西。" 语音那头安静了四秒。老K再次开口时声音低了几度:"星盾的水太深了,你之前跟我说你查的那个数据外泄,我当时就觉得不对。一个国家级安防系统的数据要是真能随随便便往外流,那流出去的那一方得有多大能耐你算过没有?" Zero没有回答。他的目光落在那台机箱上,脑子里把今晚所有线索串在一起。Echo的消息、深渊的下架、卖家账户注销、零值交易里的十六进制签名、然后是他自己的机器被远程控制植入伪造日志。每一件事都在把他往一个方向推——他查到了不该查的东西,有人要把这条线掐断,顺便把他这个追查者处理掉。 "截图发你了。"老K的声音从耳机里传来,"看完删。另外给你个建议,别回家睡了。" Zero打开老K发来的图片。区块链浏览器上的交易可视化图,红色节点代表那个陌生钱包,绿色线是资金的转入路径,蓝色线是转出。其中有两条蓝线连到了同一个节点——那个节点的标签是一串哈希值,但Zero认出了那个哈希的前八位。那是星盾内部审计系统用来标记"黑盒账户"的格式,他在安琪给他的权限文档里见过。 星盾内部有人。星盾内部的人和深渊市场上的卖家、和给他植入后门的攻击者、和匿名发消息的Echo——他们之间有某种联系。 "收到。"他对老K说,"你最近别主动联系我。我这边可能被监听了。" "废话,用你教。我打这通电话用的是我邻居家的Wi-Fi,隔着三道墙。"老K笑了一声,但那笑声里没什么温度,"走了。你自己小心。" 电话挂断。Zero把通话记录删了,然后把手机塞进牛仔裤后袋。他环顾了一圈这个住了两年的公寓,目光从书桌上散落的电路板、墙角摞到半人高的技术期刊、冰箱门上贴着的外卖菜单磁贴——最后落到那台机箱上。 他不打算留在这里。对方既然能远程启动他的机器,那可能已经摸清了他的物理地址。栽赃已经完成了——明天天亮,那些伪造的操作日志会被某人"发现",然后一层层上报,最后落到某个能签逮捕令的人桌上。 但他还有一件事要做。他走到书桌前,拉开最底层的抽屉。里面有一个铝制的移动硬盘盒,盒盖上贴着一枚磨损的贴纸,上面写着"大学论文备份"——其实里面存着他从"先知的残影"里提取出的原始数据、昨晚追踪Echo跳板的全套路由日志、以及深渊市场卖家注销前的最后快照。这些东西他之前放在那台机器里做了加密镜像,但在对方启动那个system_audit进程之前,他来得及在物理拔线前的五秒内把一份副本传到了这个盒子里。 他把硬盘盒攥在手里,掂了掂重量。然后从衣柜里拽出一件深灰色卫衣套上,帽子拉起来遮住半张脸,把钥匙、钱包、硬盘盒和一部备用手机塞进一个帆布挎包,挎包带子斜挎过胸前。 出门前他又回头看了一眼那台机箱。侧板耷拉着,电源线垂在地上,像一具被剖开的尸体。 他咔嗒一声合上了门。 凌晨两点四十分的佛山小巷子里,路灯有一盏灭了一盏亮着,投射出斑驳的光影。他低着头快步走过那段没有灯的路面时,余光扫到巷口对面那棵榕树底下停着一辆黑色轿车。车灯是灭的,引擎也没有声音,但驾驶座的车窗摇下来了一条缝,缝里透出一点手机屏幕的荧光。 Zero没有放慢脚步。他拐进了右边那条只够一个人通过的窄巷,鞋底踩到潮湿的青砖表面,发出轻微的唧声。那辆车的车门没有打开。 但他知道那里有人在看他。他感觉得到那道目光。就像他今晚坐在屏幕前面时,有人透过光纤和路由器和交换机一层层地剥开他的围墙,把手指伸进了他的机器内部。 那种注视感让他后颈的汗毛一直竖着,直到他走出巷子,汇入佛山夜市边缘零散的宵夜摊人群里。烧烤烟气裹住了他的身影,有人在他旁边叫了一碗猪杂粥,瓷勺碰着碗沿叮叮当当地响,人间烟火味浓得能淹死人。 他在一个卖炒粉的摊子前停下,跟老板要了一份加蛋的炒粉,从口袋里摸出皱巴巴的十块钱递过去。老板接过钱的时候抬头看了他一眼,什么都没说,转过身去颠锅。 Zero站在摊子前面等着。锅铲和铁锅碰撞的铿锵声、油花溅开的滋啦声、旁边食客们喝啤酒划拳的嘈杂声——所有这些声音汇在一起,暂时掩盖了他脑子里持续不断的警报声。 他用筷子夹起第一口炒粉时,裤袋里的备用手机震了一下。 掏出来看,屏幕上是三条来自同一个陌生号码的短信,间隔都是三秒。 第一条:"今晚别睡。" 第二条:"明天警局会来人。" 第三条:"你硬盘里的东西,别交给任何人。包括安琪。" 他盯着第三条看了很久。热炒粉的油滴在手机屏幕上,他忘了擦。