“周然,你找我?”
沈清音的声音从加密通讯软件里跳出来,三秒,快得像她敲代码的手。
周然盯着屏幕上那行匿名帖子的截图,手指在键盘上悬停。机房在地下二层,这个点应该只有她还在。她打字:“有空吗?需要查点东西。”
“在机房。你说。”
“匿名论坛,今天下午四点三十七分那个帖子。发帖IP,登录记录,发布前后内网有没有异常数据访问。”
沈清音没回。
周然能想象出她坐在服务器机柜前的样子,三块屏幕亮着,代码像瀑布一样滚。她等着。半分钟后,回复来了:“发帖IP是虚拟的,用了内网公共代理池。但代理服务器有访问日志。反向追踪需要时间。”
“多久?”
“二十分钟。”
“好。”
周然关掉聊天窗口,靠进椅背。办公室没开大灯,只有台灯昏黄的光圈拢住桌面一角。玻璃幕墙外是海西市的夜景,霓虹灯爬进来,在她手背上投下模糊的光斑。
她想起下午会议室里赵坤最后那句话。
走着瞧。
不是威胁,是预告。他太清楚怎么打这种仗了——审计证据可以反驳,数据逻辑可以辩论,但谣言不需要证据。它只需要种子,和一片适合滋生的土壤。
而现在海西集团这片土壤,因为改革阵痛、利益重分,早已布满裂隙。
种子撒下去,风一吹,就能长成一片荆棘。
电脑屏幕又亮了。沈清音发来一个加密文件包。周然点开,密码是她们约定的动态口令。文件包解压,跳出一份PDF报告,还有几张数据截图。
她先看截图。
时间轴停在今天下午四点二十一分。一条记录被高亮:有人从采购部三楼公共办公区的终端B307,登录了代理服务器,申请了临时虚拟IP。登录账号是采购部副总监李春华。
周然皱了皱眉。
李春华下午在会议室,脸白得像纸。赵坤把他推出来当靶子,他不得不配合演戏。但演戏之余,他也有自己的怨气——改革触动采购部的利益,审计又把他架在火上烤。
截图往下翻。
四点三十七分,那个虚拟IP在匿名论坛发帖。帖子内容她早看过了,字字诛心,说她借数据治理排除异己,背后有人指使。
四点三十九分,同一个虚拟IP访问了内部通讯软件接口,向六个账号发送了消息。
沈清音在消息列表后面做了标注。六个账号,采购部两人,财务部一人,行政部一人,信息技术部一人,人力资源部一人。
周然的目光停在信息部那个账号上。
张玮。刘东的徒弟。赵坤把刘东调去西南分公司前,张玮一直是跟班。上个月档案馆三区B-7保险柜的异常访问,最后一道门禁卡就是张玮刷的。
她切回报告。
沈清音写了分析:今天下午四点十五分,张玮用自己的账号登录了信息部一台备用服务器。四点十八分,他添加了一条临时规则,允许采购部公共办公区的终端IP段直接申请虚拟IP,无需二次验证。规则生效时间,下午四点二十分到五点整。
四点二十一分,有人用李春华的账号远程登录B307,申请到虚拟IP。
四点三十七分,发帖。
四点三十九分,发消息。
四点四十二分,虚拟IP注销。
五点整,规则自动失效。
干净利落。
周然拿起手机,拨通沈清音的电话。响了两声,接了。
“张玮现在人在哪儿?”她问。
“下午三点半请假走了,说家里有事。”沈清音的声音在电话里有点闷,背景是服务器嗡嗡的电流声,“但门禁记录显示,他四点零五分又回了集团大楼,刷的是地下停车场直达机房的专用电梯卡。那张卡应该是刘东留给他的。”
“机房监控呢?”
“归信息部管。”沈清音顿了顿,“而且张玮熟悉盲区。他真想躲,拍不到。”
周然沉默了几秒。
“那六个收到消息的账号,”她说,“能查到他们最近的活动吗?比如论坛发言,或者和外部有没有异常联系?”
“论坛发言好查,数据库有存档。外部联系的话……”沈清音的声音低下去,“内部通讯软件只记录元数据。如果有电话或短信,得调通话记录。那需要更高权限,而且涉及隐私,流程麻烦。”
“先查论坛。”
“已经在跑了。”沈清音说,“给我十分钟。”
电话没挂。周然能听见那边键盘敲击的声音,清脆,密集,像雨点打在铁皮屋顶上。她等着,目光落在窗外。夜色正浓,远处写字楼的灯光像一把撒出去的碎钻。
十分钟后,沈清音的声音又响起来。
“查到了。六个账号里,有四个在过去一周内,在匿名论坛发过言。内容都是质疑改革,抱怨流程,暗指审计部权力过大。发言时间集中在晚上和凌晨,用的也是虚拟IP。”
她顿了顿。
“其中一个ID叫‘海西老员工’,从上周三开始发了七条帖子。核心观点就一个:数据治理是形式主义,真正的问题是人,是周然想清洗元老。”
周然没说话。
沈清音继续说:“我做了文本分析。这个人喜欢用‘咱们老海西’、‘当年打天下’、‘现在这帮年轻人’这类短语。标点使用随意,经常一逗到底。错别字频率高,但类型固定——‘在’和‘再’不分,‘的’和‘得’混用。”
她停了一下。
“这种语言习惯,和李春华在内部邮件里的用词特征,匹配度超过百分之八十。”
周然闭上眼睛。
李春华。又是他。害怕,怨气,被人当枪使,还在匿名论坛里发泄。
“另外两个账号呢?”她问,“没发过言的。”
“财务部这个,主人是成本核算科副科长王振宇。”沈清音说,“他最近三个月,每天晚上十点以后,都会登录内部通讯软件,和一个外部号码有短暂通话。每次不超过三分钟。”
她调出记录。
“外部号码归属地是海西本地,但运营商是虚拟号段,查不到实名。通话频率很有规律——每周一、三、五晚上十点十分左右。最近一次是昨晚。”
周然的手指无意识地刮擦着食指侧面。
“今天呢?”她问。
“今天下午四点三十九分,那个虚拟IP给王振宇发消息之后两分钟,王振宇登录了通讯软件,和同一个外部号码通了话。时长两分十七秒。”
太近了。
“另一个账号?”
“人力资源部,绩效管理岗专员吴倩。”沈清音说,“她最近一周,每天中午十二点到一点之间,会用公司座机拨出一个外部号码。每次五到十分钟。号码也是虚拟号段。”
她顿了顿。
“今天中午十二点二十,吴倩刚打完电话。下午四点三十九分收到消息后,她没有立刻反应,但晚上六点零五分——下班后五分钟——她又用座机拨了同一个号码,通话七分钟。”
周然睁开眼睛。
王振宇,成本核算科副科长。吴倩,绩效管理岗专员。一个在财务部,一个在人力资源部。位置不起眼,但关键——成本核算能接触底层数据,绩效管理能影响人员评价。
他们每天规律地和外部号码联系。
今天下午,匿名帖子发出后两分钟,王振宇打了电话。
晚上下班后,吴倩打了电话。
这不是巧合。
“清音,”周然开口,声音有点干,“这两个外部号码,能查到更多吗?比如它们之间有没有联系?或者,有没有和其他内部号码通过话?”
电话那头传来更急促的键盘声。
“我在跑交叉分析。”沈清音说,“但需要时间。而且如果对方用了多层跳转,可能追不到源头。”
周然等着。
她能听见自己的呼吸,在安静的办公室里显得格外清晰。台灯的光晕在桌面上晃动,像水波。她看着那些光斑,忽然想起很多年前在德勤的时候,整夜整夜地对数据,查凭证,勾稽关系。
那时候她觉得,只要数据够全,逻辑够严,真相就会自己浮出来。
现在她知道,真相确实会浮出来。
但总有人想把它按回水里。
“周然。”
沈清音的声音把她拉回来。
“查到了。”沈清音说,声音里带着一丝疲惫,“这两个外部号码,在过去三个月里,一共联系过二十三个内部号码。其中十七个是采购部、财务部、人力资源部的中层。另外六个……”
她顿了顿。
“是同一个号码。但这个号码没有实名登记,运营商数据里只显示它是‘集团VIP客户专属号段’。我查了内部通讯录,这个号段是五年前集团统一配发给高级管理层的备用号码,不对外公开。”
周然坐直了身体。
“能查到具体是谁吗?”
“不能。”沈清音摇头,“号段管理权限在总裁办,数据库独立加密,我绕不开。但……”
她调出一份历史记录。
“三年前,这个号段有过一次批量调整。当时的信息部负责人刘东,提交过一份调整申请,理由是‘部分高管离职,号码需回收重新分配’。申请里附了列表,列出了需要回收的号码和对应的原持有人。”
周然盯着屏幕。
□□。刘东。赵坤。还有几个已经离职的元老。
“申请批准了吗?”她问。