审计ID的生成规则:AUDIT-年月日-时分秒-序号。
还有——
路容把两张图片并排放在一起,放大细节。
错误码的写法。
天启科技的日志里,有一次网络超时的记录:
```
[2022-07-1522:30:12.445]WARN数据传输-连接超时(错误码:NET_TIMEOUT;重试次数:3)
```
分号。
错误码后面是分号。
但分号前面有一个空格。
NET_TIMEOUT;
她猛地切回星耀的日志窗口,搜索分号。
找到了。
在解密服务的某条警告日志里:
```
[2025-03-1801:05:33.778]WARN解密服务-密钥缓存未命中(错误码:KEY_CACHE_MISS;已触发密钥重新加载)
```
KEY_CACHE_MISS;
分号。
空格。
然后分号。
一模一样。
路容的整个身体开始颤抖。
不是冷——出租屋里的暖气还在工作,空气温热干燥。是那种从骨髓深处渗出来的寒意,沿着脊椎爬升,在头皮上炸开细密的刺痛。她的手指蜷缩起来,指甲陷进掌心。疼痛让她稍微清醒了一些,但视线依然模糊,屏幕上的文字在晃动。
“若溪?”周哲的声音再次传来,这次带着明显的疑惑,“你那边还好吗?我这边看到你的鼠标很久没动了。”
路容张开嘴。
她想说话。想说“我没事”。想说“继续排查”。但喉咙像被什么东西堵住了,声带僵硬,发不出任何声音。她只能听见自己粗重的呼吸,在安静的房间里显得格外刺耳。
“若溪?”
她用力吞咽,口腔里干得发苦。手指在键盘上摸索,敲出两个字:“在。”
“你找到什么了吗?”周哲问,“我这边倒是发现问题了。你看这个——”
屏幕切换回数据流监控界面。周哲用鼠标圈出一段代码:“你的过滤规则,第87行,边界条件判断有问题。`if(error_rate>0.01&&data_volume>1000)`,这里用的是逻辑与,但实际应该用逻辑或。因为只要异常率超过1%或者数据量超过阈值,就应该告警。你用与的话,必须两个条件同时满足才会触发。所以之前那些零散的异常数据包没触发告警,直到今晚这个新数据源涌入大量数据,两个条件才同时满足。”
他的声音轻松了一些,甚至带着点笑意:“小bug,我改一下就行。改完重新部署,告警应该就能解除。不过你设计这个规则的时候,是不是太谨慎了?怕误报太多?”
路容盯着屏幕上被圈出的那行代码。
她的代码。
她故意留下的漏洞。
她精心设计的鱼饵。
现在,周哲轻松地找到了问题,轻松地修复了。他以为这只是新手工程师常犯的逻辑错误。他不知道这行代码背后藏着什么。不知道这个漏洞是故意留下的。不知道这个告警是她等待的契机。
更不知道,就在他排查技术问题的这几分钟里,她已经看到了地狱。
“若溪?”周哲又问了一次,“你确定没事吗?你的呼吸声有点重。”
路容闭上眼睛。
三秒。
五秒。
十秒。
她重新睁开眼睛,手指在键盘上敲击,通过聊天窗口发送消息:“没事,刚才在对比日志。你说得对,是我考虑不周。谢谢指正。”
发送。
然后她关掉了麦克风。
她需要安静。
需要绝对的、彻底的安静。
周哲在耳机里说了什么,她听不见。她只看见聊天窗口里弹出他的回复:“客气什么,一起解决问题嘛。我改好了,正在重新部署。大概两分钟后生效。你那边可以继续监控异常率的变化。”
路容没有回复。
她的目光重新回到那两个并排的屏幕上。
左边,星耀。
右边,天启。
相同的日志格式。
相同的标点习惯。
相同的空格用法。
相同的分号前面加空格的诡异细节。
这不是巧合。
这不是“行业通用规范”——她在这行干了七年,看过无数公司的系统日志。有的用方括号,有的用圆括号。有的时间戳精确到秒,有的到毫秒。有的错误码用下划线,有的用点号。有的在冒号后面加空格,有的不加。有的审计ID用UUID,有的用自增数字。
但像这样,每一个细节都吻合——
只有一种可能。
写这些日志记录的服务,是同一个程序员开发的。
或者更准确地说,设计这些日志格式规范的人,是同一个人。
李剑。
路容的嘴唇无声地动了一下,念出这个名字。
三年前,他是天启科技的技术副总裁,负责“灯塔”项目的整体架构。所有核心服务的日志规范,都是他亲自审核定稿的。路容记得很清楚,因为当时她还为此和他争论过——李剑坚持要在分号前面加空格,说这样“更美观”;路容认为这不符合大多数编程语言的惯例,容易造成解析问题。最后李剑用职权压了下来:“按我的规范来。”
她当时只觉得这个人固执。
现在她知道了,那不是固执。
那是习惯。
是烙印。
是无论换到哪家公司、哪个项目、哪个系统,都会不自觉带上的个人印记。
就像指纹。
而现在,这个指纹,出现在了星耀集团的“深蓝计划”里。
路容靠在椅背上,仰起头。
出租屋的天花板很低,白色的涂料有些剥落,露出下面灰色的水泥。角落里有一小片水渍,是楼上漏水留下的痕迹,形状像一张扭曲的脸。她盯着那片水渍,眼睛一眨不眨。
所以,李剑不仅当年构陷了她。
不仅偷走了她的职业生涯。
不仅毁了她的人生。
现在,他还在用同样的手法,在另一家公司,另一个项目里,做类似的事情。
“深蓝计划”到底是什么?
那些加密格式错误的数据包,来自哪里?
那个IP段198.51.100.0/24,背后是什么?
还有——
路容猛地坐直身体。
如果日志格式是李剑的个人习惯,那么“深蓝计划”的整个技术架构,很可能也是他主导设计的。或者至少,核心的数据处理流程是他把关的。那么,这个项目里,会不会藏着和三年前“灯塔”项目一样的秘密?
非法数据交易?
黑市数据源?
洗白渠道?
她的心脏狂跳起来,在胸腔里撞击出疼痛的节奏。手指重新放在键盘上,冰凉僵硬。她切回远程桌面,看到监控面板上的红色警示标志已经消失。异常率降到了0.23%,数据流恢复正常。周哲在聊天窗口里发来消息:“搞定。告警解除。你可以休息了,今天辛苦了。”
路容盯着那条消息。
她的手指在键盘上悬停了几秒,然后敲下:“辛苦了。谢谢。”
发送。
然后她断开远程连接。
屏幕暗下去。
房间里只剩下她电脑本地屏幕的光,照亮着那张三年前的日志截图。那张截图里,有李剑的操作记录。有他导出数据的记录。有系统审计的记录。有所有能证明他当年做了什么、却因为“证据不足”而被忽略的记录。
而现在,她有了新的线索。