《复仇星耀途》 第1章:新身份,旧伤痕 深港市,星耀集团总部大楼。 清晨七点四十五分,玻璃幕墙反射着初升的阳光,将整栋建筑包裹在一片刺眼的光晕中。路容站在旋转门外,看着倒影里那个陌生的自己——黑框眼镜遮住了大半张脸,齐肩短发被刻意染成深棕色,一身略显保守的灰色西装套裙,手里拎着廉价的通勤包。 镜面里的女人眼神空洞,嘴唇紧抿。 她深吸一口气,喉咙里发出轻微的、经过变声器调整后的沙哑嗓音:“路容已死。” 声音很轻,只有自己能听见。 “我是若溪。” 说完这句话,她推开了那扇通往复仇深渊的大门。 冷气扑面而来,混合着消毒水和咖啡的复杂气味。大厅挑高近十米,大理石地面光可鉴人,前台穿着统一制服的接待员露出标准化的微笑。路容——不,现在是若溪——走向闸机,从包里掏出昨天刚办好的工牌。 “滴。” 闸机打开。她走进去,脚步平稳,心跳却像擂鼓。 电梯间挤满了人,西装革履的男男女女低声交谈,手机屏幕的光映在一张张疲惫或亢奋的脸上。路容站在角落,目光扫过楼层指示牌——数据分析部在二十七楼,李剑的副总裁办公室在顶层三十八楼。 三年前,她也曾站在类似的大厅里,穿着剪裁得体的套装,手里拿着天启科技的项目方案,被同事们称为“数据天才”。那时她二十六岁,刚从国外顶尖院校毕业回国,眼里有光,心里有火。 然后,李剑出现了。 电梯门打开,人群涌出。路容跟着人流走进二十七楼的开放式办公区。玻璃隔断划分出一个个工位,巨大的显示屏上滚动着实时数据流,键盘敲击声此起彼伏。这里的一切都高效、冰冷、井然有序。 “新来的?” 一个穿着深蓝色套装、妆容精致的女人走过来,手里拿着平板电脑。她大约四十岁,眼角有细纹,但眼神锐利得像手术刀。 路容立刻认出她——王丽,数据分析部总监,李剑的忠实追随者。资料显示,这个女人擅长职场PUA,抢功甩锅的手段炉火纯青,是三年前那场构陷的积极参与者。 “是,我是若溪,今天第一天报到。”路容用调整过的嗓音回答,微微低头,做出新人该有的拘谨姿态。 王丽上下打量她,目光在她廉价的西装和黑框眼镜上停留了几秒,嘴角扯出一个似笑非笑的弧度:“跟我来。九点有新人培训,别迟到。” --- 培训室在走廊尽头,能容纳二十人的小会议室已经坐了一半。路容找了个靠后的位置坐下,从包里拿出笔记本和笔。周围都是同期入职的新人,大多年轻,脸上带着初入大公司的兴奋和紧张。 “大家好,我是王丽,数据分析部总监。” 王丽站在投影幕布前,没有开场白,直接切入正题:“星耀集团是深港市成长最快的互联网公司,我们的核心业务是大数据分析与人工智能应用。在这里,数据就是血液,算法就是心脏。你们能坐在这里,说明通过了初步筛选,但我要提醒各位——” 她顿了顿,目光扫过全场。 “通过筛选,只代表你有资格参与竞争。数据分析部每年淘汰率是百分之三十。业绩不达标、团队协作差、或者……”她的视线有意无意地落在路容身上,“无法适应高强度工作节奏的,都会被清退。” 会议室里一片寂静。 路容低下头,在笔记本上写下“淘汰率30%”几个字,笔尖微微发颤。不是害怕,是愤怒。三年前,李剑就是用类似的语气对她说的:“路容,你很优秀,但职场有职场的规则。有些机会,需要付出代价才能得到。” 她拒绝了。 然后,一切都毁了。 “接下来看第一个案例。”王丽点击遥控器,投影幕布上出现一份加密数据流的分析报告,“这是三年前某科技公司的真实案例。该公司核心数据库遭到入侵,大量用户隐私数据泄露,最终导致公司股价暴跌,核心团队解散。” 路容的呼吸骤然一窒。 幕布上的图表、加密算法示意图、数据流向图……每一个细节都像烧红的烙铁,狠狠烫在她的记忆里。这不是什么“某科技公司”,这就是天启科技。这就是她曾经呕心沥血构建的数据安全体系,这就是李剑用来构陷她的“证据”。 “该案例中,泄露的数据采用了AES-256加密,但攻击者通过社会工程学手段,获取了内部人员的访问权限。”王丽的声音在耳边嗡嗡作响,“调查显示,泄密者是一名年轻的数据分析师,她利用职务之便,将加密密钥卖给了竞争对手。” 胡说。 全是胡说。 路容的手指开始颤抖。她用力握紧笔,指节泛白,但颤抖无法停止。眼前的数据流图开始扭曲、旋转,变成三年前那个夜晚——警车闪烁的蓝红灯光,同事们惊疑的目光,李剑站在人群后面,脸上挂着虚伪的惋惜。 “路容,我真没想到你会做这种事。” “证据确凿,你还有什么好说的?” “你毁了公司,也毁了自己。” 那些声音从记忆深处涌上来,像潮水一样淹没她。喉咙发紧,胸口像被巨石压住,喘不过气。她必须离开这里,立刻,马上。 “抱歉,”路容猛地站起来,声音因为极力压制而更加沙哑,“我去一下洗手间。” 王丽皱了皱眉:“培训期间不要随意离场。” “很快回来。”路容没有看她,径直走向门口。脚步踉跄,差点撞到门框。 走廊空无一人。她几乎是跑向洗手间,推开隔间的门,反锁,然后整个人瘫坐在马桶盖上。颤抖从手指蔓延到全身,牙齿开始打颤,喉咙里发出压抑的、动物般的呜咽。 不能哭。 不能出声。 这里到处都是监控,隔音也不好。她死死咬住下唇,血腥味在口腔里弥漫,但还不够。颤抖越来越剧烈,像癫痫发作的前兆。三年前那场变故后,她患上了严重的应激障碍,医生诊断是创伤后应激障碍伴随焦虑症。高压环境、特定关键词、甚至某些气味,都可能触发症状。 而刚才王丽展示的案例,几乎复刻了她人生中最黑暗的那个夜晚。 路容抬起左手,将手腕塞进嘴里,用牙齿狠狠咬下去。 疼痛尖锐而清晰,像一根针扎进神经。颤抖渐渐平息,喉咙里的呜咽被压回胸腔。她闭上眼睛,额头抵在冰冷的隔间门板上,大口呼吸。 镜子里的人脸色惨白,黑框眼镜后的眼睛布满血丝,嘴唇被咬破渗出血珠。手腕上留下一圈深深的牙印,已经开始泛紫。 “路容,”她对着镜子里的自己无声地说,“你不能倒在这里。” “你花了三年时间准备,伪造身份,学习变声,甚至去整容医院做了微调。你赌上了一切,就为了今天。” “李剑还在三十八楼,活得风光无限。而你,连听到一个案例都差点崩溃。” 她打开水龙头,用冷水泼脸。冰冷的水刺激着皮肤,让混沌的大脑清醒了一些。从包里拿出粉饼,小心遮盖嘴唇上的伤口和苍白的脸色。眼镜重新戴好,整理好头发和衣领。 镜子里又变回了“若溪”——那个平凡、拘谨、甚至有些土气的新人数据分析师。 深呼吸三次。 推开隔间门。 然后,她僵住了。 洗手台前的镜子里,映出两个人——她自己,以及站在她身后三米处的王丽。 王丽靠在洗手间入口的墙边,双手抱胸,不知道已经站了多久。她的目光锐利得像探针,从路容湿漉漉的头发,扫到微微发红的脸颊,最后停留在她紧握的双手上。 “若溪,”王丽开口,声音平静,却带着不容错辨的审视,“你的脸色很差。” 路容的心脏几乎停止跳动。 “是不适应大公司的节奏吗?”王丽向前走了一步,高跟鞋敲击瓷砖地面,发出清脆的响声,“还是说,刚才的案例……让你想起了什么?” 空气凝固了。 路容能听到自己血液流动的声音,能感觉到冷汗顺着脊椎滑落。王丽在试探什么?她看到了多少?听到了多少?隔间的隔音到底有多差? 三秒钟的沉默,像三个世纪那么长。 然后,路容缓缓转过身,低下头,用那种新人特有的、带着怯懦和不安的语气回答:“对不起,王总监。我……我早上没吃早饭,有点低血糖。案例很震撼,我没想到真实的数据泄露后果这么严重。” 她抬起头,努力让眼神显得真诚而惶恐:“我会尽快适应的。真的,非常抱歉耽误了培训。” 王丽盯着她看了足足五秒。 那五秒里,路容几乎能听到自己心跳的轰鸣。她强迫自己保持呼吸平稳,手指不要颤抖,眼神不要躲闪。这是她三年来反复练习的——如何在极度紧张的情况下,维持表面的平静。 “低血糖?”王丽终于开口,语气缓和了一些,“公司楼下有便利店,培训结束后去买点吃的。星耀的工作强度很大,身体是革命的本钱。” “谢谢总监提醒。” “回去吧。”王丽转身走向门口,“还有二十分钟培训结束,别错过重点。” 路容跟在她身后,脚步虚浮。走到走廊时,王丽忽然停下,回头看了她一眼:“对了,若溪。” “是?” “你的简历上写,你之前在几家小公司做过数据分析。”王丽状似随意地问,“但看你刚才的反应,还有笔试时那道加密算法的解题思路……不像新手。” 路容的血液再次冻结。 “我……我自学了很多。”她迅速回答,声音依旧沙哑,“之前在小公司,什么都要做,所以接触得杂。那道题是碰巧,我大学时对密码学有点兴趣。” “碰巧?”王丽笑了笑,那笑容里没有温度,“运气也是实力的一部分。好好干,李总很关注新人的潜力。” 说完,她转身离开,高跟鞋的声音在走廊里渐行渐远。 路容站在原地,直到那声音完全消失,才敢松开紧握的拳头。掌心全是冷汗,指甲在皮肤上掐出深深的印子。 李总很关注新人的潜力。 这句话像一句咒语,在她脑海里反复回响。是随口一提的鼓励,还是别有深意的警告?王丽到底看出了多少?刚才在洗手间,她到底听到了什么? 路容走回培训室,在门口停顿了两秒,调整呼吸,然后推门进去。 培训已经接近尾声。王丽正在讲星耀的企业文化:“在这里,业绩就是一切。你的代码行数、分析报告数量、项目贡献值,都会被系统量化打分。月度排名后百分之十会收到警告,连续三个月则进入淘汰观察期。” 残酷而高效的丛林法则。 路容坐回座位,翻开笔记本。纸页上,“淘汰率30%”那几个字旁边,她不知不觉画了一个圈,圈里写着一个名字:李剑。 笔迹很深,几乎划破纸页。 三年前,李剑毁了她的人生,夺走了她的事业、名誉、甚至对未来的希望。那之后,她像幽灵一样活着——不敢用真名,不敢联系旧友,不敢踏入任何一家像样的科技公司。她做过便利店收银员,送过外卖,在深夜的网吧里自学变声技巧和身份伪造技术。 所有的一切,都是为了今天。 为了走进这栋大楼,坐在这个位置,等待一个机会。 一个拿到证据的机会。 一个让李剑身败名裂的机会。 一个夺回属于自己的一切的机会。 培训结束的铃声响起。新人们陆续起身,低声交谈着走向门口。路容收拾好东西,最后一个离开。走到门口时,王丽叫住了她。 “若溪,你的工位在B区27号。这是你的第一个任务。”王丽递过来一个U盘,“里面是某个边缘项目的测试数据,杂乱无章。明天下午五点前,完成初步清洗和趋势分析报告。李总可能会看。” 路容接过U盘,指尖冰凉。 “别让我失望。”王丽说完,转身离开。 走廊里又只剩下路容一个人。她握着那个小小的黑色U盘,感觉它重若千钧。边缘项目的测试数据?李剑可能会看? 这太刻意了。 是试探,还是陷阱?或者两者都是? 她走回办公区,找到B区27号工位。很偏僻的位置,靠近消防通道,头顶的灯光有些昏暗。她坐下,打开电脑,插入U盘。 文件夹里确实是一堆杂乱无章的原始数据——用户行为日志、服务器错误报告、未经处理的传感器读数。但就在她快速浏览时,几行格式异常的数据跳进了视线。 那几行数据混杂在成千上万条正常日志中,很容易被忽略。但路容一眼就认出了那个加密标记——一个特定的、非标准的十六进制前缀,后面跟着经过混淆的字符序列。 三年前,在天启科技的核心数据库里,她见过完全相同的标记。 那是李剑私下使用的、未经公司备案的加密协议。当年所谓的“泄密证据”中,就包含用这种协议加密的数据包。警方和公司调查组都认定,只有拥有密钥的她才能解密并泄露那些数据。 但真相是,李剑自己就有密钥。 路容盯着屏幕,呼吸再次变得困难。这不是巧合。王丽故意把这些数据给她,是为了测试她是否认得这个标记?还是说,李剑根本就在用星耀集团的项目做掩护,继续进行非法的数据交易? 她闭上眼睛,强迫自己冷静。 不能慌。现在慌,就全完了。 她睁开眼睛,双手放在键盘上。手指依旧有些颤抖,但比刚才好多了。她开始敲击代码,一行行清洗指令在屏幕上滚动。这是她最熟悉的领域——数据。混乱的、无序的、隐藏在数字背后的真相。 随着代码运行,杂乱的数据开始变得规整,异常值被标记,缺失值被填补。她的动作越来越快,眼神越来越专注。世界缩小到屏幕上的字符和逻辑,那些恐惧、愤怒、颤抖,暂时被隔绝在外。 三年前,她是天启科技最年轻的数据架构师,能在七十二小时内重构整个风控模型。现在,她是若溪,一个简历平平的新人,必须小心隐藏自己的真实水平。 但有些东西是藏不住的。 比如直觉。比如对数据异常的天生敏感。比如看到那个加密标记时,心脏骤停般的本能反应。 窗外的天色渐渐暗下来。办公区的人越来越少,最后只剩下她一个人。屏幕的光映在她脸上,明明灭灭。她完成了数据清洗,开始写趋势分析报告。 在报告的“潜在风险”部分,她停顿了很久。 然后,她用一种“新手可能犯的、但思路清奇”的语气写道:“在数据清洗过程中,发现少量格式异常日志,带有非标准加密标记。虽然数量极少,且可能只是测试残留,但建议核查其来源,以防潜在的数据污染或安全漏洞。” 她故意用了几个不专业的术语,让整段话看起来像是新手的过度谨慎。 点击保存。发送给王丽。 发送成功的提示弹出来时,路容靠在椅背上,长长地吐出一口气。手腕上的牙印还在隐隐作痛,提醒她今天发生的一切都不是梦。 她回来了。 以幽灵的身份,踏入猎人的巢穴。 下一步是什么?王丽会怎么看待这份报告?李剑真的会看吗?如果看,他会认出那个“新手”的提醒背后,藏着怎样的警觉吗? 路容关掉电脑,收拾东西。走出办公区时,整层楼已经空无一人。走廊的声控灯随着她的脚步声依次亮起,又在她身后依次熄灭。 她走到电梯间,按下下行键。 电梯从三十八楼缓缓下降。数字跳动:38、37、36……每跳一下,路容的心就沉一分。李剑就在那层楼,就在那个可以俯瞰整个深港市的办公室里。 电梯门打开,里面空无一人。 她走进去,按下1楼。门缓缓关闭,镜面墙壁映出她苍白的脸。就在电梯开始下降的瞬间,她的手机震动了一下。 是一条陌生号码发来的短信,只有一句话: “报告看了。明天上午九点,来我办公室一趟。——李剑” 路容盯着那行字,手指僵硬。 电梯继续下降,失重感包裹全身。镜子里,那个戴着黑框眼镜的女人,缓缓地、缓缓地,露出了一个冰冷到极致的微笑。 第2章:第一道考验 地铁车厢摇晃着穿过隧道,广告灯箱的光影在路容脸上快速掠过。她盯着手机屏幕上那条短信,每一个字都像冰锥刺进眼底。李剑。这个名字在三年的时间里从未褪色,反而在每一次午夜梦回时变得更加清晰、更加狰狞。 电梯平稳下降,失重感持续着,像极了三年前她从人生巅峰坠落时的感觉。她将手机紧紧攥在掌心,金属边缘硌得生疼。明天上午九点,三十八楼。猎人与猎物,将在最初的战场,进行一场伪装下的重逢。 她抬起头,电梯镜面里那双眼睛,仇恨的火焰在深处静静燃烧,却被黑框眼镜和刻意低垂的眼帘完美掩盖。门开了,大厅的灯光涌进来。她走出去,脚步平稳,背影挺直,像一个真正的、对未来充满忐忑又怀揣希望的新人员工。没有人知道,那个走向地铁站的平凡身影心里,正在演练一场即将到来的、生死攸关的对话。 *** 第二天早晨八点二十分,路容已经坐在了工位上。 数据分析部的开放办公区弥漫着咖啡和消毒水的混合气味。头顶的日光灯管发出轻微的嗡鸣,二十七楼的落地窗外,深港市的楼宇在晨雾中若隐若现。路容打开电脑,登录内部系统,屏幕上跳出欢迎界面——星耀集团的蓝色logo旋转着展开,像一只缓缓睁开的眼睛。 她端起桌上的保温杯,抿了一口温水。水温刚好,但吞咽时喉咙依旧发紧。变声器贴在颈部的皮肤上,那种微凉的触感时刻提醒着她的伪装。 “若溪,来得挺早啊。” 王丽的声音从身后传来,高跟鞋敲击地面的节奏不紧不慢。路容转过身,看见总监今天穿了一身深紫色套装,耳环是简洁的珍珠款式,整个人看起来干练而威严。 “王总监早。”路容站起身,声音经过调整后带着恰到好处的拘谨。 王丽没有回应她的问候,而是将一个银色U盘“啪”地一声丢在她桌面上。U盘撞击木质桌面的声音清脆刺耳,周围几个早到的同事下意识地抬头看了一眼,又迅速低下头去。 “这是‘星云边缘计算项目’的测试数据。”王丽双手抱胸,居高临下地看着她,“原始数据,没经过任何处理。下班前完成初步清洗和趋势分析报告,发到我邮箱。” 路容拿起U盘。金属外壳冰凉,边缘有些划痕。她抬头看向王丽:“请问清洗的具体标准是?” “标准?”王丽嘴角勾起一个弧度,“你是数据分析师,连清洗标准都要我教?自己判断。李总很关注新人的潜力——” 她顿了顿,身体微微前倾,声音压低了几分,却足够让周围人听清:“别让我失望。” 说完这句话,王丽转身离开,高跟鞋的声音在空旷的办公区里回荡,渐行渐远。 路容坐回椅子,将U盘插入电脑接口。系统提示检测到新设备,她点击打开文件夹。 里面只有一个文件,名字是乱码般的字符串:`XJ_TestData_2023Q4_Raw_V2.7z`。 压缩文件。她解压,进度条缓慢爬升。电脑风扇开始加速运转,发出轻微的嗡鸣。路容盯着屏幕,手指无意识地敲击桌面。一下,两下,三下。这是她紧张时的习惯性动作,三年前就有。她立刻停下,将双手平放在膝盖上。 解压完成。文件夹展开,里面是十七个CSV文件和三个日志文件,总计超过五十万行数据。 路容点开第一个CSV文件。 密密麻麻的数字和字符涌进视线。这确实是边缘计算项目的测试数据——流量监控、节点延迟、资源占用率,都是星耀集团正在探索但尚未大规模投入的领域。数据杂乱无章,缺失值随处可见,时间戳格式不统一,还有大量明显错误的异常值。 她滚动鼠标,快速浏览。 然后,她的手指僵住了。 在第三个日志文件的末尾,混杂在几百行正常的系统日志中间,有七行数据格式明显不同。 时间戳的格式是`YYYY-MM-DD HH:MM:SS.FFF`,而不是项目通用的`Unix Timestamp`。字段分隔符是竖线`|`而不是逗号。内容字段被加密过,显示为十六进制字符串。 但这些都不是关键。 关键是那七行数据的末尾,都有一个相同的标记:`#K3-7A-82`。 路容的呼吸停止了。 世界在那一瞬间收缩成屏幕上的那串字符。`#K3-7A-82`。灰底黑字,在日志文件的白色背景上格外刺眼。她的视线开始模糊,耳膜里响起尖锐的鸣叫,像一根针从太阳穴刺进去,直抵大脑深处。 三年前,天启科技。 李剑的办公室,下午四点。阳光从落地窗斜漏出来,在地板上切出锐利的光斑。她站在办公桌前,手里拿着那份被指控“泄露”的商业文件。文件的每一页右下角,都有一个不起眼的水印标记。 就是`#K3-7A-82`。 李剑当时指着那个标记,声音平静得像在讨论天气:“这是内部文件的追踪码。只有核心项目组的成员能接触到。路容,你怎么解释?” 她解释不了。因为她从来没见过那份文件,更不知道那个标记是什么。 后来她才知道,那是李剑私下使用的加密标记之一,用于标识他经手的“特殊”数据——那些游走在法律边缘,甚至完全非法的交易记录。 而现在,这个标记出现在星耀集团的测试数据里。 出现在她面前。 路容猛地闭上眼。黑暗袭来,但那个标记依旧在视网膜上燃烧。`#K3-7A-82`。灰底黑字。她感觉到心脏在胸腔里疯狂撞击,每一次跳动都牵扯着三年前的伤口。手腕上,昨天自己咬出的牙印开始隐隐作痛。 不能抖。 不能出声。 不能暴露。 她深吸一口气,再吸一口。空气进入肺部,冰冷而稀薄。她强迫自己睁开眼睛,重新看向屏幕。那七行数据还在那里,安静地躺在日志文件的末尾,像七具埋在雪地里的尸体。 是陷阱吗? 王丽故意放进来的?李剑授意的?为了测试她?为了看她看到这个标记时的反应? 还是说,这只是巧合?李剑仍然在用这个标记处理非法数据,而这次不小心混入了测试文件? 路容不知道。她只知道,自己必须完成这份报告。必须用“若溪”的方式完成。 她开始工作。 手指重新放在键盘上。第一个敲击有些颤抖,但第二个就稳住了。她打开数据清洗脚本模板,开始修改。删除缺失值超过百分之三十的字段,统一时间戳格式,用中位数填充异常值……这些操作她闭着眼睛都能完成,但现在她必须放慢速度,必须偶尔停下来,假装在思考,假装在查阅资料。 她打开浏览器,搜索“数据清洗常见方法”。页面加载出来,她扫了一眼,然后关掉。这只是表演,给可能存在的监控看的表演。 真正的清洗在后台进行。她写了一个简单的Python脚本,批量处理那十七个CSV文件。代码运行,进度条跳动。她盯着屏幕,眼神专注,但余光始终注意着周围。 办公区的人渐渐多起来。键盘敲击声、鼠标点击声、低声交谈声、椅子轮子滑动的声音……这些声音交织成职场特有的白噪音。有人从她身后经过,带起一阵微风。路容没有回头,但脊背微微绷紧。 九点半,周哲来了。 他坐在斜对面的工位,隔着一个过道。路容听见他拉开椅子的声音,听见他打开电脑的启动音,听见他轻声和旁边同事打招呼:“早啊,昨天那个bug修好了吗?” 声音温和,带着技术人特有的理性腔调。 路容没有抬头。她不能抬头。周哲是李剑的得力下属,虽然资料显示他为人正直,但谁也不知道他到底站在哪一边。她不能冒险。 清洗工作完成了三分之二。她停下来,揉了揉太阳穴。这个动作很自然,任何一个面对杂乱数据的新人都会这么做。然后她起身,去茶水间接水。 走廊里贴着星耀集团的宣传海报:大数据赋能未来、人工智能改变生活、创新驱动增长……每一张海报都光鲜亮丽,每一句口号都充满希望。路容走过这些海报,走进茶水间。 咖啡机的蒸汽喷发声、微波炉的叮咚声、同事闲聊的笑声。空气里弥漫着咖啡豆的焦香和微波炉加热食物的油腻气味。路容接了一杯热水,靠在吧台边,小口啜饮。 “新来的?” 一个女声在旁边响起。路容转头,看见一个和她年纪相仿的女生,手里端着马克杯,笑容友善。 “嗯,昨天刚入职。”路容回答,声音里的沙哑恰到好处。 “我是林晓,也是新人,比你早来一周。”女生伸出手,“数据分析二组的。” 路容和她握手。林晓的手温暖干燥,握力适中。 “若溪,一组。”路容说。 “王总监手下啊。”林晓眨眨眼,压低声音,“她挺严格的,你加油。” 路容笑了笑,没说话。 “对了,你接到那个测试数据的任务了吗?”林晓问,“边缘计算项目的?” 路容点头。 “我也接到了,不过我是另一批数据。”林晓撇撇嘴,“听说李总会亲自看新人的报告,压力好大。” 路容握着杯子的手指收紧了一瞬。 “李总……很关注新人吗?”她问,语气尽量随意。 “据说每年都会挑几个有潜力的重点培养。”林晓凑近了些,“王总监是李总的人,她推荐的,李总一般都会给机会。所以啊,这次任务很重要。” 路容垂下眼睑,盯着杯子里晃动的水面。 机会。 是啊,机会。接近李剑的机会。获取证据的机会。复仇的机会。 也是暴露的机会。万劫不复的机会。 “谢谢提醒。”她抬起头,对林晓露出一个感激的微笑。 回到工位,路容重新投入工作。 那七行带有`#K3-7A-82`标记的数据,她单独提取出来,放在一个新建的文本文件里。她没有删除它们——删除太刻意了,一个新人不会注意到这么隐蔽的异常。但她也不能完全无视——无视更可疑,因为李剑可能就在等着看她是否认得这个标记。 她需要一种中间状态。 一种“注意到了,但没完全理解其意义”的状态。 下午两点,数据清洗全部完成。清洗后的文件整洁规整,缺失值被合理填充,异常值被修正或剔除,时间戳统一格式,字段命名规范。路容检查了一遍,确认没有留下任何属于“路容”的痕迹——没有她惯用的特殊算法,没有她独创的清洗逻辑,一切都符合一个合格新人的水平。 然后开始写分析报告。 她打开模板,填写项目名称、日期、执行人。在“数据概况”部分,她描述了数据来源、规模、质量评估。在“清洗过程”部分,她详细列出了每一步操作和理由,故意加入了几处略显冗余的解释,让整部分看起来像是新人在努力证明自己的严谨。 接着是“趋势分析”。 她调用清洗后的数据,生成折线图、柱状图、散点图。流量监控显示周期性波动,节点延迟在可接受范围内,资源占用率存在优化空间……这些都是边缘计算项目的典型特征,没有惊喜,也没有意外。 报告写到最后一节:“潜在风险与建议”。 路容的手指悬在键盘上方。 窗外的阳光已经西斜,从二十七楼看出去,深港市的楼宇被镀上一层金红色的光晕。远处,江面上货轮缓缓驶过,拉出长长的白色尾迹。这个城市依旧在运转,高效、冷漠、不为任何人的命运停留。 她开始打字。 “在数据清洗过程中,发现少量格式异常日志(共7行),混杂在系统日志文件中。异常特征包括:时间戳格式不统一(YYYY-MM-DD HH:MM:SS.FFF)、字段分隔符为竖线而非逗号、内容字段为十六进制字符串。此外,每行日志末尾均带有相同标记:#K3-7A-82。” 写到这里,她停顿了一下。 心脏又开始加速。她深呼吸,继续。 “经查询,该标记并非星云项目组标准标记,亦未在集团内部编码规范中找到对应说明。虽然数量极少,且可能仅为测试残留或误导入数据,但建议核查其来源,以防潜在的数据污染或安全漏洞。具体建议:1. 确认该标记的归属及含义;2. 检查数据导入流程是否存在漏洞;3. 如确认为无关数据,建议建立更严格的过滤机制。” 她反复读了三遍。 语气足够谨慎,用词足够生涩,逻辑足够“新手”——注意到了异常,但没意识到异常可能意味着什么;提出了建议,但建议都是常规的安全措施;整段话看起来就像一个过度认真的新人在展示自己的细心。 完美。 她点击保存,将报告导出为PDF,附上清洗后的数据文件,打包发送到王丽的邮箱。 发送时间:下午四点四十七分。 距离下班还有十三分钟。 路容靠在椅背上,闭上眼睛。疲惫像潮水一样涌上来,从四肢百骸渗透进骨髓。她维持了一整天的伪装,面对了一整天的数据,压抑了一整天的情绪。现在,暂时结束了。 办公区里,有人开始收拾东西,有人还在加班。键盘敲击声稀疏下来,取而代之的是拉链声、关抽屉声、低声的“明天见”。路容没有动。她需要等,等王丽的回复,或者,等别的什么。 五点整,下班铃声响了。 是一段轻柔的钢琴曲,在办公区的广播里流淌。同事们陆续起身离开,脚步声、交谈声、电梯到达的叮咚声。路容依旧坐着,看着电脑屏幕。邮箱里没有新邮件,聊天软件没有新消息。 王丽没有回复。 也许不会回复了。也许这份报告会石沉大海,也许李剑根本不会看,也许那个标记真的只是巧合。 路容开始收拾东西。她把U盘拔出来,放进包里。关掉电脑,屏幕暗下去,映出她疲惫的脸。她站起身,拿起外套,准备离开。 就在这时,桌上的座机响了。 刺耳的铃声划破办公区的寂静。路容的身体僵住了。她盯着那部黑色的电话机,看着它随着铃声微微震动。一下,两下,三下。 她伸出手,手指在触碰到听筒的瞬间,微微颤抖。 她拿起听筒,放到耳边。 “喂?” “若溪是吗?”电话那头传来一个低沉的男声,声音平稳,带着某种惯常的权威感,“我是李剑。” 路容的呼吸停滞了。 “你的报告我看了。”李剑说,语气听不出情绪,“来我办公室一趟,谈谈你的报告。” 电话挂断。 忙音响起,单调而持续。路容握着听筒,指关节因为用力而发白。窗外的夕阳正沉入江面,最后的光线透过玻璃,将她的影子拉得很长,很长。 她缓缓放下听筒。 金属撞击塑料底座,发出清脆的“咔哒”声。 然后她转过身,看向落地窗外。三十八楼就在头顶,十一层楼的距离,垂直向上。那里有一间办公室,有一个男人,有一场等待了三年的对话。 路容抬起手,扶了扶鼻梁上的黑框眼镜。 镜片后的眼睛,冰冷而清晰。 她走向电梯间,按下上行键。 第3章:深渊的凝视 电梯门缓缓关闭,镜面墙壁映出路容苍白的脸。数字开始跳动:27、28、29……每上升一层,空气就凝重一分。她盯着不断变化的数字,手指无意识地摩挲着包带。三十八楼。那个男人就在那里等着。三年前他毁掉她的人生时,也是在这样的办公室里,用同样平静的声音宣判她的“罪行”。路容深吸一口气,调整了一下颈部的变声器。金属贴片微微发烫,像一块烙铁。电梯到达的叮咚声响起,门开了。一条铺着深灰色地毯的走廊延伸出去,尽头是两扇厚重的胡桃木门。秘书台后的女人抬起头,露出职业化的微笑:“若溪小姐?李总在等您。” 路容点点头,喉咙发紧。她跟着秘书走向那扇门,高跟鞋踩在地毯上,发出沉闷的噗噗声。走廊两侧挂着抽象画,冷色调的几何图形在射灯下泛着金属光泽。空气里有淡淡的雪松香薰味,混合着纸张和皮革的气息——这是权力的味道,昂贵、冰冷、不容置疑。 秘书轻轻敲了门,里面传来一声“进来”。 门开了。 路容走进去的瞬间,视野骤然开阔。这是一间至少八十平米的办公室,整面墙的落地窗外,深港市的天际线在傍晚的余晖中铺展开来。江对岸的摩天大楼亮起了点点灯光,像散落在灰色绒布上的碎钻。办公室中央,一个男人背对着门口,站在窗前。 他穿着深灰色西装,肩线笔挺,身形比三年前更显精干。双手背在身后,姿态从容,仿佛整个城市都在他的俯瞰之下。 门在身后轻轻合拢。 路容站在原地,距离他大约三米。这个距离,她能看清他后颈修剪整齐的发际线,能闻到他身上传来的、某种熟悉的古龙水味道——三年前,就是这个味道,在她被保安带走时,从她身边擦肩而过。 她的心脏开始剧烈跳动,血液冲上耳膜,发出轰鸣。手指在身侧蜷缩起来,指甲陷进掌心。疼痛让她清醒。她不能抖,不能失声,不能露出任何破绽。她是若溪,一个刚入职的新人,一个对副总裁心怀敬畏的普通员工。 “李总。”她开口,声音经过变声器处理后,带着恰到好处的紧张和恭敬,“我是数据分析部的若溪。” 窗前的身影没有动。 几秒钟的沉默,长得像一个世纪。路容能听见自己呼吸的声音,能感觉到汗水顺着脊柱滑落。窗外的天空正在由橙红转为深蓝,云层边缘镶着一道金边。 然后,李剑缓缓转过身。 路容看到了他的脸。 三年时间在他脸上留下了痕迹——眼角多了细纹,法令纹更深了些,但那双眼睛依旧锐利,像鹰隼锁定猎物时的眼神。他的头发梳得一丝不苟,露出饱满的额头。嘴角挂着温和的笑意,但那笑意没有抵达眼底。 “若溪。”他念出这个名字,声音低沉平稳,“坐。” 他指了指办公桌对面的椅子。那是一张黑色皮质扶手椅,看起来柔软舒适,但路容知道,坐上去就意味着进入他的审视范围。 她走过去,坐下。皮质座椅冰凉,透过薄薄的西装裤面料渗进来。她把包放在膝上,双手交叠,姿态拘谨。 李剑没有立刻回到办公桌后。他踱步到一旁的酒柜前,取出一只水晶杯,倒了小半杯琥珀色的液体。冰块碰撞杯壁的声音清脆刺耳。他端着酒杯,走到办公桌后坐下,目光始终落在路容脸上。 “你的报告我看了。”他抿了一口酒,放下杯子,“关于测试数据中异常加密标记的那段分析。” 路容的心脏猛地一缩。 “是。”她努力让声音保持平稳,“我……我在清洗数据时,发现有几个字段的加密格式和整体数据不匹配。标记是`#K3-7A-82`,这种格式我在一些公开的安全漏洞案例里见过,所以觉得可能需要关注。” 她说话时,眼睛看着李剑的鼻梁——这是她训练过的技巧,既显得尊重,又不会因为直视对方眼睛而暴露太多情绪。李剑的手指在桌面上轻轻敲击,节奏均匀,像在打拍子。 “公开案例?”他重复道,“具体是哪些案例?” 路容早有准备。她报出了三个最近两年在安全论坛上讨论过的数据泄露事件,其中两个涉及金融行业,一个涉及医疗数据。她刻意把语速放慢,加入了一些不确定的修饰词:“好像是在‘安全之家’论坛上看到的……具体时间记不太清了,但格式确实很像。” 李剑静静地听着,脸上没有任何表情。等她说完了,他才开口:“你入职才两天,就能从一堆测试数据里发现这种细节。很敏锐。” 这句话听起来像是夸奖,但路容听出了其中的试探。 “我只是比较仔细。”她低下头,做出谦虚的姿态,“而且王总监交代的任务,我不敢马虎。” “王丽。”李剑念出这个名字,语气里有一丝难以察觉的玩味,“她确实擅长挖掘新人潜力。” 他身体前倾,双手交叠放在桌面上。这个动作拉近了两人的距离,路容能更清楚地看到他眼中的神色——那是一种审视,一种评估,一种猎人在判断猎物价值时的冷静计算。 “不过,”李剑话锋一转,“我更感兴趣的是,你这种‘敏锐’是从哪里培养出来的。” 他拿起桌上的一份文件。路容瞥见那是她的简历打印件,右上角贴着她的证件照——那张经过精心修饰、与她本人有七分相似的照片。 “你的简历上写着,过去一年半是‘自由职业期’。”李剑翻看着纸页,纸张摩擦发出沙沙声,“具体做了什么项目?接触过哪些类型的数据?” 空气凝固了。 路容感觉到后背的衬衫开始被汗水浸湿,黏在皮肤上。她伪造的简历里,这段经历写得非常模糊,只说是“为多家中小型企业提供数据咨询服务”,没有具体公司名称,没有项目细节。这是她故意留下的破绽——太完美的简历反而可疑,适当的模糊更能让人接受。 但现在,李剑抓住了这个破绽。 “主要是……一些本地的小公司。”她开始编造,语速控制得恰到好处,“比如‘晨光商贸’,他们需要做销售数据的趋势分析;还有‘深港物流园’的一个分包商,我帮他们优化过运输路线的数据模型……” 她说出这些名字时,心脏在胸腔里狂跳。这些公司都是真实存在的,规模很小,不太可能和星耀集团有交集。她花了整整一周时间研究深港市的中小企业名录,背下了几十家公司的基本信息和业务范围。 李剑听着,手指依旧在桌面上敲击。咚、咚、咚。每一声都像敲在路容的神经上。 “这些项目,有合同吗?有成果报告吗?”他问,声音很轻,但每个字都带着重量。 “有的。”路容点头,“但都是短期合作,合同很简单。成果报告……我电脑里有一些备份,如果需要的话——” “不用。”李剑打断她,身体向后靠进椅背,“我只是好奇,以你的能力,为什么选择去服务这些小公司,而不是找一份稳定的工作。” 他盯着她,眼神像手术刀一样锋利。 “毕竟,你毕业于深港理工大学,专业是数据科学,成绩单很漂亮。”他翻到简历的第二页,“毕业后的第一份工作在天启科技,只做了八个月就离职了。然后就是一年半的自由职业期,接着空窗了三个月,现在来到星耀。” 他把简历放下,双手交叉放在胸前。 “这个轨迹,不太寻常。” 路容的喉咙发干。她能感觉到变声器贴片下的皮肤在发烫,呼吸开始变得困难。应激障碍的症状正在浮现——胸口发紧,四肢末端开始发麻,视野边缘出现细微的颤动。 不能失控。她对自己说。绝对不能。 “天启科技……”她开口,声音比刚才更哑了一些,“当时公司内部有些调整,我所在的部门被合并了。我觉得发展空间有限,就选择了离职。” 这是她精心准备的说辞。三年前天启科技确实经历过一次大规模重组,多个部门合并裁员,这个理由合情合理。 “至于自由职业,”她继续说,努力让声音平稳,“我是想多接触不同类型的项目,积累经验。小公司的数据问题往往更复杂,更锻炼人。” 她说完,办公室里陷入沉默。 李剑没有说话,只是看着她。他的目光从她的脸移到她的手,再移到她微微颤抖的膝盖——路容立刻用力压住大腿,止住了颤抖。窗外的天色又暗了一些,办公室里的灯光自动调亮,暖黄色的光线从天花板洒下来,在李剑脸上投下淡淡的阴影。 时间一分一秒过去。 路容能听见自己心跳的声音,能感觉到汗水从额角滑落,沿着太阳穴流到下颌。她不敢擦,只能维持着僵硬的坐姿。李剑的审视像无形的压力,笼罩着整个空间。 终于,他动了。 他伸手拿起酒杯,又抿了一口。琥珀色的液体在杯中晃动,折射出细碎的光。 “很合理的解释。”他说,语气听不出情绪,“不过,我这个人有个习惯——喜欢把事情弄清楚。” 他放下酒杯,身体再次前倾。 “你报告里提到的那个加密标记,`#K3-7A-82`。”他缓缓地说,“你确定只是在公开案例里见过?” 路容的呼吸停滞了。 “我……确定。”她强迫自己回答,“格式很特别,所以有印象。” “是吗。”李剑的手指在桌面上画了一个圈,“那你知道这个标记最早出现在什么时候吗?” 路容的血液瞬间冰凉。 她当然知道。三年前,天启科技“泄密案”的所谓证据里,就出现了这个标记。李剑当时在内部会议上展示过截图,声称这是路容与外部分享数据时使用的加密标识。 但她不能说。若溪不可能知道。 “不清楚。”她摇头,“应该是……近几年出现的吧?” 李剑盯着她,看了很久。然后,他忽然笑了。 那是一个温和的、长辈式的笑容,眼角堆起细纹,看起来亲切又包容。 “不用紧张。”他说,“我只是随口问问。你能注意到这种细节,说明你很适合做数据安全相关的工作。星耀现在正需要这样的人才。” 他站起身,走到窗边,背对着路容。 “下周开始,你会被调到‘深蓝计划’的预研小组。”他看着窗外的城市灯火,“那是公司未来的核心项目,涉及大量敏感数据。王丽会给你安排具体任务。” 路容的心脏猛地一跳。深蓝计划——这就是周哲之前提到的、李剑亲自抓的项目。进入这个小组,意味着她将接触到星耀最核心的数据,也意味着离李剑的非法交易更近一步。 机会来了。但风险也成倍增加。 “谢谢李总信任。”她站起身,声音里带着恰到好处的激动,“我一定努力。” 李剑没有回头,只是摆了摆手。 “去吧。好好干。” 路容拿起包,转身走向门口。她的脚步很稳,背挺得很直,但只有她自己知道,膝盖在发软,手心全是冷汗。还有三步就到门口了,两步,一步—— 她的手握上门把。 就在这时,李剑的声音从身后传来,平静得像在谈论天气: “对了,若溪。” 路容僵住了。 “你说话的声音,”李剑慢慢地说,“有点特别。是感冒了吗?” 时间静止了。 路容感觉到颈部的变声器贴片像烧红的铁块一样烫。她的喉咙发紧,呼吸变得困难。应激障碍的症状全面爆发——视野开始模糊,耳鸣尖锐,四肢不受控制地颤抖。 她必须回答。必须立刻回答。 “是……有点。”她强迫自己开口,声音因为紧张而更加干涩,“最近换季,喉咙不太舒服。” “多喝热水。”李剑说,语气依旧温和,“身体是革命的本钱。” “谢谢李总关心。” 路容拧开门把,拉开门。走廊的光线涌进来,她一步踏出去,反手关上门。 门合拢的瞬间,她靠在墙上,大口喘气。冷汗浸透了衬衫,黏在背上。视野里的黑斑慢慢消退,耳鸣逐渐平息。她抬手扶住墙壁,指尖冰凉。 就在这时,走廊另一端传来脚步声。 路容抬起头,看见一个穿着浅蓝色衬衫的男人正朝这边走来。他大约三十岁,身形挺拔,戴着一副无框眼镜,手里拿着一份文件夹。他的步伐很快,但很稳,目光直视前方,神情专注。 两人的视线在空中交汇。 那一瞬间,路容看见他眼中闪过一丝疑惑——也许是因为她苍白的脸色,也许是因为她靠在墙上的狼狈姿态。但很快,那疑惑就消失了,取而代之的是礼貌的询问。 “你没事吧?”他问,声音温和,带着关切。 路容立刻站直身体,整理了一下衣襟。 “没事。”她说,努力让声音恢复正常,“只是有点头晕。” 男人点点头,目光落在她胸前的工牌上。 “数据分析部的若溪?”他念出名字,然后笑了,“我是技术部的周哲。李总在里面吗?” “在。”路容说,侧身让开路。 周哲道了声谢,抬手敲了敲办公室的门。在等待回应的时候,他转过头,又看了路容一眼。 “你脸色真的不太好。”他说,“要不要去休息室坐一下?” 路容摇摇头:“不用了,谢谢。” 门内传来李剑的“进来”。周哲推门进去,在门即将关上的瞬间,路容瞥见了他手中文件夹封面上的字样: 深蓝计划-预研阶段技术评估报告。 门关上了。 走廊里只剩下路容一个人。她站在原地,听着自己逐渐平复的心跳,感受着冷汗慢慢变干带来的凉意。窗外,深港市的灯火已经完全亮起,江面上倒映着斑斓的光影。 她转过身,走向电梯间。 每一步,都像踩在刚刚冷却的灰烬上。 第4章:意外的援手 路容坐在工位上,盯着电脑屏幕上的数据表格,视线却无法聚焦。 办公室里的白炽灯发出嗡嗡的电流声,空调出风口吹出的冷风拂过她的后颈。她下意识抬手摸了摸变声器贴片的位置——皮肤上的红印已经消退,但那种灼烧感还残留在记忆里。李剑最后那句话像一根刺,扎在她喉咙深处。 “你说话的声音,有点特别。” 他注意到了。 路容闭上眼睛,强迫自己深呼吸。空气里有咖啡的焦苦味、打印机墨粉的化学气味,还有同事们身上混杂的香水味。这些熟悉的气味本该让她感到安全,此刻却像一张无形的网,将她困在原地。 她不能慌。变声器经过特殊处理,模拟的是轻微感冒时的沙哑音色,理论上没有破绽。但李剑的多疑是出了名的,任何细微的异常都可能成为他怀疑的种子。 “若溪?” 路容猛地睁开眼。 林晓站在她工位旁,手里端着马克杯,脸上带着好奇的表情:“你刚才去三十八楼了?见到李总了?” “嗯。”路容简短地回答,手指在键盘上敲了几下,假装在工作。 “哇,厉害啊。”林晓压低声音,“听说李总特别严格,上次市场部的小王去汇报,被问得当场哭出来了。你怎么样?” 路容感觉到自己的心跳又开始加速。她端起桌上的水杯,喝了一口。温水滑过喉咙,稍微缓解了那种紧绷感。 “还好。”她说,“就是问了问报告的事。” “那就好。”林晓松了口气似的,“对了,王总监刚才找你,让你去她办公室一趟。” 路容的手指僵住了。 又是办公室。 她站起身,膝盖有些发软。从工位到总监办公室只有二十米距离,她却觉得像要走完整个马拉松。走廊两侧的玻璃隔断映出她苍白的脸,黑色镜框后的眼睛布满血丝。 王丽的办公室门虚掩着。 路容敲了敲门。 “进来。” 推开门,王丽正坐在办公桌后,手里拿着一份文件。她今天穿了件深红色的西装外套,衬得脸色更加冷峻。办公室里的光线很暗,百叶窗半拉着,只有桌上一盏台灯照亮她面前的一小片区域。 “坐。”王丽头也不抬地说。 路容在办公桌对面的椅子上坐下。椅子是真皮的,坐下去时会发出轻微的挤压声。她能闻到王丽身上浓烈的香水味——某种混合了檀木和麝香的昂贵品牌,像一层无形的屏障,将两人隔开。 “李总刚才给我打了电话。”王丽终于放下文件,抬起头。她的目光像手术刀一样锐利,“他说你报告写得不错,想调你去‘深蓝计划’预研小组。” 路容的心脏漏跳了一拍。 “深蓝计划”——周哲手里那份文件上的名字。她终于要接触到核心了。 “这是好事。”王丽继续说,但语气里听不出任何祝贺的意思,“不过我得提醒你,那个项目是李总亲自抓的,压力非常大。之前调过去的几个人,最短的只待了两周就申请调离。” 她身体前倾,双手交叠放在桌面上。台灯的光从下方照上来,在她脸上投出诡异的阴影。 “你简历上那段时间的空档期,”王丽慢慢地说,“李总好像挺在意的。他让我再跟你确认一下,那两年你到底在做什么项目?自由职业也得有个具体方向吧?” 空气凝固了。 路容感觉到汗水从额角渗出。办公室里的空调温度很低,但她后背的衬衫已经湿了一片。王丽的眼睛死死盯着她,等待一个答案。 她必须回答。必须立刻给出一个听起来合理的解释。 “主要是……”路容开口,声音因为紧张而更加干涩,“是一些中小企业的数据系统优化项目,比较零散,所以……” “具体是哪些企业?”王丽打断她,“有合同吗?有项目成果吗?” 路容的喉咙像被什么东西堵住了。她张了张嘴,却发不出声音。应激障碍的症状开始浮现——视野边缘出现黑斑,耳鸣声由远及近。三年前那个场景又回来了:会议室里,所有人盯着她,李剑用平静的声音宣读那些伪造的证据…… “王总监。” 一个温和的男声从门口传来。 路容和王丽同时转过头。 周哲站在门口,手里拿着一个平板电脑。他穿着浅蓝色的衬衫,袖子挽到手肘,露出线条清晰的小臂。走廊的光从他身后照进来,在他周身勾勒出一圈淡淡的光晕。 “抱歉打扰。”周哲走进来,朝王丽点点头,“李总让我来找若溪。‘深蓝计划’有个技术节点需要紧急处理,我们组的人手不够。” 王丽皱了皱眉:“现在?我正问她——” “对,现在。”周哲的语气很礼貌,但不容置疑,“李总说这个节点关系到下周的演示,必须今天解决。”他转向路容,露出一个歉意的笑容,“王总监说你数据处理很快,我们组正好缺人帮忙核对一批接口日志。李总,能借调若溪半天吗?” 最后这句话,他是对着王丽身后说的。 路容这才注意到,王丽电脑屏幕上正显示着视频通话界面——李剑的脸出现在画面里。他坐在三十八楼的办公室里,背景是那面巨大的落地窗。光线从他身后照过来,让他的脸处于半明半暗之中。 视频里的李剑沉吟了片刻。 那几秒钟的沉默,路容能听见自己血液流动的声音。空调出风口的风吹过她的后颈,带起一阵寒意。她盯着屏幕上李剑的脸,看见他手指无意识地敲击着桌面——这是他在思考时的习惯动作,三年前她见过无数次。 “可以。”李剑终于开口,声音透过扬声器传出来,带着轻微的电流杂音,“王总监,你那边的问题晚点再问。先让若溪去技术部。” 王丽的脸色变了变,但很快恢复平静:“好的,李总。” 视频通话断开。 办公室里的空气重新开始流动。 “走吧。”周哲对路容说,侧身让开路。 路容站起身,膝盖还在发软。她跟着周哲走出王丽的办公室,穿过数据分析部的开放办公区。同事们投来好奇的目光,窃窃私语像蚊蝇一样在耳边嗡嗡作响。 走进电梯,周哲按下二十五楼的按钮。 电梯门合拢,狭小的空间里只剩下他们两个人。镜面墙壁映出两人的身影——周哲站得笔直,目光平静地看着楼层数字;路容则微微低着头,双手紧紧抓着背包带子。 “谢谢。”她低声说。 周哲转过头,看了她一眼。 “不用谢。”他说,“那个技术节点确实需要人手。”顿了顿,他又补充道,“不过王总监问话的方式……确实有点咄咄逼人。” 电梯开始下降。 失重感让路容的胃部一阵翻搅。她靠在电梯壁上,闭上眼睛。刚才在王丽办公室里的那种窒息感还没有完全消退,喉咙里像堵着一团棉花。 “李总问话喜欢挖细节。”周哲突然说,声音压得很低,只有他们两人能听见,“下次被问到履历,准备点具体的项目名称,哪怕是小项目。比如‘某某公司CRM系统数据清洗’、‘某某平台用户行为分析模型优化’之类的。有名字,听起来就真实多了。” 路容猛地睁开眼睛。 电梯里的光线很亮,白炽灯照在周哲脸上。他的表情很平静,就像在说一件再普通不过的工作建议。但路容的心脏却像被什么东西狠狠撞了一下。 他在帮她。 这个认知让她既感到温暖,又涌起一阵强烈的愧疚。周哲的善意是真诚的——他以为她只是一个刚入职、不擅长应对高层盘问的新人。他不知道,他此刻的帮助对象,是一个用假身份潜入公司、准备扳倒他上司的复仇者。 “叮——” 电梯到达二十五楼。 门开了,一股完全不同的气息扑面而来。 如果说数据分析部的空气是纸张、咖啡和香水混合的精致味道,那么技术部的空气就是代码、电路板和汗水交织的粗粝气息。开放办公区里摆满了双屏甚至三屏的显示器,蓝色的代码在黑色背景上滚动。键盘敲击声此起彼伏,像一场永不停歇的雨。 空气里有种微妙的臭氧味——那是大量电子设备运行时产生的气味。还有泡面的味道、能量饮料的甜腻味,以及长时间未通风的、略显浑浊的人体气息。 “这边。”周哲领着路容穿过一排排工位。 技术部的人看起来和数据分析部完全不同。这里几乎没人穿正装,大多是T恤、卫衣、牛仔裤。有人戴着巨大的降噪耳机,完全沉浸在自己的世界里;有人一边啃着面包一边盯着屏幕,手指在键盘上飞舞。 周哲的工位在靠窗的位置。 这里相对安静一些,窗外能看到深港市的老城区——低矮的楼房、错综复杂的街巷,与江对岸的摩天大楼形成鲜明对比。工位上摆着三台显示器,其中一台显示着复杂的系统架构图,另一台是密密麻麻的日志文件,第三台则是一个实时监控仪表盘。 “坐。”周哲从旁边拖来一把椅子。 路容坐下,目光立刻被屏幕上的内容吸引。 那是“深蓝计划”的接口日志文件。 成千上万行数据在屏幕上滚动,每一行都记录着某个时间点、某个接口的调用情况。时间戳、接口ID、请求参数、响应状态、耗时……这些看似枯燥的数据,在路容眼中却像一幅缓缓展开的地图。 她看到了熟悉的加密标记。 虽然只是边缘日志,虽然这些接口看起来都是外围服务,但那些隐藏在参数中的、经过编码的字符串,与她三年前在天启科技见过的模式如出一辙。 `#K3-7A-82`的变体。 路容的手指微微颤抖。她强迫自己冷静下来,从背包里拿出自己的笔记本电脑。开机,连接公司内网,登录工作账号。一系列动作流畅自然,就像她真的只是一个来帮忙核对日志的普通员工。 “需要核对的在这。”周哲俯身过来,指了指其中一台显示器上的一个文件夹。 他的手臂擦过路容的肩膀。路容闻到他身上淡淡的洗衣液味道——某种清爽的草本香气,与办公室里那些浓烈的古龙水截然不同。这个味道让她有一瞬间的恍惚,仿佛回到了三年前,她还是路容的时候,在技术部通宵加班,周围都是这样简单干净的气息。 “这些日志是过去一周的。”周哲的声音把她拉回现实,“需要核对每个接口的调用频率是否在正常范围内,异常响应有没有触发告警,还有……”他顿了顿,“有没有任何看起来像是伪装成正常请求的异常数据包。” 路容抬起头:“异常数据包?” “嗯。”周哲的表情变得严肃,“‘深蓝计划’涉及的用户数据量很大,而且有些数据……比较敏感。李总特别强调过数据安全,要求我们定期排查有没有外部渗透的痕迹。” 路容的心沉了下去。 李剑在防范。他不仅在进行非法数据交易,还在小心翼翼地掩盖痕迹。这些日志核查,表面上是技术巡检,实际上是在清除可能暴露他的证据。 “明白了。”路容说,声音平静得连她自己都感到惊讶。 她开始工作。 手指在键盘上飞舞,眼睛快速扫过一行行日志数据。这是她最擅长的领域——在海量数据中寻找模式,发现异常,还原真相。三年前,她就是凭借这种能力成为天启科技最耀眼的新星;三年后,这种能力成了她复仇的唯一武器。 时间一分一秒过去。 办公室里的光线逐渐变化。窗外的天空从明亮的蓝色转为温暖的橙黄,又慢慢沉入深蓝。霓虹灯亮起,老城区的街巷里亮起星星点点的灯火。 周哲偶尔会过来看一眼进度,大多数时间都在自己的工位上忙碌。他接了几个电话,语气时而温和时而严厉,但始终保持着专业和冷静。路容偷偷观察他——他工作时的样子很专注,眉头微蹙,手指无意识地敲击桌面。这个习惯和李剑很像,但给人的感觉完全不同。 李剑的敲击声是权力的节奏,是压迫的前奏;周哲的敲击声,更像是思考时的伴奏。 “差不多了。”路容终于开口,声音因为长时间不说话而有些沙哑。 周哲转过头:“怎么样?” “核对完了。”路容指着屏幕上的总结报告,“过去一周共有三百二十万次接口调用,其中异常响应四千七百次,都在正常波动范围内。没有发现明显的异常数据包模式。” 她停顿了一下,补充道:“不过有个细节——每天凌晨三点到四点之间,接口调用频率会有一个小幅度的异常峰值。虽然每次峰值都不大,但连续七天都在同一时间段出现,有点奇怪。” 周哲的眉头皱了起来。 他走过来,俯身看向屏幕。路容能感觉到他呼吸的热气拂过她的耳畔。这个距离太近了,近得她能看清他睫毛的弧度,能闻到他身上那股干净的草本香气里,混合了一丝淡淡的咖啡味。 “凌晨三点……”周哲喃喃自语,“这个时间段理论上应该是调用低谷。” “是的。”路容说,“我检查了那些调用的接口ID,都是正常的用户行为数据收集接口。参数看起来也没问题。但就是……太规律了。” 周哲直起身,揉了揉太阳穴。 “邪门。”他低声说,更像是在自言自语,“最近系统总在凌晨有点小波动,老吴查了几次都说硬件没问题。我本来以为是偶然现象,现在看来……” 他没有说完。 但路容已经记下了两个关键词。 老吴。 凌晨系统波动。 她的心跳开始加速。这是一种猎手发现猎物踪迹时的本能反应——那个加密标记`#K3-7A-82`,那些凌晨的异常调用,还有周哲口中“查了几次都说硬件没问题”的老吴……这些碎片开始在她脑海中拼凑。 “老吴是?”她假装随意地问。 “IT部的老员工,吴建国。”周哲说,“在公司待了十几年了,技术很厉害,就是脾气有点怪,不太合群。李总让他负责核心系统的硬件维护。” 路容点点头,没有再问。 她关闭电脑,开始收拾东西。背包的拉链发出轻微的摩擦声,键盘上的指示灯一个个熄灭。办公室里的灯光已经全部亮起,白炽灯的光线在玻璃隔断上反射出无数个重叠的影子。 “今天辛苦你了。”周哲说,语气真诚,“要不是你帮忙,这些日志我一个人得核对到半夜。” “应该的。”路容站起身,背上背包。 她看向周哲。他站在工位旁,身后的窗外是深港市的夜景——远处江对岸的摩天大楼灯火通明,近处老城区的巷弄里烟火气缭绕。两种截然不同的世界,被一扇玻璃窗隔开,却又奇妙地共存于同一个画面中。 就像她和周哲。 一个是复仇的幽灵,一个是正直的技术骨干。两个本该毫无交集的人,此刻却因为一个危险的计划,站在了同一间办公室里。 “那我先回去了。”路容说。 “好。”周哲点点头,“明天你就正式调来预研小组了,工位我会让人准备好。早上九点,技术部会议室,有个项目启动会。” “我会准时到。” 路容转身走向电梯间。 高跟鞋踩在地板上,发出清脆的响声。技术部还有不少人在加班,键盘敲击声、低声讨论声、咖啡机运作的嗡嗡声……这些声音交织在一起,形成一种奇特的背景音。 她按下电梯按钮。 等待的时候,她透过走廊的玻璃窗看向外面。深港市的夜晚很美,但这种美是冰冷的、有距离的。就像她现在的人生——她站在这里,看着这座城市,却永远无法真正融入其中。她是若溪,一个虚构的身份,一个为了复仇而存在的影子。 电梯门开了。 路容走进去,按下二十七楼的按钮。她需要回数据分析部拿些个人物品,明天就要正式离开那里了。 电梯开始上升。 镜面墙壁里,她看见自己的脸——苍白,疲惫,但眼神里有一种前所未有的坚定。今天发生了太多事:李剑的试探,王丽的盘问,周哲意外的援手,还有那些凌晨的异常日志…… 所有这些,都在告诉她一件事:她的方向是对的。 李剑确实在进行某种不可告人的操作。那些凌晨三点的数据调用,那些硬件“没问题”的系统波动,还有那个负责核心系统维护、却查不出问题的老吴…… 路容的嘴角微微扬起。 那是一个冰冷的、几乎看不见的笑容。 猎物已经露出了尾巴。 现在,她只需要顺着这条尾巴,找到它的巢穴。 第5章:高压下的裂痕 电梯到达二十七楼。门开了,数据分析部的灯光涌进来。路容走出电梯,走向自己的工位。办公区里已经空了大半,只有几个加班的人还在埋头工作。她开始收拾桌上的个人物品——那盆小小的多肉植物、一个印着抽象图案的马克杯、几本专业书籍。动作很慢,像是在进行某种告别仪式。当她拿起最后那本书时,一张便签纸从书页间滑落,飘到地上。路容弯腰捡起。便签上是她三天前随手写下的几个字:“保持呼吸,保持清醒。”她盯着那行字看了几秒,然后小心地将便签夹回书里。拉上背包拉链,她最后看了一眼这个坐了不到两周的工位。明天开始,她就是“深蓝计划”预研小组的成员了。离真相更近一步,离危险也更近一步。 手机震动了一下。 是周哲发来的消息:“明天九点,二十五楼技术部会议室,别迟到。李总会出席。” 路容盯着那行字,指尖在屏幕上停留了几秒,才回复:“收到。” 她关掉手机屏幕,镜面反射出自己紧绷的脸。明天就要见到李剑了,在正式的、公开的场合。不再是三十八楼办公室里的单独试探,而是会议室里,众目睽睽之下。她必须表现得完美无瑕,像一个真正的、对过去一无所知的新人。 可她的身体记得。 路容抬起手,看着自己的指尖。它们在微微颤抖,像被无形的电流穿过。三年前那场会议的场景又浮现在眼前——会议室里坐满了人,李剑站在投影幕布前,手里拿着所谓的“证据”,声音冰冷而笃定:“路容泄露了公司核心数据。”台下那些曾经对她微笑、称赞她才华的同事,此刻全都用怀疑、鄙夷、甚至幸灾乐祸的眼神看着她。她想辩解,可喉咙像被什么东西堵住了,发不出声音。她想站起来,可双腿软得像棉花。 那种窒息感,此刻又回来了。 路容深吸一口气,强迫自己把注意力拉回现实。她背上背包,走向电梯。走廊里的感应灯随着她的脚步一盏盏亮起,又在身后一盏盏熄灭,像一条短暂的光之通道,连接着过去和现在。 *** 第二天早晨八点四十分,路容已经坐在二十五楼技术部会议室里。 会议室很大,能容纳三十人。深灰色的地毯吸走了大部分脚步声,墙壁是隔音材料,天花板上的嵌入式灯带发出柔和的白光。长条会议桌中央摆着几盆绿植,叶片油亮,显然是专人精心打理的。空气里有新家具的淡淡气味,混合着咖啡的焦香——会议室角落的咖啡机正在运作,发出咕噜咕噜的声响。 路容选了靠窗的位置坐下。窗外是深港市早晨的天空,灰蓝色的云层低垂,远处江面上有货轮缓缓驶过。她打开笔记本电脑,连接投影仪,检查了一遍昨晚准备好的资料。手指在触控板上滑动,屏幕上的数据图表一张张闪过,每一个数字、每一条曲线她都烂熟于心。 她必须做到完美。 八点五十分,会议室的门被推开。 先进来的是周哲。他今天穿了件浅灰色的衬衫,袖子挽到手肘,手里拿着一个黑色的文件夹。看见路容,他点了点头,嘴角露出一丝温和的笑意:“来得真早。” “怕迟到。”路容说,声音刻意保持平稳。 周哲在她斜对面的位置坐下,打开文件夹,开始整理文件。纸张翻动的声音很轻,但在安静的会议室里格外清晰。陆陆续续有其他人进来——技术部的工程师、产品经理、测试人员,大约十几个人。他们低声交谈着,在会议桌两侧坐下。路容注意到,有几个人的目光在她身上停留了几秒,带着审视和好奇。 九点整,会议室的门再次被推开。 王丽走了进来。 她今天穿了身深蓝色的套装,高跟鞋踩在地毯上发出沉闷的声响。她手里拿着平板电脑,脸上没有任何表情,径直走到会议桌前端的位置坐下。坐下后,她抬起手腕看了眼表,然后环视了一圈会议室。 “人都到齐了?”她的声音不高,但带着一种不容置疑的权威。 周哲点点头:“预研小组核心成员都到了。” “好。”王丽放下平板,“在会议开始前,我先宣布一件事。李剑副总裁今天会旁听我们的周会,并且会随机抽取几位新人做即兴数据分析汇报。” 会议室里的空气瞬间凝固了。 路容感觉到自己的呼吸停滞了一秒。她放在膝盖上的手猛地收紧,指甲陷进掌心。疼痛让她稍微清醒了一些,但心脏还是像被一只无形的手攥住了,跳得又重又乱。 “李总?”一个戴眼镜的年轻工程师小声问,“他不是只参加月度战略会吗?” “所以今天对你们每个人都很重要。”王丽的目光扫过在场所有人,最后在路容脸上停留了一瞬,“李总想看看新人的真实水平。被点到名的人,需要现场分析一组实时数据流,给出初步结论。没有准备时间。” 会议室里响起一阵压抑的吸气声。 路容低下头,假装在看电脑屏幕。她的视线开始模糊,屏幕上的字像水中的倒影一样晃动。她用力眨了眨眼,强迫自己聚焦。不能慌,不能慌。她反复默念着这句话,可身体里的某个部分已经开始失控——那种熟悉的、冰冷的恐惧感正从脊椎底部爬上来,像藤蔓一样缠绕住她的四肢。 九点零五分,会议室的门被推开了。 李剑走了进来。 他今天穿了身藏青色的西装,没有打领带,衬衫最上面的扣子解开了一颗。手里拿着一个黑色的皮质笔记本,步伐稳健,脸上带着那种惯常的、似笑非笑的表情。他一进来,会议室里的温度仿佛都下降了几度。所有人都下意识地坐直了身体,连呼吸都放轻了。 “李总。”王丽站起身。 “坐。”李剑摆摆手,在主位坐下。他把笔记本放在桌上,环视了一圈会议室。他的目光像探照灯一样,缓慢地、仔细地扫过每个人的脸。当他的视线落在路容身上时,路容感觉到自己的血液都凉了。 但他只是看了一眼,就移开了目光。 “开始吧。”李剑说,声音平静,听不出情绪。 周哲站起身,走到投影仪前。他清了清嗓子,开始汇报“深蓝计划”预研阶段的技术架构和进度安排。他的声音很稳,逻辑清晰,投影幕布上出现一张张复杂的系统架构图。路容强迫自己盯着那些图表,试图把注意力集中在技术细节上,可她的耳朵里全是自己心跳的声音——咚咚,咚咚,像擂鼓一样,震得她耳膜发疼。 时间一分一秒地过去。 周哲的汇报持续了二十分钟。期间李剑偶尔会打断,问一两个问题,都是关于技术实现的细节。周哲对答如流,会议室里的气氛稍微松弛了一些。但路容知道,真正的考验还没开始。 果然,周哲汇报结束后,李剑合上了笔记本。 “技术架构我了解了。”他说,身体向后靠在椅背上,目光再次扫过会议室,“现在我想看看,实际操作层面,我们的新人水平如何。” 他顿了顿,手指在桌面上轻轻敲了敲。 “王总监,把实时数据流调出来。” 王丽立刻操作平板,几秒钟后,会议室主屏幕上出现了一组动态数据流。那是星耀集团旗下某社交App的实时用户行为数据——每秒都有成千上万条记录在滚动,包括用户点击、停留时长、滑动轨迹、搜索关键词等等。数据像瀑布一样倾泻而下,密密麻麻的数字和代码让人眼花缭乱。 “这是过去五分钟的真实数据。”李剑说,“没有经过任何清洗和预处理。我要三个人,现场分析,给出三个不同维度的洞察。” 他抬起手,手指在空中停顿了一下。 路容屏住了呼吸。 “你。”李剑的手指指向一个坐在路容对面的年轻产品经理,“分析用户点击行为的热点分布。” “你。”手指移向另一个技术部的工程师,“分析搜索关键词的情感倾向。” 然后,他的手指转向了路容。 路容感觉到自己的血液都冲到了头顶。会议室里的灯光变得刺眼,空调出风口吹出的冷风像刀子一样刮过她的皮肤。她能听见自己心脏狂跳的声音,能感觉到掌心渗出的冷汗,能闻到空气里咖啡和纸张混合的气味——所有这些感官信息像潮水一样涌来,几乎要将她淹没。 “你。”李剑的声音很平静,“分析用户滑动轨迹中的异常模式。” 路容张了张嘴,想说什么,可喉咙里只发出一个干涩的气音。她猛地站起身,椅子腿在地毯上摩擦出沉闷的声响。所有人的目光都集中在她身上——好奇的,同情的,幸灾乐祸的。她走到会议室前端,接过王丽递来的无线鼠标。 她的手在抖。 鼠标握在手里,像一块冰。她试图控制手指,可它们僵硬得不听使唤。她点开数据分析软件,导入实时数据流。屏幕上的代码开始滚动,黑色的背景上,绿色的字符像蚂蚁一样爬行。她盯着那些数据,大脑却一片空白。 三年前的场景又回来了。 同样的会议室,同样的目光,同样的窒息感。只不过那时候,李剑手里拿着的是一份伪造的邮件记录,而现在,他坐在台下,用那双冰冷的眼睛看着她,等待着她出错,等待着她暴露。 “开始吧。”李剑说。 路容深吸一口气,强迫自己开口:“用户滑动轨迹的异常模式,可以从几个维度分析……” 她的声音在颤抖。 她自己都听得出来——那种细微的、无法控制的颤音,像琴弦绷得太紧时发出的杂音。她清了清嗓子,试图让声音平稳一些,可越是想控制,颤抖就越明显。她能感觉到变声器贴片下的皮肤在发烫,那种灼烧感让她想起昨天在三十八楼办公室里的场景。 “首先,我们可以计算滑动速度的方差……”她继续说,手指在触控板上滑动,调出一个图表。 图表显示出来了,可她的解释却卡住了。 那些数字,那些曲线,那些她本该烂熟于心的分析逻辑,此刻全都搅成了一团乱麻。她盯着屏幕,嘴唇在动,可发出的声音却断断续续,语无伦次。她能听见自己说:“方差过大可能表示……表示用户可能……可能是……” 是什么? 她不知道。 大脑像被抽空了,只剩下嗡嗡的耳鸣声。台下的目光像针一样扎在她背上,她能感觉到李剑的视线——那种冰冷的、审视的、带着某种深意的视线。他在观察她,观察她的每一个细微反应,观察她声音里的颤抖,观察她手指的僵硬。 “继续。”李剑说,声音里听不出情绪。 路容的呼吸开始变得急促。她试图深呼吸,可空气像是有重量,压得她胸口发疼。她抬起手,想擦一下额头的冷汗,可手指刚碰到皮肤,就发现自己的额头冰凉,全是冷汗。 “我……我需要一点时间……”她听见自己说,声音小得像蚊子。 “现场分析,没有时间。”李剑的声音依然平静,但那种平静里透着一股不容置疑的压力,“如果你做不到,可以换人。” 换人。 这两个字像一把锤子,砸碎了路容最后的防线。 三年前,也是在这样的场合,李剑对她说:“如果你解释不清,那就换人来解释。”然后,他拿出了那些伪造的证据,当着所有人的面,宣判了她的“罪行”。 现在,历史又要重演了吗? 路容感觉到自己的视线开始模糊。屏幕上的数据在晃动,会议室的灯光在晃动,连台下那些人的脸都在晃动。她听见自己的心跳声越来越响,像鼓点一样敲击着她的耳膜。她张开嘴,想说点什么,可喉咙里只发出一些破碎的气音。 “若溪?”周哲的声音从台下传来,带着一丝担忧。 路容转过头,看向他。周哲的脸上写满了困惑和关切,他微微皱起眉,似乎在用眼神询问她是否还好。那眼神很真诚,是真正在关心她的状态。 可正是这份真诚,让路容更加崩溃。 她不该在这里。她不该用谎言接近这样一个真诚的人,不该把他卷入这场危险的复仇。她不该站在这里,假装成一个新人,承受着这些本不该属于她的压力和目光。 她是谁? 她是路容,一个被诬陷、被毁掉一切的人。她是若溪,一个为了复仇而存在的幽灵。可此刻,这两个身份在她体内撕扯,几乎要将她撕裂。 “我……”她开口,声音嘶哑得不像自己的,“我……” 她说不下去了。 猛地,她转过身,撞开了身后的椅子。椅子倒在地上,发出巨大的声响。她没有回头,踉跄着冲向会议室门口。她的手在门把手上滑了一下,才拧开门。走廊里的灯光涌进来,刺得她眼睛发疼。她冲出去,高跟鞋踩在地毯上发出沉闷的声响,像逃命一样。 会议室的门在她身后缓缓关上。 隔绝了那些目光,那些疑问,那些她无法承受的一切。 第6章:急智与转机 冷水拍打在脸上的触感是冰冷的,带着消毒水气味的自来水顺着脸颊滑落,滴进洗手池里。路容双手撑在白色陶瓷洗手池边缘,指关节因为用力而泛白。她抬起头,镜子里的人脸色惨白,嘴唇没有血色,眼睛周围有淡淡的红晕——那是刚才强忍泪水留下的痕迹。 洗手间里很安静。 只有水龙头没有拧紧时水滴落下的滴答声,远处排风扇低沉的嗡鸣,还有她自己急促的呼吸声在瓷砖墙面间回荡。空气里有柠檬味清洁剂的味道,混合着洗手液淡淡的薰衣草香气。路容看着镜中的自己,那双眼睛里充满了恐惧——不是对李剑的恐惧,而是对自己失控的恐惧。 她以为她准备好了。 三年时间,她反复练习如何在李剑面前保持平静,如何在高压环境下控制呼吸,如何在听到那个名字时不颤抖。她以为那些创伤已经被时间磨平,被复仇的意志覆盖。可就在刚才,当李剑坐在会议室主位,用那种熟悉的、冰冷的审视目光看着她时,三年前的一切瞬间复活了。 那种窒息感,那种喉咙被扼住的感觉,那种全世界都在旋转的眩晕。 路容闭上眼睛,深深吸了一口气。空气里消毒水的味道刺进鼻腔,让她稍微清醒了一些。她不能在这里倒下。如果现在放弃,那三年的隐忍、伪装、痛苦就全都白费了。她会永远背负着“泄密者”的污名,而李剑会继续逍遥法外,用同样的手段毁掉更多人。 “不能在这里倒下……”她低声重复,声音在空旷的洗手间里显得格外微弱。 她睁开眼睛,再次看向镜子。这一次,她强迫自己把注意力从恐惧转移到回忆上。刚才冲出会议室前,她看到了什么?在那一瞬间的混乱中,她的视线扫过了什么? 周哲的电脑屏幕。 对,周哲坐在她斜对面,他的笔记本电脑屏幕是开着的。在她起身逃离的那一刻,她瞥见了屏幕上的内容——一份技术文档,标题栏写着“深港市智慧交通数据流压缩算法优化方案”。文档里有很多图表和参数,其中有一个参数被标红了,旁边有批注:“非标准校验参数,可能导致特定模式丢失”。 非标准校验参数。 模式丢失。 路容的大脑开始飞速运转。她刚才分析的数据流是实时用户行为数据,来自星耀集团旗下的一款社交应用。如果数据在传输过程中使用了非标准的压缩算法,而那个算法存在校验参数的问题,那么某些特定的用户行为模式就可能因为数据包重组错误而丢失或变形。 这不是她的专业领域,但她懂基本原理。更重要的是,她记得周哲那份文档里的具体参数值——0x7F3A。一个十六进制的校验码,通常用于数据完整性验证。如果这个参数设置不当,确实可能导致特定字节序列的误判。 一个大胆的想法在她脑海中成形。 路容拧紧水龙头,水滴声停止了。她从包里抽出纸巾,仔细擦干脸上的水渍。然后她打开化妆包,用粉底轻轻遮盖眼周的红晕,涂上一点口红。镜子里的人渐渐恢复了“若溪”该有的样子——一个冷静、专业、偶尔会紧张但总体可控的新人数据分析师。 她需要五分钟。 五分钟时间,在脑海里构建完整的解释逻辑。五分钟时间,让心跳恢复正常,让呼吸平稳下来。五分钟时间,说服自己重新走进那个会议室,面对那些目光。 路容靠在冰冷的瓷砖墙上,闭上眼睛。她开始在心里默念: “第一,道歉。为刚才的突发不适道歉,但不要解释具体原因——就说突然头晕,低血糖。” “第二,转移焦点。不要纠缠于刚才的失态,立刻将话题引回数据分析。” “第三,提出技术假设。基于周哲文档里的参数,指出数据流可能存在因非标准压缩算法导致的模式丢失问题。” “第四,请求验证。请周哲确认这个技术点的存在,用他的专业权威为自己的假设背书。” “第五,争取机会。如果假设成立,请求获得完整数据进行深入分析。” 每一步都要清晰,每一步都要坚定。她不能犹豫,不能结巴,不能露出任何破绽。 路容睁开眼睛,看向洗手间门上的时钟。距离她冲出会议室已经过去三分钟。她整理了一下衬衫领口,抚平裙摆上的褶皱,然后深吸一口气,推开了隔间的门。 走廊里的灯光比洗手间明亮得多。 路容沿着来时的路往回走,高跟鞋踩在地毯上发出沉闷的声响。她能听见自己的心跳声,但这一次,心跳是规律的,是有力的。她经过几间办公室,透过玻璃墙能看到里面的人正在工作,没有人注意到她——或者注意到了,但假装没看见。在星耀集团,明哲保身是职场第一法则。 会议室的门就在前方二十米处。 路容在门前停下,手放在门把手上。她能听见门内传来模糊的说话声,是王总监的声音,语气里带着明显的不耐烦。她闭上眼睛,最后默念了一遍计划,然后推开了门。 所有的目光瞬间聚焦在她身上。 会议室里大约有十五个人,此刻全都转过头看向门口。路容能感觉到那些目光的重量——好奇的、疑惑的、讥诮的、审视的。王总监站在投影幕布前,手里拿着激光笔,话说到一半停住了,眉头皱了起来。周哲坐在原来的位置,看到她时明显松了口气,但眼神里依然有担忧。李剑坐在主位,身体微微后仰靠在椅背上,双手交叉放在桌上,脸上没有任何表情,只是看着她。 空气凝固了几秒。 路容走进会议室,轻轻关上门。她走到自己刚才的位置——椅子还倒在地上。她弯腰扶起椅子,动作很慢,很稳,像是在完成一个仪式。然后她坐下,打开笔记本电脑,屏幕亮起,显示的还是刚才那份数据流分析界面。 “抱歉。”她开口,声音比想象中平稳,“刚才突然有点头晕,可能是低血糖。给大家添麻烦了。” 王总监嗤笑了一声,声音不大,但在安静的会议室里格外清晰:“低血糖?若溪,这是公司的重要会议,不是学校课堂。如果你身体不适,应该提前请假。” “是我的失误。”路容抬起头,看向王总监,目光平静,“我会注意的。” 她没有躲避,没有辩解,只是平静地承认。这种态度反而让王总监愣了一下,准备好的后续批评卡在了喉咙里。 李剑的手指在桌面上轻轻敲了敲:“继续吧。王总监,你刚才说到哪里了?” “啊,是。”王总监回过神来,重新拿起激光笔,“我刚才说到,若溪的分析没有得出明确结论,我们需要重新评估这份数据流的价值……” “关于那份数据流,”路容打断了她,声音清晰而坚定,“我有一个新的想法。” 会议室里再次安静下来。 所有人都看向她。王总监的脸色沉了下来,显然对被打断很不满。周哲微微前倾身体,眼神里带着好奇。李剑的手指停止了敲击,目光落在路容脸上,那种审视的、探究的目光又回来了。 路容能感觉到自己的手心在出汗,但她强迫自己保持声音的平稳:“我刚才分析数据流时,注意到异常模式的分布呈现非随机性。具体来说,异常点集中在数据包序列的特定位置,而且间隔呈现规律性。” 她调出刚才的分析图表,用鼠标圈出几个点:“这里,这里,还有这里。间隔都是1024个数据包。这种规律性通常不是用户行为导致的,而是数据处理环节的问题。” 王总监皱眉:“所以呢?这能说明什么?” “结合数据来源——我们使用的是第三方数据服务商提供的实时流,”路容继续说,语速适中,每个字都咬得很清楚,“我查过他们的技术文档,他们使用的数据压缩算法是自研的,不是行业标准算法。而自研算法如果校验参数设置不当,在特定数据包大小下,可能导致重组错误。” 她停顿了一下,看向周哲:“周工,我记得你之前研究过数据流压缩算法优化。如果校验参数是0x7F3A,在1024字节的数据包边界,是不是容易出现特定模式的丢失?” 周哲愣了一下,显然没想到会被点名。他迅速打开自己的电脑,调出那份技术文档,快速浏览了几秒,然后抬起头,眼神里闪过一丝惊讶:“确实。0x7F3A这个校验码在1024字节边界有一个已知的问题,会导致某些特定字节序列被误判为校验错误而被丢弃。” 他看向投影幕布上的数据流图表,又看了看路容圈出的那些点,眉头渐渐皱起:“等等……如果数据服务商用的就是这个参数,那么你圈出的这些异常点位置,正好对应1024字节数据包的边界。这不太可能是巧合。” 会议室里的气氛变了。 刚才那些讥诮、怀疑的目光,此刻变成了认真和思考。几个技术骨干开始交头接耳,有人拿出手机查资料,有人在笔记本电脑上快速计算。王总监张了张嘴,想说什么,但看了看李剑的脸色,又闭上了嘴。 李剑依然坐在那里,姿势没有变,但路容能感觉到他的注意力完全集中了。那种审视的目光变得更加锐利,像是在解剖她的每一句话,每一个表情。 “所以你的结论是什么?”李剑开口,声音平静,但每个字都带着重量。 “我的初步结论是,”路容迎上他的目光,没有躲避,“我们看到的‘用户行为异常模式’,可能根本不是用户行为问题,而是数据采集和传输环节的技术缺陷导致的假象。如果这个假设成立,那么基于这些数据做出的任何产品决策,都可能存在方向性错误。” 她停顿了一下,补充道:“当然,这只是基于现有信息的假设,需要进一步验证。” 会议室里一片寂静。 只有空调出风口发出的轻微风声,笔记本电脑散热风扇的嗡鸣,还有远处城市交通传来的模糊噪音。路容能闻到咖啡的焦香,能感觉到空调冷风拂过手臂时起的鸡皮疙瘩,能听见自己平稳而有节奏的呼吸声。 李剑沉默了很久。 他的目光在路容脸上停留,然后移到周哲身上,又移回数据图表,最后重新落回路容。那眼神很复杂——有审视,有怀疑,但还有一种路容从未见过的、难以捉摸的东西。 “周哲,”李剑终于开口,“这个技术点,你确定?” 周哲点头:“确定。0x7F3A参数的问题在业内是已知的,但因为它不是标准参数,很多公司不会特别关注。如果数据服务商确实用了这个参数,那么若溪的假设有很高的可能性。” 李剑的手指又在桌面上敲了敲,这次节奏很慢,像是在思考。敲击声在安静的会议室里格外清晰,像倒计时一样。 终于,他看向王总监:“王总监,会后把‘深蓝计划’相关的完整数据权限开放给若溪。包括原始数据流、数据服务商的技术协议、还有我们内部的数据处理日志。” 王总监的脸色变了:“李总,这……这是核心数据,若溪才入职两周……” “正因为她刚入职,没有思维定式,才能看出我们忽略的问题。”李剑打断她,语气不容置疑,“下周的进度会,我要看到她的深入分析报告。如果验证通过,数据服务商那边,你去沟通,要求他们提供技术说明,必要时可以重新谈判合同条款。” 他重新看向路容,眼中审视未消,但嘴角微微勾起一个几乎看不见的弧度:“有点意思。” 那三个字说得很轻,但落在路容耳中,却像重锤一样。 她成功了。 她用急智挽回了一场灾难,用专业知识赢得了继续潜伏的机会,甚至获得了接触更核心数据的权限。这本该是值得庆祝的时刻。 可为什么,她心里没有一点喜悦? 路容低下头,假装整理电脑文件,避开李剑的目光。她能感觉到周哲在看她,眼神里有赞赏,有好奇,还有一丝她不敢深究的关切。她能感觉到王总监的视线像刀子一样扎在她背上,充满了嫉妒和敌意。她能感觉到会议室里其他人复杂的目光——有佩服,有羡慕,也有警惕。 “会议继续。”李剑的声音把她拉回现实,“下一个,周哲,你汇报一下算法模块的进展。” 周哲站起身,走向投影幕布。会议室里的注意力转移了,但路容能感觉到,有些东西已经改变了。 她获得了李剑的“兴趣”。 在星耀集团,被李剑“感兴趣”是双刃剑。可能是晋升的捷径,也可能是深渊的开始。三年前,李剑也对路容“感兴趣”——欣赏她的才华,给她重要项目,然后在她最信任他的时候,亲手毁了她。 现在,历史会重演吗? 路容盯着电脑屏幕,数据图表在眼前晃动,但她什么也看不进去。她想起刚才李剑那个几乎看不见的笑容,想起他说“有点意思”时的语气,想起他眼中那种难以捉摸的神情。 那不是一个上司对下属专业能力的单纯赞赏。 那是一个猎手,发现了值得追踪的猎物时的表情。 空调冷风再次拂过手臂,路容下意识地抱了抱手臂。会议室里的温度似乎降低了几度,或者只是她的错觉。她端起桌上的水杯,喝了一口,水温已经凉了,带着淡淡的氯味。 周哲的汇报声音在会议室里回荡,专业、清晰、有条理。路容强迫自己集中注意力听,记下关键点,但她的思绪总是不由自主地飘向刚才那一刻——李剑沉默时,会议室里那种几乎凝固的气氛;他说“有点意思”时,眼中一闪而过的光芒;还有他吩咐王总监开放数据权限时,那种不容置疑的权威。 她得到了想要的机会。 但也把自己推到了更危险的边缘。 会议在四十分钟后结束。人们陆续起身离开,椅子拖动的声音,低声交谈的声音,笔记本电脑合上的声音。路容慢慢收拾东西,故意拖到最后。她需要时间平复心情,需要思考下一步该怎么走。 “若溪。” 周哲的声音从身后传来。路容转过身,看到他站在会议室门口,没有离开。 “你还好吗?”他问,语气里带着真诚的关心,“刚才真的只是低血糖?” 路容点点头,挤出一个微笑:“嗯,早上没吃早饭。以后会注意的。” 周哲看着她,眼神里有探究,但最终没有追问:“你刚才的分析很精彩。那个参数问题,连我都没第一时间想到。你是怎么注意到的?” “运气吧。”路容轻声说,避开他的目光,“正好瞥见了你电脑上的文档。” “瞥一眼就能记住参数值,还能联想到数据流问题,”周哲笑了笑,“这可不是运气。你是真的很有天赋。” 路容的心脏猛地收紧。 天赋。 三年前,李剑也说过同样的话。他说:“路容,你是我见过最有天赋的数据分析师。”他说这句话时,眼神里满是赞赏,语气里满是信任。然后,他用这份“天赋”作为武器,毁掉了她的一切。 “谢谢。”路容低声说,声音有些干涩。 周哲似乎察觉到了她的异常,但只是说:“李总给了你数据权限,这是很好的机会。但也意味着压力会更大。如果需要帮助,随时找我。” 他说完,转身离开了会议室。 路容站在原地,看着他的背影消失在走廊拐角。阳光从窗户斜照进来,在地毯上投下明亮的光斑。空气中漂浮着细微的尘埃,在光柱里缓缓旋转。她能听见远处电梯到达的叮咚声,能闻到会议室里残留的咖啡香气,能感觉到指尖因为紧张而微微发麻。 她成功了。 但也可能,刚刚踏进了更深的陷阱。 路容背起背包,走出会议室。走廊里的感应灯随着她的脚步一盏盏亮起,像在为她引路,也像在记录她的每一步。她走到电梯间,按下下行按钮,等待电梯从一楼缓缓上升。 电梯门上的数字跳动:1,2,3…… 路容看着那些数字,脑海里回放着刚才会议室的每一个细节。李剑的表情,王总监的敌意,周哲的关心,还有她自己冷静说出那些技术分析时的声音。 那个声音很平稳,很专业,完全不像一个刚刚经历崩溃的人。 那是“若溪”的声音。 不是路容的。 电梯到达,门开了。路容走进去,按下二十七楼的按钮。电梯门缓缓关闭,镜面墙壁里映出她的脸——依然苍白,但眼神已经恢复了冷静,甚至有一丝冰冷。 她看着镜中的自己,轻声说: “游戏开始了。” 第7章:暗流与监视 路容站在电梯里,镜面墙壁映出她苍白的脸和冷静的眼神。电梯缓缓上升,数字跳动到二十七楼。门开了,她走出电梯,走向数据分析部。办公区里已经坐满了人,早晨的阳光透过落地窗洒进来,在工位隔板上投下明亮的光斑。路容走到自己原来的位置,却发现桌上已经空了。她的多肉植物、马克杯、专业书籍都不见了。邻座同事抬起头,指了指角落:“王总监说你的工位调整了,在那边。”路容顺着手指方向看去——那是一个靠墙的位置,正上方有一个明显的监控摄像头,红色指示灯稳定地亮着。而那个工位旁边,坐着一个正在对着镜子补口红的年轻女孩。 空气里有咖啡的焦香和打印机油墨的味道。路容提着背包走向那个角落,脚步很轻,但每一步都踩在地毯上发出细微的沙沙声。她能感觉到周围投来的目光——好奇的、同情的、幸灾乐祸的。那个位置是整个办公区最差的位置,背靠墙壁,左侧是消防通道门,右侧是那个女孩,正上方是摄像头,没有任何隐私可言。 “你就是若溪吧?”女孩放下口红,转过头来。她大概二十三四岁,染着栗色的长发,眼睛很大,妆容精致,穿着当季流行的碎花连衣裙,脖子上挂着工牌——林晓,数据分析部实习生。“王总监让我告诉你,以后你就坐这儿了。她说你昨天表现突出,李总特别重视,所以给你安排个‘安静’的位置,方便你专心研究数据。” 林晓说“安静”两个字时,语气里带着明显的讽刺。她说话声音清脆,语速很快,像一串珠子滚落在地板上。 路容点点头,没有说话。她把背包放在椅子上,开始整理桌面。桌面上有一层薄薄的灰尘,她用纸巾擦拭,纸巾立刻变成灰色。桌角有之前使用者留下的咖啡渍,已经干涸成深褐色的斑点。她拉开抽屉,里面空空如也,只有几张废纸和一支断了的铅笔。 “哎,你别介意啊,”林晓凑过来,身上有浓郁的香水味,混合着水果糖的甜腻,“王总监就是这样,谁要是太出风头,她就给谁穿小鞋。上个月有个男生也是,在周会上提了个建议,第二天工位就被调到厕所旁边了,没俩礼拜就辞职了。” 路容抬起头,看了林晓一眼。女孩的眼睛里闪着八卦的光芒,那种迫不及待想要分享秘密的神情,像小孩子发现了糖果罐。 “谢谢提醒。”路容轻声说,声音经过变声器处理后显得平淡而温和。她打开电脑,登录系统,屏幕上跳出“深蓝计划数据访问权限已开通”的提示。她点击确认,数据仓库的界面展开,密密麻麻的文件夹和数据库列表像一片黑色的森林。 “哇,你真的拿到权限了?”林晓凑得更近,几乎要贴到路容的屏幕前,“这可是核心数据啊,我们实习生连看一眼的资格都没有。王总监肯定气死了,她最讨厌别人动她的蛋糕。” 路容不动声色地把屏幕角度调整了一下,让林晓看不到具体内容。“我只是做分析报告。” “得了吧,”林晓坐回自己的椅子,椅子轮子在地毯上发出沉闷的滚动声,“李总亲自点名要你做的报告,这可不是小事。我跟你说啊,咱们部门现在分两派,一派跟着王总监,其实就是跟着李总;另一派是孙副总那边的人,不过孙副总的人不多,都挺低调的。” 路容的手指在键盘上停顿了一下。阳光从侧面窗户照进来,在她手背上投下细长的影子。她能听见远处打印机工作的嗡嗡声,能闻到林晓桌上那杯奶茶的甜腻香气,能感觉到头顶摄像头传来的、几乎不可察觉的微弱电流声。 “孙副总?”她问,语气尽量保持随意。 “对啊,孙明远副总,管市场部的,”林晓压低声音,虽然周围根本没人注意她们,“他跟李总不对付很久了。听说去年竞聘集团副总裁,孙副总本来希望很大,结果李总不知道用了什么手段,硬是空降过来把他挤下去了。现在两人明面上客客气气,背地里都在较劲。” 路容打开一个数据文件,屏幕上跳出用户行为数据的流式图表。蓝色的线条在坐标轴上起伏,像心跳的波形。她盯着那些数据,脑海里却在快速整理林晓的话。派系斗争——这意味着机会,也意味着危险。如果李剑和孙明远确实存在矛盾,那么她或许可以利用这种矛盾。但前提是,她必须足够小心,不能成为任何一方的棋子。 “这些事,你怎么知道得这么清楚?”路容问,眼睛没有离开屏幕。 林晓笑了,笑声像风铃。“我入职三个月,别的没学会,就学会听八卦了。咱们部门有个微信群,王总监不在的那个,里面天天聊这些。还有啊,IT部那个老吴,你知道吧?就是那个头发乱糟糟、整天穿格子衬衫的大叔。他可有意思了,上次李总让他调取某个员工的聊天记录,他直接说‘没有合法授权不能提供’,把李总气得够呛。” 老吴。 路容在心里记下这个名字。IT部门的技术人员,如果能有他的帮助,很多事情会容易得多。但根据林晓的描述,这个人原则性很强,不容易接近。 “李总没开除他?”她问。 “哪能啊,”林晓撇撇嘴,“老吴技术太牛了,整个集团的系统架构都是他参与设计的。听说当年猎头挖他,开价是这个数。”她伸出五根手指,晃了晃,“李总再生气,也得忍着。不过从那以后,老吴就被边缘化了,现在只管些基础运维,重要项目都不让他碰。” 路容点点头,开始运行第一个数据分析脚本。屏幕上跳出进度条,缓慢地向前移动。她趁这个时间,抬起头,看似随意地扫视整个办公区。 天花板上每隔五米就有一个监控摄像头,黑色的半球形外壳,红色的指示灯。她数了数,在她视线范围内有八个。其中四个是固定角度的,覆盖主要通道和出入口;另外四个是云台摄像头,可以旋转。她头顶上这个,是云台型的。 路容低下头,继续看屏幕。进度条走到百分之三十。她用余光观察头顶摄像头的转动规律。每十五秒,摄像头会缓慢地左右旋转三十度,然后停顿五秒,再转回原位。这个周期很规律,像钟摆。 但有一个问题——当她假装伸手去拿水杯时,她注意到摄像头的转动似乎有半秒的延迟。不是机械延迟,更像是……有人在另一端控制,看到她的动作后,才调整了摄像头角度。 有人在实时监视这个位置。 路容的心脏收紧了一下,但脸上没有任何表情。她拿起水杯,喝了一口水。水温适中,带着淡淡的漂白粉味道。她放下杯子,手指在键盘上敲击,调出另一个数据文件。 “若溪,你中午吃什么?”林晓突然问,“我知道楼下新开了一家轻食店,沙拉特别好吃,要不要一起去?” “我带了饭。”路容说。 “自己做的?你好厉害啊,”林晓凑过来,眼睛盯着路容放在桌下的饭盒袋,“我都不会做饭,天天点外卖。哎,你住哪儿啊?要是顺路,以后可以一起下班。” 路容感觉到一阵不适。林晓的热情太过直接,太过密集,像一张网慢慢罩过来。她需要信息,但不需要这么亲密的关系。亲密意味着更多的暴露风险。 “我住得比较远,”她轻声说,“而且经常加班,时间不固定。” “哦……”林晓有些失望,但很快又振作起来,“没关系,反正咱们是邻座,有的是时间聊天。我跟你说啊,昨天你走了之后,王总监在办公室里发了半天火,摔了一个杯子。保洁阿姨收拾的时候,我正好路过,听见她在打电话,说什么‘不能让新人太嚣张’。” 路容的手指在键盘上停顿。屏幕上的数据分析结果跳出来,是一组异常的用户登录模式。这些登录行为集中在凌晨两点到四点,IP地址来自海外,但用户设备信息显示是国内常见的手机型号。矛盾的数据。 她把这些异常标记出来,保存到单独的文件夹里。然后,她打开邮件,开始撰写给李剑的周报提纲。邮件正文写得很正式,用词严谨,没有任何个人情绪。但在附件里,她隐藏了一个加密的注释文件,记录了她对监控摄像头的观察,以及林晓提供的那些信息。 “若溪,你在听吗?”林晓的声音把她拉回现实。 “在听。”路容说,眼睛依然盯着屏幕。 “我说,下午三点有个部门例会,王总监要求所有人都要发言,汇报工作进度。你刚来,又接了这么重要的任务,她肯定会重点‘关照’你。你最好准备一下,她特别爱挑刺,尤其是对新人。” “谢谢。”路容说,这次语气真诚了一些。 林晓笑了,笑容很灿烂。“不客气,咱们是同事嘛。对了,你那个数据分析,需不需要帮忙?我虽然是个实习生,但Excel用得可溜了,函数、透视表都会。” “暂时不用,谢谢。”路容说。 她需要保持距离。林晓太爱说话,太爱分享,和她走得太近,迟早会出问题。但另一方面,林晓确实是个信息源,而且是个不设防的信息源。路容需要在利用和疏远之间找到平衡点,像走钢丝。 下午的时间过得很快。路容处理了三批数据,发现了更多异常模式——非常规的数据传输时间、加密方式不符合公司标准、日志记录有缺失的时段。这些异常都很隐蔽,如果不是她刻意寻找,很容易被忽略。但把它们放在一起看,就像一张逐渐清晰的拼图。 李剑在利用“深蓝计划”的数据流做别的事情。 具体是什么,她还需要更多证据。但方向已经明确了。 下午三点,部门例会准时开始。王总监坐在长桌主位,穿着深蓝色的套装,头发梳得一丝不苟。她面前摆着一杯黑咖啡,没有加糖也没有加奶。会议室里坐了二十多个人,空气里有空调的冷风和人体散发的微弱热气混合的味道。 路容坐在角落的位置,尽量降低存在感。但王总监的目光还是扫了过来,在她身上停留了三秒。 “先从新人开始吧,”王总监说,声音冷硬,“若溪,汇报一下‘深蓝计划’数据分析的进展。” 所有人的目光都集中到路容身上。她能感觉到那些目光的重量,像石头压在肩膀上。她深吸一口气,打开准备好的PPT,投屏到会议室的屏幕上。 “截至今天下午两点,我已经完成了第一阶段的数据清洗和预处理,”她的声音平稳,经过变声器处理后显得专业而冷静,“发现了三个需要关注的异常点。第一,数据流中存在非常规的加密传输时段,集中在工作日的晚上十点到凌晨两点;第二,部分用户行为数据存在模式断裂,初步判断可能与数据压缩算法有关,需要进一步验证;第三,日志系统在特定时间段有记录缺失,缺失时段与异常加密时段高度重合。” 会议室里很安静。只有空调出风口的风声,和有人轻轻翻动笔记本纸张的声音。 王总监盯着屏幕上的PPT,脸色越来越沉。“这些异常,你确定不是数据源本身的问题?” “我对比了三个不同的数据源,异常模式一致。”路容说。 “那你认为原因是什么?” “目前信息不足,无法下结论,”路容谨慎地说,“需要更多数据支持和跨部门协作。我建议联系技术部,核查日志系统的完整性;同时联系安全部,评估异常加密时段的风险。” 王总监沉默了几秒,手指在桌面上轻轻敲击。敲击声很轻,但在安静的会议室里格外清晰。“李总要求下周提交报告,你现在连原因都说不清楚,怎么交差?” “报告会如实呈现发现的问题和初步分析,”路容说,“以及建议的后续调查方向。数据安全是‘深蓝计划’的基础,发现问题比掩盖问题更重要。” 这句话说得很直接。会议室里的气氛更加凝重了。有人低下头,假装看笔记;有人交换眼神,意味不明。 王总监盯着路容,眼神像刀子。“好,那就按你的思路做。但我要提醒你,如果最后证明这些‘异常’只是技术故障或者你的误判,你要承担全部责任。” “我明白。”路容说。 会议在压抑的气氛中继续。其他人汇报工作时,都显得格外小心,用词谨慎,避免任何可能引起质疑的表述。路容坐在角落里,安静地听着,记录着。她能感觉到王总监的敌意,像一层冰冷的雾气笼罩着她。也能感觉到其他人对她的疏远——没有人看她,没有人主动和她说话,她像被一道无形的墙隔开了。 这就是职场。当你成为焦点,当你触及敏感问题,当你威胁到某些人的利益时,孤立是最自然的反应。 会议在四点半结束。人们匆匆离开会议室,像逃离什么危险的地方。路容收拾东西,故意放慢速度。她需要时间观察,需要确认一些事情。 林晓在门口等她。“你刚才太敢说了,”她小声说,眼睛亮晶晶的,“王总监脸都绿了。不过你要小心,她肯定会报复的。” “我知道。”路容说。 她们一起走回工位。下午的阳光斜照进来,在办公区的地毯上投下长长的影子。空气里有下班前特有的躁动感——有人开始收拾东西,有人小声约晚饭,有人对着手机屏幕傻笑。 路容坐回自己的位置,继续处理数据。但她的大部分注意力,都放在观察上。她注意到,头顶的摄像头在她坐下后,调整了角度,正好对准她的屏幕方向。她稍微侧身,摄像头也跟着微调。 实时监控,毫无疑问。 她继续工作,手指在键盘上敲击,眼睛看着屏幕,但余光始终注意着周围。她看到王总监从办公室出来,站在走廊里打电话,表情严肃。她看到几个老员工聚在茶水间,低声交谈,偶尔朝她的方向瞥一眼。她看到IT部的一个技术人员推着设备车经过,工牌上写着“吴建国”——应该就是老吴。他大概五十岁左右,头发花白,穿着皱巴巴的格子衬衫,戴着厚厚的眼镜,走路时微微驼背。 老吴经过她的工位时,脚步停顿了一下。他的目光扫过路容的电脑屏幕,又扫过头顶的摄像头,然后什么也没说,推着车继续往前走。 但路容注意到,他的眉头微微皱了一下。 下班时间到了。同事们陆续离开,办公室里的灯光一盏盏熄灭,只剩下应急照明灯发出幽绿的光。路容假装还在加班,实际上她在等,等所有人都走光。 林晓是最后一个离开的邻座。“若溪,你还不走啊?” “还有点数据要处理,你先走吧。”路容说。 “好吧,明天见。”林晓挥挥手,背着粉色的小包离开了。 现在,整个数据分析部只剩下路容一个人。应急照明灯的光线很暗,把办公区照得像海底世界。远处传来电梯运行的嗡鸣声,空调系统已经切换到夜间模式,出风口的风变得微弱而冰凉。 路容站起来,伸了个懒腰,动作自然得像真的累了。她走到窗边,看着窗外深港市的夜景。高楼大厦的灯光像繁星,车流像发光的河流。这座城市很美,也很残酷。 她转身,开始慢悠悠地整理桌面。把文件放进文件夹,把笔插进笔筒,把水杯洗干净。每一个动作都很自然,但她的眼睛在快速扫视整个办公区。 明处的摄像头,她早就记下了位置和角度。现在,她要找的是暗处的。 路容走到办公区中央,假装在找什么东西,弯下腰看桌子底下。她用这个姿势,用手机的广角镜头,快速扫过几个关键角落——王总监办公室门口、财务总监办公室门口、档案柜旁边、消防通道的应急箱上方。 手机镜头里,画面有些模糊,但足够看清轮廓。 她保持弯腰的姿势几秒钟,然后站起来,揉了揉腰,走回自己的工位。整个过程不到一分钟,自然得像任何一个加班后整理东西的员工。 她坐回椅子上,打开手机相册,调出刚才拍的照片。手指在屏幕上滑动,放大,再放大。 第一张,王总监办公室门口。除了明处的摄像头,没有异常。 第二张,档案柜旁边。没有异常。 第三张,消防通道。没有异常。 第四张,财务总监办公室门口。 路容的手指停住了。 财务总监办公室的门是深棕色的实木门,门口摆着一盆绿萝,长势很好,叶片油绿。在绿萝盆栽的土壤表面,靠近盆沿的位置,有一个极微小的反光点。 非常微弱,如果不是用广角镜头捕捉到那个角度,根本看不见。 路容把图片放到最大。反光点很小,大概只有针尖大小,但形状很规则——圆形。而且反光的角度很特别,不是自然光反射,更像是玻璃或者镜面的反光。 隐藏摄像头。 她的呼吸微微急促起来。财务总监办公室,为什么要在那里装隐藏摄像头?财务总监是孙明远的人,还是李剑的人?或者,两边都在监控? 路容关掉手机屏幕,靠在椅背上。办公室里的冷气吹在她的脖子上,激起一层鸡皮疙瘩。她能听见自己的心跳声,在寂静的空间里格外清晰。 这不是普通的职场斗争。 这是战争。而战场布满了眼睛。 她站起来,关掉电脑,收拾好东西。背包背在肩上时,她再次抬头看了一眼头顶的摄像头。红色的指示灯在黑暗中像一只眼睛,静静地注视着她。 路容转身,走向电梯间。脚步声在地毯上被吸收,几乎听不见。电梯从一楼上升,数字跳动,像倒计时。 门开了,她走进去,按下B1层——地下停车场。电梯门缓缓关闭,镜面墙壁里映出她的脸。苍白,冷静,眼神深处有一丝冰冷的火焰。 她看着镜中的自己,轻声说: “找到你了。” 第8章:深夜的故障 凌晨一点十三分。 路容在黑暗中睁开眼睛。 出租屋里一片漆黑,只有窗外远处高架桥上的车灯偶尔划过天花板,投下短暂的光影。她躺在床上,呼吸平稳,但身体已经进入警戒状态——这是三年训练出来的本能。任何异常的声响、光线变化、甚至空气流动的改变,都会让她瞬间清醒。 手机在床头柜上震动。 不是电话,是连续不断的短信提示音。嗡嗡嗡,嗡嗡嗡,像一群被困在玻璃瓶里的蜜蜂。声音在寂静的房间里格外刺耳。 路容伸手拿起手机。屏幕的冷光刺得她眯起眼睛。锁屏界面上,十几条消息通知堆叠在一起,全部来自同一个企业聊天群——“星耀集团技术应急群”。 她解锁手机,点开群聊。 消息像瀑布一样滚下来。 【王总监】@所有人 紧急情况!公司核心数据库访问异常,营销部、财务部、运营部均报告无法调取数据。请所有在线技术人员立即登录远程支持系统,优先级最高! 【王总监】重复一遍:所有技术人员立即上线!故障影响范围正在扩大! 【王总监】@周哲 @吴建国 @张明 @李涛 @若溪 …… 后面跟着一长串@名单。路容的名字“若溪”夹在中间,像一颗不起眼的石子。 她坐起身,打开床头灯。暖黄色的灯光洒下来,照亮了这个不到二十平米的出租屋。房间很简陋,一张床,一张书桌,一个衣柜,墙上贴着深港市的地铁线路图。书桌上摆着她的笔记本电脑,黑色的机身,没有任何贴纸或装饰。 空气里有灰尘的味道,混合着窗外飘进来的汽车尾气。深港市的夜晚从不真正安静,总有什么在运转——车辆、机器、或者人心。 路容掀开被子,赤脚踩在地板上。瓷砖冰凉,寒意从脚底窜上来。她走到书桌前,打开电脑。屏幕亮起,蓝色的登录界面像一扇通往另一个世界的门。 她输入密码,进入系统,打开远程支持客户端。界面加载的几秒钟里,她能听见自己心跳的声音——沉稳,有力,但比平时快了一些。 这不是普通的系统故障。 星耀集团的核心数据库采用分布式架构,有七层冗余备份,理论上不可能出现多个部门同时无法访问的情况。除非…… 除非有人动了手脚。 远程支持界面加载完成。左侧是用户列表,显示所有已登录的技术人员头像和状态。路容扫了一眼——周哲在线,状态“忙碌”;IT部的吴建国在线,状态“空闲”;还有五六个她不熟悉的名字,状态都是“正在处理”。 右侧是故障报告面板。红色的警报信息一条条跳出来: 【01:07:23】营销部数据库连接超时,错误代码:503 【01:09:41】财务部核心表锁死,事务回滚失败 【01:11:15】运营部数据仓库查询队列堵塞,等待超时300秒 【01:12:58】日志服务器记录异常,疑似资源竞争 路容的手指在触摸板上移动,点开详细日志。黑色的命令行界面弹出来,白色的字符快速滚动。她眯起眼睛,瞳孔在屏幕光的照射下微微收缩。 日志显示,故障是从凌晨零点五十分开始的。最初是营销部的几个查询请求响应变慢,然后像多米诺骨牌一样,连锁反应蔓延到其他部门。但奇怪的是——故障的传播路径不是随机的。 它像是有选择性的。 财务部的核心表被锁死,但辅助表正常;运营部的数据仓库查询堵塞,但实时流处理通道畅通;营销部的历史数据无法访问,但当天的新增数据可以正常写入。 这不像硬件故障,也不像普通的软件bug。 这像是一种……测试。 或者,一种警告。 路容的呼吸变轻了。她靠在椅背上,手指无意识地敲击桌面。木质桌面传来沉闷的咚咚声,节奏稳定,像心跳的模拟。 企业聊天群里,消息还在滚动。 【张明】我这边看了,数据库服务器CPU使用率正常,内存也没爆,奇怪了 【李涛】网络连接检测过了,没问题,ping值都在5ms以内 【王总监】@所有人 别在群里闲聊!上远程系统,统一排查!半小时内必须解决!李总明天早上要看报表! 王总监的消息后面跟着三个感叹号,像三把悬在头顶的刀。 路容盯着屏幕,没有在群里回复。她的手指在键盘上停顿了几秒,然后开始快速敲击。 她新建了一个临时讨论组。 组名:“故障排查_临时”。成员:周哲、吴建国、还有她自己。 没有邀请其他人。 讨论组创建成功。路容在输入框里打字,手指在机械键盘上敲出清脆的咔嗒声。房间里只有这个声音,和窗外隐约传来的汽车引擎轰鸣。 【若溪】@周哲 @吴建国 两位老师好,我是数据分析部的若溪。我这边看到一些异常模式,想请两位帮忙确认一下。 消息发送出去。 几秒钟后,周哲的头像旁边出现“正在输入”的提示。 【周哲】什么模式? 路容切回远程支持系统,打开另一个命令行窗口。她输入一串命令,屏幕上的字符像流水一样滚动。她的眼睛快速扫过每一行输出,大脑像一台精密的处理器,过滤无关信息,提取关键数据。 故障表现很奇特。 数据库连接没有真正断开,而是被某种机制“挂起”了。查询请求进入等待队列,但队列的处理线程被占用,不是被其他任务占用,而是被……空循环占用了。 就像有一个人站在门口,不进去,也不离开,就堵在那里。 路容的手指再次敲击键盘。 【若溪】请两位看一下日志服务器的/var/log/mysql/slow_queries.log,时间范围00:50到01:10。注意第34行到第47行。 她发送消息,然后等待。 房间里很安静。她能听见冰箱压缩机启动的嗡嗡声,能听见楼上邻居冲马桶的水流声,能听见自己吞咽口水时喉咙的轻微响动。三种声音在黑暗里交织,像一首不协调的交响乐。 临时讨论组里,吴建国回复了。 【吴建国】看了。锁等待时间异常,但锁持有者显示为“system”,不是具体进程。 【周哲】我也看到了。这不对劲。system进程不会主动持有用户表锁。 路容的嘴角微微上扬,一个几乎看不见的弧度。她继续打字。 【若溪】请再执行:show processlist; 然后过滤state为“User sleep”的连接。 这次,周哲的回复快了一些。 【周哲】有七个连接处于User sleep状态,sleep时间都超过300秒。连接来自……内部IP,10.0.5.x段。 10.0.5.x段。 路容的瞳孔收缩了一下。 那是测试服务器的IP段。按理说,测试服务器不应该在生产环境持有数据库连接,更不应该让连接处于休眠状态超过五分钟。 除非有人故意这么做。 她切回命令行,输入另一串指令。屏幕上的输出快速滚动,白色的字符在黑色背景上像一群受惊的飞鸟。路容的眼睛盯着屏幕,手指在键盘上悬停,像钢琴家等待下一个和弦。 找到了。 七个休眠连接,全部来自同一台测试服务器——test-05。而test-05服务器的管理员权限,上周刚刚变更过。 新的管理员是:王总监。 路容的呼吸停了一拍。 她靠在椅背上,闭上眼睛。脑海里快速闪过几个画面——王总监在会议室里冰冷的眼神,工位调整时那抹得意的微笑,还有今天下午,她经过王总监办公室时,听见里面传来的压低声音的电话: “……必须给她点颜色看看……李总那边我会解释……” 当时路容没有多想。现在,这些碎片拼凑在一起,形成了一个模糊但危险的图案。 王总监在测试服务器上做了手脚,制造了这场“故障”。目的是什么?给她一个下马威?测试她的技术能力?还是……更深的算计? 路容睁开眼睛,眼底一片清明。 不管目的是什么,现在必须解决故障。而且,必须用“若溪”这个身份该有的方式解决——不能太突出,不能太老练,但也不能毫无作为。 她重新开始打字。 【若溪】@周哲 @吴建国 我有个猜测,不一定对。那七个休眠连接可能是测试脚本残留,脚本异常退出但连接没释放。可以尝试从测试服务器端强制kill连接吗? 消息发送出去。 路容等待回复的时候,手指无意识地摩挲着键盘边缘。塑料外壳有些磨损,边缘微微发亮,那是长期使用留下的痕迹。这台电脑陪了她三年,从“路容”到“若溪”,从天才新星到职场幽灵。它记得她所有的搜索记录,所有的代码尝试,所有深夜里的孤独和愤怒。 临时讨论组里,周哲回复了。 【周哲】有权限。我试试。 几秒钟后。 【周哲】kill了三个连接。另外四个……权限不足。 【吴建国】权限不足?test-05的root权限被改了? 【周哲】嗯。管理员换人了。 讨论组里沉默了几秒。 路容能想象屏幕那头的两个人此刻的表情——周哲皱着眉头,手指在键盘上敲击,试图找到绕过权限的方法;吴建国靠在椅背上,眯着眼睛,心里盘算着这背后的意味。 她继续打字。 【若溪】如果从数据库端强制终止连接呢?用super权限执行:kill connection [id]; 这次,回复的是吴建国。 【吴建国】可以。但需要确认连接id。而且,super权限只有我和周工有。 【若溪】连接id在slow query log里有记录。第38行、42行、45行、49行。 消息发送出去。 路容等待的时候,端起桌上的水杯喝了一口。水是凉的,顺着喉咙滑下去,带来一阵轻微的寒意。窗外的天空是深紫色的,没有星星,只有城市的光污染在云层上涂抹出一片朦胧的橙红。 临时讨论组里,吴建国发来一条消息。 【吴建国】小姑娘,眼挺尖啊。连日志行数都记得这么清楚。 路容的手指停顿了一下。 她意识到自己犯了一个小错误——作为一个“新人”,不应该对日志文件熟悉到能精确指出行数。这太老练了,太像……曾经的她。 她快速打字补救。 【若溪】刚才查日志的时候特意记了一下,怕自己看错了。 这个解释有些牵强,但勉强说得通。 几秒钟后,周哲回复了。 【周哲】连接已终止。数据库锁释放了。 几乎同时,企业聊天群里跳出一条消息。 【李涛】哎?恢复了!营销部那边说能访问了! 【张明】财务部也正常了! 【王总监】@所有人 故障排除完毕,辛苦了。相关技术人员写一份事故报告,明天上午十点前发给我。 王总监的消息后面没有感叹号,语气平静得像什么都没发生过。 但路容知道,有什么已经发生了。 临时讨论组里,吴建国发来最后一条消息。 【吴建国】行了,散了吧。明天还得早起。 周哲回复了一个简单的“嗯”。 路容盯着屏幕,手指在键盘上悬停了几秒,然后敲出两个字。 【若溪】谢谢两位老师。 她退出讨论组,关闭远程支持系统,合上笔记本电脑。屏幕暗下去,房间里唯一的光源消失了,只剩下床头灯那团暖黄色的光晕。 路容靠在椅背上,闭上眼睛。 脑海里复盘刚才的每一个细节。 故障表现——针对性的资源锁死,像测试又像警告。 故障源头——测试服务器test-05,管理员权限变更。 解决过程——她引导了排查方向,但控制在了“新人该有的水平”。 周哲的反应——那个“?”,还有后续的沉默。 吴建国的反应——“眼挺尖啊”。 最后一个,最值得玩味。 路容睁开眼睛,拿起手机。屏幕还亮着,停留在企业聊天软件的界面。她退出群聊,回到主界面,然后看到了一条未读私信。 发送者:吴建国。 时间:凌晨一点四十六分。 内容只有一句话: “小姑娘,手挺生,路子挺野。明天下午三点,B2层备用机房,换过滤网。” 路容盯着这条消息,看了整整一分钟。 手挺生——指的是她打字的速度和指令的输入方式,还不够熟练,有生疏感。 路子挺野——指的是她解决问题的思路,不按常规,直接切中要害。 换过滤网——一个再普通不过的杂活,IT部最基础的维护任务。 但约定地点:B2层备用机房。 那个地方路容知道。在地下二层,靠近停车场入口,平时很少有人去。机房没有监控——至少明面上没有。因为里面存放的都是淘汰的旧设备,价值不高,安保级别很低。 一个绝佳的,私下谈话的场所。 路容放下手机,走到窗边。她拉开窗帘,看着窗外深港市的夜景。高楼大厦的灯光像无数双眼睛,在黑暗中静静注视。远处,星耀集团的大厦还亮着几盏灯,在楼群中像一个沉默的巨人。 凌晨的风从窗户缝隙钻进来,带着潮湿的凉意。路容能闻到空气中淡淡的汽车尾气味,能听见高架桥上偶尔驶过的货车的轰鸣,能感觉到玻璃窗传来的轻微震动。 三种感官信息在脑海里交织。 她转身回到书桌前,打开抽屉,取出一个黑色的笔记本。翻开,里面是她这一个月来记录的所有信息——李剑的行程规律,王总监的派系关系,部门的人员架构,还有她发现的那些异常数据模式。 她在新的一页写下: “凌晨故障。测试服务器test-05。王总监权限。吴建国邀约。B2机房。” 写完,她合上笔记本,放回抽屉。 床头柜上的电子钟显示:凌晨两点零七分。 路容关掉床头灯,躺回床上。黑暗重新笼罩房间,只有窗外远处的灯光在天花板上投下模糊的光影。她闭上眼睛,但大脑还在运转。 明天的会面,是机会,也是风险。 吴建国看出了什么?他是什么立场?是李剑的人,还是孙明远的人?或者,他只是个看不惯公司现状的老技术员? 路容不知道。 但她知道一点——在星耀集团这座布满监控的迷宫里,她终于找到了第一个,可能不是敌人的身影。 窗外的城市渐渐安静下来。 路容在黑暗中调整呼吸,让心跳慢慢平复。她的手指无意识地攥紧了被角,布料粗糙的触感从指尖传来。她能听见自己的呼吸声,平稳,绵长,像潮汐。 凌晨两点二十三分。 她睡着了。 第9章:机房暗语 下午两点五十分。 路容站在星耀大厦B2层的走廊尽头。 走廊的灯光是那种惨白的LED灯管,每隔五米一盏,有些灯管已经老化,发出滋滋的电流声。光线在灰色的水泥墙壁上投下斑驳的影子,让整个空间显得更加空旷阴冷。空气里有股混合的气味——地下停车场的汽车尾气、潮湿的霉味、还有从机房缝隙里渗出来的机器散热片的金属焦味。 她穿着公司发的深蓝色工装,胸前别着“若溪”的工牌。工牌照片上的她戴着黑框眼镜,头发扎成低马尾,表情平静得近乎呆板。这是她入职时特意拍的照片,要的就是这种不起眼的效果。 走廊尽头有一扇灰色的铁门,门上贴着褪色的标签:“备用机房·设备重地·非请勿入”。 路容抬手看了看表。 两点五十二分。 她深吸一口气,推开铁门。 门轴发出刺耳的嘎吱声,在空旷的走廊里回荡。门后的世界扑面而来——首先是声音,几十台旧服务器风扇运转的低频嗡鸣,像一群被困在地下的蜂群。然后是温度,比走廊低了至少五度,冷气从空调出风口吹出来,带着灰尘和金属的味道。最后是光线,机房里的照明只有几盏应急灯,昏黄的光线勉强照亮一排排黑色的机柜,在水泥地上投下扭曲的阴影。 路容站在门口,让眼睛适应昏暗。 机房大约有两百平米,排列着十几排机柜。大部分机柜的门都敞开着,里面是已经淘汰的服务器,线缆像藤蔓一样垂下来,有些已经积了厚厚的灰尘。地面是灰色的防静电地板,有些地方已经翘起,露出水泥。 空气里有灰尘在光线中飞舞。 她看见老吴了。 在机房最深处,第三排机柜后面。一个穿着灰色夹克的身影蹲在地上,背对着门口,正在整理一堆散乱的光纤线。他的动作很慢,很仔细,一根一根地捋顺,盘成圈,用扎带固定。 路容关上门。 铁门合上的声音在机房里显得格外沉闷。她踩着防静电地板走过去,脚步声被服务器的嗡鸣声吞没。地板有些地方已经松动,踩上去会发出轻微的咯吱声。 她走到第三排机柜前。 老吴没有回头。 他继续整理着光纤线,动作没有停顿。路容站在他身后两米的地方,没有说话。她能看见老吴的后颈,皮肤有些松弛,头发花白,夹克的领口已经磨得发亮。他的手指很粗,关节突出,但动作异常灵活,那些细如发丝的光纤在他手里像听话的丝线。 时间一分一秒过去。 机房的空调出风口发出呼呼的风声。路容能感觉到冷气吹在脖子上,激起一层鸡皮疙瘩。她能闻到灰尘的味道,混合着机器散热片的焦糊味,还有老吴身上淡淡的烟草味。 两点五十五分。 老吴终于把最后一根光纤盘好,用扎带固定。他站起身,没有转身,只是从工具包里掏出两样东西,反手扔了过来。 路容下意识接住。 一个是一次性口罩,白色的,包装还没拆。另一副是灰色的棉线手套,掌心有防滑的橡胶颗粒。 “戴上。” 老吴的声音很低,有些沙哑,在机房的嗡鸣声中几乎听不清。他依然背对着路容,抬手指了指天花板。 路容抬头。 天花板上是中央空调的通风管道,其中一个出风口下方挂着一个白色的过滤网。过滤网已经变成灰黑色,边缘积着厚厚的灰尘,有些地方甚至结了蜘蛛网。 她拆开口罩包装,戴上。口罩的布料有些粗糙,橡胶耳带勒得耳朵发疼。然后戴上手套,棉线的触感很熟悉,让她想起三年前在天启科技机房的日子。 老吴从工具包里拿出一个折叠梯,展开,架在过滤网下方。梯子是铝合金的,有些旧了,展开时发出金属摩擦的刺耳声音。他爬上梯子,从工具包里拿出螺丝刀,开始拆卸过滤网四周的固定螺丝。 螺丝已经锈蚀,拧起来很费力。老吴的手臂肌肉绷紧,螺丝刀和螺丝摩擦发出吱吱的声音。灰尘从过滤网边缘簌簌落下,在昏黄的光线中像细小的雪。 路容站在梯子下方,仰头看着。 她能看见老吴的后背,夹克随着用力的动作绷紧。能听见螺丝刀拧动的金属摩擦声,能闻到从过滤网上落下的灰尘的味道——那种陈年的、混合着霉菌和金属氧化物的气味。 第一颗螺丝拧下来了。 老吴把螺丝放进工具包侧面的小袋子里,然后拧第二颗。他的动作很稳,没有多余的动作,每一个拧转的幅度都恰到好处。路容注意到,他的工具包很旧,帆布材质已经洗得发白,但里面的工具摆放得整整齐齐——螺丝刀、扳手、钳子、电工胶带、扎带、万用表,每一件都在固定的位置。 这是一个老技术员的习惯。 第二颗螺丝拧下来。 第三颗。 第四颗。 过滤网松动了。老吴双手托住过滤网的边缘,用力一拉,整个过滤网从通风口取了下来。更多的灰尘落下,像一场小型的沙尘暴。路容下意识后退半步,但还是有灰尘落在她的头发和肩膀上。 老吴把取下的过滤网递下来。 路容伸手接住。过滤网很重,至少有五公斤,金属框架冰凉,网格上积的灰尘厚得几乎看不见原来的颜色。灰尘从网格缝隙里漏出来,落在她的手套上,变成一层灰色的粉末。 “新的在那边。” 老吴依然没有回头,只是用下巴指了指机房角落。那里堆着几个纸箱,其中一个纸箱敞开着,里面是崭新的白色过滤网。 路容把旧过滤网放在地上,走到纸箱前。她取出一个新的过滤网,很轻,很干净,白色的网格在昏黄的光线下泛着微光。她走回梯子下方,把新过滤网递上去。 老吴接过,对准通风口,推进去,然后开始拧固定螺丝。 第一颗。 第二颗。 整个过程,两人没有说一句话。 机房的嗡鸣声填满了沉默。路容能听见自己的呼吸声,透过口罩变得沉闷。能听见老吴拧螺丝时肌肉用力的轻微喘息。能听见空调出风口的风声,像某种生物的呼吸。 第三颗螺丝拧到一半时,老吴突然开口。 声音很低,几乎被服务器的嗡鸣声淹没。 “昨晚那手‘端口镜像诱导’。” 他停顿了一下,继续拧螺丝。螺丝刀和螺丝摩擦的声音在寂静中格外清晰。 “不像新手。” 路容的心脏猛地一跳。 但她脸上的表情没有变化。口罩遮住了她大半张脸,只露出眼睛。她抬起头,看着老吴的背影。老吴依然在拧螺丝,动作没有停顿,仿佛刚才那句话只是随口一提。 “以前在论坛跟大神学过几招。” 路容的声音透过口罩传出来,有些模糊。她刻意让语气平静,甚至带点不好意思的腼腆,就像一个刚入行的新人被前辈夸奖时的反应。 老吴哼了一声。 那声音很短促,带着某种意味不明的情绪。他没有再说话,继续拧螺丝。第四颗螺丝拧紧,他收起螺丝刀,从梯子上下来。 折叠梯收起来时发出金属碰撞的声音。老吴把梯子靠墙放好,拍了拍手上的灰尘。他的手套已经变成灰色,掌心的橡胶颗粒上沾满了灰尘。 路容站在原地,等待。 老吴从工具包里拿出一个矿泉水瓶,拧开盖子,喝了一口。他的喉结上下滚动,喝水的声音在机房里很清晰。喝完,他把瓶子放回工具包侧面的网兜,然后从夹克内袋里掏出一个小东西。 一个黑色的U盘。 很普通的U盘,塑料外壳,没有任何品牌标志,容量标签上写着“16GB”。老吴把U盘递过来,动作随意得像递一支笔。 “拿着。” 路容接过U盘。 U盘很轻,塑料外壳冰凉。她的指尖触到U盘侧面时,感觉到一个细微的凸起——不是塑料注塑时留下的毛边,而是一个规则的、半球形的凸起,大约米粒大小,位置在U盘的侧面正中。 她的手指在那个凸起上停留了半秒。 然后若无其事地握紧U盘。 “部门新发的‘安全规范’。”老吴说,声音依然很低,“回去学习。下周部门会议要抽查。” 路容点点头,把U盘放进工装口袋。口袋很深,U盘落进去时几乎没有声音。 “过滤网换完了。”老吴说,开始收拾工具包。他把螺丝刀插回固定的位置,把扎带整理好,把万用表的表笔盘起来。每一个动作都很慢,很仔细,仿佛在完成某种仪式。 路容站在原地,不知道该走还是该留。 老吴拉上工具包的拉链,把包背在肩上。他转身,第一次正面看向路容。 路容终于看清了他的脸。 五十岁左右,方脸,皮肤粗糙,眼角有很深的皱纹。眼睛不大,但很亮,在昏黄的光线下像两颗打磨过的石子。他的眼神很平静,没有审视,没有试探,只是平静地看着路容,就像看机房里的任何一台机器。 “机房温度低,待久了容易感冒。” 老吴说完,转身朝门口走去。 他的脚步声在防静电地板上很轻,几乎被服务器的嗡鸣声吞没。路容跟在他身后,保持着两步的距离。两人一前一后穿过一排排机柜,黑色的机柜像沉默的墓碑,在昏黄的光线下投下长长的阴影。 走到门口时,老吴停下脚步。 他的手放在门把手上,没有立刻推开。他背对着路容,肩膀微微塌着,像承载着某种看不见的重量。机房的光线从他身后照过来,把他的影子拉得很长,一直延伸到路容脚下。 空气里有灰尘在飞舞。 空调出风口的风声呼呼作响。 服务器的嗡鸣声像潮水一样涌来。 老吴开口了,声音很轻,仿佛自言自语: “监控室的轮班表。” 他停顿了一下,手依然放在门把手上。 “每周三、五晚八点后,是小张。” 又停顿。 路容屏住呼吸。 “他喜欢喝南门那家奶茶,全糖。” 说完,老吴推开门。 走廊惨白的灯光涌进来,刺得路容眯起眼睛。老吴走出去,没有回头,径直朝走廊另一头走去。他的背影在灯光下越来越小,最后消失在拐角处。 路容站在机房门口,看着空荡荡的走廊。 铁门在她身后缓缓合上,发出沉闷的撞击声。机房里的嗡鸣声被隔绝,走廊里只剩下LED灯管的电流声。 她把手伸进口袋,握住那个U盘。 指尖再次触到那个细微的凸起。 微型无线信号***。 她见过这种东西。三年前,在天启科技,她参与过一个数据安全项目,测试过各种反****。这种微型***通常只有米粒大小,可以贴在手机、电脑、或者U盘上,激活后会在周围形成一个小范围的信号屏蔽区,阻断所有无线通信——Wi-Fi、蓝牙、移动网络。 老吴给了她一个信号***。 还有监控室的轮班信息。 还有保安小张的喜好。 路容松开U盘,把手从口袋里拿出来。她的掌心有汗,手套的棉线已经湿了一小块。她摘下口罩,深吸一口气。走廊里的空气比机房温暖,但依然有地下停车场飘来的汽车尾气味。 她看了一眼手表。 三点零七分。 会面只持续了十五分钟。 十五分钟里,两人说的话不超过十句。但信息量比过去一个月在公司里收集到的还要多。 路容朝电梯间走去。 她的脚步声在空旷的走廊里回荡。LED灯管在头顶滋滋作响,有些灯管闪烁不定,让影子在墙壁上跳动。她能听见自己的心跳声,平稳,但比平时快了一些。 电梯间在走廊另一头。 她按下下行按钮,电梯门缓缓打开。轿厢里空无一人,不锈钢墙壁映出她的身影——深蓝色工装,黑框眼镜,平静得近乎呆板的脸。 她走进电梯,按下1楼。 电梯门合上,轿厢开始上升。轻微的失重感传来,电梯井里传来钢索摩擦的嘎吱声。不锈钢墙壁上映出无数个她的倒影,层层叠叠,像一场没有尽头的梦境。 路容看着倒影中的自己。 “若溪”。 这个身份她已经用了三个月。每天早晨戴上黑框眼镜,用变声器调整声音,刻意改变走路的姿势和说话的语气。她把自己塞进这个壳里,像寄居蟹塞进捡来的贝壳。 但老吴看出来了。 不是看穿了她的真实身份,而是看出了这个壳的不自然。看出了“若溪”这个新人,不该有的技术直觉,不该有的冷静,不该有的“路子野”。 电梯到达1楼。 门开了,大堂的光线涌进来。下午三点,大堂里人来人往,前台接待员在接电话,保安在巡逻,几个穿着西装的人匆匆走过,手里拿着文件夹。 路容走出电梯,穿过大堂。 玻璃自动门感应到她的靠近,缓缓打开。室外的热浪扑面而来,混合着汽车尾气和城市灰尘的味道。深港市下午三点的阳光很烈,照在皮肤上有灼热感。 她走到大厦外的广场上,找了个树荫下的长椅坐下。 广场上有几个白领在抽烟,低声交谈。有外卖员骑着电动车疾驰而过,车后的保温箱发出哐当哐当的声音。远处,星耀大厦的玻璃幕墙反射着阳光,像一块巨大的、冰冷的宝石。 路容从口袋里掏出U盘。 黑色的塑料外壳在阳光下泛着微光。她翻到侧面,仔细看那个凸起。半球形,黑色,和U盘外壳的颜色完全一致,不仔细看根本发现不了。她用指甲轻轻按压,凸起微微下陷——里面有微型开关。 她收回U盘,放回口袋。 然后拿出手机,打开备忘录,新建一个条目。 输入: “B2机房。老吴。U盘(***)。监控轮班:三、五晚八点后-小张。喜好:南门奶茶全糖。” 输入完毕,她锁屏,把手机放回口袋。 树荫下的长椅很凉,铁质的扶手在阳光下晒得发烫。路容能感觉到铁扶手传来的热量,能听见广场上人们的交谈声和车流声,能闻到空气中混合的烟味、汽车尾气味、还有远处咖啡店飘来的咖啡香。 三种感官信息。 她闭上眼睛,让这些信息在脑海里沉淀。 老吴是什么立场? 他给了她信号***——这意味着他知道她可能需要屏蔽信号,可能需要在没有监控的环境下做某些事。他给了她监控室的轮班信息——这意味着他知道她可能需要避开监控。他给了她保安小张的喜好——这意味着他知道她可能需要“通过”小张这一关。 所有这些信息,都指向同一个结论:老吴在帮她。 但为什么? 路容睁开眼睛,看着广场上来来往往的人。一个穿着西装的男人一边打电话一边快步走过,表情焦急。两个女白领端着咖啡杯,低声说笑。一个清洁工推着垃圾车,慢慢清扫地上的落叶。 每个人都有自己的立场,自己的动机。 老吴的动机是什么? 路容想起昨晚的故障排查。老吴在临时讨论组里几乎没说话,只是在她给出关键指令时,默默执行。然后今天,他私下邀约,在机房里用最隐晦的方式传递信息和工具。 一个在IT部干了十几年的老技术员。 一个被边缘化、被派到备用机房干杂活的老员工。 一个可能看透了公司里某些事,但无力改变,只能沉默旁观的人。 路容站起身。 树荫下的凉意消失了,室外的热浪重新包裹她。她朝地铁站走去,脚步平稳,表情平静,就像一个刚结束一天工作的普通职员。 但她的脑海里在飞速运转。 U盘里的“安全规范”需要检查。那个微型***需要测试。监控室的轮班表需要验证。保安小张的喜好需要确认。 还有最重要的——老吴的立场,需要进一步观察。 地铁站入口人潮涌动。路容随着人流走下台阶,空调的冷风从地下涌上来,带着地铁特有的混合气味——机油味、灰尘味、还有无数人身上的汗味和香水味。 她刷了交通卡,通过闸机。 站台上挤满了人,电子显示屏显示下一班地铁还有两分钟到站。广播里传来女声的播报,声音在空旷的站台里回荡。铁轨深处传来地铁驶近的轰鸣声,由远及近,像某种巨兽的呼吸。 路容站在人群边缘,手插在口袋里,握着那个U盘。 塑料外壳已经被她的体温焐热。 那个细微的凸起,像一颗埋藏在平静表面下的种子。 地铁进站了,带起一阵风,吹乱了她的头发。车门打开,人群涌出又涌入。路容随着人流走进车厢,找到一个靠门的角落站定。 车厢里很挤,人与人之间几乎没有空隙。她能感觉到旁边人的体温,能闻到各种气味混合在一起——香水、汗味、快餐、还有地铁空调的冷气味。 地铁启动,加速。 窗外的站台向后飞逝,变成模糊的光带。车厢里的灯光很亮,照在每个人脸上,让表情都显得苍白而疲惫。 路容看着车窗上自己的倒影。 黑框眼镜,平静的脸,深蓝色工装。 “若溪”。 这个身份还能用多久? 她不知道。 但她知道,从今天下午三点零七分开始,她在这个迷宫般的公司里,终于不是完全孤独的了。 即使那个盟友,只给了她一个U盘,三句话,和一个背影。 地铁在隧道里疾驰,车轮和铁轨摩擦发出有节奏的轰鸣。车厢摇晃,灯光闪烁,人群沉默。 路容握紧了口袋里的U盘。 指尖下的凸起,像一颗等待发芽的种子。 第10章:盟友的馈赠 地铁到站,路容随着人流走出车厢。站台广播在身后渐渐模糊,她走上通往地面的台阶,傍晚的阳光斜射下来,在地铁口投下长长的影子。深港市的晚高峰刚刚开始,车流如织,霓虹初上。路容站在街边,看着对面星耀大厦的灯光一层层亮起,像一座逐渐苏醒的钢铁森林。她把手伸进口袋,U盘的塑料外壳贴着掌心,那个细微的凸起像一颗等待被按下的按钮。晚风吹过,带来城市夜晚特有的喧嚣与孤独。她转身,朝出租屋的方向走去,脚步在暮色中坚定而沉默。 出租屋在老城区一栋六层居民楼的顶层。 楼道里的声控灯坏了三盏,路容摸黑爬上楼梯,脚步声在空旷的楼道里回荡。她能闻到各家各户晚饭的气味——炒菜的油烟味、炖汤的香气、还有楼道角落里堆积的杂物散发出的霉味。六楼,她掏出钥匙,金属钥匙插入锁孔的声音在寂静中格外清晰。 门开了。 房间不大,三十平米左右,一室一厅的格局。客厅里只有一张旧沙发、一张折叠桌、两把椅子。窗帘是深灰色的,拉得很严实。墙壁上贴着廉价的墙纸,有些地方已经起泡剥落。空气里有股淡淡的灰尘味,混合着旧家具的木料气息。 路容关上门,反锁。 她没有开大灯,只打开了沙发旁的一盏落地台灯。昏黄的灯光照亮了沙发周围的一小片区域,让房间的其他角落隐没在阴影里。她脱下外套,挂在门后的挂钩上,然后从包里拿出那台不联网的旧笔记本电脑。 这台电脑是她三年前买的,系统已经老旧,但足够安全。她从来没有用它连接过任何网络,所有数据都通过物理介质传输。电脑外壳有几处磕碰的痕迹,键盘上的字母已经磨损得看不清。 路容把电脑放在折叠桌上,插上电源。 电源适配器发出轻微的电流声。她按下开机键,风扇开始转动,发出老旧机器特有的嗡鸣。屏幕亮起,蓝色的启动界面在昏暗的房间里投下一片冷光。她等待系统完全启动,手指无意识地敲击着桌面。 桌面上只有几个图标——一个文本编辑器,一个图片查看器,一个加密软件,还有一个数据恢复工具。 路容从口袋里掏出U盘。 塑料外壳在台灯光下泛着哑光。她翻到侧面,那个微型无线信号***嵌在U盘的接缝处,只有米粒大小,不仔细看根本发现不了。她用手指摸了摸那个凸起,然后深吸一口气,把U盘插进电脑的USB接口。 电脑发出“叮”的一声提示音。 U盘图标出现在屏幕上,显示容量为32GB。路容双击打开,里面只有一个文件:“安全规范_V2.1.pdf”。文件大小显示为3.7MB,创建时间是今天下午三点十五分——正是她和老吴在机房见面的时间。 她点开文件。 PDF打开,确实是星耀集团最新的信息安全规范,一共四十二页,内容详实,格式规范。路容快速浏览了一遍,确认文件本身没有问题。但她的目光停留在文件属性上——创建时间、修改时间、访问时间都正常,但文件的“隐藏属性”一栏显示为“是”。 这不对。 PDF文件通常不会设置隐藏属性。 路容关闭PDF,回到U盘根目录。她打开电脑的文件夹选项,勾选“显示隐藏的文件、文件夹和驱动器”,然后刷新。 U盘里多了一个文件夹。 文件夹的名字是一串乱码:“~TEMP_BAK”。图标是普通的文件夹图标,但颜色比正常的文件夹要淡一些,像是被刻意做了视觉弱化处理。路容把鼠标移到文件夹上,右键点击“属性”。 文件夹大小:28.6MB。 创建时间:今天下午两点五十分——比PDF文件早了二十五分钟。 路容双击文件夹。 弹出一个对话框:“请输入密码以访问此文件夹。” 密码框是空白的,旁边有一个小小的提示图标,但没有任何文字提示。路容盯着那个对话框,脑海里飞快地闪过各种可能性。老吴会用什么密码?一个IT老员工的习惯密码?某个技术术语?还是…… “深蓝”。 这个词跳进她的脑海。 深蓝计划。星耀集团目前最重要的项目,也是李剑亲自负责的项目。老吴在机房里没有提过这个词,但路容知道,公司里所有稍微核心一点的员工都知道这个计划的存在。如果老吴真的想给她传递信息,用这个词的某种变形作为密码,合情合理。 路容在密码框里输入:“DeepBlue”。 回车。 “密码错误。” 她想了想,换成小写:“deepblue”。 “密码错误。” 再试:“DEEPBLUE”。 “密码错误。” 路容停下手指。不对,老吴不会用这么简单的变形。一个在IT部干了十几年的人,对密码安全有本能的敏感。他可能会用更复杂的方式——大小写混合、数字替换、特殊符号,或者…… 她闭上眼睛,回忆老吴在机房里的样子。 蹲在地上整理光纤线,背对着她,动作缓慢而仔细。他说过三句话:“滤网该换了。”“小张喜欢南门那家奶茶,全糖。”“周三、五,八点后。” 没有一句提到“深蓝”。 但老吴知道她在查什么。他知道她不是普通的新人,知道她需要什么。他给的U盘里有信号***,有监控室轮班信息,那么隐藏文件夹里的内容,一定更关键。 路容睁开眼睛。 她在密码框里输入:“ShenLan_2023”。 这是“深蓝”的拼音,加上年份。2023年,正是深蓝计划正式启动的年份。 回车。 “密码错误。” 她皱起眉头。手指在键盘上悬停了几秒,然后重新输入:“SL_JH_2023”。SL是“深蓝”的拼音首字母,JH是“计划”的拼音首字母。 “密码错误。” 路容靠回椅背,台灯的光线照在她的侧脸上,在墙壁上投下一个沉思的剪影。房间里很安静,只有电脑风扇的嗡鸣和窗外隐约传来的城市噪音。她能听见自己的呼吸声,平稳而克制。 密码到底是什么? 老吴会怎么设置这个密码?一个技术员,一个被边缘化的老员工,一个用最隐晦的方式传递信息的人。他可能不会用太复杂的加密方式,因为要确保她能打开。但他也不会用太简单的方式,因为要确保U盘即使落入别人手中,也不会轻易暴露。 路容的目光落在U盘上。 那个微型信号***。老吴特意装了这东西,说明U盘里的内容极其敏感,连无线信号传输的风险都要规避。那么密码本身,可能就藏在…… 她突然坐直身体。 老吴在机房里说的最后一句话:“周三、五,八点后。” 这句话表面上是告诉她监控室轮班时间。但如果换个角度理解呢?周三、五——星期几的英文缩写是Wed和Fri。八点后——20:00之后。 路容在密码框里输入:“WedFri_20”。 回车。 “密码错误。” 她想了想,把下划线去掉:“WedFri20”。 “密码错误。” 不对。 路容的手指在键盘上轻轻敲击。Wed和Fri的缩写,老吴一个中文母语的人,真的会用英文星期缩写吗?更可能的是…… 她输入:“三五_20”。 回车。 文件夹打开了。 路容屏住呼吸。 隐藏文件夹里一共有五个文件。四个是文档,一个是图片。她先点开第一个文档,文件名是:“网络拓扑_简图_v0.1”。 文档打开,是一张手绘的星耀大厦内部网络拓扑简图。 图是用黑色线条画的,很简洁,但标注得很详细。大厦一共四十八层,每层的网络节点、交换机位置、主干线路走向都用简单的符号标出。路容一眼就看到了几个关键位置——数据中心在三十八层,核心服务器在四十层,网络安全监控中心在四十一层。 但最让她注意的是图上的红色标记。 一共有七个红点,分布在大厦的不同位置。每个红点旁边都有手写的注释: “B2备用机房东南角——监控盲区,覆盖时长约15分钟/次” “28层消防通道转角——摄像头故障未修复,已报修三个月” “41层监控中心外走廊——每周三、五20:00-21:00保洁时段,摄像头关闭” “地下停车场C区柱132旁——信号屏蔽,监控画面雪花” …… 路容的手指在触摸板上滑动,放大每一个红点区域的细节。注释的字迹很工整,用的是蓝色圆珠笔,笔画有力,但有些地方因为用力过猛而留下了凹痕。她能想象老吴画这张图时的样子——坐在某个角落里,避开所有人的视线,一笔一划地记录下这些漏洞。 这些信息太珍贵了。 有了这张图,她在大厦里的行动就有了路线图。那些监控盲区、故障摄像头、定时关闭的时段,都是可以利用的窗口。尤其是每周三、五晚上八点到九点,监控中心外的走廊摄像头会关闭——那正是老吴告诉她的轮班时间。 路容把这张图看了三遍,确认每一个细节都记在脑子里,然后关闭文档。 第二个文档:“服务器日志_路径规则”。 这个文档更技术性一些,列出了星耀集团内部各种服务器日志的默认保存路径、命名规则、保留周期。路容快速浏览,目光停留在几行字上: “核心业务数据库访问日志:/var/log/db_access/,按日期分目录,保留90天” “员工终端操作日志:/nas/log/terminal/,按部门分目录,保留180天” “网络安全事件日志:/secure/log/incident/,实时同步至离线备份,永久保留” 永久保留。 路容的心跳加快了一些。如果三年前天启科技的那次“泄密事件”在星耀内部也有记录,如果李剑当时用了类似的手段,那么这些日志里可能会有线索。但问题是,她需要访问这些日志服务器,而权限…… 她继续往下看。 文档的最后有一段手写的备注,字迹和拓扑图上的注释一样: “日志服务器访问需要三级以上权限,但备份系统每周六凌晨3点自动全量备份至磁带库,磁带库在B1层档案室,物理访问需门禁卡+值班员签字。值班员老陈,周六上午9点换班,喜欢抽红塔山。” 路容盯着这段话。 老吴连这个都写下来了。磁带库的物理位置、访问流程、值班员的喜好。这意味着什么?意味着老吴认为她可能需要去那里,意味着那些日志里可能有她需要的东西。 她关闭文档,深吸一口气。 第三个文档:“事件摘要_2019Q4_数据泄露”。 文档只有一页,内容很简洁,像是一份内部调查报告的摘要。路容点开,目光扫过第一行字: “事件时间:2019年11月15日-11月20日” “涉及部门:市场部、技术部” “泄露数据类型:客户资料样本(脱敏后)约5000条” “初步调查结论:外部攻击,通过钓鱼邮件获取员工账号,已封堵漏洞” “处理措施:涉事员工书面警告,加强安全培训,事件未对外公开” 路容的眉头皱了起来。 2019年第四季度,星耀集团发生过数据泄露事件。客户资料,五千条,脱敏后的样本。调查结论是外部攻击,处理措施是警告员工、加强培训。看起来像是一次普通的安全事件,很多公司都会遇到。 但路容读第二遍时,发现了问题。 “涉事员工”这个表述很模糊。是哪个员工?市场部的还是技术部的?男的女的?什么职位?为什么没有具体名字? “书面警告”这个处理也很轻。数据泄露,哪怕是脱敏后的样本,按照星耀集团的安全规范,至少应该是记过处分,严重的可能开除。为什么只是书面警告? “事件未对外公开”——这倒正常,公司都会尽量掩盖负面消息。 但让路容真正在意的是最后一段,那是一段手写的补充,字迹有些潦草,像是后来加上的: “当时负责调查的是李副总(现任李剑副总裁),结论出得很快,三天就定了性。技术部的小王坚持说内部有嫌疑,被调去边缘项目。市场部那个被警告的员工,三个月后离职,去了竞争对手那里。现在想想,那五千条‘脱敏’数据,后来好像出现在某个数据交易平台的样本库里,标签是‘星耀真实客户画像(部分脱敏)’。” 路容盯着这段话,血液在耳膜里鼓噪。 处理方式。 太眼熟了。 快速定性,把责任推给外部攻击或某个替罪羊,涉事人员要么被边缘化,要么被迫离职,事件被压下去,数据最终流向黑市。三年前天启科技的那次“泄密事件”,李剑用的就是这套手法。只不过那次更狠,直接把她这个拒绝潜规则的技术骨干打成“内鬼”,让她身败名裂。 现在,老吴给了她另一个案例。 2019年,星耀集团内部,李剑还是副总的时候。同样的手法,同样的套路。这意味着什么?意味着李剑不是第一次干这种事,意味着他有成熟的运作模式,意味着…… 路容关闭文档,手指有些发凉。 她点开第四个文档,但里面是空的,只有一个文件名:“待补充”。她关掉,然后点开最后一个文件——那张图片。 图片文件名:“便签_照片_001”。 文件打开,是一张照片,拍得有些模糊,但能看清内容。 照片里是一张黄色的便签纸,贴在某个会议记录本的边缘,已经被撕下来一半。便签上的字是手写的蓝色圆珠笔字迹,行书,有些连笔,但能辨认: “深蓝计划二期数据出口方案,合规性存疑。法务部赵律师已介入梳理,建议暂缓对外传输,待风险评估完成。技术部需配合提供原始数据样本及加密协议细节。” 便签的右下角有打印的会议日期:“2023.08.15”,还有参会人员列表的缩印,字太小,看不清楚。 路容把图片放大。 便签纸的边缘有些卷曲,上面有咖啡渍的痕迹,已经干涸成褐色的斑点。纸张的纹理在照片里清晰可见,能看出是那种廉价的便利贴,背面有胶,但已经失去粘性。 她的目光落在文字上。 “深蓝计划二期数据出口方案,合规性存疑。” 这句话很关键。深蓝计划的数据要出口?出口到哪里?给谁?为什么合规性存疑?赵律师介入梳理——赵律师,法务部负责人,李剑的“白手套”。他介入,意味着这件事可能涉及法律灰色地带,需要专业人士来“处理”。 “建议暂缓对外传输,待风险评估完成。” 建议暂缓,但有没有真的暂缓?路容想起周哲今天在食堂说的话:“深蓝计划进入新阶段,数据量激增。”如果数据出口方案真的暂缓了,数据量怎么会激增?除非…… 她的手指在触摸板上滑动,把图片继续放大。 便签的右下角,会议日期和参会人员列表的旁边,有一个很小的区域,之前因为图片模糊没有看清。现在放大到极致,那个区域的像素点开始显现。 是一个签名。 电子签名,扫描后打印在便签上的。字很小,是英文花体字,两个字母: “L.J.” 路容的呼吸停止了。 房间里的一切声音都消失了——电脑风扇的嗡鸣、窗外的车流声、甚至她自己的心跳声。所有的感官都聚焦在那两个字母上,聚焦在那个她刻在骨子里的缩写上。 L.J. 李剑。 便签上的内容涉及深蓝计划数据出口合规性存疑,建议暂缓传输。而李剑的签名就在旁边。这意味着什么?意味着李剑知道这件事,意味着他可能批准了数据出口方案,哪怕合规性存疑。意味着赵律师的“介入梳理”,可能不是要阻止,而是要“合法化”这个行为。 路容盯着那张照片,眼睛一眨不眨。 时间一分一秒过去。 台灯的光线照在电脑屏幕上,反射出淡淡的光晕。她的影子在墙壁上凝固成一个静止的轮廓。房间里很冷,空调没有开,但寒意从脊椎一路爬上来,让她控制不住地打了个寒颤。 她找到了。 第一个直接证据。 一张便签照片,上面有李剑的签名,内容涉及深蓝计划数据出口的合规性问题。虽然这还不是铁证,还不能直接证明李剑在进行非法数据交易,但这是一个起点。一个可以追查的线索。 深蓝计划的数据出口方案。 赵律师的介入。 技术部需要提供原始数据样本和加密协议细节。 路容的脑海里开始拼接碎片。老吴给的拓扑图标出了监控盲区,日志路径规则指出了可能存放历史记录的位置,2019年的事件摘要展示了李剑的惯用手法,而现在这张便签照片,把李剑、赵律师、深蓝计划的数据出口问题直接联系在了一起。 这是一个完整的链条。 一个盟友的馈赠。 路容缓缓靠回椅背,闭上眼睛。她能感觉到心脏在胸腔里剧烈跳动,血液在血管里奔流。三年来,第一次,她手里握住了实实在在的东西。不是猜测,不是推理,而是一张照片,一个签名,一段指向明确的文字。 老吴。 这个在IT部干了十几年,被边缘化,沉默寡言的老技术员。他为什么要给她这些?是因为看不惯李剑的所作所为?是因为自己也曾是受害者?还是因为…… 路容睁开眼睛,看向电脑屏幕。 照片还停留在放大状态,L.J.两个字母在像素点中清晰可见。她伸出手,手指轻轻触碰屏幕,指尖传来液晶屏微凉的触感。 “谢谢。” 她轻声说,声音在寂静的房间里几乎听不见。 然后她开始行动。 先把U盘里的所有文件复制到电脑的加密分区里,设置三重密码。然后清空U盘,只留下那个“安全规范.pdf”文件。接着,她打开文本编辑器,开始整理笔记: “监控盲区:B2东南角(15分钟)、28层消防通道(永久故障)、41层走廊(周三五20-21点关闭)、停车场C区132柱(信号屏蔽)” “日志磁带库:B1档案室,周六凌晨3点备份,值班员老陈(红塔山)” “2019年数据泄露事件:李剑调查,快速定性,涉事员工边缘化/离职,数据最终出现在黑市样本库” “深蓝计划数据出口方案:合规性存疑,赵律师介入,李剑签名,建议暂缓但可能未执行” 她一条一条写下来,字迹工整,逻辑清晰。写完后,她打印出来,用打火机点燃,看着纸张在烟灰缸里慢慢烧成灰烬。灰烬是黑色的,边缘卷曲,散发出纸张燃烧特有的焦味。 然后她重新打开电脑,把加密分区里的文件再次备份到另一个移动硬盘里,把硬盘锁进床头柜的暗格。 做完这一切,已经是晚上十点。 路容关掉电脑,拔掉电源。房间里只剩下台灯的光线,昏黄而温暖。她走到窗边,拉开窗帘的一角。 深港市的夜景在窗外展开。高楼大厦的灯光像繁星一样铺满视野,车流在街道上划出流动的光带。远处,星耀大厦的轮廓在夜色中清晰可见,顶层的几扇窗户还亮着灯,像黑暗中睁开的眼睛。 路容看着那栋大厦,看了很久。 她的手里握着U盘,塑料外壳已经被她的体温焐热。那个微型信号***在指尖下微微凸起,像一颗埋藏的种子,终于开始发芽。 老吴给了她地图,给了她钥匙,给了她第一个证据。 现在,轮到她走进迷宫了。 第11章:周哲的午餐 周三晚上八点十分,星耀大厦四十一层。 路容站在消防通道的门后,透过门缝观察着走廊。走廊里光线昏暗,只有几盏应急指示灯发出幽幽的绿光。空气里弥漫着消毒水的味道,混合着中央空调送出的冷风。她能听到远处传来的吸尘器嗡鸣声——保洁人员正在工作。 老吴的地图是对的。 走廊尽头那个原本应该亮着红点的监控摄像头,此刻镜头盖是闭合的。她数了数时间,从八点整开始,摄像头已经关闭了十分钟。保洁时段,监控关闭,这是星耀大厦为了节省电力和维护成本而制定的规则,现在成了她的机会。 路容深吸一口气,推开消防通道的门。 门轴发出轻微的吱呀声,在空旷的走廊里显得格外清晰。她立刻停下动作,屏住呼吸。吸尘器的声音还在远处,没有变化。她侧身闪出,轻轻带上门,然后贴着墙壁,朝走廊深处移动。 脚下是深灰色的地毯,吸音效果很好,她的脚步声几乎听不见。墙壁是米白色的,每隔几米就挂着一幅抽象画,画框在应急灯的绿光下投出扭曲的影子。她能闻到地毯清洁剂残留的柠檬味,还有从某个办公室门缝里飘出来的咖啡香气——有人加班。 监控中心在走廊中段,双开的磨砂玻璃门,门牌上写着“网络安全监控中心”。门禁系统是银灰色的读卡器,旁边有一个数字键盘。路容在距离门口五米的地方停下,躲在一盆大型绿植后面。 透过绿植的叶片缝隙,她能看见玻璃门后的情况。 监控中心里灯火通明,至少有二十块屏幕在同时闪烁。屏幕的光映在玻璃上,形成一片流动的光斑。她能看见一个穿着保安制服的身影坐在控制台前,背对着门,正在操作着什么。那就是小张,今晚的值班员。 路容看了看手表:八点十五分。 按照老吴提供的信息,小张的值班时间是晚上八点到凌晨四点。现在是他刚接班不久,精神应该还比较集中。她需要观察他的工作习惯,看看有没有什么规律可循。 就在这时,走廊另一头传来了脚步声。 路容立刻缩回绿植后面,心脏猛地收紧。脚步声很轻,是软底鞋踩在地毯上的声音,还伴随着轮子滚动的声音——是保洁车。她透过叶片的缝隙看去,两个穿着蓝色工作服的保洁员正推着车朝这边走来。 她们在距离监控中心还有三个办公室的地方停下,开始清理垃圾桶。 路容屏住呼吸,身体紧贴着墙壁。绿植的叶片擦过她的脸颊,带着塑料的质感。她能听到保洁员们的对话声,虽然压低了,但在安静的走廊里依然清晰。 “昨晚又是小张值班吧?”一个年纪稍大的声音。 “是啊,我进来收垃圾的时候,看见他桌上放着奶茶。”另一个年轻些的声音,“还是那家很贵的,一杯要三十多。” “又有人给他送?” “可不是嘛。上个月是王总监的助理送过一次,这个月不知道又是谁。” “啧啧,这岗位……” 声音渐渐低下去,变成了窃窃私语。路容竖起耳朵,但只捕捉到几个零碎的词:“……数据出口……备份……磁带库……” 她的心跳加快了。 保洁员收拾完那个区域的垃圾桶,推着车继续往前走。轮子在地毯上滚动,发出沉闷的声响。她们经过监控中心门口时,小张从里面打开了门。 “张哥,还没下班啊?”年轻保洁员打招呼。 “早着呢,到四点。”小张的声音听起来很放松,“你们今天挺晚的。” “B2层有个部门加班,刚收拾完。”年长保洁员说,“对了,你桌上那奶茶……” “哦,朋友送的。”小张的语气突然变得含糊,“你们忙吧,我回去盯着了。” 门关上了。 保洁员们推着车继续往前走,渐渐消失在走廊拐角。路容从绿植后面探出头,确认走廊里已经没有人,才缓缓吐出一口气。 刚才的对话在她脑海里回放。 奶茶。有人给小张送奶茶。上个月是王总监的助理,这个月不知道是谁。这意味着什么?小张这个监控中心的值班员,为什么会有人特意给他送东西?是单纯的同事关系,还是…… 路容的目光重新落在那扇磨砂玻璃门上。 门禁系统是标准的刷卡加密码锁。她仔细观察读卡器的型号:H3C iMC 3000系列,企业级门禁系统。这种系统通常需要员工卡和六位数字密码双重验证。密码可能是个人设置,也可能是统一分配的。 她记下了型号,然后继续观察。 小张在监控中心里走动了几次,每次都是起身去接水,或者去后面的小休息室。路容注意到,他每次离开控制台的时间都不超过三分钟。而且,他离开时,监控中心的门并没有锁——只是虚掩着。 这意味着什么? 意味着如果能在三分钟内完成操作,并且不触发任何警报…… 路容摇了摇头,把这个危险的念头压了下去。现在还太早,太冒险。她需要更多信息,需要了解监控中心的内部布局,需要知道那些屏幕分别监控哪些区域,需要找到日志系统的访问入口。 她看了看手表:八点二十五分。 保洁时段还有五分钟结束。她必须离开了。 路容最后看了一眼监控中心,然后转身,贴着墙壁,沿着来时的路返回。消防通道的门就在十米外,她推开门的瞬间,听到走廊里传来“嘀”的一声轻响。 监控摄像头的镜头盖打开了,红色的指示灯亮起。 她闪身进入消防通道,轻轻关上门,背靠着冰冷的金属门板,长长地舒了一口气。 楼梯间里很暗,只有每层楼梯转角处有一盏声控灯。路容没有立刻下楼,而是在台阶上坐了下来。水泥台阶很凉,透过薄薄的裤料传到皮肤上。她能闻到楼梯间里灰尘和潮湿混合的气味,还有远处隐约传来的城市噪音。 她从口袋里掏出手机,打开备忘录,开始记录: “41层监控中心观察: 1. 值班员小张,晚8-凌晨4班次 2. 门禁:H3C iMC 3000,刷卡+密码 3. 小张离开控制台时间≤3分钟,门虚掩 4. 有人送奶茶(上月王总监助理,本月未知) 5. 保洁员提及‘数据出口’‘备份’‘磁带库’(待核实)” 写完后,她收起手机,站起身。 腿有些发麻,她扶着栏杆活动了一下,然后开始下楼。脚步声在空旷的楼梯间里回荡,声控灯一层层亮起,又一层层熄灭。从四十一层到一楼,她走了整整十五分钟。 走出大厦时,已经是晚上八点五十。 深港市的夜晚完全降临了。街道上车流如织,霓虹灯把整条街照得如同白昼。路容站在大厦门口,看着进进出出的人群——有刚加完班拖着疲惫脚步的员工,有穿着西装还在打电话谈业务的中层,有拎着外卖匆匆跑进去的快递员。 她深吸了一口夜晚的空气,空气里有汽车尾气的味道,有路边小吃摊的油烟味,还有这座城市永不熄灭的活力。 然后她转身,朝地铁站走去。 *** 周四中午十二点十分,星耀集团员工食堂。 食堂在三楼,占据了整整一层楼的空间。落地窗外是深港市的天际线,阳光透过玻璃洒进来,在光洁的地板上投下明亮的光斑。空气里弥漫着各种食物的气味——炒菜的油烟、炖汤的香气、油炸食品的酥脆味道,还有消毒水清洁过后的淡淡气味。 路容端着餐盘,在人群中穿行。 食堂里人声鼎沸,几百个员工在这里用餐。交谈声、笑声、餐盘碰撞声、椅子拖动声,所有声音混合在一起,形成一种嘈杂而充满生命力的背景音。她刻意避开人群密集的区域,朝食堂最里面的角落走去。 那里有一排靠窗的座位,因为距离取餐区最远,通常人比较少。 她在一个双人桌旁坐下,把餐盘放在桌上。餐盘里是一份清炒西兰花,一份红烧鸡块,一碗米饭,还有一小碗紫菜蛋花汤。食物的热气在空气中升腾,带着诱人的香味。 路容拿起筷子,夹起一块西兰花。 就在这时,一个身影在她对面坐了下来。 “不介意吧?”周哲端着餐盘,自然地放在桌上,“看你总一个人。” 路容抬起头。 周哲今天穿着浅蓝色的衬衫,袖子挽到手肘,露出结实的小臂。他的餐盘里堆得满满的——两份荤菜,一份素菜,还有两个馒头。他脸上带着温和的笑容,眼睛在食堂明亮的灯光下显得很清澈。 “不介意。”路容说,声音通过变声器处理后,带着一种中性的柔和。 “那就好。”周哲拿起筷子,“我其实也经常一个人吃,今天正好看到你。” 路容低下头,继续吃饭。她能感觉到周哲的目光在她身上停留了几秒,然后移开了。食堂的嘈杂声在耳边回荡,但她能清晰地听到自己咀嚼食物的声音,还有心跳的声音。 “最近工作怎么样?”周哲问,语气随意,“适应了吗?” “还好。”路容说,“数据清洗的工作量比较大,但还能应付。” “嗯,王总监那边……”周哲顿了顿,“她要求一向很高。不过你做得不错,上次那个异常检测的报告,李总还特意提了一句。” 路容的手微微一顿。 李剑提了她的报告? “是吗?”她让自己的声音听起来平静,“我只是按照规范操作。” “规范操作能做到那个程度,已经很厉害了。”周哲咬了一口馒头,“很多老员工都做不到那么细致。对了,你听说了吗?‘深蓝计划’要进入新阶段了。” 路容抬起头:“新阶段?” “嗯。”周哲咽下食物,喝了口汤,“数据量会激增,听说至少要翻三倍。清洗和标注的工作量会很大,王总监已经在考虑要不要把一部分外包出去,或者……” 他看了路容一眼:“压给新人。” 路容的心跳加快了。 她放下筷子,表现出适度的好奇:“数据量会增加到什么程度?现在的系统能承受吗?” “系统没问题,星耀的服务器集群足够强大。”周哲说,“关键是数据处理环节。特别是数据加密和传输协议,要保证在大量数据流动的情况下,安全性和效率的平衡。” “加密协议……”路容小心地选择着措辞,“是用公司自研的那套吗?我上次在内部文档里看到过介绍,但不太理解其中的密钥交换机制。” 周哲看了她一眼,眼神里闪过一丝惊讶。 “你对技术细节很感兴趣啊。”他说,“大部分新人只关心怎么完成工作,很少问这些底层的东西。” “我觉得了解原理,才能更好地工作。”路容说,声音里带着恰到好处的谦逊。 周哲笑了笑,那笑容很真诚。 “你说得对。”他说,“加密协议确实是自研的,基于国密算法做了改良。密钥交换用的是改进的ECDH协议,每次会话都会生成临时密钥,前向安全性很好。传输层用的是公司定制的TLS协议,证书体系是独立的,不和外部CA交互。” 他说得很详细,但都在公开技术文档的范围内,没有涉及核心机密。 路容认真地听着,偶尔点头。她能感觉到周哲在分享这些知识时的愉悦——那是一种技术人员面对同样对技术感兴趣的人时,自然产生的共鸣。 “不过说实话,”周哲话锋一转,语气里多了些感慨,“有时候我觉得,数据本身比怎么处理它更敏感。” 路容抬起头:“什么意思?” “你看啊。”周哲用筷子在餐盘上比划着,“加密算法再强,传输协议再安全,最终数据还是要被人使用的。而一旦数据到了人手里,就有了泄露的可能。权限管理、访问控制、操作审计……这些人为的环节,其实比技术环节更脆弱。” 他顿了顿,压低声音:“‘深蓝计划’的数据,你知道是什么级别的吗?” 路容摇头。 “S级。”周哲说,“公司最高密级。按照规范,这种级别的数据,从采集、清洗、标注到训练,全流程都应该在物理隔离的环境里进行。但现在为了赶进度,很多环节都放到了普通办公网络里。” 他的声音更低了:“我听说,数据出口方案……有点问题。” 路容的呼吸几乎停止了。 她强迫自己保持平静,夹起一块鸡块,慢慢地咀嚼。鸡肉很嫩,酱汁的味道在舌尖化开,但她几乎尝不出味道。 “什么问题?”她问,声音尽量自然。 周哲看了看四周,确认没有人注意他们,才继续说:“合规性存疑。赵律师那边在‘梳理’,但你知道的,法务部‘梳理’的意思,通常就是……” 他没有说完,但路容懂了。 就是找法律漏洞,让不合规的事情看起来合规。 “这些事,我们小员工还是少打听。”周哲突然笑了笑,那笑容里有些无奈,“做好自己的本职工作就行了。来,吃饭,菜都要凉了。” 路容点点头,继续吃饭。 但她的心思已经完全不在食物上了。周哲的话在她脑海里反复回响:数据出口方案、合规性存疑、赵律师梳理……这些信息,和老吴给的便签照片完全吻合。 她需要更多细节。 “如果数据量真的翻三倍,”她重新挑起话题,“清洗工作会不会引入新的工具?我听说有些AI辅助清洗的软件,效率很高。” “可能会。”周哲说,“不过那些工具通常需要把数据上传到第三方平台,安全审查很麻烦。王总监更倾向于用内部工具,或者……让新人手动处理。” 他说到“手动处理”时,语气里有一丝不易察觉的同情。 “手动处理S级数据?”路容问,“这符合规范吗?” 周哲看了她一眼,那眼神很复杂。 “若溪,”他说,“在星耀,规范是给遵守规范的人定的。对于有些人来说,规范……是可以变通的。” 他说得很隐晦,但路容听懂了。 两人沉默地吃了一会儿饭。食堂的嘈杂声似乎更大了,远处传来一阵笑声,几个年轻员工正在分享什么有趣的事情。阳光透过窗户,在餐桌上投下明亮的光斑,光斑随着时间慢慢移动。 路容餐盘里的食物已经吃完了,她端起汤碗,小口喝着。紫菜蛋花汤很清淡,带着海藻的鲜味和鸡蛋的香气。 周哲也吃完了,他把筷子整齐地放在餐盘上,然后看着路容。 他的目光很专注,专注到让路容有些不自在。 “若溪,”他开口,声音比刚才更轻,“你……是不是以前经历过什么事?” 路容的手一抖,汤碗里的汤晃了一下,几滴溅到了桌上。 “为什么这么问?”她问,声音通过变声器后,依然保持着平稳。 “就是一种感觉。”周哲说,他的眼神很认真,“有时候你看数据的眼神,不像新人,倒像……” 他顿了顿,似乎在寻找合适的词。 “倒像一个曾经失去过什么,现在拼命想要找回来的人。” 路容的心脏猛地收缩。 她能感觉到血液冲上脸颊,耳朵里嗡嗡作响。食堂的嘈杂声突然变得遥远,周哲的声音却异常清晰,每一个字都像针一样扎进她的意识里。 她放下汤碗,碗底和桌面碰撞,发出轻微的“咔”声。 “我只是对工作比较认真。”她说,声音依然平稳,但只有她自己知道,这句话说得多艰难。 周哲看着她,看了很久。 然后他笑了,那笑容很温和,甚至有些温柔。 “可能是我多想了。”他说,“抱歉,不该问这些的。” 他站起身,端起餐盘:“我下午还有个会,先走了。你慢慢吃。” 路容点点头,没有说话。 周哲转身离开,他的背影在食堂的人群中穿行,渐渐远去。路容坐在原地,看着他的背影消失在大门处,然后才缓缓吐出一口气。 她的手在桌下握成了拳,指甲深深陷进掌心。 疼痛让她清醒了一些。 她端起餐盘,站起身,朝餐具回收处走去。脚步很稳,表情很平静,就像任何一个吃完午饭准备回去工作的普通员工。 但她的脑海里,周哲的那句话在反复回响: “倒像一个曾经失去过什么,现在拼命想要找回来的人。” *** 下午一点半,数据分析部办公区。 路容坐在工位上,盯着电脑屏幕。屏幕上打开的是“深蓝计划”外围数据清洗的工作界面,一行行数据在滚动,但她一个字也看不进去。 周哲的话还在耳边。 他察觉到了什么?是她的技术细节问得太专业?是她看数据的眼神太专注?还是……她身上有什么破绽,是她自己都没有意识到的? 路容闭上眼睛,深吸一口气。 冷静。必须冷静。 周哲只是随口一问,不一定真的怀疑什么。就算他有所察觉,也不可能猜到她的真实身份。她现在需要做的,是继续扮演好“若溪”这个角色,一个认真工作、对技术感兴趣的新人。 她睁开眼睛,重新看向屏幕。 手指在键盘上敲击,开始处理数据。敲击声很轻,但在安静的办公区里依然清晰。她能听到周围同事的键盘声、鼠标点击声、偶尔的咳嗽声,还有中央空调送风的嗡嗡声。 阳光从窗户斜照进来,在办公桌上投下明亮的光斑。光斑里有细小的灰尘在飞舞,像无数微小的生命在空气中游荡。 路容工作了两个小时。 下午三点半,内部通讯软件弹出一条消息。 是王总监发来的:“若溪,来我办公室一趟。” 路容的心跳漏了一拍。 她回复:“好的,马上到。” 然后她站起身,整理了一下衬衫的衣领,朝王总监的办公室走去。走廊里很安静,只有她的脚步声在地毯上发出轻微的沙沙声。她能闻到空气里残留的咖啡香气,还有打印机墨粉的味道。 王总监的办公室在走廊尽头,门关着。 路容敲了敲门。 “进来。”里面传来王总监的声音。 路容推门进去。 办公室很大,落地窗外是深港市的天际线。王总监坐在宽大的办公桌后,正在看一份文件。她今天穿着深灰色的西装套裙,头发一丝不苟地盘在脑后,脸上化着精致的妆容。 “王总监。”路容说。 王总监抬起头,看了她一眼,那眼神很锐利。 “坐。”她说,指了指办公桌前的椅子。 路容坐下。椅子是真皮的,坐下去很柔软,但她的背脊挺得笔直。 “有个任务要交给你。”王总监放下文件,双手交叠放在桌上,“‘深蓝计划’新阶段的数据清洗工作,需要提前准备。我打算让你负责第一批数据的初步清洗。” 路容的心跳加快了。 “第一批数据量有多大?”她问。 “大约500GB。”王总监说,“都是文本数据,需要做去重、去噪、格式标准化。时间比较紧,下周一就要完成。” 路容在心里快速计算:500GB文本数据,按照常规清洗速度,至少需要三天。今天是周四,下周一交,意味着她需要加班。 “我能问一下,”她小心地选择措辞,“这批数据的密级是?” 王总监看了她一眼,那眼神里闪过一丝什么,但很快消失了。 “A级。”她说,“所以清洗工作必须在公司内网完成,不能带出公司。我会给你开通临时权限,允许你在非工作时间进入办公区。” 路容点点头:“我明白了。” “还有,”王总监从抽屉里拿出一份文件,“这是数据清洗的具体规范,你仔细看看。特别是数据出口前的检查项,一定要严格执行。” 路容接过文件。 文件的封面写着:“深蓝计划数据清洗规范_V3.2”。她翻开第一页,里面详细列出了清洗流程、质量要求、安全规范。在最后一节“数据出口检查”里,列出了十七个检查项,包括加密状态、完整性校验、传输协议确认等等。 她的目光落在第七条:“确认数据接收方已通过安全审查。” 这一条后面打了个星号,标注着:“如接收方为外部合作单位,需提供法务部出具的合规性审查报告。” 路容抬起头:“这批数据……要出口?” 王总监的表情没有变化。 “只是可能。”她说,“公司正在评估多个合作方案,数据可能会提供给合作伙伴进行联合建模。所以清洗工作要格外仔细,确保数据质量。” 她顿了顿,补充道:“这也是为什么选你。你工作细致,出错率低。” 路容点点头,没有说话。 她拿着文件站起身:“那我先回去看规范,尽快开始工作。” “去吧。”王总监说,重新拿起桌上的文件,“对了,若溪。” 路容停下脚步。 “好好干。”王总监看着她,脸上露出一个标准的职业微笑,“这个机会很难得。” 路容也回以一个微笑:“谢谢王总监。” 她转身离开办公室,轻轻带上门。 走廊里,她背靠着冰冷的墙壁,闭上眼睛。 手里的文件沉甸甸的。 深蓝计划数据清洗。A级密级。可能出口。法务部合规性审查。 所有这些信息,都在指向同一个方向。 她睁开眼睛,朝办公区走去。脚步很稳,表情很平静,就像任何一个接到重要任务的员工,既感到压力,又充满干劲。 但只有她自己知道,她的心里,有什么东西正在燃烧。 第12章:王总监的陷阱 路容回到工位,将那份《深蓝计划数据清洗规范_V3.2》放在桌上。纸张边缘在办公室的灯光下泛着冷白的光泽。她翻开文件,目光落在“数据出口检查”那一节,手指轻轻划过“法务部合规性审查报告”那几个字。窗外,深港市的午后阳光正烈,高楼玻璃幕墙反射出刺眼的光芒。她打开电脑,登录内网,申请临时权限。系统提示需要王总监二次审批。她点击提交,然后靠在椅背上,看着屏幕上跳转的进度条。办公室里的键盘声此起彼伏,中央空调吹出的冷风拂过她的后颈。她拿起桌上的水杯,喝了一口,水温刚好,带着淡淡的柠檬味。然后她开始规范的第一章,字句在眼前清晰,每一个标点都像是一个等待被解答的谜题。 周五上午九点十分,路容刚完成第一批数据的预处理脚本测试,内网邮箱弹出一条紧急通知。 “数据分析部全体成员:请于九点半到三号会议室参加紧急会议。王总监。” 邮件的发送时间是九点零五分。 路容看了眼电脑右下角的时间,还有二十分钟。她保存了脚本,关闭了正在运行的测试程序。办公室里的气氛已经变了,键盘声稀疏下来,有人低声交谈,椅子拖动的声音此起彼伏。她旁边的林晓探过头来,脸上带着不安。 “若溪姐,你说是什么事啊?这么急。” 林晓的声音压得很低,带着年轻人特有的紧张。路容注意到她的手指在桌面上无意识地敲击,指甲修剪得很整齐,涂着淡粉色的指甲油。 “不知道。”路容说,声音平静,“去了就知道了。” 她站起身,拿起笔记本和笔。笔记本是公司统一配发的黑色硬壳本,封面光滑,摸上去有细微的颗粒感。笔是普通的黑色签字笔,笔帽上有一圈银色的金属环。她把笔夹在笔记本的侧边,动作很慢,像是在给自己争取思考的时间。 九点二十五分,路容走进三号会议室。 会议室不大,长方形,能容纳十五人左右。深灰色的地毯,米白色的墙壁,一面墙是整块的玻璃白板,另一面挂着星耀集团的logo——银色的星辰图案,在灯光下泛着冷光。会议桌是深色实木,桌面上已经摆好了几瓶矿泉水,瓶身上凝结着细小的水珠。空调温度开得很低,路容一进门就感到一股寒意从手臂蔓延开来。 王总监已经坐在主位。 她今天穿了一套深蓝色的西装套裙,头发一丝不苟地梳在脑后,露出光洁的额头。她的面前放着一台笔记本电脑,屏幕亮着,映出她面无表情的脸。她的手指在触控板上滑动,动作很轻,但路容注意到她的指尖有些发白——那是用力按压的痕迹。 陆陆续续有人进来,找了位置坐下。路容选了靠窗的位置,离王总监不远不近。林晓坐在她旁边,呼吸有些急促。路容能闻到她身上淡淡的香水味,是某种花果香调,混合着会议室里消毒水的味道,形成一种奇怪的气味组合。 九点三十分整,王总监抬起头。 “人都到齐了。”她的声音不高,但会议室里立刻安静下来,“关上门。” 坐在门口的人起身关上了门。门锁发出轻微的咔哒声,在安静的房间里格外清晰。路容感到空气似乎更冷了,空调出风口正对着她的方向,冷风直接吹在她的后颈上。 王总监的目光扫过在座的每一个人,最后停留在路容脸上,停留了大约两秒钟,然后移开。 “今天临时召集大家,是因为‘深蓝计划’出了严重问题。”她的声音很平静,但平静之下有一种紧绷感,“昨天下午,技术部在对第一批清洗完成的数据进行质量检查时,发现数据存在严重污染。” 会议室里响起一阵轻微的骚动。 路容没有动。她保持着原来的坐姿,背挺得很直,双手放在桌面上,手指轻轻交叠。她能感觉到旁边林晓的身体僵了一下。 “污染的具体表现是,”王总监继续说,手指在笔记本电脑上敲击了几下,“部分关键字段被随机替换成了无意义字符。比如用户ID字段,原本应该是十六位数字,现在变成了乱码。比如时间戳字段,原本应该是标准的时间格式,现在变成了随机字符串。” 她调出一张截图,投影到白板上。 白板上出现了一行行数据。路容的目光立刻锁定在那些异常字段上。确实如王总监所说,一些字段的内容完全混乱了,字母、数字、符号混杂在一起,没有任何规律。但她的注意力没有停留在数据本身,而是快速扫过数据的格式、排版、字段顺序。 “这批数据原本计划今天上午交付给技术部,用于模型训练的初步测试。”王总监的声音冷了下来,“现在因为污染问题,交付必须推迟。李总已经知道这件事了,非常生气。” 她顿了顿,目光再次扫过全场。 “李总的意思是,必须有人为这件事负责。” 会议室里鸦雀无声。路容能听到空调出风口的嗡嗡声,能听到旁边林晓吞咽口水的声音,能听到远处办公室传来的模糊电话铃声。她看着白板上的数据截图,大脑在飞速运转。 这些数据,她认识。 上周三到周五,她花了整整三天时间,清洗了这批数据。500GB的文本数据,她逐条检查了格式,编写了清洗脚本,运行了去重算法,最后生成了清洗报告。每一个步骤她都记得清清楚楚,因为这是她进入星耀后接手的第一个重要任务,她不敢有丝毫马虎。 “经过初步排查,”王总监的声音再次响起,“问题出在数据清洗环节。” 路容抬起眼睛。 王总监的目光正看着她。 “上周负责这批数据初步清洗的,是若溪和林晓。”王总监说,声音很平稳,但每个字都像钉子一样钉进空气里,“技术部检查了数据的时间戳,污染发生的时间段,正好是她们两人操作的时间。” 林晓猛地吸了一口气。 路容能感觉到她的身体在颤抖,椅子发出轻微的吱呀声。 “我、我没有……”林晓的声音很小,带着哭腔,“我都是按照规范操作的……” “林晓。”王总监打断她,声音里没有温度,“现在不是辩解的时候。数据摆在这里,污染是事实。” 她调出另一张截图。 “这是数据清洗系统的操作日志。”她说,“你们可以自己看。” 白板上出现了操作日志的截图。路容的目光立刻锁定在时间戳上。日志显示,上周三下午两点到四点,周四上午九点到十一点,周五全天,都有数据清洗操作记录,操作者ID显示为“ruoxi_001”和“linxiao_002”。 路容的瞳孔微微收缩。 她记得很清楚,上周五她确实在清洗数据,但那天下午三点之后,她因为要参加一个临时培训,提前结束了工作。培训是王总监亲自通知的,内容是“新员工数据安全规范”。培训地点在五楼的小会议室,从两点半开始,到四点半结束。 那段时间,她根本不在工位上。 “王总监,”路容开口,声音平静,“我能看一下完整的操作日志吗?包括系统自动生成的备份日志。” 王总监看了她一眼,那眼神里有什么东西一闪而过。 “当然可以。”她说,手指在笔记本电脑上操作了几下,“我已经把相关日志导出到共享文件夹了。会议结束后,你们可以自己去查看。” 她顿了顿,补充道:“不过我要提醒你们,技术部已经确认,污染就是在清洗环节发生的。现在的问题不是谁操作了数据,而是为什么会发生污染,以及如何补救。” “我要求查看原始数据副本。”路容说,声音依然平静,“以及清洗过程中生成的中间文件。如果真的是清洗环节的问题,中间文件应该能反映出污染的具体过程。” 王总监沉默了几秒钟。 会议室里的空气仿佛凝固了。路容能感觉到所有人的目光都集中在她身上,有好奇,有同情,有审视,也有幸灾乐祸。她保持着原来的坐姿,背挺得很直,目光平静地看着王总监。 “原始数据副本已经交给技术部分析了。”王总监终于说,“中间文件……系统会自动清理,可能已经不存在了。” “系统会在清洗完成后72小时才清理中间文件。”路容说,声音很轻,但每个字都很清晰,“按照时间推算,中间文件应该还在。” 王总监的嘴角微微抽动了一下。 “若溪,你对系统流程很熟悉啊。”她说,语气里带着一丝不易察觉的审视。 “入职培训时学过。”路容回答,表情没有任何变化,“数据清洗规范里也有详细说明。” 王总监盯着她看了几秒钟,然后移开目光。 “好,我会让技术部把中间文件也发到共享文件夹。”她说,“但是若溪,林晓,我希望你们明白现在的处境。李总已经发话了,如果今天下班前不能给出合理的解释和解决方案,就要按严重失职处理。” 她顿了顿,声音更冷了。 “严重失职的后果,你们应该清楚。” 林晓终于忍不住哭了出来。 压抑的抽泣声在安静的会议室里格外刺耳。路容能听到她吸鼻子的声音,能听到她手指抓挠桌面的声音,能闻到她眼泪混合着香水的气味。她没有转头去看林晓,目光依然停留在王总监脸上。 “王总监,”路容说,“我能现在就看操作日志吗?” 王总监看了她一眼,然后点了点头。 “可以。”她说,把笔记本电脑转向路容的方向,“你自己看吧。” 路容站起身,走到王总监身边。笔记本电脑的屏幕很亮,映出她自己的脸——戴着黑框眼镜,表情平静,眼神专注。她弯下腰,手指放在触控板上,开始滚动操作日志。 日志很长,密密麻麻的时间戳、操作类型、操作者ID、操作对象。路容的目光快速扫过,大脑像一台精密的机器,开始比对记忆中的时间线。 上周三下午两点到四点,她确实在清洗数据。日志显示,那段时间有大量的数据读取、格式转换、去重操作,操作者ID是“ruoxi_001”。这和她记忆吻合。 上周四上午九点到十一点,她也在清洗数据。日志显示,那段时间有数据校验、异常值处理、生成清洗报告等操作,操作者ID同样是“ruoxi_001”。这也和她记忆吻合。 问题出在上周五。 日志显示,上周五上午九点到下午五点,几乎全天都有数据清洗操作,操作者ID是“ruoxi_001”和“linxiao_002”。操作类型包括数据加密、字段映射、格式标准化等等。 但路容记得很清楚,上周五她只工作到下午三点。三点之后,她去了五楼参加培训。培训是王总监亲自通知的,她还特意在日历上做了标记。 她继续往下滚动日志。 时间戳,时间戳,时间戳。 她的目光突然停住了。 上周五下午三点十五分,有一条操作记录:数据字段替换,操作者ID“ruoxi_001”,操作对象“user_id_field”。 这条记录的时间,正好是她参加培训的时间。 路容的手指在触控板上停住了。她没有立刻说话,而是继续往下看。三点二十分,三点二十五分,三点三十分……连续几条操作记录,都是字段替换,操作者ID都是“ruoxi_001”。 而这些操作,正是导致数据污染的直接原因。 “看完了吗?”王总监的声音在耳边响起。 路容直起身,目光从屏幕上移开。 “看完了。”她说,声音依然平静。 “有什么要说的吗?”王总监问。 路容沉默了几秒钟。 她能感觉到会议室里所有人的目光都集中在她身上,能听到林晓压抑的抽泣声,能闻到空气中弥漫的紧张气味。空调的冷风还在吹,她的手臂上起了一层细小的鸡皮疙瘩。 “日志显示,上周五下午三点之后,还有我的操作记录。”她终于开口,声音很轻,但每个字都很清晰,“但那个时间,我在五楼参加培训。培训是您亲自通知的,王总监。” 王总监的表情没有任何变化。 “培训?”她微微皱眉,“什么培训?” “新员工数据安全规范培训。”路容说,“上周三您亲自通知我的,说周五下午两点半到四点半,在五楼小会议室。” 王总监沉默了几秒钟,然后摇了摇头。 “我不记得有这回事。”她说,“而且就算有培训,你完全可以在培训间隙回工位操作。数据清洗系统支持远程登录,你可以在任何地方操作。” “培训期间不允许使用电子设备。”路容说,“培训讲师明确要求手机关机,笔记本也不能带。” “那你有没有离开过培训室?”王总监问,“比如去洗手间?” 路容看着她,没有说话。 她知道,这是一个陷阱。无论她怎么回答,王总监都有办法把责任推到她身上。如果说离开过,那么“离开的时间足够操作数据”就会成为理由。如果说没离开过,那么“你怎么证明你没离开过”就会成为问题。 “我需要查看完整的系统日志。”路容说,避开了王总监的问题,“包括登录日志、网络访问日志、文件操作日志。如果真的是我操作的,这些日志应该能反映出我的操作轨迹。” 王总监的嘴角微微上扬,那是一个几乎看不见的冷笑。 “完整的系统日志涉及公司安全,不能随便查看。”她说,“不过既然你坚持,我可以向技术部申请。但是若溪,我要提醒你,技术部已经初步判断问题出在清洗环节,你现在要求查看更多日志,只会让事情更复杂。” “如果问题确实出在清洗环节,我愿意承担责任。”路容说,声音很稳,“但我需要确凿的证据。现在的操作日志有时间上的矛盾,我需要弄清楚是怎么回事。” 王总监盯着她看了几秒钟。 会议室里的空气仿佛更冷了。路容能听到自己的心跳声,平稳而有力。她能感觉到汗水从后背渗出,浸湿了衬衫,但她的表情没有任何变化。 “好。”王总监终于说,“我给你24小时。” 她站起身,目光扫过全场。 “24小时内,若溪,你要么找出数据污染的真正原因,要么,就按严重失职处理。”她的声音很冷,像冰一样,“散会。” 她合上笔记本电脑,拿起桌上的文件夹,转身离开了会议室。 门在她身后关上,发出沉闷的响声。 会议室里安静了几秒钟,然后爆发出低低的议论声。有人同情地看了路容一眼,有人摇摇头,有人快速收拾东西离开,仿佛这里有什么不祥的东西。林晓还在哭,肩膀一耸一耸的,眼泪把脸上的妆都弄花了。 路容站在原地,没有动。 她的目光落在白板上,那些被污染的数据截图还投影在那里,乱码字符在灯光下显得格外刺眼。她的手指轻轻握紧,指甲陷进掌心,带来细微的刺痛感。 24小时。 她转身,朝门口走去。脚步很稳,背挺得很直,就像什么都没有发生过一样。 但只有她自己知道,她的心里,有什么东西正在燃烧。 那是三年前被浇灭的火,现在,又重新燃起来了。 第13章:将计就计 路容回到工位,没有立刻坐下。她站在窗前,看着楼下深港市的车流。阳光透过玻璃照进来,在地板上投出明亮的光斑。办公室里很安静,只有键盘敲击声和偶尔的电话铃声。她能感觉到背后有目光在注视,好奇的,同情的,幸灾乐祸的。她转过身,打开电脑。屏幕亮起,显示着时间:上午十点四十七分。24小时倒计时,现在开始。她登录内网,打开共享文件夹,下载了王总监提供的操作日志。文件不大,只有几MB。她解压缩,打开第一个日志文件。密密麻麻的文字在屏幕上滚动。她的手指放在键盘上,开始输入第一个查询命令。 日志在屏幕上展开,黑色的字符在白色背景上排列成行。路容的眼睛快速扫过每一行,寻找着那些她熟悉的标记。她记得很清楚,上周五下午清洗数据时,她按照自己的习惯,在系统中创建了三个临时文件:checkpoint_ruoxi_1103_1430.txt、checkpoint_ruoxi_1103_1520.txt、checkpoint_ruoxi_1103_1615.txt。这三个文件记录了她在不同阶段的清洗进度和参数设置,是她工作流程的一部分。在正常的系统日志中,这些文件的创建、修改、删除都应该有记录。 但王总监提供的日志里,什么都没有。 路容的手指在键盘上停顿了一下。她重新输入查询命令,扩大搜索范围,将时间范围扩展到整个上周五。结果依然一样——没有那些标记文件的任何记录。这不可能。除非有人手动删除了这些日志条目。 她靠在椅背上,闭上眼睛。办公室里空调的嗡嗡声变得清晰起来,混合着远处打印机工作的咔哒声。她能闻到空气中淡淡的咖啡味,还有某种清洁剂的柠檬香气。她的手指在桌面上轻轻敲击,节奏很慢,像是在计算着什么。 这是王总监设的局。不,不止是王总监。李剑一定在背后。他们想用这种方式把她赶出公司,或者更糟——让她背上商业泄密或重大失职的罪名。直接辩解没有用,王总监既然敢拿出这些剪辑过的日志,就说明他们已经准备好了说辞。她需要确凿的证据,需要完整的系统日志,需要看到那些被删除的记录。 她睁开眼睛,看向电脑屏幕右下角的时间:十一点零三分。 还有不到二十三小时。 她想起老吴。上周三在楼梯间,那个头发花白、穿着皱巴巴衬衫的IT部老员工,递给她一张纸条,上面写着一串路径:“/var/log/secure_backup/,周三晚八点半后,监控盲区生效十五分钟。”老吴当时说得很含糊,只说如果她遇到麻烦,可以试试这个路径,但没解释具体怎么用。现在想来,那可能是某种备份日志的访问路径,而监控盲区,或许是她接近某些敏感区域的机会。 路容打开手机,调出日历。今天是周五。周三已经过去了。但老吴说的是“周三晚八点半后”,这意味着每周三晚上八点半,监控系统会有十五分钟的盲区?她需要确认。 她站起身,拿起桌上的水杯,朝茶水间走去。脚步很轻,像是随意散步。经过林晓的工位时,她瞥了一眼——林晓正趴在桌上,肩膀还在微微颤抖,旁边有两个女同事在低声安慰她。路容没有停留,径直走进茶水间。 茶水间里没有人。咖啡机发出咕噜咕噜的煮水声,空气里弥漫着浓郁的咖啡香。路容接了一杯温水,靠在料理台边,慢慢喝着。她的目光落在墙上的排班表上——那是保洁人员的排班表,但旁边还贴着一张保安值班表,用透明胶带粘着,边角已经卷起。 她走过去,假装整理自己的袖口,目光快速扫过那张表格。 保安值班表是按周排的,用黑色水笔手写,字迹有些潦草。她找到了周三晚上的那一栏:18:00-02:00,值班人:张小军(小张)。后面用红笔标注了一个小小的奶茶图标。 路容的瞳孔微微收缩。 她记得老吴提过保安小张——一个二十出头的年轻人,喜欢打游戏,值班时经常犯困,最爱喝全糖奶茶。老吴当时是随口说的,像是在抱怨现在的年轻人不敬业。但现在想来,那可能不是抱怨,而是信息。 路容放下水杯,走出茶水间。回到工位时,她的心里已经有了计划。 下午的工作照常进行。王总监没有再出现,但办公室里弥漫着一种压抑的气氛。同事们看路容的眼神更加复杂,有人刻意避开她的目光,有人在她经过时压低声音说话。路容没有理会,她专注地处理着手头的工作,偶尔在笔记本上记录着什么,看起来像是在认真查找数据污染的原因。 只有她自己知道,笔记本上写的是另一套东西。 时间:周三晚八点半。 地点:监控室所在楼层(B2层东侧走廊)。 目标:获取服务器日志备份系统的访问信息。 方法:利用监控盲区,接近值班保安小张,以查看监控为名,观察监控主机界面。 准备:一杯全糖奶茶。 她把这些要点写在笔记本的角落,字很小,用只有自己能看懂的符号做了标记。然后她撕下那一页,折成小块,塞进钱包的夹层里。 下午五点,下班时间到了。 同事们陆续离开,办公室里的灯一盏盏熄灭。路容没有走,她坐在工位上,看着电脑屏幕上的时间。六点,七点,七点半。窗外的天色渐渐暗下来,深港市的霓虹灯开始亮起,远处的写字楼像一个个发光的盒子。办公室里只剩下她一个人,顶灯已经关了,只有她工位上的台灯还亮着,在桌面上投出一圈暖黄色的光。 她打开手机,点开外卖软件,找到一家还在营业的奶茶店,点了一杯全糖珍珠奶茶,备注:多加珍珠,少冰。配送地址写的是公司楼下大堂。 七点五十分,外卖到了。 路容下楼取回奶茶。塑料杯很冰,表面凝结着细密的水珠,摸上去湿漉漉的。杯身上贴着的标签写着“全糖”,字是红色的,在灯光下很醒目。她提着奶茶回到办公室,放在桌上,然后开始等待。 八点十分。八点二十分。八点二十五分。 她关掉台灯,办公室陷入黑暗。只有电脑屏幕还亮着,显示着时间:八点二十八分。她站起身,拿起奶茶和手机,走出办公室。 走廊里很安静,感应灯随着她的脚步一盏盏亮起,投下苍白的光。她的脚步声在空旷的走廊里回响,很轻,但在这寂静中显得格外清晰。她能闻到空气中残留的消毒水味,还有某种金属的冷冽气息。电梯下到B2层,门打开时,一股更冷的空气涌进来。 B2层是设备层和监控室所在的地方。走廊很窄,天花板很低,裸露的管道纵横交错,表面刷着灰色的防锈漆。灯光是冷白色的,照在水泥地面上,反射出暗淡的光。路容沿着走廊向东走,脚步声在管道间回荡,像是有什么东西在跟着她。 她看到了监控室的门。 那是一扇厚重的金属门,漆成深灰色,门上有一个小小的观察窗,玻璃是单向的,从外面看不到里面。门旁边挂着一个牌子:“监控重地,闲人免进”。门缝底下透出一线光,很微弱,像是屏幕发出的光。 路容停下脚步,站在距离门五米远的地方。她看了眼手机:八点二十九分。还有一分钟。 她深吸一口气,调整了一下呼吸。然后她抬起手,敲了敲门。 里面没有回应。 她又敲了敲,这次用力了一些。 “谁啊?”一个含糊的声音从里面传来,带着刚睡醒的沙哑。 “我是数据分析部的若溪。”路容说,声音放得很轻,带着一点歉意,“不好意思打扰了,我有点急事。” 门开了。 一个年轻的保安探出头来,穿着深蓝色的制服,帽子歪戴着,眼睛还有些惺忪。他看起来二十出头,脸圆圆的,皮肤很白,嘴角还沾着一点口水渍。他看到路容,愣了一下,然后揉了揉眼睛。 “什么事?”他问,声音里带着警惕。 路容举起手里的奶茶,塑料杯在灯光下泛着微光。 “我点了奶茶,多买了一杯。”她说,脸上露出一个不好意思的笑容,“想着值班可能挺无聊的,就带下来了。全糖的,不知道你喜不喜欢。” 小张的眼睛亮了一下。他盯着那杯奶茶,喉结动了动。 “这……不太好吧。”他说,但手已经伸了出来。 “没事的,反正我也喝不完。”路容把奶茶递过去,塑料杯表面的水珠沾湿了她的手指,凉凉的。 小张接过奶茶,脸上的警惕放松了一些。他打开杯盖,吸管插进去,吸了一大口,然后满足地叹了口气。 “谢谢啊。”他说,声音变得友善多了,“你怎么这么晚还没走?” “加班。”路容说,叹了口气,“最近项目紧,压力大。对了,其实我还有件事想麻烦你。” “什么事?” 路容摸了摸自己的耳朵,脸上露出焦急的表情。 “我的一只耳钉掉了。”她说,“是男朋友送的,挺贵的。我记得下午在工位附近还戴着,晚上就发现不见了。能不能麻烦你帮我回看一下监控?就我工位附近,大概傍晚五六点的时候。” 小张犹豫了一下,又吸了一口奶茶。 “这个……监控不能随便看的。”他说。 “我知道,所以我才这么晚下来,不想让别人知道。”路容的声音里带着恳求,“就看一下,几分钟就好。我真的找了好久,办公室都翻遍了,就是找不到。那耳钉对我很重要……” 她看着小张,眼睛在灯光下显得很亮,带着一点水光。 小张又喝了一口奶茶,珍珠在吸管里发出咕噜咕噜的声音。他看了看路容,又看了看手里的奶茶,终于点了点头。 “好吧,就看一下。”他说,“你工位在几楼?” “七楼,数据分析部,靠窗第三个工位。” “行,你进来吧。”小张推开门,“不过只能看,不能录,也不能太久。” “谢谢,真的太感谢了。”路容跟着他走进监控室。 监控室不大,大约十平米,四面墙上挂满了显示器,大大小小几十块,显示着公司各个角落的实时画面。屏幕的光在昏暗的房间里闪烁,映出各种角度的走廊、电梯、办公室、楼梯间。房间中央是一张L形的工作台,上面摆着三台主机,键盘鼠标杂乱地放着。空气里有一股泡面和电子设备混合的味道,还有奶茶的甜香。 小张坐在主控台前,操纵着鼠标。路容站在他身后,目光快速扫过整个房间。 她的视线落在最右边那台主机上。那台机器的屏幕显示的不是监控画面,而是一个命令行界面,黑色的背景,绿色的字符在滚动。屏幕顶端有一行字:“日志备份系统——只读访问”。下面是一串IP地址:192.168.10.47:8088。再下面是一个登录提示:“请输入账户名:”。 账户名的格式是:ad_backup_xxxx。xxxx是四位数字。 路容的心脏跳得快了一些。她强迫自己移开视线,看向小张面前的监控屏幕。 “七楼,数据分析部……”小张嘟囔着,操纵着摇杆,画面在屏幕上切换。很快,路容工位附近的画面出现了——空荡荡的办公室,工位整齐排列,窗外的城市夜景在背景里闪烁。 “时间调到几点?”小张问。 “五点半左右吧。”路容说。 小张调整时间轴,画面开始快进。办公室里没有人,只有灯光亮着。时间跳到六点,六点半,七点……画面一直很平静,什么都没有发生。 路容知道为什么。老吴说的监控盲区,应该就是指这个时段——每周三晚上八点半后的十五分钟,监控系统会自动切换备份,这段时间的监控画面不会被记录,或者会被覆盖。所以她要求看傍晚时段的监控,这个时段是正常的,拍不到什么异常,但也不会引起小张的怀疑。 “没看到什么啊。”小张说,画面已经快进到八点,“你确定是在工位附近掉的?” “可能是我记错了。”路容说,声音里带着失望,“算了,不找了。谢谢你啊,小张。” “没事。”小张关掉监控画面,转过身,又喝了一口奶茶,“你要不再找找?说不定掉在别的地方了。” “嗯,我再回去找找。”路容说,目光不经意地扫过那台日志备份主机。 屏幕上的命令行界面还开着,绿色的光标在闪烁。她看到了账户名的完整格式:ad_backup_后跟四位数字,数字似乎是日期相关的,因为她看到了“1129”这样的组合——今天是11月3日,1129可能是11月29日的缩写?不,也可能是某种编号规则。 她记住了。IP地址:192.168.10.47:8088。账户名格式:ad_backup_xxxx。 “那我先走了。”路容说,“不打扰你值班了。” “好,慢走啊。”小张挥了挥手,注意力已经回到了奶茶上。 路容走出监控室,金属门在身后关上。走廊里依然安静,冷白色的灯光照在她脸上。她沿着原路返回,脚步很稳,但手心已经出汗了。 回到七楼办公室,她关上门,靠在门上,长长地吐出一口气。 心脏还在剧烈跳动,血液冲上耳膜,发出嗡嗡的声音。她能闻到手上残留的奶茶甜香,混合着监控室里的电子设备气味。她走到窗边,看着楼下的城市夜景,霓虹灯在夜色中流淌,像一条发光的河。 时间:晚上九点零七分。 还有不到二十小时。 她没有再停留,收拾好东西,关掉电脑,离开了办公室。 出租车在夜色中穿行。路容坐在后座,看着窗外飞速后退的街景。路灯的光线在车窗上划过一道道流动的痕迹,商店的招牌在黑暗中闪烁,行人匆匆走过,脸上带着疲惫或兴奋。深港市的夜晚永远这么热闹,但这一切都离她很遥远。 她回到出租屋,打开门,熟悉的狭小空间扑面而来。房间不大,一室一厅,家具简单,但收拾得很整洁。空气里有一股淡淡的灰尘味,混合着昨天煮泡面留下的汤料香气。她关上门,反锁,拉上窗帘,然后打开灯。 暖黄色的灯光照亮了整个房间。 路容放下包,脱下外套,走到书桌前。桌上摆着一台笔记本电脑,黑色的,表面有些磨损。她打开电脑,等待系统启动的间隙,她起身去厨房倒了一杯水。水是凉的,流过喉咙时带来一阵清爽。她端着水杯回到书桌前,坐下。 电脑已经启动完毕。她打开浏览器,在地址栏输入:192.168.10.47:8088。 页面加载,跳转,出现一个简洁的登录界面。蓝色的背景,白色的输入框,上面写着:“星耀集团日志备份系统(只读权限)”。下面有两个输入框:账户名,密码。 路容盯着屏幕,手指放在键盘上。 账户名格式:ad_backup_xxxx。xxxx是四位数字。她回忆着在监控室看到的那个例子:ad_backup_1129。1129是什么意思?可能是月份和日期?11月29日?但今天是11月3日。也可能是某种固定编号。 她尝试输入:ad_backup_1103。 密码呢?常见的弱口令有哪些?admin、password、123456、admin123、公司缩写+年份…… 她先试了试admin。错误。 password。错误。 123456。错误。 她停顿了一下,想了想。这种备份系统,密码可能设置得比较简单,因为只有内网可以访问,而且只有只读权限。她尝试输入:star2023(星耀的英文是star,2023是今年)。 错误。 star2024。错误。 她靠在椅背上,闭上眼睛。房间里很安静,只有电脑风扇发出的轻微嗡嗡声。她能听到自己的呼吸声,平稳而缓慢。窗外的街道上偶尔有车驶过,轮胎摩擦地面的声音由远及近,又由近及远。 她睁开眼睛,重新看向屏幕。 账户名是ad_backup_1103。密码会不会也是1103?或者反过来,3011? 她输入密码:1103。 错误。 3011。错误。 她想了想,又试了试:backup1103。 错误。 她几乎要放弃了。但就在这时,她想起老吴。老吴是IT部的老员工,知道这个路径,知道监控盲区,那他可能也知道默认的密码规则。老吴给她的提示是“周三晚八点半后,监控盲区生效十五分钟”,这暗示了时间和机会,但没有提密码。但老吴说话的习惯——他喜欢用简单的数字组合,比如工号后四位,或者部门编号。 路容打开手机,翻出公司通讯录。她找到老吴的条目,工号:IT0479。后四位是0479。 她尝试输入密码:0479。 错误。 她又试了试:4790。 错误。 她盯着工号,突然想到什么。老吴的工号是IT0479,但备份系统的账户名是ad_backup_xxxx,这个xxxx可能不是日期,而是工号的后四位?但老吴的工号后四位是0479,而她在监控室看到的是1129。不对。 等等。1129。如果拆开看,11和29。11可能是部门编号?29可能是工号后两位?她不知道。 她尝试输入密码:1129。 错误。 她几乎要放弃了。但就在这时,她想起另一种可能——这种备份系统,初始密码可能和账户名相同。她尝试输入密码:ad_backup_1103。 错误。 那如果去掉下划线呢?adbackup1103。 她输入,按下回车。 屏幕闪烁了一下,跳转了。 登录成功。 路容的心脏猛地一跳。她盯着屏幕,几乎不敢相信。页面跳转到一个简洁的查询界面,左侧是日志分类菜单:系统日志、安全日志、应用日志、数据库日志、网络日志……右侧是查询条件输入框,可以按时间、IP地址、用户名、操作类型等筛选。 她深吸一口气,手指在键盘上微微颤抖。 现在,她可以看到了。完整的系统日志,没有被剪辑过的,原始记录。 她移动鼠标,点开“系统日志”,然后在时间条件里输入:2023-11-03 14:00 到 2023-11-03 18:00。这是上周五下午,她清洗数据的时间段。 点击查询。 屏幕开始加载,进度条缓慢移动。房间里只有电脑风扇的声音,还有她自己的心跳声。窗外的夜色更深了,远处传来隐约的警笛声,由远及近,又由远及远。 进度条走到底,结果页面展开。 密密麻麻的日志条目出现在屏幕上,每一条都有时间戳、IP地址、用户名、操作类型、操作对象、结果状态。路容的眼睛快速扫过,寻找着自己的操作记录。 她找到了。 14:30:22,IP:10.10.7.45,用户:ruoxi,操作:CREATE_FILE,对象:/data/bluepn/temp/checkpoint_ruoxi_1103_1430.txt,结果:SUCCESS。 15:20:11,IP:10.10.7.45,用户:ruoxi,操作:MODIFY_FILE,对象:/data/bluepn/temp/checkpoint_ruoxi_1103_1430.txt,结果:SUCCESS。 15:20:18,IP:10.10.7.45,用户:ruoxi,操作:CREATE_FILE,对象:/data/bluepn/temp/checkpoint_ruoxi_1103_1520.txt,结果:SUCCESS。 16:15:07,IP:10.10.7.45,用户:ruoxi,操作:CREATE_FILE,对象:/data/bluepn/temp/checkpoint_ruoxi_1103_1615.txt,结果:SUCCESS。 16:30:45,IP:10.10.7.45,用户:ruoxi,操作:LOCK_FILE,对象:/data/bluepn/cleaned/bluepn_data_1103_final.csv,结果:SUCCESS。 这些记录都在。和她记忆中的一模一样。但在王总监提供的日志里,这些记录全部消失了。 路容继续往下翻。她想知道,在她锁定文件之后,还有谁接触过那些数据。 日志继续滚动。 17:02:33,IP:10.10.7.45,用户:ruoxi,操作:LOGOUT,结果:SUCCESS。 17:02:33,系统:用户ruoxi已登出。 然后是一段空白。直到—— 22:47:19,IP:10.10.10.12,用户:admin_wang,操作:LOGIN,结果:SUCCESS。 22:48:05,IP:10.10.10.12,用户:admin_wang,操作:UNLOCK_FILE,对象:/data/bluepn/cleaned/bluepn_data_1103_final.csv,结果:SUCCESS。 22:49:11,IP:10.10.10.12,用户:admin_wang,操作:MODIFY_FILE,对象:/data/bluepn/cleaned/bluepn_data_1103_final.csv,结果:SUCCESS。 22:50:03,IP:10.10.10.12,用户:admin_wang,操作:LOCK_FILE,对象:/data/bluepn/cleaned/bluepn_data_1103_final.csv,结果:SUCCESS。 22:50:07,IP:10.10.10.12,用户:admin_wang,操作:LOGOUT,结果:SUCCESS。 路容盯着屏幕,眼睛一眨不眨。 IP:10.10.10.12。这是王总监办公室的IP地址,她之前查过。用户:admin_wang,这是王总监的管理员账户。时间:晚上十点四十七分到十点五十分。操作:解锁文件,修改文件,重新锁定文件。 在她完成清洗并锁定文件五个多小时后,王总监用管理员权限解锁了文件,进行了修改,然后重新锁定。 这就是数据污染的真正原因。 路容的手指停在触摸板上,微微颤抖。屏幕的光映在她脸上,照亮了她眼中闪烁的光芒。那光芒很冷,很锐利,像刀锋。 她找到了。确凿的证据。 但还不够。她需要知道王总监具体修改了什么,怎么修改的。她需要看到文件内容的变化记录。她需要把这些证据整理成无可辩驳的报告。 她看了眼电脑右下角的时间:晚上十一点二十三分。 还有不到二十一小时。 她移动鼠标,点开了“文件操作详情”的链接。 屏幕开始加载新的页面,进度条缓慢移动。房间里的灯光很暖,但路容感觉不到温暖。她只感觉到一种冰冷的兴奋,像电流一样流过全身。窗外的城市已经安静下来,只有偶尔的车灯划过窗帘的缝隙,投下转瞬即逝的光影。 进度条走到底,新的日志条目展开。 她开始。 第14章:真相与反击 屏幕上的日志条目一行行展开,记录着那个深夜发生的每一个细节。路容的目光锁定在“MODIFY_FILE”操作后的几行——那里显示了文件大小、校验和的变化,以及一个短暂开启又关闭的临时脚本进程。她的手指在键盘上敲击,打开一个新的编程界面。夜色已深,窗外的城市灯火渐稀,只有她的房间还亮着灯。她需要写一个程序,模拟出那种特定的修改模式,让证据无可辩驳。时间在代码的字符间流逝,她的眼睛因专注而微微发亮,嘴角第一次扬起了一丝冰冷的弧度。 --- **凌晨一点十七分** 路容的出租屋里,只有笔记本电脑的风扇声和键盘敲击声。 她盯着“文件操作详情”日志里的那几行记录: ``` 22:49:11, IP:10.10.10.12, 用户:admin_wang, 操作:MODIFY_FILE, 对象:/data/bluepn/cleaned/bluepn_data_1103_final.csv - 文件大小变化: 从 1,247,583 字节 变为 1,247,612 字节 (+29字节) - MD5校验和变化: 从 8f3c7a2e1b9d5f4a6c0e8b7d2a1c3f5e 变为 4a6c0e8b7d2a1c3f5e8f3c7a2e1b9d5f4 - 检测到临时脚本进程: /tmp/check_integrity_script.sh (PID: 28473) 运行时长: 2.1秒 - 脚本内容摘要: 包含“sed -i 's/,\“\\d{4}-\\d{2}-\\d{2}\“/,\“2023-11-03\“/g'”等正则替换操作 ``` 路容的手指在触摸板上滑动,将这几行日志截图保存。她的呼吸很轻,房间里能听到远处街道上偶尔驶过的夜班公交车引擎声。窗外的路灯透过没拉严实的窗帘缝隙,在地板上投下一道细长的光带。空气里有灰尘和旧书的气味,还有她刚才泡的速溶咖啡已经凉透的酸涩味道。 “完整性校验操作?”她低声自语,声音在寂静的房间里显得格外清晰。 王总监在会议上说,她只是“例行检查数据完整性”。但日志显示,那个临时脚本里包含的是正则替换命令——这根本不是校验,这是修改。 路容打开文本编辑器,开始编写代码。 她的手指在键盘上飞舞,敲击声密集而有节奏。屏幕上,Python代码一行行出现。她先定义了一个函数,模拟那个正则替换操作:将所有格式为“YYYY-MM-DD”的日期字段,统一替换成“2023-11-03”。然后她写另一个函数,计算替换前后文件的MD5校验和。 “但这样还不够。”她喃喃道。 王总监展示的“污染样本”里,不仅仅是日期被修改了。路容调出会议时拍下的那张污染数据截图——那是她偷偷用手机拍的,虽然模糊,但关键字段还能辨认。 截图显示,在“用户行为序列”字段里,原本应该是“login→browse→add_to_cart→checkout”这样的标准序列,变成了“login→browse→add_to_cart→checkout→login→browse”。重复了。 在“交易金额”字段,原本的数值被乘以了一个随机系数,范围在0.95到1.05之间。 在“地理位置”字段,部分坐标的小数点后位数被截断。 这不是简单的数据污染。这是精心设计的、模拟自然数据损坏模式的修改。目的是让污染看起来像是清洗过程中的技术错误,而不是人为破坏。 路容闭上眼睛,手指按在太阳穴上。 她能想象出那个场景:上周五晚上十点四十九分,王总监坐在自己的办公室里,电脑屏幕亮着。她打开终端,登录管理员账户,解锁路容已经清洗完成并锁定的文件。然后她运行一个脚本——那个/tmp/check_integrity_script.sh——脚本按照预设的规则,对文件进行“污染”。完成后,她重新锁定文件,退出登录。 然后,她删除了操作日志中关于这个脚本运行的具体内容记录,只留下“MODIFY_FILE”这个笼统的操作条目。在提供给路容的剪辑版日志里,她甚至把这个条目也删掉了。 “但你没删干净。”路容睁开眼睛,目光重新聚焦在屏幕上。 备份系统里的完整日志,还保留着脚本进程的PID、运行时长,甚至脚本内容摘要。虽然看不到完整脚本代码,但这些摘要已经足够。 路容开始编写第二个模拟程序。 这一次,她不仅要模拟日期替换,还要模拟用户行为序列的重复、交易金额的随机扰动、地理坐标的截断。她根据污染样本中观察到的模式,推断出可能的算法: - 用户行为序列重复:每隔100行数据,随机选择一行,将其行为序列复制并追加到末尾。 - 交易金额扰动:对每个金额乘以(0.95 + random() * 0.1),保留两位小数。 - 地理坐标截断:将经纬度坐标的小数部分截断到三位。 她写得很专注,时间在代码的字符间流逝。窗外的天空从深黑渐渐转为墨蓝,远处传来第一班地铁驶过轨道的声音,沉闷而有节奏。房间里越来越冷,她起身披了件外套,手指因为长时间敲击键盘而有些僵硬。 **凌晨三点四十二分** 模拟程序写完了。 路容从自己的备份里调出上周五清洗完成的数据文件——这是她习惯性保留的本地副本。她用自己编写的模拟程序对这个干净文件进行处理。 运行。 进度条在屏幕上缓慢移动。她的心跳有点快,喉咙发干。她拿起桌上那杯凉透的咖啡,喝了一口,苦涩的味道在舌尖蔓延。 程序运行完毕。 她打开处理后的文件,随机抽取几行数据,与王总监展示的污染样本进行对比。 第一行:日期字段,从“2023-10-28”变成了“2023-11-03”。匹配。 第二行:用户行为序列,从“login→browse→purchase”变成了“login→browse→purchase→login→browse”。匹配。 第三行:交易金额,从“149.99”变成了“142.49”(149.99 * 0.95)。匹配。 第四行:地理坐标,从“116.407526, 39.904030”变成了“116.407, 39.904”。匹配。 路容靠在椅背上,长长地吐出一口气。 白色的水汽在冰冷的空气里凝结成雾。她的手指在颤抖,但这次不是因为恐惧或应激障碍,而是因为兴奋。一种冰冷的、锋利的兴奋。 她找到了。完美的证据链。 **凌晨四点十五分** 路容开始整理报告。 她打开一个新的文档,标题是“关于bluepn_data_1103_final.csv文件数据异常的技术分析报告”。她没有署名,没有日期,文档里只有事实。 第一页:问题描述。简述文件在清洗完成后出现数据污染的情况。 第二页:现有证据。附上王总监提供的剪辑版操作日志截图,用红框标出缺失的时间段。 第三页:完整日志发现。附上从备份系统获取的完整日志截图,重点标出: - 时间:22:47-22:50 - IP地址:10.10.10.12(王总监办公室) - 用户:admin_wang(王总监管理员账户) - 操作序列:LOGIN→UNLOCK_FILE→MODIFY_FILE→LOCK_FILE→LOGOUT - 检测到的临时脚本:/tmp/check_integrity_script.sh - 脚本内容摘要中的正则替换命令 第四页:技术分析。她详细解释了那个正则替换命令的含义——它不是数据完整性校验,而是数据修改。 第五页:模拟验证。她附上自己编写的模拟程序的核心代码片段,以及程序运行结果与污染样本的对比表。表格里列了十个数据字段,她的模拟结果与王总监展示的污染样本匹配度100%。 第六页:结论与建议。 结论:数据污染发生在文件清洗完成并锁定后的深夜,由管理员账户从特定IP地址发起,通过运行包含数据修改命令的脚本实现。 建议:1. 核查夜间管理员操作的审计流程是否存在漏洞;2. 审查脚本/tmp/check_integrity_script.sh的完整内容及创建者;3. 加强数据修改权限的分级管理。 报告一共十二页,简洁、严谨、每一句话都有证据支撑。路容检查了三遍,确保没有情绪化表述,没有指控性语言,只有客观的技术分析。 保存文档。加密。复制到U盘。再备份到云端加密文件夹。 做完这一切,她看了眼时间:凌晨五点零三分。 窗外的天空已经泛出鱼肚白,深港市在晨曦中渐渐苏醒。远处的高楼轮廓变得清晰,街道上开始有早起的车辆驶过。路容关掉电脑,走到窗前,拉开窗帘。 冷空气扑面而来,她打了个寒颤,但精神异常清醒。 二十四小时期限,还剩不到四小时。 她需要睡一会儿,哪怕只是闭眼休息。但她躺到床上时,眼睛却睁着,盯着天花板上因为潮湿而留下的水渍痕迹。那些痕迹的形状像一张扭曲的脸,或者一棵枯树的枝桓。 她想起三年前,天启科技的那间会议室。李剑坐在长桌尽头,面前摊开所谓的“泄密证据”。其他高管坐在两侧,没有人看她。她的解释被一次次打断,她的证据被说成“伪造”。最后投票时,七个人举手同意开除她,两个人弃权,没有人反对。 那种孤立无援的感觉,像沉入深海。 但这次不一样。 这次她有证据。确凿的、无法辩驳的证据。 路容闭上眼睛,强迫自己休息。她的呼吸渐渐平稳,但意识深处,那个模拟程序还在运行,一行行代码在黑暗中闪烁。 --- **上午八点五十分** 星耀集团,数据分析部。 路容走进办公室时,能感觉到空气中的紧张。同事们看她的眼神很复杂——同情、好奇、疏远。没有人跟她打招呼,大家只是低头做自己的事,或者假装在做。 她的工位很干净,电脑还没开。她坐下,打开电脑,登录系统。收件箱里有一封新邮件,发件人:王总监。主题:关于数据污染问题的最终讨论会议。时间:上午九点三十分。地点:三号会议室。参会人员:数据分析部全体、IT部代表、法务部代表。 还有四十分钟。 路容平静地回复:“收到,准时参加。” 她打开昨晚整理的报告,最后检查一遍。然后她从包里拿出那个加密U盘,插进电脑,将报告复制到桌面。关掉U盘,拔出来,放回包里。 办公室里很安静,但路容能听到各种细微的声音:键盘敲击声、鼠标点击声、椅子转动的吱呀声、远处饮水机咕嘟咕嘟的烧水声。空气里有咖啡香、打印机的臭氧味,还有某种甜腻的香水味——那是坐在她斜对面的林晓今天喷的,味道很浓。 林晓看了她一眼,很快移开视线,低头摆弄手机。 路容知道,这个刚入职三个月的新人,最近和王总监走得很近。上周还看到她们一起在楼下咖啡厅吃午饭。林晓想往上爬,这很正常。但如果她选择站在王总监那边,那就是另一回事了。 路容关掉报告文档,打开一个普通的数据分析表格,假装在工作。她的手指在键盘上敲击,输入一些无关紧要的公式。眼睛盯着屏幕,但余光注意着周围的动静。 九点十分,王总监从自己的办公室走出来。她今天穿了一套深灰色西装套裙,头发梳得一丝不苟,妆容精致。她手里拿着一个文件夹,步伐稳健地走向三号会议室。经过路容工位时,她停顿了半秒,目光扫过来,嘴角带着一丝若有若无的笑意。 那笑意很冷,像刀锋。 路容抬起头,迎上她的目光,平静地点了点头。 王总监的眼神闪烁了一下,似乎有些意外,但很快恢复常态,继续往前走。 九点二十五分,路容保存文件,关掉电脑。她拿起那个装着报告的文件夹——她特意打印了一份纸质版——和一支笔,起身走向三号会议室。 走廊很长,铺着深灰色的地毯,脚步声被吸收得几乎听不见。墙壁是白色的,挂着一些抽象画和公司获得的奖项证书。灯光很亮,照得一切都有些刺眼。 三号会议室的门开着。 路容走进去时,里面已经坐了七八个人。数据分析部的同事基本都到了,IT部来了两个人——其中一个路容认识,是负责系统日志管理的小刘。法务部来了一个年轻律师,路容没见过。 王总监坐在长桌的主位,面前摊开笔记本电脑和一堆文件。她看到路容进来,抬了抬下巴:“若溪,坐那边。” 她指的是长桌最远端的座位,背对着门。 路容平静地走过去,坐下。她把文件夹放在桌上,笔放在旁边。她的坐姿很端正,双手放在腿上,呼吸平稳。 九点三十分整。 王总监清了清嗓子:“人都到齐了,我们开始吧。” 会议室里安静下来。空调出风口发出轻微的嗡嗡声,投影仪已经打开,在幕布上投出公司logo。空气里有新打印文件的油墨味,还有咖啡和某种清洁剂的混合气味。 “今天这个会议,主要是讨论上周五bluepn_data_1103_final.csv文件的数据污染问题。”王总监的声音很平稳,但带着一种不容置疑的权威,“若溪,你是文件的清洗负责人,按照公司规定,你有二十四小时时间查明原因并提交报告。现在时间到了,请你说明情况。” 所有人的目光都投向路容。 路容能感觉到那些目光的重量——审视的、怀疑的、等待的。她的心跳快了一拍,但很快稳定下来。她打开面前的文件夹,抽出那份十二页的报告。 但她没有立刻递出去。 “在说明情况之前,我想先确认几个细节。”路容的声音很平静,甚至有些温和,“王总监,您上周五晚上十点之后,还在公司吗?” 会议室里的空气凝固了一瞬。 王总监的眉毛微微挑起:“你问这个做什么?” “只是确认时间线。”路容说,“根据您提供的操作日志,我在上周五下午四点十五分完成数据清洗并锁定文件。之后文件应该处于只读状态,除非有管理员权限解锁。” “所以呢?” “所以如果文件在锁定后被修改,那么修改者一定拥有管理员权限,并且在那个时间点能够访问系统。”路容顿了顿,“您上周五晚上十点之后如果在公司,那么您可能看到或听到什么异常情况。” 王总监的脸色沉了下来:“若溪,现在是你在接受质询,不是你在调查别人。请直接回答我的问题:数据污染的原因是什么?你的报告在哪里?” 路容点了点头,将那份报告推过桌面,滑向王总监。 文件夹在光滑的桌面上滑行,发出轻微的摩擦声。它在长桌中央停下,正好在王总监面前。 王总监拿起文件夹,打开。她的目光扫过第一页,第二页,第三页……当看到完整日志截图时,她的手指微微收紧,纸张边缘被捏出褶皱。 会议室里很安静,所有人都看着王总监的脸。 她的脸色在变化。从最初的平静,到疑惑,到震惊,最后变成一种僵硬的苍白。她的嘴唇抿成一条直线,眼睛盯着报告上的那些截图和对比表,一眨不眨。 时间一分一秒过去。 空调的嗡嗡声显得格外响亮。 终于,王总监抬起头,看向路容。她的眼神很复杂——有愤怒,有难以置信,还有一丝掩饰不住的慌乱。 “这份报告……”她的声音有些干涩,“你从哪里得到的这些日志?” “公司备份系统。”路容平静地说,“按照数据安全管理规定,所有系统操作日志都会在备份系统保留完整副本,防止人为删除或篡改。我申请了临时访问权限,获取了上周五晚上的完整日志记录。” “谁给你的权限?”王总监的声音提高了半度。 “这不符合流程吗?”路容反问,“作为数据污染事件的直接责任人,我有权调取相关日志进行自查。如果王总监认为流程有问题,我们可以请IT部的同事现场确认。” 她看向IT部的小刘。 小刘有些紧张地推了推眼镜:“呃……按照规定,在涉及数据安全事件调查时,相关责任人确实可以申请临时访问权限,但需要部门总监批准……” “我批准了吗?”王总监打断他。 “您……”小刘看了看路容,又看了看王总监,额头冒汗,“您上周五不是说过,若溪可以在二十四小时内调用一切必要资源查明原因吗?我以为……我以为这包括日志访问权限……” 王总监的脸色更难看了。 路容适时开口:“王总监,我想‘污染’的原因,可能出在数据安全管理的流程漏洞上。” 她顿了顿,让这句话在会议室里回荡。 所有人的耳朵都竖了起来。 “根据完整日志记录,”路容继续说,声音依然平稳,“上周五晚上十点四十七分至五十分,有一个来自IP地址10.10.10.12的管理员账户,登录系统,解锁了我已经清洗完成并锁定的文件,运行了一个名为check_integrity_script.sh的临时脚本,对文件进行了修改,然后重新锁定文件,退出登录。” 她每说一句,王总监的脸色就白一分。 “IP地址10.10.10.12,经查证是您办公室的固定IP。”路容看着王总监的眼睛,“管理员账户admin_wang,是您的账户。脚本内容摘要显示,该脚本包含数据修改命令,而非数据校验命令。” 她拿起笔,在面前的便签纸上写下一行命令: ``` sed -i 's/,\“\\d{4}-\\d{2}-\\d{2}\“/,\“2023-11-03\“/g' ``` “这是脚本中的一条命令。”路容说,“它的作用是将所有格式为‘YYYY-MM-DD’的日期字段,统一替换成‘2023-11-03’。这是修改,不是校验。” 她将便签纸推向桌子中央。 “为了验证这个脚本的修改效果,我编写了一个模拟程序。”路容打开自己的笔记本电脑,连接投影仪,“程序根据日志中记录的脚本摘要,模拟了可能的修改操作。这是模拟结果与您上周展示的污染样本的对比。” 幕布上出现一个对比表格。 十行数据,十个字段,模拟结果与污染样本完全匹配。 会议室里响起一阵压抑的吸气声。 同事们交换着眼神,有人低头假装记录,有人偷偷看王总监的反应。IT部的小刘张了张嘴,想说什么,又闭上了。法务部的年轻律师皱起眉头,开始快速翻阅自己带来的文件。 王总监坐在那里,一动不动。 她的手指还捏着那份报告,指节因为用力而发白。她的脸色从苍白转为铁青,嘴唇微微颤抖。她的眼睛盯着幕布上的对比表格,然后又看向路容,眼神里有一种近乎凶狠的东西。 但路容迎着她的目光,没有退缩。 “基于以上证据,”路容说,声音清晰而坚定,“我认为数据污染事件的直接原因,是上周五晚上十点四十七分至五十分,管理员账户从特定IP地址对已锁定文件进行了未授权的修改操作。根本原因,是数据安全管理流程存在漏洞——夜间管理员操作缺乏有效审计,临时脚本的执行缺乏审批记录。” 她停顿了一下,看向IT部的代表。 “或许该请IT部一起核查一下夜间管理员操作的审计流程?”她说,“以及,那个临时脚本的完整内容和创建者,也应该一并调查。” 会议室里死一般的寂静。 空调的嗡嗡声,投影仪风扇的转动声,甚至自己的心跳声,路容都能听得清清楚楚。她能闻到空气中越来越浓的紧张气味,像金属,像火药。 王总监终于动了。 她慢慢放下那份报告,双手交叠放在桌上。她的手指在颤抖,但她努力控制着。她深吸一口气,再缓缓吐出。 “这份报告……”她的声音很干,很哑,“这份报告的技术分析部分,我需要时间核实。” “当然。”路容点头,“所有原始日志、模拟程序代码、对比数据,我都已经准备好,可以随时提供给IT部和法务部的同事进行独立验证。” 王总监的嘴角抽搐了一下。 “至于那个IP地址和账户……”她试图找回主动权,“办公室IP是固定的,但并不能证明当时操作电脑的人就是我。管理员账户虽然是我的,但密码可能泄露……” “所以您认为有人盗用了您的账户,在周五晚上十点多进入您的办公室,用您的电脑登录系统,修改了文件?”路容问,语气里没有任何嘲讽,只是纯粹的疑问。 王总监噎住了。 会议室里有人忍不住发出一声极轻的笑,又立刻憋住。 “我……”王总监的额头开始冒汗,“我的意思是,这种可能性不能排除。数据安全事件调查要全面,不能草率下结论。” “我同意。”路容说,“所以我才建议,请IT部核查夜间管理员操作的审计流程。如果系统有登录时的二次验证记录,或者办公室门禁系统的记录,或者监控录像,应该能更清楚地还原当时的情况。” 她每说一个“或者”,王总监的脸色就难看一分。 门禁记录。监控录像。 如果调取这些,那么上周五晚上十点四十七分,谁在办公室里,一清二楚。 王总监的手指紧紧攥在一起,指节发白。她的呼吸变得粗重,胸口起伏。她的眼睛盯着路容,那眼神像要把她生吞活剥。 但路容只是平静地回视。 “王总监,”法务部的年轻律师终于开口,声音谨慎,“如果情况如报告所述,那么这可能涉及内部数据违规操作。按照公司规定,我们需要启动正式调查程序。” 王总监猛地转头看他:“什么调查程序?现在事情还没搞清楚!” “正是因为没搞清楚,才需要调查。”律师坚持,“如果确实存在管理员账户未授权修改数据的情况,这属于严重违规。如果修改行为是故意的,并且试图掩盖,那性质就更严重了。” “你什么意思?”王总监的声音尖了起来。 “我的意思是,”律师推了推眼镜,“按照公司《数据安全管理规定》第七章第二十三条,故意篡改或破坏业务数据,并试图隐瞒事实的,属于重大违纪行为,可处以降职、停职直至解除劳动合同的处分。” 会议室里一片哗然。 同事们再也忍不住,开始低声议论。有人惊讶,有人兴奋,有人担忧。林晓的脸色变得苍白,她看看王总监,又看看路容,手指无意识地绞在一起。 王总监坐在那里,像一尊石像。 她的脸色从铁青转为灰白,额头的汗珠顺着脸颊滑落。她的嘴唇在颤抖,想说什么,但发不出声音。她的眼睛死死盯着桌面上的那份报告,仿佛那是什么可怕的东西。 路容看着她,心里没有任何快感。 只有一种冰冷的平静。 三年前,李剑和王总监联手把她推下深渊时,大概也是这样的场景吧。会议室,众人,证据,指控。只不过那时她是被指控的一方,孤立无援,百口莫辩。 现在位置调换了。 但路容知道,这只是一个开始。王总监只是棋子,真正的对手是李剑。而李剑不会这么容易倒下。 “王总监,”路容再次开口,声音温和了一些,“我的报告里也提到了流程漏洞的建议。如果确实是管理流程的问题,那么完善流程就能避免类似事件再次发生。这或许比追究个人责任更重要。” 她在给王总监一个台阶。 一个承认“管理疏忽”而不是“故意破坏”的台阶。 王总监猛地抬起头,看向路容。她的眼神很复杂——有愤怒,有怨恨,但也有一丝难以置信的惊讶。她没想到路容会给她留退路。 会议室里所有人都看着王总监,等待她的反应。 时间一秒一秒过去。 窗外的阳光透过百叶窗的缝隙照进来,在桌面上投下一道道明暗相间的光带。灰尘在光带中飞舞,像微小的星辰。空调还在嗡嗡作响,但房间里的温度似乎升高了,空气变得粘稠。 终于,王总监开口了。 她的声音很哑,很低,但每个字都咬得很清楚。 “这件事……我会和IT部进一步核查。”她说,“如果确实是流程漏洞,我会负责推动整改。” 她没有承认,也没有否认。 但这句话本身,已经是一种退让。 路容点了点头,没有继续逼迫。她知道适可而止。今天的目的已经达到——她洗清了自己的嫌疑,将矛头转向了真正的污染源,并且在众人面前建立了自己的专业性和可信度。 至于王总监会因此受到什么处罚,那不是她现在能控制的。李剑一定会保她,至少暂时会。 “如果没有其他问题,”王总监站起来,动作有些僵硬,“会议就到这里。若溪,你的报告留下,我会处理。” 她收起那份报告,合上文件夹,转身走向门口。她的步伐依然稳健,但路容注意到,她的肩膀在微微颤抖。 会议室门关上。 房间里安静了几秒,然后轰然炸开。 同事们围上来,七嘴八舌。 “若溪,你也太厉害了吧!” “那个模拟程序怎么写的?教教我!” “王总监刚才的脸色你看到没有?我的天……” “所以真的是她改的数据?为什么啊?” 路容只是微笑,一一应付。她的回答很谨慎,不评价王总监,只谈技术细节。她说自己只是按照流程调查,幸运地找到了完整日志。她说数据安全很重要,每个人都应该注意。 她的表现无可挑剔。 但当她收拾东西准备离开会议室时,林晓走了过来。 这个年轻女孩的脸色依然苍白,眼神躲闪。她咬了咬嘴唇,低声说:“若溪姐,对不起。” 路容看着她:“为什么道歉?” “我……”林晓的声音更低了,“王总监之前跟我说,你工作不认真,数据清洗总是出错,让我……让我多注意你的工作,有问题及时汇报。我没想到……” 她没想到真相是这样。 路容拍了拍她的肩膀:“没事,你也是按指示做事。以后多用自己的眼睛看,别只听别人说。” 林晓用力点头,眼睛有点红。 路容走出会议室,回到自己的工位。她坐下,打开电脑,登录系统。收件箱里没有新邮件。聊天软件上也没有消息。 一切似乎恢复了正常。 但路容知道,有些东西已经改变了。 她看向王总监办公室的方向。门关着,百叶窗也拉上了,看不到里面的情况。但路容能想象,王总监现在一定在打电话,打给李剑,汇报刚才发生的一切。 而李剑会怎么反应? 路容不知道。 她只知道,从今天起,她在星耀集团的处境,将进入一个新的阶段。她不再是那个可以随意拿捏的新人“若溪”,而是一个有能力反击、有证据支撑的技术人员。 这既是保护,也是危险。 因为当猎物开始反抗时,猎手会更加警惕,手段也会更加狠辣。 路容关掉电脑,拿起包,起身离开办公室。走廊里很安静,午休时间还没到,大部分人还在工作。她走到电梯间,按下下行键。 电梯门打开,里面空无一人。 她走进去,按下1楼。电梯门缓缓关闭,镜面墙壁映出她的脸——平静,疲惫,但眼神坚定。 电梯开始下降。 失重感传来。 路容闭上眼睛,深深吸了一口气,再缓缓吐出。 二十四小时的危机,结束了。 但真正的战争,才刚刚开始。