推开旧数据中心机房的门时,周然看见沈清音背对着她,站在那排嗡嗡作响的服务器前。背影单薄,没穿白大褂。
“清音。”
沈清音转过身,脸色很差,眼圈发青。她把一张折叠的A4纸递过来,手指捏得关节发白。
周然展开。红头文件,人力资源部的章。调动通知:沈清音即日起调往西南分公司,支援ERP系统上线,周期三个月。落款是李维序。
理由冠冕堂皇。
“他们知道。”沈清音声音干涩,压着火,“关键在数据,在系统。把我调走,你们就是瞎子。现金流模型、关联方网络……没有我在后台清洗搭建,你们做不出来。就算做出来,他们也能在源头上动手脚,让东西变成废品。”
她顿了顿,声音低下去,带着一种周然从未听过的无助。
“我这几年,像老鼠一样在这里修复那些被故意弄脏弄乱的数据。我以为只要把‘真实’拼出来,就有人会看。我错了。他们只在乎谁手里有刀。”
周然把调令折好,递还给她。“陈总知道吗?”
“昨晚给他打电话了。他说试试,但赵坤那边很强硬。李维序咬死这是‘正常业务安排’。”沈清音接过纸,“陈总去找赵坤,赵坤说这是信息技术部自己的决定,他尊重专业部门意见。”
周然沉默。
太清楚了。表面合规,挑不出毛病。至于那个分公司需不需要支援,谁在乎?重要的是把人调走,调得远远的。
“清音。”周然开口,声音很稳,“你人走,技术留下。”
沈清音愣住。
“调令今天生效,但你实际去报到,最快也要明天。机票、住宿、交接,总需要时间。”周然手指拂过冰凉的服务器外壳,“走之前,我们需要你帮忙,在系统里埋几个东西。”
“……什么东西?”
“数据眼睛。”周然看着她,“只有你能唤醒、只有你能看见的监控节点。藏在最深层的日志里,用你独有的算法加密。功能很简单——实时抓取关键数据库的访问记录、修改痕迹、异常查询。一旦触发预设规则,就自动把快照和日志发到指定加密空间。”
沈清音的眼睛慢慢亮起来。
那是技术人听到挑战时的本能。
“他们把你调走,是以为能掐断数据源头。”周然继续说,“但他们忘了,你在这套系统里工作了四年。四年,足够你在每个角落留下只有你才懂的‘后门’。现在,我们需要把这些标记激活,变成眼睛。”
“可是权限呢?我的账号肯定会被回收。”
“不用你的账号。”周然说,“用系统本身的维护账户,或者那些早就该注销、却因为‘历史原因’还留在权限表里的幽灵账户。你比谁都清楚,海西的IT系统有多乱,有多少漏洞和死角。我们要用的,就是这些死角。”
沈清音低下头,指尖开始无意识地敲击服务器外壳,哒、哒、哒,节奏很快。
她在推演。
“可以。”大约一分钟后,她抬起头,“但需要时间。至少八个小时。”
“你还有多久?”
“信息技术部让我下午五点前完成交接,明天早上八点的飞机。”沈清音看了眼手机,“现在是八点二十。我还有九个半小时。”
“够了。”周然说,“我现在去找陈总。你开始准备。中午之前,我会把需要监控的关键数据表清单发给你。记住,节点要分散,加密要三层以上,触发规则要设得巧妙——不要一有风吹草动就报警,那样很快会被发现。要等,等到符合特定模式的操作连续出现,再启动。”
沈清音点头,已经转身去开旁边那台跳板机。屏幕亮起,命令行界面弹出,她手指在键盘上敲击的速度快得几乎出现残影。
周然最后看了她一眼,推门离开。
***
陈志远的办公室门关着。
周然敲了敲门,里面传来一声疲惫的“进来”。她推门进去,陈志远正坐在办公桌后,手里捏着一支烟,没点。烟身已经被捏得有些变形。
“周然。”陈志远看见她,勉强扯了扯嘴角,“坐。”
周然在对面坐下。“沈清音的调令,您知道了。”
“知道了。”陈志远把烟扔回桌上,揉了揉眉心,“我昨晚给赵坤打了三个电话,他一个都没接。早上我去他办公室堵他,他说这是信息技术部基于业务需求做的正常安排,他作为分管领导,不能干涉下属部门的专业决策。”
他顿了顿,声音里透着无力。
“我又去找李维序。李维序给我看了沈清音的岗位说明书,上面白纸黑字写着‘服从集团内部调配’。他说这次调动完全符合制度,如果沈清音拒绝,可以按‘不服从工作安排’处理,后果更严重。”
“所以没办法了?”周然问。
陈志远沉默了几秒。“周然,赵坤这是在砍你的手。沈清音是你的技术支撑,没了她,你的数据模型、资金流向分析……所有这些,都会大打折扣。他看得很准,这一刀捅在要害上。”
“我知道。”周然说,“所以我来找您,不是要您去撤销调令——那不可能。我是要您帮我争取一点时间,还有一点权限。”
“什么权限?”
“沈清音今天下午五点前完成交接,明天早上飞西南。在这之前,我需要她还能正常访问总部核心数据库,至少要有只读权限。另外,我需要您以‘风险咨询项目数据准备’为由,向信息技术部申请一份临时权限清单——清单我稍后发给您,上面会列十几个看起来无关紧要的历史数据表和日志库。理由要写得足够专业晦涩,让他们懒得细看,直接批了。”
陈志远看着她。“你想干什么?”
“埋眼睛。”周然简单说了计划。
陈志远听完,半晌没说话。他重新拿起那支烟,点着了,深深吸了一口。烟雾缭绕起来。
“风险很大。”他终于开口,“如果被发现,这就是蓄意破坏信息系统安全,够进去蹲几年的。沈清音的技术我信得过,但万一呢?赵坤那边肯定防着这一手。”
“所以需要您打的掩护。”周然说,“那份权限申请,您亲自去批,走加急流程。理由就写——为了准备董事会特别会议的材料,需要调取历史数据做对比分析。这个理由,赵坤就算怀疑,也不敢明着拦。毕竟董事会要开了,他也不想显得心里有鬼。”
陈志远又吸了口烟。
“周然。”他忽然问,“陆明远昨晚给你打电话了?”
周然点头。
“他说什么?”
“董事会可能会提前召开。我需要更硬的证据。”周然顿了顿,“他还问了我一个问题——船要沉的时候,是跟着一起沉,还是指出漏洞造新船。”
陈志远苦笑。“他倒是会问。那你呢?你怎么想?”
“我没想。”周然说,“我只会做一件事——把漏洞指出来,清清楚楚地指出来。至于船是沉是浮,是修是造,那是掌舵的人该决定的。我的工作,只是确保他们看见真实的情况,而不是裹着丝绸的窟窿。”
陈志远盯着她看了很久。
然后他掐灭烟,坐直身体。“权限清单,你现在就发我。我去找信息技术部总监谈。沈清音那边的只读权限,我会以‘工作需要交接’为由,让他们保留到今晚十二点。十二点一过,权限自动回收。”
“够了。”周然说,“谢谢陈总。”
“别谢我。”陈志远摆摆手,脸上露出复杂的疲惫,“我有时候真不知道,我这是在帮你,还是在害你。赵坤现在盯着你,也盯着我。沈清音这一走,下一个会是谁?王璐?还是我?”
周然没接话。
她知道陈志远的恐惧是真的。女儿在国外,妻子身体不好,房贷压着。他能做到这一步,已经是在悬崖边上走。
“陈总。”周然站起来,“沈清音埋下的数据眼睛,我会分您一个查看权限。如果……如果有一天,我真的撑不住了,或者出了什么事,那些眼睛看到的东西,就是最后的证据。”
陈志远猛地抬头。
“你……”
“以防万一。”周然笑了笑,那笑容很淡,“总得留点后手。”
她说完,转身离开。
***
中午十二点半,食堂角落。
沈清音面前摆着餐盘,几乎没动,正抱着笔记本电脑飞快地敲代码。屏幕上是密密麻麻的命令行。
“怎么样了?”周然坐下。
“基础框架搭好了。”沈清音头也不抬,“用了三个幽灵账户,权限是五年前遗留的,没人记得注销。加密算法我改进了两层,第一层常规RSA,第二层我自己写的混淆算法,密钥藏在系统环境变量里,除非有人把我脑子挖出来,否则解不开。”
她语速很快,眼睛盯着屏幕。
“监控清单我看了。你选的这些数据表很刁钻,大部分是历史归档表,平时没人查,但一旦有大规模数据篡改,这些表里会留下最原始的对比痕迹。触发规则我设了五个梯度——第一级,单表异常访问超阈值;第二级,关联表被同账号连续访问;第三级,访问模式符合数据清洗特征;第四级,修改操作尝试;第五级……”
她停了一下。
“第五级是什么?”周然问。
“第五级是毁灭性操作。”沈清音声音低下去,“比如批量删除、清空表结构、格式化存储分区。一旦触发第五级,监控节点会立刻启动自毁程序,但在自毁前,会把所有日志和快照打包,用最高优先级发往三个不同的云端存储,同时向预设的五个紧急联系人手机发送警报短信。”
周然心里一沉。
“你觉得会到第五级?”
“我不知道。”沈清音终于抬起头,摘下眼镜揉了揉鼻梁,“但赵坤那些人,如果真被逼到绝路,什么事都干得出来。数据对他们来说,只是工具。工具没用了,就毁掉。很合理。”
她说“很合理”的时候,语气平静得像在陈述数学定理。
周然把餐盘往她那边推了推。“先吃饭。下午还有四个小时。”
沈清音扒拉了两口米饭,吃得很快,很机械。
“周然。”她忽然说,“我走了之后,你一个人,要小心。”
周然夹菜的手顿了顿。
“他们这次调走我,下次就会用别的办法对付你。王璐不可信,陈总……陈总也有他自己的难处。你身边其实没有人。”沈清音说得很直白,“数据眼睛能帮你看着系统,但看不了人。”