白殊推开办公室门时,天刚亮。窗帘没拉严,一道灰白的光落在桌角。她把包放在惯常的位置,转身按下咖啡机开关。水箱缺水,红灯闪了两下。她拧开盖子,从柜子里取出矿泉水瓶,倒满。
手机震动。林小满发来一条消息:【昨晚的数据包已拆解完成,漏洞在权限校验模块。伪装程序通过测试服务器上传后,会自动抓取预算审批流程中的临时缓存文件。】
她回:【能追踪到具体操作时间吗?】
【可以。最后一次访问是昨晚十一点五十三分,持续四分十七秒。IP地址经过三层跳转,但第二跳落在周明远名下子公司注册地。】
她看完,把手机扣在桌上。咖啡机发出低鸣,杯子满了。她端起来喝了一口,烫得舌尖发麻。
八点前,唐笑笑到了。进门就甩包,一边换鞋一边说:“你真打算今天把这事捅出去?”
“不是我决定的。”她说,“是数据。”
“可董事会还没表决。”唐笑笑拉开抽屉找口红,“万一叶总那边……”
“她昨晚打过电话。”白殊打断,“提到父亲的事,想让我退让。”
唐笑笑手停在半空。
“我不接这个话。”她翻开笔记本,“今天只谈项目,不谈人情。”
唐笑笑点点头,把口红放回去,从包里掏出U盘:“林小满让我交给你的,加密压缩包,密码是你入职日期。”
她接过,插进电脑。文件夹打开后,里面是三段视频、一份日志分析和一张截图。她先点开截图。是公司内网后台的权限分配表,某个二级接口被标注成红色。下方备注写着:该接口未设访问频次限制,且允许跨部门调用。
她点开第一段视频。画面是系统日志滚动记录,显示某账号在非工作时间多次请求数据包下载,每次间隔刚好低于系统预警阈值。第二次视频更短,只有三十秒,展示的是伪装程序如何模拟正常用户行为绕过防火墙。第三段是还原攻击路径的动态图,箭头从测试服务器出发,穿过财务部中转节点,最终指向战略部文件库。
她看完,关掉所有窗口,拔出U盘放进衬衫内袋。
九点四十,会议室走廊已经有人走动。她走过时听见两个职员低声说话。一个说:“听说今天要查数据泄露?”另一个答:“不知道,反正不是咱们这块的事。”她没停步,径直进了会场。
长桌两侧陆续坐满。她坐在靠窗位置,正对投影幕布。十分钟后,裴轸进来。他看了她一眼,走到主位坐下。会议资料整齐摆在每个人面前,封面上印着“紧急安全审计通报”。
“开始吧。”他说。
技术部负责人起身,播放PPT。前五页讲的是常规网络安全巡检结果,无异常。第六页切入正题,标题是“异常访问行为分析”。他切换到日志截图,解释发现过程。台下有人翻资料,有人记笔记。
讲到第三页,人事总监突然抬头:“这些数据是从哪个系统导出的?按流程,这类信息需要双人授权。”
“由信息安全小组独立提取。”技术部负责人答,“审计权限来自集团应急响应条例第十二条。”
旁边有人低声说了句什么,没听清。
白殊翻开自己的文件夹,抽出那张权限表截图,轻轻推到桌沿。她没说话,只是用笔在右下角画了个圈。
几分钟后,财务总监注意到这张纸。他拿起来看了看,皱眉,传给身边的人。
传递到第四个人时,裴轸伸手接过。他看了两秒,抬眼看向她。
她直视他,点了下头。
他把纸递给技术部负责人:“解释一下这个接口。”
对方接过,脸色微变:“这……是旧系统遗留模块,去年升级时本应关闭,可能当时漏了。”
“它允许跨部门调用?”裴轸问。
“理论上需要额外审批,但实际操作中……”他声音低下去。
“实际上没人管。”白殊开口,“过去三个月,这个接口被调用了二十七次,全部来自非授权账户。其中十九次发生在下班后,与周明远团队访问公司测试服务器的时间高度重合。”
会议室安静下来。
“你有证据?”财务总监问。
她拿出U盘,递过去:“里面有完整记录。包括一段伪装程序运行轨迹,以及它如何利用这个漏洞获取预算明细。”
技术部负责人插入U盘,调出文件。投影切换画面。所有人盯着屏幕,看那条红线穿过系统架构图,最终停在战略部文件夹上。
“这程序还能复现?”裴轸问。
“可以。”她说,“我们保留了测试环境副本。只要提供相同条件,它会在三分钟内再次触发。”
财务总监合上笔记本:“如果属实,这是重大安全疏失。”
“不是疏失。”白殊说,“是设计缺陷。这个接口从未被标记为高危,也没有列入年度审查清单。但它一直开着,像一扇没锁的后门。”
没人接话。
裴轸看着她:“你什么时候发现的?”
“昨天晚上。”她说,“接到林小满报告后,我们做了逆向追踪。”
他点头,转向技术部负责人:“立刻封禁该接口。通知法务,准备内部调查文件。”
“要不要报警?”有人问。
“先等结果。”裴轸说,“查清楚数据流向再说。”
会议结束前,人事总监忽然说:“白总监这次反应很快。要是等例行检查才发现,损失可能更大。”
她没应声,只把U盘收回口袋。
散会后,她在洗手间门口碰见财务总监。他站在镜子前整理领带,看见她,说:“那个接口……我记得年初讨论过系统整合方案,当时有人建议保留它,说是备用通道。”
“谁提的?”她问。
“好像是策划部提交的报告。”他顿了顿,“具体名字记不清了。”
她道谢,转身走向电梯。
回到办公室,林小满的消息已经在等她:【他们开始查测试服务器登录记录了,周明远昨晚的IP跳转路径正在被还原。】
她回:【继续盯,有任何变动立刻通知。】
放下手机,她打开抽屉,取出三支口红。最右边那支深豆沙色还剩一半。她拧开,对着小镜子补了一遍。颜色压住了原本的唇色,显得整个人沉稳些。
窗外阳光斜照进来,落在桌角那份会议纪要上。她伸手把它往里推了推,遮住打印纸边缘的一行字:【涉及人员待进一步核实】。
唐笑笑敲门进来,手里拿着两盒便当。“程野送的。”她说,“说是庆功饭。”
她接过,打开。一份是咖喱鸡,一份是番茄牛腩。都还热着。
“他怎么知道今天开会?”
“群里发了通知。”唐笑笑坐在沙发上,“不过你也真敢当着那么多人把证据推出来。”
“不说清楚,以后还会出事。”
唐笑笑咬了口饭团,忽然问:“你觉得他知不知道?”
“谁?”
“裴轸。”她声音轻了些,“他是不是早就知道会有问题?”
她没答。低头吃饭,米饭粒沾在勺边。
手机震了一下。新消息来自陌生号码,只有一个字:【谢。】
她盯着屏幕,没回。
吃完饭,她把盒子收进垃圾桶。站起来活动左手,指节有些僵。她慢慢握拳,再松开。三次后,感觉好些。
下午两点,技术部发来正式通报邮件:确认存在未授权数据访问行为,已启动追责流程。附件里有一份初步名单,包含三个外联部门经办人。周明远的名字不在其中。
她拉到底,看到一句补充说明:具体责任人需结合行为意图与实际影响综合判定。
她关掉邮件,打开笔记本,写下一行字:【漏洞存在三年,从未检修。有人需要它一直开着。】
下面画了一条横线。
窗外风大了起来,吹得玻璃嗡嗡响。她起身去关窗。楼下停车场有辆车刚启动,车灯划过墙面,一闪而过。
她站了几秒,转身回到桌前。
手指摸到衬衫内袋里的U盘。还带着体温。
明天该做什么,她已经想好了。