京华威慑成立后第三周的最后一天。
秋天。江城的梧桐叶开始变黄。
攻击停了三周,探测却没有完全消失。过去三天,默智的外围日志里出现过三次不到一秒的试探,像有人隔着门缝摸锁。陈锋把特征留了样,却没有发现真正入侵。林默没有因此取消第二天的约定;若每一次探测都能叫停生活,威慑就等于从未成立。
苏晚晴发了一条微信——“明天。光阴咖啡。我有话跟你说。”
林默看着那条消息。他回了一个字:“好。”
他知道苏晚晴要说什么。回程高铁上她握过他的手。北都那次他们双向坦白。暑假那次她在他肩上睡着,醒来后又主动靠了回来。
她要说的话他等了很久。
他也想说同样的话。
第二天。下午三点。光阴咖啡。
老位置。靠窗。两杯拿铁。一块提拉米苏。
苏晚晴今天穿了一件白色的毛衣。秋天了。她的脸颊被风吹得有点红。毛衣的领口翻出一小截,是她在路上才匆匆整理过的痕迹。
她坐到对面。看了一眼桌上的拿铁。
“你点了。”
“嗯。半糖。”
“你知道我喝半糖?”
“她在代码里那天你喝的是半糖拿铁。我记住了。”
苏晚晴看着他。三秒。然后她笑了。
“林默。你记住的事比你说的多。”
“嗯。”
苏晚晴深吸一口气。
“我有话跟你说。”
“嗯。”
“是关于我们。”
林默的心跳加速了。
苏晚晴开口。
“我从便利店那天起就在观察你。那时候我是评估者的视角。”
“嗯。”
“后来我评估的不是了。我评估的是你是一个什么样的人。你每一次任务的选择。你每一次面对系统的态度。你每一次——”
她停了。
“你每一次宁可自己被电疗、被女装、差点被抹杀也不愿意伤害别人。”
“嗯。”
“我看了五个月。”苏晚晴说。“五个月里我从一个评估者,变成了——”
她又停了。她在组织语言。
林默看着她。苏晚晴这个从头到尾都冷静、理性、克制的女生此刻在犹豫。
“变成了什么?”林默轻声问。
苏晚晴看着他。
她深呼吸。准备开口。
“变成了一个想一直——”
就在这一秒。
林默的手机和苏晚晴的手机同时炸了。
手机骤然发出尖锐的系统警报。
林默低头看屏幕。
【? 紧急警报】
【默智科技云端服务器遭受大规模DDoS攻击。】
【所有用户服务中断。】
【攻击流量:正常水平的300倍。】
【攻击源:分布式。归属未知。】
【与三日前探测样本的技术特征匹配度:97%。】
至少和三天前摸门的那拨人同源。
与此同时陆远的电话进来了。林默接起来。
“默哥!!!服务器被打!!!全挂了!!!”
“我知道。我马上回去。”
挂掉电话。
林默抬头看苏晚晴。
她的手机也在响。正义系统只标记出“大规模不正当网络行为”,没有给出来源。她看着屏幕,脸色变了。
“京华。”她说。
“是。”
两个人。在光阴咖啡。拿铁还冒着热气。提拉米苏还没动。咖啡厅的玻璃窗外,一片梧桐叶打着旋落下来,贴在玻璃上停了一秒,又被风吹走了。
苏晚晴刚才没说完的那句话——“变成了一个想一直……”——悬在空气里。
被打断了。
“走。”林默站起来。
“嗯。”
两个人冲出咖啡厅。打车回孵化器。
车上,苏晚晴没有再提那个被打断的话题。她把陈锋共享的三份试探日志并排打开,逐项比较技术特征。
“这些日志的工具链高度相似。”她说,“部分跳板曾出现在京华关联事件里,但这只能支持怀疑,不能证明是谁下令。黑鸦前阵子才松口收手,也可能是底下某个执行团队或外包人员自行行动。”
“你是说,不是黑鸦下的令?”
“我没证据。”苏晚晴盯着屏幕。“但他们在升级手段。一边打瘫服务,一边试图趁乱摸进仓库。”
“陈锋的代码陷阱还在吗?”林默问。
“在。但这次他们用了新的零日漏洞。陷阱可能拦不住。”
“该死。”
孵化器。
陆远、赵一鸣、前端小哥全在了。每个人都在电脑前。屏幕上一片红色警报。
“默哥!怎么办!”陆远的声音尖了。
“高防服务器。切换。”林默坐下来。打开电脑。“赵一鸣联系云服务商,启动高防IP。陆远通知所有客户,服务临时中断,预计两小时恢复。前端备份数据。”
“苏晚晴——”
“我分析攻击源。”苏晚晴已经打开了她的笔记本。“找他们的入口节点。”
“陈锋呢?”
“在来的路上。他住得最近。”
五分钟后。陈锋冲进来。
“我看了日志。”陈锋没有坐下,直接站在林默身后看屏幕。“这次和那几次试探不一样。三周前那一轮主要是压垮服务,这次还夹着对源码仓库的渗透请求。动手的人既想让服务停下,也想趁乱摸到核心代码。”
“为什么突然升级?”林默一边切换高防IP一边问。
“不知道。”陈锋说。“但时间点很巧。恰好是——”
他看了一眼苏晚晴。
恰好是苏晚晴“有话跟你说”的这一天。
巧合吗?
林默和苏晚晴对视了一眼。
“太巧了。”苏晚晴说。“偏偏挑今天。我查不到监视的渠道——黑鸦已经收手了。可这个时间点……”
她没有说完。
林默盯着屏幕,一个没有证据的念头压上来:这会不会不是巧合?可他们查不到任何监视渠道,攻击者也不可能凭空知道苏晚晴今天要说什么。这个时点只能记入待定,不能拿情绪替代证据。
“像是那帮人在报复。”陈锋说。“黑鸦收手了,可底下动手的人不服。威慑管得住上头,管不住他们。他们正面动不了你,就让你难受。让你的公司难受。让你的——”
林默没有接这句话。眼下唯一能确认的,是对方又动手了。
四个小时。
林默、陈锋、苏晚晴三个人轮流盯着服务器。高防IP切换完成。DDoS被扛住了。渗透被代码陷阱+手动封堵拦住了。
晚上八点。服务恢复。客户数据完好。
林默靠在椅子上。精疲力尽。后背的汗把衬衫黏在皮肤上,凉下来之后有一种发涩的触感。
苏晚晴递给他一杯水。他喝了一口。
“苏晚晴。”
“嗯。”
“你刚才要说什么?”
苏晚晴看着他。
很久。
然后她笑了。一种带着苦涩的笑。
“下次吧。”
“下次?”
“今天不是好日子。”她说。“谁知道有没有人盯着我们。我不想冒这个险,在可能存在的敌人面前说那句话。”
林默看着她。
他懂了。
她想说的那句话很重要。重要到她不想在枪林弹雨里说。她要在一个安全的时候说。
“好。”林默说。“下次。”
苏晚晴点头。
她伸出手。碰了一下林默的手背。然后收回。
不是回程高铁上那种握手。只是一个“我在”的触碰。
林默看着她收回的手。
差一点他们今天就在一起了。
但那场来源未明的攻击,客观上把这一刻打断了。
林默攥紧了拳头。
“苏晚晴。”
“嗯。”
“我会把这次攻击查清。”
“我知道。”
“然后在一个他们再也干扰不了的时候你把那句话说完。”
苏晚晴看着他。眼眶红了。但她笑了。
“好。我等你。”
深夜。孵化器只剩林默一个人。
他坐在黑暗里。屏幕的光照在他脸上。其他工位的电脑都黑着,只有他这一台还亮着,把一小片冷白的光投在键盘和桌面上。
服务器恢复了。客户保住了。团队没事。
但——
差一点。
苏晚晴今天差一点就告白了。他差一点就听到了那句话。
被一场还没查清来源的攻击打断了。
林默闭上眼。
他把已知事实和猜测分开写进记录:几次试探的工具链高度相似,部分跳板曾出现在京华关联事件中;但没有指令链,也没有证据表明对方知道今天的告白。
可能是执行团队自行动手,可能是外包人员,也可能是模仿同一工具链的第三方。查清之前,他不能把任何一种可能写成京华的警告。
林默睁开眼。
他打开《反派做好事法则V3.0》,翻到法则十四——他前几天刚写的那条“等待原则”。
威慑只是在为进攻争取时间。
他在下面加了一行小字:
“有些话,不能在枪林弹雨里说。有些事,不能在敌人面前做。等不是放弃。是积蓄力量。等到安全的时候再做完。”
他保存文档。
秋夜已经转凉,他把最后一条告警记录压进证据包,关灯下楼。
差一点就说出口的话,像舌尖上的刺。他把它按回去,齿关轻轻一碰。江城的夜风从楼道灌上来,凉,干净。他把手插进口袋,摸到一枚旧硬币,攥紧,又松开。楼道声控灯跟着他的脚步一明一灭,他放慢步子,想在那点亮里多待一会儿。