办公室里安静得能听见空调出风口的嗡鸣。
梁景辉站在工位通道的正中间,手机还握在手里,屏幕上是那条语音消息的发送界面。他的眼神扫过在场的每一个人,那种压迫感像是无形的石头压在人的胸口上。没有人说话,没有人动,甚至连呼吸都放轻了。
陆鸣能感觉到自己的心跳撞击着耳膜。
他面前的文件夹里是整理好的五份证据,从行为日志的异常片段,到U盘接口记录,再到凌晨三点十七分数据管道上那个被匿名权限打开的访问窗口。每一项证据都指向同一个名字,但陆鸣很清楚,这些东西拿出来,只有不到一半的人能完全看明白它的含义。技术层面对他有利,可这场仗从来就不只是在技术层面打的。
他转头看向王磊。
王磊坐在斜对面的工位上,屏幕上的代码还在滚动,他的手搁在键盘上,像是在做一件再平常不过的工作。但那根握着鼠标的手指,已经停了整整三秒没动过。
“先别急着追责。”赵峰的声音从连廊另一头传过来,人还没走到,声音先到了。他端着一杯冒热气的咖啡走进办公区,目光在王磊和陆鸣之间打了个来回,“测试数据出了问题,第一反应不应该是谁动了它,而是数据来源到底有没有可追溯性。”
“追踪日志是完整的。”梁景辉说,“从上传到预处理的每一步都有记录。我查过,凌晨三点十七分,测试环境里有一个非本人账号的操作记录,调用了数据迁移脚本,把导入路径替换成了错误版本。”
“非本人账号?”赵峰的眉头皱起来,“谁的账号?”
梁景辉没有立刻回答。他看了陆鸣一眼。
陆鸣深吸一口气,从文件夹里抽出第一份截图,放在桌面上,声音不高不低:“是我的账号。”
这句话像是投进水里的石头,激起的波纹比石头本身还要大。周围几个同事的目光瞬间集中到他身上,有人脸上露出不可思议的神情,有人下意识地往后退了半步。
“你的账号?”技术组的孙瑶几乎脱口而出,“你疯了吗陆鸣?用自己账号去动测试数据?”
“不是我动的。”陆鸣的语气很稳,稳到连他自己都觉得意外,“昨天下班之前,我工位的终端在晚上六点三十七分断过电,系统提示异常关机。当时我在电梯里,从十七楼下到一楼,有四分钟的时间。”
王磊终于停下了手上的动作。
他转过头来看向陆鸣,表情里带着一丝恰到好处的疑惑,像是真的在听一件和自己毫不相干的事。“这就怪了,”他说,语气轻飘飘的,“你账号的操作记录在凌晨三点,可你说你昨天六点多就走了。那你走了之后,谁用了你的电脑?”
陆鸣没有回答王磊的问题。
他把第二份证据从文件夹里抽出来,那是一张U盘接口记录的截图。上面清楚地列着公司内部系统对所有USB设备的接入记录,昨天下午五点四十到六点三十七之间,他的工位终端上曾接入过一个设备ID为“SD-2024-0712”的U盘。
“这个U盘的ID我很熟悉。”陆鸣把截图转向王磊的方向,“因为前天下午,我看见你把它插进自己的电脑里,传了一份项目规划书的草稿给我。我对比过型号和序列号,同一个U盘,昨天下午被插在了我的工位上。”
王磊的表情僵了一瞬间。
“那又能说明什么?”他很快恢复了镇定,“U盘我确实用过,但昨天下午我自己的U盘一直在我这边,插在你工位上是几个意思?”
“你的U盘在你那边?”陆鸣反问。
他从口袋里掏出一个黑色的U盘,大小和普通U盘差不多,外壳上贴着一张磨损严重的标签,上面用马克笔写着“王-备份”。陆鸣把它举到面前,让所有人都能看见。
“这才是你的U盘。”陆鸣说,“今天早上我来的时候,这个U盘还插在你的主机前面板上。因为你跟我交换过一次项目资料,我认识这个标签。你说你的U盘一直在我那边,那这个U盘是什么?”
王磊的脸色终于变了。
他盯着陆鸣手里的那个黑色U盘看了几秒钟,嘴唇微微动了动,像是想说什么,但话到嘴边又咽了回去。办公室里其他人的目光在王磊和陆鸣之间来回跳动,空气里弥漫着一种无声的火药味。
赵峰放下手里的咖啡杯,走到陆鸣旁边,低头看了一眼他手里那个贴着标签的U盘,又偏头看了一眼王磊的表情。他没有说话,但他的沉默本身就是一种表态。
“王磊,”梁景辉开口了,声音不像之前那么冷,反而带着一种近乎平静的疲倦,“到底怎么回事?”
王磊从座位上站了起来,椅子在地面上刮出一声刺耳的响。
“这不是我的U盘。”他说,语气比刚才重了几分,“陆鸣,你随便拿个贴了标签的U盘就能栽赃我?这一点说服力都没有。我们是一个团队的,出了事就互相咬,你觉得合适吗?”
“我还没说完。”陆鸣把U盘放回桌上,然后从文件夹里抽出第三份证据。
那是一段详细的日志时间线对比,他把自己的屏幕截图发到办公群里,让所有人都能看到。时间线上清晰地标注着:昨天下午六点三十七分,他的终端异常关机;凌晨三点十七分,测试数据管道被访问,操作账号是陆鸣;同时,在三点十二分到三点三十分之间,机房的进门闸机记录显示,有一张员工卡在这个时间段进入了机房,卡号被隐去了最后三位,但部门编号和工龄编号和王磊的完全吻合。
“第三层的机房只有授权人员才能进入,闸机记录会保存每一张卡片的刷入时间和卡号。我没办法拿到完整的卡号信息,但我能拿到部门的编号段。”陆鸣的声音不大,但字字清晰,“凌晨三点,不是工作时间,用自己账号从机房访问测试环境,这件事我们团队里谁都干不了,因为权限不在我们这一层。但如果你用我的账号从机房进去,你的账号就不会留下任何进出记录,因为机器不认识是谁在碰键盘。”
王磊的嘴角抽动了一下。
“你什么时候查的闸机记录?”他问。
“今天早上。”陆鸣说,“你来之前,我特意去了一趟安全组。值班的人认识我,知道我是百川项目的人,他把昨天后半夜的闸机数据截了一段给我。”
王磊沉默了。
他站在工位前面,右手按在桌面上,指节微微泛白。他在权衡,在计算,在思考还有什么能翻盘的角度。但陆鸣没有给他这个机会。
陆鸣从文件夹里抽出最后一份证据,那是一段视频截图的压缩包。安全组的楼道监控探头拍到了昨天凌晨三点十一分,一个穿深色外套的人影走进了第三层机房的门。视频截图的清晰度不算太高,但那个人影的身高、体型、走路时右脚微微外撇的习惯性动作,和每天早上九点准时走进十七楼办公区的王磊一模一样。
“这种东西……伪造起来很容易。”王磊的声音已经不再平稳了,带着一丝不易察觉的颤音,“视频可以P,日志可以改,这些都说明不了什么。”
“那这个呢?”陆鸣从文件夹的最底层抽出一张打印好的A4纸。
那是一份系统后台的操作行为日志,上面记录着凌晨三点十九分,测试环境中“数据源替换”脚本被执行的精确时间和发起者信息。行为日志不同于普通的登录日志,它记录的不是“谁点了确定”,而是“谁在什么时间,从什么设备,用什么方式,执行了什么代码指令”。这份日志的下方,数据库写入了执行人的工位MAC地址——王磊工位上那台电脑的MAC地址。
“你修改了网卡地址,用跳板绕过了登录审查,但你忘了改MAC。”陆鸣把A4纸放在桌面上,手指点了点那个用红圈标出来的MAC地址,“这台电脑的MAC地址是你的,你自己查过,应该知道这串编号代表什么。”
王磊的脸色彻底变白了。
他站在桌边,像是被抽掉了所有支撑的力气,肩膀往下塌了一截。他的嘴唇在发抖,但没有发出声音。他的目光落在那张A4纸上,像是想把它看穿,像是在试图从那个红圈里找到一条能逃出生天的路。
“为什么?”梁景辉问了这场的第三个问题,语气里带着真真切切的困惑,“百川项目要是成了,咱们团队每个人都能拿到绩效考核最高的评级。你干嘛要毁它?”
王磊没有回答。
他站在原地,目光从A4纸上移开,先是看了梁景辉一眼,又看了看赵峰,最后落在陆鸣脸上。他嘴角微微弯了一下,像是想要挤出一个笑容,但那个笑容比哭还难看。
“你赢了。”他说,声音很轻。
赵峰深吸一口气,拿起手机拨了一个号码。他没有说话,只是对着电话那头说了几个字:“来十七楼,技术总监办公室。”
挂断电话之后,赵峰看着王磊,眼神里有一种说不清的情绪,像是失望,又像是醒悟。“你有什么要解释的,去跟总监说。至于公司方面怎么处理,不是我能决定的。但我可以告诉你,王磊,这件事我不会让它就这么算了。”
王磊低下头,没有再说话。
办公室里重新安静下来,安静得像是时间被打了个暂停键。梁景辉拿起陆鸣放在桌面上的那一摞证据,一页一页地翻过去,翻得很慢,像是在看一份判决书。他翻完最后一张的时候,抬头看了陆鸣一眼,问:“你什么时候开始查他的?”
“前天晚上。”陆鸣说,“你开会之前我不怎么说话,不是因为我心虚,是因为我在想,怎么才能让证据链完整到没有办法被反驳。”
梁景辉点了点头,把证据整理好放回文件夹里。
“你电脑昨晚在谁手上?”他问。
“王磊。”陆鸣说,“他在下班之前用交换资料的理由让我开了共享权限,我应该是在那个时候中的招。他远程操作,关闭了我的屏幕锁,趁我离开工位的那几分钟插了U盘,植入了自动执行脚本。”
“然后他等到凌晨三点,用你的账号和从你电脑里拿到的动态令牌,从机房登录了测试环境,替换了数据管道。”梁景辉把这个逻辑链条接了上口,“够缜密的。只可惜,他低估了你自证的能力。”
陆鸣没有骄傲,也没有就此放松。他知道,这场胜利并非来自于他一个人,而是来自于他克制冷静的头脑。他抬起头,刚好看见工位隔断对面,一个穿着白色衬衫的女生也在看向这边。是苏念,创始人的女儿,系统真正的继承者。她的目光里带着一种很微妙的神情,像是在确认一件事。
陆鸣没有回避她的视线,轻轻点了点头。
然后他低下头,看着桌面上那个已经关掉的系统界面。星辉系统的核心代码还在他手机里躺着,温度触感是凉的,代码是死的。可他知道,这场风波对于它来说才刚刚开始。
王磊被安全组的两个人带走了,走的时候没有回头。
办公区里重新恢复了运转,键盘声和电话铃重新响起来,大家投入到了各自的工作之中,好像什么都没有发生过。只有工位上少了的那一个座位,提醒着所有人,刚才发生过什么。
陆鸣坐回自己的椅子上,肩膀终于放松了下来。
他拿起桌上的那个黑色U盘,翻过来看了一眼背面的标签,然后顺手把它放进了抽屉的最底层。
有些东西,不该被人看见。