屏幕上的红色警告窗口还在闪烁。
林朗的手指悬在键盘上方,指节因为用力而发白。那不是普通的系统提示——窗口边框没有关闭按钮,底色是那种沉闷的暗红,像是凝固的血。窗口中央只有一行字:"访问行为已记录。"
他盯着这行字看了两秒。两秒钟里,大脑已经完成了三次判断。
第一,这不是LGK Analytics服务器的标准响应页面。标准页面的报错信息是蓝底白字,有错误代码和联系邮箱。这个窗口没有代码,没有联系方式,只有一个陈述句——陈述一个事实,而不是报告一个错误。
第二,"已记录"三个字意味着触发这个窗口的不是自动化防御系统。自动化系统会说"访问被拒绝"或者"IP已封禁"。"已记录"是人在说话。有人在屏幕另一端看着他。
第三,从他点击那条查询到窗口弹出,间隔不到四秒。四秒钟内完成行为识别、人工确认、响应下发——这不是普通公司的IT部门能做到的速度。
林朗的后背渗出一层冷汗。他意识到自己犯了一个错误:他以为自己在偷看一扇门缝,实际上他踏进了一个精心布置的陷阱。蜜罐——网络安全领域的经典防御手段,用伪造的高价值目标诱捕入侵者。他以为自己在查询数据,实际上他的每一次点击都在向对方暴露自己的位置、手法、甚至意图。
屏幕右下角的时间显示:凌晨两点十七分。
他必须在对方完成定位前离开这里。
林朗的手指落回键盘,不再是犹豫的悬停,而是精确的敲击。他打开终端,输入一行命令,断开当前的代理链路。三个跳板节点依次下线,像被掐灭的烟头。然后他插入了那个金属外壳的U盘——他从公司带出来的唯一实体存储设备,里面存着过去两周下载的全部日志。
U盘的读写指示灯开始闪烁。他盯着那个小小的绿色光点,感觉自己的心跳和它的闪烁频率逐渐同步。
文件传输进度条在屏幕角落缓慢爬行:百分之十二,百分之二十三,百分之三十一……
窗外传来空调外机的嗡鸣声,是隔壁住户的老式壁挂机。那声音在这一刻变得异常刺耳,像是有无数只蜜蜂被困在金属匣子里。林朗强迫自己不去听,把注意力集中在屏幕上。他在另一个窗口同时运行着痕迹清理脚本,删除临时文件、擦除注册表记录、覆盖磁盘空闲空间。
百分之四十七。
屏幕忽然闪了一下。不是普通的刷新,是整个画面从上到下进行了一次快速的明暗切换,像是有人在外面按下了某个开关。
林朗的手指停住了。他注意到任务栏上的网络连接图标——原本显示"已连接"的小电脑图案,此刻多了一个黄色的三角警告标志。
有人在扫描他的网络端口。
百分之五十八。
林朗做了一个决定。他拔掉了网线。物理断开,最原始也最可靠的防御手段。房间里的空调外机嗡鸣声突然变得孤单,像是某种背景音乐的戛然而止。U盘的读写指示灯还在闪烁,但速度明显慢了下来——没有了网络连接,系统后台的一些同步进程开始报错,弹出的小窗口在屏幕边缘堆积。
百分之六十七。
他等不了百分之百了。
林朗点击了"安全弹出硬件",在进度条走到百分之七十一的时候拔出了U盘。金属外壳还带着机器运转的温度,触感微微发烫。他把U盘塞进裤子内袋,拉好拉链,然后抓起放在椅背上的外套。
桌上的手机亮了。不是短信,是一个系统通知——某个他不记得安装过的应用在请求定位权限。
林朗没有犹豫。他拔掉手机电池——这是他从旧货市场淘来的老款智能机,可拆卸电池设计在这个时代已经不多见了,但此刻这个设计救了他。手机屏幕瞬间熄灭,房间里只剩下台式机还在发出低沉的风扇运转声。
他最后看了一眼屏幕。红色的警告窗口还在那里,像是一只不会眨眼的眼睛。
林朗关掉了电闸。房间陷入彻底的黑暗。
楼道里的声控灯坏了,林朗摸黑走下三层楼梯,每一步都刻意放轻。他的手扶着斑驳的水泥扶手,触感粗糙,有些地方还粘着不知哪年贴上去的双面胶残痕。空气里弥漫着一股潮湿的霉味,混杂着楼下早餐店提前发酵的面团气息。
他走到一楼,没有从正门出去。这栋楼的背面有一个消防通道,通向一条堆满杂物的窄巷。他从那里绕到了小区外侧,沿着围墙根走了两百米,才在一个路灯照不到的死角停下来。
夜风从巷口灌进来,带着秋天特有的凉意。林朗把外套拉链拉到最顶端,下巴缩进衣领里。他的心脏还在以超出正常频率的速度跳动,但大脑已经开始运转——不是在处理恐慌,而是在处理信息。
他需要评估损失。
U盘里的数据是过去两周从LGK Analytics服务器下载的全部访问日志。按照刚才的传输进度,他成功带出了大约百分之七十的内容。剩下的百分之三十——主要是最近三天的日志——还留在那台台式机的硬盘里。那台机器现在对他来说已经是不安全的了,不仅是物理位置不安全,更重要的是对方可能已经通过蜜罐反制措施在他的系统里植入了追踪代码。
他失去了一个据点,一台电脑,以及最近三天的数据。
但他保住了核心发现:"姓江的查询"的七十二小时周期规律,加上那些查询与纺织厂职工后代标签的绑定关系。这些已经拷贝到U盘里。
林朗靠在墙上,仰头看着夜空。琅城的夜空很少能看到星星,但今晚有一轮轮廓模糊的月亮,被薄云遮挡着,像是一枚被指纹弄脏的硬币。他想起三年前在公司年会上领奖的场景——那时候他站在聚光灯下,台下坐着几百人,他以为自己的未来会像那盏舞台灯一样明亮而确定。
现在他站在一条臭气熏天的后巷里,怀里揣着一个发烫的U盘,刚刚从一个看不见的对手眼皮底下逃走。
对方是什么人?
这个问题的答案他其实已经知道了,或者说,他一直在回避知道。LGK Analytics不是普通的数据公司,它的服务器上部署了专业级的蜜罐系统,它的安全团队能在四秒内完成入侵响应。这种级别的防御,这种级别的资源投入,背后站着的绝不会是一个单纯的商业机构。
林朗想起了那条匿名短信:"注意你身边的人。"
他原本以为是某个同行在提醒他注意职场竞争。现在他开始怀疑,那个"身边人"指的是不是某种更庞大的存在——一个他刚刚才意识到其规模的阴影。
他需要找一个安全的地方,一个对方找不到的地方。然后他需要联系一个人——苏晓禾。她是记者,有调查渠道,更重要的是,她对这个城市的了解比他深得多。如果他真的要查清楚LGK Analytics背后站着谁,他需要一个本地的向导。
林朗从巷子里走出来,沿着街道快步前行。他没有叫出租车,而是选择了共享单车——注册不需要实名,支付用的是他昨天刚办的新卡。他骑了二十分钟,穿过三条街道,在一家二十四小时便利店门口停了下来。
他买了一瓶矿泉水,站在店门口的灯光下喝了一半。冰凉的液体滑过喉咙,让他意识到自己有多渴。然后他转身走进便利店旁边的网吧——那种老式网吧,门口贴着"包夜二十"的褪色海报,收银台后面坐着一个正在打瞌睡的年轻网管。
林朗付了押金,拿到一张临时上网卡。他选了一台靠角落的机器,开机,插入U盘,但没有急着打开文件。他先打开了浏览器的隐私模式,登录了一个他很久没用的邮箱——那是大学期间注册的,注册信息早就失效了,连他自己都差点忘了密码。
邮箱里有一封未读邮件,发件人是一串乱码,发送时间是昨天凌晨三点。
他盯着那串乱码看了很久,手指悬在鼠标上方,迟迟没有点击。
网吧里的空调开得很足,冷风从头顶的出风口直直地吹下来。林朗感觉自己的头皮在发紧,像是有什么东西正在从四面八方收拢。他突然意识到,自己可能做了一个错误的决定——联网。
如果对方的追踪能力超出了他的预估,那么任何联网行为都是在暴露位置。
林朗拔掉了U盘,关机,起身离开。他甚至没有去退押金。
走出网吧的时候,东方的天际线已经泛起了一层极浅的鱼肚白。夜晚即将结束,但林朗知道,真正的危险才刚刚开始。
南城旧车市场的清晨来得比北城更早一些。
江跃被一阵引擎声吵醒。不是普通的引擎声,是那种刻意压低了转速、但在寂静的清晨依然显得格外清晰的柴油发动机声。他从棚屋的木板床上坐起来,动作很轻,没有发出任何声响。
他透过木板墙的缝隙往外看。
市场门口停着一辆黑色的商务车。车窗贴着深色的膜,看不清里面有没有人。车的品牌是大众迈特威,常见于企业接待或者商务出行。但江跃注意到,这辆车的轮胎是加宽的低扁平比型号,不是原厂配置——那是为了支撑更重的车身。防弹改装。
他的手指无意识地握紧了床沿的木板。木板边缘有一根翘起的木刺,扎进指腹,疼痛尖锐而真实。
昨天的跟踪者只是一个人,穿着白衬衫,步伐稳健,像是受过训练。今天换成了一辆改装过的商务车。这意味着对方的关注等级提升了——从"监视"升级到了"控制"。
江跃缓慢地穿上皮夹克,动作一丝不苟。他的目光始终没有离开那辆车的方向。商务车的引擎没有熄火,排气管里冒出的白气在清晨的冷空气里凝成一股细小的烟柱。
他在等。等对方先动。
三分钟过去了。商务车没有任何动静,没有开门,没有人下车,甚至连车窗都没有摇下来。它只是停在那里,像一只蛰伏的甲虫。
江跃做出了决定。他从棚屋的后门溜了出去——那是他自己搭的一个偏门,通向市场后面堆放废轮胎的场地。废轮胎堆得像一座小山,中间有一条他自己踩出来的小路。他沿着小路走到尽头,翻过一道生锈的铁丝网,落在了一条没有人知道的排水沟里。
沟底有积水,漫过了他的鞋面,冰凉刺骨。他顾不上这些,沿着沟渠快步走了五十米,然后从一个涵洞里钻出来,站在了市场外围的一条背街上。
街角有一家早点铺,油条在油锅里翻滚的声音滋滋作响。江跃走过去,买了两根油条和一杯豆浆,站在路边吃了起来。他的动作看起来和任何一个普通的南城青年没什么两样——饿了一晚上,急需补充热量。
但他的眼睛一直在扫视街道。
那辆商务车没有跟过来。至少他没有看见。但这不代表安全。昨天的跟踪者能够在纺织厂旧址截住他,说明对方对他的行踪有一定的掌握。今天换了更专业的装备,说明对方不打算再隐藏意图。
江跃把最后一截油条塞进嘴里,舔了舔手指上的油渍。他掏出手机,给彪哥发了一条语音:"今天帮我看一天场子,我有事出去。"
彪哥回得很快:"跃哥,你那摊昨儿晚上有人来查过,说是管理处抽查。"
江跃盯着这条消息看了两秒。抽查。他在这个市场干了五年,从来没有见过"管理处"在凌晨抽查摊位。
他回了两个字:"知道了。"
然后他把手机塞回口袋,沿着背街往前走。他需要一个答案——是谁在找他,为什么找他。而南城能给他这个答案的人,只有一个。
江跃的方向是六爷的住处。
但他没有注意到,在他转身离开早点铺的那一刻,街对面二楼的窗帘微微动了一下。一个穿着白衬衫的男人站在玻璃后面,手里拿着一部手机,正在对着江跃的背影拍摄。
男人按下发送键,照片传向了某个他也不知道具体位置的接收端。然后他收起手机,走下楼,朝着江跃相反的方向走去。
清晨的阳光终于越过了楼顶,把整条街道分成了明暗两半。江跃走在阴影里,白衬衫男人走在阳光中。两人背道而驰,像是两条永远不会相交的平行线。
但他们都知道,这种平行只是暂时的。
(本章完)