晚上七点四十八分,手机在茶几上震动起来。第一条,吴建国。第二条,郑海涛。第三条,HR徐静。紧接着,部门群炸了。
「周野你在哪?服务器崩了!赶紧回电话!」
我坐在沙发上,看着屏幕上跳动的红色来电提醒。茶几另一头,宋雨抱着发烧的孩子,低声问:「真的不接?」
我把手机翻过去,扣在桌面上。
三年来,我加过的班堆起来比人还高。今天下午,年终奖到账八百块。手机里还留着领导发来的消息——你辛苦了,明年继续努力。
消息发来的时候,工资卡到账短信弹出:人民币800.00元。
我把那条提醒截图,存进了加密相册。
窗外,写字楼顶层的光还亮着。我知道,数据恢复的密钥在我手里。
明早十点,会议室。
我等他们。
01
那天上午,年终奖公布会开得热闹。
大会议室里坐满了人,投影幕上滚动着今年的绩效排名。吴建国站在讲台前,西装笔挺,声音洪亮。
「今年公司业绩不错,技术部尤其值得表扬。特别是刘一鸣,主导上线了新功能,贡献突出,年度绩效A档,年终奖两万八!」
掌声稀稀拉拉,然后被吴建国带头鼓了起来。我坐在倒数第二排,看着刘一鸣红着脸站起来鞠躬。
新功能上线那三个月,我睡在公司十一回。
底层架构是我搭的,数据模型是我写的,上线当天我熬到凌晨四点,连口热饭都没吃上。刘一鸣做的是什么?是把我的周报改了个格式,往上汇报。
吴建国讲完最后一个奖项,看了一眼台下。
「还有一项,优秀员工奖——周野。年终奖800元,感谢他对基础工作的付出。」
台下有人笑出声。那笑声很短,像被掐住了脖子。
我低头,看着手机屏幕上银行发的到账短信。800.00元,入账时间今天上午十点零六分。
我年薪三十万出头,项目奖金另算。800块,连我一天半的工资都不到。
散会后,吴建国经过我身边,拍了拍我的肩膀:「小周,别嫌少。今年形式不好,公司能发就是情分。」
我关掉手机,说:「谢谢吴总。」
他没听出我声音里的东西。他走的时候,嘴里还哼着歌。
那天下午,我照常坐在工位上,把过去一年的考勤记录,一页一页,从公司系统里调出来,截图。
截图存进手机,又加密打包,发到我自己私有的邮箱里。
做完这件事,我给自己倒了杯水。水还没凉,手机响了,是一个律师朋友发来的消息:「你发过来的材料我看了,年终奖和绩效挂钩不合理,如果确实存在单方克扣,可以走劳动仲裁。证据够不够,要看你怎么证明。」
我打了三个字:「我有数。」
下班回家,宋雨正在厨房热饭。她一边盛汤一边问我:「年终奖发了?」
我说:「发了。」
「多少?」
「八百。」
她的手顿了一下。那碗汤端出来的时候,她没再提这件事。倒是孩子的小手从餐椅上伸过来,抓我的袖子,嘴里喊「爸、爸」。
我把他抱过来,闻到一股奶腥味和痱子粉的香气。
宋雨背对着我洗奶瓶,声音听不出情绪:「奶粉快没了。下个月先少买一罐,我多喂两顿母乳。」
我说:「不用省,我还有点存款。」
她没回头,轻声说:「存款是给你爸妈养老的,不能动。」
那顿饭,我们谁也没再说话。
晚上十一点,孩子睡着了。我把笔记本搬到阳台上,一件一件整理这三年的东西。
考勤表。加班餐补申请单。我提过、被吴建国驳回的技术架构优化方案。还有三年前入职时HR发的那张工资确认单。
末了,我在手机备忘录里写下几行字:
「1. 绩效评定表日期在11月,时我常年加班,公司从未告知考评不合格。」
「2. 年终奖发放无制度依据,签收名单里我最少。」
「3. 入职承诺的公司核心项目分红,从未兑现。」
写完,我把手机锁屏,放在枕头底下。
宋雨翻了个身,迷迷糊糊问我:「还不睡?」
我说:「睡了。」
我闭上眼,脑子还在转。八百块的短信我已经存了,考勤截图也存了。还差一样东西——我总觉得,吴建国今年做事有点慌,他怕是在掩饰别的。
那晚我做了一个梦。梦里,办公室的空调外机嗡嗡响,我一个人坐在机房里,面前的服务器指示灯红成一片。
梦醒之前,我听见一个声音,像是有人在上锁。
第二天早上我打开手机,人事部发来一条通知:技术部本周三开会,调整核心数据组人员分工。
我盯着「调整分工」四个字,慢慢喝了口凉水。
上一次听到这四个字,是两年前。那时候被调走的那个老员工,第二天就辞职了。
我知道,轮到我了。
02
周三的会,开得比我想象中短。
吴建国站在白板前面,连铺垫都省了:「公司业务调整,周野从明天起不再负责核心数据组,由刘一鸣接手。周野调去运维支持岗,过渡一下。」
会议室里安静了两秒。
坐在我旁边的段哥轻轻踢了一下我的椅子腿。我没动,看着吴建国的脸,说:「好的,需要我交接什么?」
吴建国显然没想到我这么配合,愣了一下,随即笑容大了:「明天下午三点,把你手上系统的权限全部移交。别拖,要干干净净的。」
我说:「行。」
散会之后,刘一鸣跟在我后面走出门,喊了一声「周哥」。我没停步。他追上来,压低声音说:「这事不是我的意思,是吴总决定的。我其实就是个干活儿的。」
我转头看他:「新功能上线的时候,你上台领两万八的时候,也没见你说自己只是个干活儿的。」
刘一鸣的脸涨红了,想说什么,被身后的人叫走了。
当天下午,我坐在工位上,打开公司内部系统。核心数据组的权限页面弹出来,上面密密麻麻列着几十项子权限。
我从头到尾看了一遍,在最后一行,「紧急恢复密钥」旁边,写着「是否随权限同步移交」。
我动了一下鼠标,没有勾选。
然后我打印了一份《核心系统运维权限移交确认书》,扫描进手机。确认书上有一行小字,字体比正文小一号:
「原运维人员在系统异常情况下,保留紧急恢复能力,直至交接系统稳定运行满三十日。」
我看了这行字一眼,没擦掉。
晚上七点,办公室的人差不多走光了。我拿上工牌和U盘,刷卡进了机房。
机房温度常年保持恒温,只有机柜上的绿灯在闪。我蹲在机柜后面,把那块存了三年代码和运维记录的离线硬盘接上服务器,做了最后一次全量镜像。
数据跑完,我拔下硬盘,装进口袋。
硬盘比手机重一点。我握着它走出机房,走廊尽头,段哥正站在消防拴旁边抽烟。他看见我出来,欲言又止。
我走到他面前:「段哥,有事?」
他左右看了看,压低声音:「前两天晚上我值班,看见吴总跟郑副总在机房门口站了半个多小时。郑副总手里拿着一张纸,吴总在用手机拍照。拍完,两个人就走了。」
我看着他:「你说的郑副总,是郑海涛?」
段哥点点头:「你小心点。这阵子郑副总往技术部跑得太勤了,不像什么好事。」
我把那句话记在心里,拍了拍他肩膀:「谢谢段哥。你今晚没碰上我。」
他笑了一下,掐灭烟:「我今晚没出过值班室。」
回到家,宋雨已经把饭菜摆好了。她今天难得早下班,还炒了两个菜。我把外套挂起来,口袋里那块硬盘沉甸甸地坠着衣架。
宋雨筷子没停,眼睛盯着我说:「你脸色不太好。公司的事?」
我坐下:「没事,就是年底琐事多。」
她没追问,只是给我碗里夹了一块排骨:「明天周末,带孩子去广场走走?」
我说好。
吃完饭,我洗碗,宋雨哄孩子睡觉。手机放客厅茶几上,屏幕亮了一下,是一条弹窗消息:「公司安全邮件:信息安全等级保护评估,下周进行。」
我擦干手,点开邮件,看到抄送名单里,吴建国作为核心数据组负责人列在最前面。我作为「原组成员」,被移到了末位。
我关掉手机,继续洗碗。
水龙头哗啦啦地响,泡沫浮起来又碎掉。我盯着那些泡沫,脑子里翻来覆去只有段哥那句「吴总在用手机拍照」。
拍照干什么?
一个人为什么要站在机房门口,拍涉及核心数据的材料?
除非——那些「材料」,将来会变成某种指向别人的「证据」。
我关了水龙头,拿毛巾擦了擦手,走进书房。
我打开那台几乎没关过机的笔记本,从收藏夹里点出一个网页——安恒数据服务有限公司,注册地址在北京朝阳,法定代表人姓名:邱潘,注册资金两百万。
我盯着那个名字看了一会儿,然后把网页关了。
邱潘是谁?郑海涛老婆的表弟。这件事,我一个月前就查到了。当时只是好奇郑副总为什么总推荐这家公司,现在,我想我大概明白了。
我合上电脑,给律师朋友发了条消息:「如果公司今晚出事,明早我能拿出的东西,够不够做证据?」
他回得很快:「要看是什么东西。」
我回:「真相。」
消息发出去之后,手机再没有动静。
我躺在床上,看着天花板。身边宋雨已经睡着了,呼吸声很轻。孩子在小床上翻了个身,小手搭在栏杆上。
我在黑暗里睁着眼,把时间线在脑子里推到那个我还没看见的「明天」。
吴建国让我明天下午三点交权限。他以为我会交,我也确实会交。
但他不知道,在他伸手够那张牌之前,我已经把牌堆翻了。
他在明,我在暗。
这场游戏,才刚开始。
03
周五下午,公司里来了几个生面孔。
带头的人三十来岁,穿着一件灰色夹克,胸前挂着临时工牌,上面写着「安恒数据服务」。他站在前台那边跟刘一鸣说话,笑得客客气气。
我端着杯子去接水,从他们身边经过。
刘一鸣喊住我:「周哥,这是邱工,过来做信息安全评估的。」
我看了那人一眼:「邱工贵姓?」
他笑着递来一张名片:「邱潘。小姓邱。」
我接过名片,指尖在纸张边缘轻轻蹭了一下:「邱工之前做过哪家?」
「主要是金融口。这次是郑总牵线,请我们团队来做压力测试。」
「哦。」我把名片揣进口袋,「压力测试好,测测才知道系统扛不扛得住。」
邱潘的笑容停了一瞬。
刘一鸣在旁边没接话。我端着杯子走了,回到自己工位,把那支名片放在键盘旁边。我盯着「郑总牵线」四个字看了很久。
段哥在IM上给我发了个表情,是一个呲牙笑。我回了个「收到」。
那天下午三点,交接仪式准时开始。
吴建国坐在会议室正中间,刘一鸣坐在他右手边,行政小妹在旁边拍了一张照片,说要留档。我把我名下所有权限逐一勾选、移交,最后一项,是核心数据系统的管理员权限。
我点击「确认移交」之前,屏幕上弹出一行提示:「该操作将改变全系统最高权限归属,是否继续?」
我说:「继续。」
吴建国在对面笑了一下,笑容里带着一种尘埃落定的松快:「小周,这就对了嘛。干工作,哪有什么放不下的。」
我把鼠标点了下去。
「移交完成。」
交接单打印出来,我签了字。我签得很慢,一笔一划。吴建国大概是觉得我舍不得,又笑了笑:「年纪轻轻,以后机会多的是。」
我放下笔,说:「吴总说得对。」
我走出会议室,没有回头。但我知道,从这一刻起,公司核心数据系统的最高权限,已经跟我无关。
——至少在纸面上,跟我无关。
回到工位,我打开公司内部流程系统,找到归档处的邮件记录,调出《核心系统运维权限移交确认书》扫描件,存在手机里。附件下载的时候,我看了一眼页面右下角的时间戳:周四下午三点十七分。
昨天下午。也就是我完成最后一次全量备份之后的一个小时。
我把那个时间戳也截了图。
傍晚,邱潘那支评估队伍进场。他们背着黑色工具包,被刘一鸣领着往机房方向走。我站在工位旁边,看见邱潘在机房门口停留了几秒,抬头看了一眼摄像头,然后低头进门。
我的手指在手机上划了一下,调出监控画面的历史回放。那扇门,三天前吴建国也站在同一位置,抬头看摄像头的时间,几乎一模一样。
我关掉页面,把手机收进口袋。
晚上八点,公司群里开始热闹起来。
刘一鸣发了一张照片,是邱潘他们正在机房调试设备的背影,配文:「安全评估进行中,大家放心,安恒的专家很专业。」
底下有人回复:「新功能刚上线,这波稳了。」
「听说这次评估通过,公司能拿安全等保证书,明年大客户不用愁了。」
我翻完那些消息,没有回复。
九点零七分,我收到一封匿名邮件。
发件人是一串无规律的数字,没有署名,主题是:「给技术部唯一干活的人。」
我点开附件,是一张银行转账截图。吴建国个人账户,三周前,收到一笔20万元转账,付款方户名显示为「北京安恒数据服务有限公司」。
我盯着那张图看了整整三十秒。
然后我把邮件完整地导出,连同原始邮件头,一起加密存进了那块硬盘。
我没有回邮件,也没有删除。我只是在备忘录里加了一行字:
「有人想借我的手,捅别人一刀。」
发完这行字,我忽然想到了什么。
这封匿名邮件来得太巧了。巧到像是有人在等吴建国把我调出核心数据组之后,才把这把刀递到我手里。
我原本以为,吴建国抢功、克扣奖金,最多只是贪婪。但现在事情变了——如果他收了安恒公司的钱,如果他配合安恒进场做「压力测试」,如果测试当天发生了「意外」……
我翻出段哥那晚的语音,又听了一遍。
「吴总跟郑副总在机房门口站了半个多小时,郑副总手里拿着一张纸,吴总在用手机拍照。」
我关掉语音,给律师发了一条消息:
「如果一个公司副总,引进一家外包公司做安全评估,转手给下属打了20万,评估期间系统出事。这事往大里说,是什么性质?」
律师回复很快:「可能是故意破坏生产经营。还可能涉嫌商业贿赂。你是哪一方?」
我回:「见证人。」
律师说:「保护好自己,留好证据,别乱动。」
我把手机锁屏,放在床头。
窗外,城市声音渐渐低下去。
我在黑暗里躺着,感觉自己像一颗坐在棋盘边的棋手。对方已经落了三子,我手里的棋,一颗都还没下出去。
但我等得起。
因为我手里的东西,比他们想象的,多得多。
04
周末两天,家里照常过。
宋雨带孩子去广场玩滑梯,我在旁边坐着,看他们一大一小的背影,心里忽然觉得有点陌生。好像那个穿着连帽衫蹲在地上拍手的女人,和我生活的不是同一个人。
晚上她问我:「你这两天工作上的事,是不是不好?」
我说:「没有。」
她没再问了。她总是这样,不追着问,但我能感觉到她心里存着事。
周一早上一到公司,就听到一个消息:今晚进行核心系统压力测试,下午六点开始,全员待命。
通知是吴建国在工作群发的,底下跟了一串「收到」。
我坐在工位上,把手机放在膝盖上,打开那段加密的聊天记录看了看。邱潘上周五晚上进场调试时拍的照片,加上段哥那条语音,加上那封匿名邮件,加上我自己截图的移交时间戳——我把它们按时间顺序排好,在脑子里面转了一圈,然后关掉。
下午六点,压力测试开始。
会议室里坐满了人。大屏幕上,数据库的吞吐曲线开始剧烈波动。吴建国双手抱着胳膊站在屏幕前面,刘一鸣坐在操作台前,头也不回地盯着数据流。
郑海涛也来了。
他站在会议室门口,穿着一件藏蓝色风衣,指间夹着一支已经烧了一半的烟,没抽,也没放下。他的目光从屏幕上移到吴建国脸上,又移到我身上,停了一秒,然后移开。
曲线上冲,回落,再上冲。
十九点二十分,屏幕上的吞吐曲线突然断崖式下跌。
刘一鸣愣住了:「数据怎么断了?」
会议室里安静了三秒。
然后吴建国猛地转过身,指着我:「周野!你上周交了权限,是不是在系统里留了什么后门?!」
我坐在靠墙的椅子上,没动:「我交接的时候,你在场。」
「那为什么系统一崩就崩在你这儿?」吴建国的声音拔高,「你做了三年核心数据,你敢说你没留东西?」
会议室里其他人的视线一下落在我身上。有人开始窃窃私语,一个运营部的姑娘小声说:「我就说他怎么那么痛快就交权限了。」
郑海涛此时才开口,声音不高,却像把刀一样插进来:「今晚值班的所有的技术员都在,为什么只有你的前任系统出了问题?周野,你把话说清楚。」
我听见机房方向传来一声急促的报警声。
有人从走廊跑进来,喘着气喊:「郑总,数据库那边的服务进程全部掉了!现在整个系统都在回滚!」
会议室里的空气像被抽走一样。
郑海涛把烟按在窗台上,转头对保安说:「今晚机房封了,谁都不许进出。所有值班人员的手机、工牌,全部登记。」他顿了顿,又补了一句:「特别是周野。」
我站起来,把工牌摘下来放在桌上。
「可以。但我有个东西,要给你们看一眼。」
郑海涛眯起眼睛。
我从手机里调出一张照片——周四下午三点十七分,我在交接确认书上的签字页。照片放大的那一行小字,此时在大屏幕旁边亮着:
「原运维人员在系统异常情况下,保留紧急恢复能力,直至交接系统稳定运行满三十日。」
会议室里好几个人凑过来看。
刘一鸣先看到了,他张了张嘴:「这行字……我没注意过。」
吴建国的脸色变了一瞬,随即冷笑:「你早就算好了?故意留后手?」
「这不是后手,」我平静地看着他,「这是公司制度里的正常条款。你们自己定的规则,自己不看,现在出事了,想赖在我头上?」
郑海涛的眉头皱在一起,沉默了十几秒,然后说:「现在不是追责的时候。系统出了问题,今晚数据恢复不了,公司损失你担得起?」
我没接话。我把工牌往前推了推,转身走出了会议室。
身后传来徐静的声音:「你怎么让他走了?他要是回去删除记录呢?」
郑海涛没说话。
我走进电梯,门合上的那一刻,我才发现自己的后背全是汗。
到家已经快十点了。宋雨抱着孩子坐在客厅,孩子脸蛋通红,眼皮耷拉着。她看见我,说:「下午带他去楼下玩,回来就开始发烧。刚吃了退烧药。」
我摸了摸孩子的额头,心里那根绷了四个小时的弦更紧了。
「你还没吃饭?」她看我,「我去给你热饭菜。」
「不用。」我拉住她,「你看着孩子,我自己来。」
我走进厨房,打开冰箱,其实什么都不想吃。手机又开始响了。屏幕上跳动着一串数字:公司总部的座机。
我没接,把手伸进外套口袋,摸到那块硬盘的棱角。
它还在。
凌晨一点,孩子退了烧,宋雨搂着他睡着了。我坐在书桌前,重新打开那封匿名邮件,把原始邮件头导出来,一行一行盯着看。
发件路径经过三层跳转,最后一层的IP段,落在我所在的办公大楼。
五楼。
那层楼平时没什么人去。郑海涛的办公室,就在五楼尽头。
我盯着那个IP段看了很久,把它截图,存进硬盘。
然后我拨通了律师的电话。
他接起来的时候声音很清醒,像是一直在等我:「想好了?」
我说:「明早十点,公司会议室。麻烦你到场。」
他说:「行。带几份?」
我转头看了一眼床头柜上那块硬盘:「够他们喝一壶的。」
挂断电话,我在手机备忘录里打下最后一行字:
「明早十点,会议室。各位,我等这一刻很久了。」
我没有发出去,按了锁屏。
电脑屏幕上,那块备份硬盘的文件夹里,静静躺着三年来我留存的所有证据。窗口右下角的时间跳了一下:凌晨两点三十七分。
窗外起风了。
我没关窗,吹了一会儿冷风,然后回屋,在宋雨和孩子身边躺下。
那晚,我睡得很沉。
05
第二天晚上七点四十八分。
我打卡下班,走出写字楼大门。
身后那栋楼的大屏幕上,红色的数据滚动条还在闪烁。我回头看了一眼,玻璃幕墙照出我自己的影子——大衣,双肩包,工牌已经取下来了,揣在口袋里。
我平静地走过马路。
手机在口袋里震动起来。第一声还没结束,第二声又进来了,然后是第三声、第四声。
我走完那片斑马线,掏出手机看了一眼。
第一条,吴建国:「周野你现在在哪?机房又出问题了!马上回公司!」
第二条,刘一鸣:「周哥,系统崩了,网上数据全乱了,你知道什么情况吗?」
第三条,郑海涛:「周野,我劝你马上接电话。这个后果,你承担不起。」
第四条,HR徐静:「周野,收到请回复,公司需要你配合调查。」
后面还有。我没往下翻。
我把手机调成免打扰,装回口袋里。
路灯亮起来。
马路上车流如织,晚高峰还没散。我走了两公里,拐进小区门口的药店,买了一盒退热贴。收银员找我零钱的时候,指尖碰到了手机壳——那个东西已经烫得吓人。
到家,宋雨正在客厅给孩子喂饭。她看见我手里拎着退热贴,微微一怔:「孩子已经不烧了,你买这个干嘛?」
「备着。」
我换了鞋,把外套挂好,坐在餐桌前。宋雨给我盛了碗粥,我低头吃。她看了我一会儿,说:「你手机一直在响。」
我说:「嗯。」
「公司出事了吗?」
「没事,」我喝了一口粥,「就是有人想让我回去加班。」
「那你怎么不接?」
我把粥喝完,放下碗,看着她:「媛媛,那年终奖八百块的消息,是昨天下午到的。我的命没那么贱。」
宋雨安静了几秒,然后伸手把碗接过去:「要不要再添一碗?」
我说不用了,又坐了一会儿,起身去卫生间洗澡。
热水浇下来的时候,我听见外面手机又在震。水声和震动声混在一起,像某种遥远的鼓点。
我洗完澡出来,手机屏幕是亮的。我解锁,看到未接来电的红色数字——374。
从七点四十八分到十一点零六分,三个多小时,374个未接来电。短信99条,微信未读消息翻不到底。
我坐在沙发上,点开微信,看了几条。
吴建国发来的最后一条消息是:「周野,你最好这辈子都别开机。你知道今晚公司的数据值多少钱吗?十个亿!你担得起吗!」
郑海涛发的是:「周野,你的所作所为,公司已经记录在案了。我现在最后问你一次,你到底在哪儿。」
刘一鸣发的是:「周哥,别赌气了,快回来吧。数据恢复不了,咱技术部都得完蛋。」
我一条一条看过去。有些人的称呼从「小周」变成「周野」,从「兄弟」变成「你」。吴建国发了两百多条语音,大部分是骂的,我懒得听。
宋雨抱着孩子从卧室出来,站在门口看了我好一会儿。
「那你接吗?」
我抬起头,看了看她,然后拿起手机,当着她的面锁屏,翻过去,扣在茶几上。
「不接。」
窗外,远远的那栋写字楼,顶层的灯还亮着。
我知道他们在等我回去。等一个能恢复数据的人回去。
他们不知道,钥匙在我这里。
那晚我坐在沙发上,手机屏幕始终朝下。到半夜十二点,震动声终于停了。
世界安静得只剩冰箱的嗡嗡声。
我在黑暗里坐了很久,然后打开手机,点开加密相册。
里面躺着一张截图,工资到账短信:人民币800.00元。
我盯着那串数字看了几秒,划过去。
下一张:周四下午三点十七分,权限移交确认书。
下一张:数据库冷备份管理界面,文件修改时间——周四下午三点十七分,攻击发生前二十六个小时。
我选中那个备份文件,输入了一串32位的密钥。
屏幕上跳出一行绿色的小字:「恢复就绪。」
我把它关掉,打开公司邮箱,点开「写邮件」,输入收件人:郑海涛。
正文只有一行字:
「密钥在我这里。明早十点,会议室。带齐所有能说得上话的人。错过,你们就等着向董事会解释数据清零的事。」
发送。
三秒后,手机屏幕亮了起来,来电显示:郑海涛。
我按下了挂断。
然后我把手机静音,放在枕边,闭上了眼。
这一夜,我睡得比过去三年任何一夜都踏实。
早上九点五十九分,我走进公司会议室。
大屏幕还亮着,上面是那串红色的错误提示:「核心数据库离线,恢复成功率0%。」郑海涛坐在主位,吴建国站在窗边,徐静抱着文件夹坐在角落里,刘一鸣缩在门口。CEO张总坐在长桌尽头,手里捏着一支没拧开盖的笔。
郑海涛看见我,眼神里闪过一丝狠意:「周野,密钥交出来。昨晚的事,还能从轻处理。」
我拉开椅子坐下,把手机放在桌上,屏幕朝上。解锁,滑到那枚备份文件。
「郑总,」我说,「你看看这个文件的时间戳。」
我把手机推过去。
屏幕上,那块离线备份硬盘的管理界面正中央,一行小字清清楚楚:
「创建时间:2024年12月19日 15:17:42。」
而公司安全日志里的攻击发生时间,是12月20日19:21:07。
我的备份,比攻击早了整整二十六个小时。
会议室里静得能听见中央空调的风声。
张总放下笔,开口了:「周野,你要是能恢复数据,什么条件都可以谈。」
我没看他,看着郑海涛:「郑总,你说呢?」
郑海涛的嘴唇动了动,半晌,挤出两个字:「……周野。」
他声音发颤,像一根绷了太久的弦,终于要断了。
06
我坐在会议室正中间,迎着所有人的目光,把手机翻了个面。
屏幕上是那个备份文件的管理界面,绿色的「恢复就绪」字样,像一枚烙铁,烫在郑海涛脸上。
他先是不信,往前凑,眯着眼睛看了几秒。随即嘴角扯了一下:「你唬我?一个离职员工的离线备份,谁会认这个东西?」
我没接话。我又滑开下一张截图,放到他面前。
那是《核心系统运维权限移交确认书》的扫描页,右下角有他和吴建国的电子签章。第三条款项下方,那行小字被我用红圈标了出来:
「原运维人员在系统异常情况下,保留紧急恢复能力,直至交接系统稳定运行满三十日。」
「这条款一直都有,」我说,「你们自己定的制度,自己没看。系统出事后,你们连恢复页面在哪都不知道,反而连着打了我374个电话。」
吴建国在窗边动了动:「谁知道你备份里面是什么?你故意把数据带走,这是泄露公司机密!」
「带走?」我看着他,「备份是我在移交权限前做的,文件在公司的备用存储池里,不在我个人电脑上。我只是把恢复密钥留在了自己这里。」
「你!」吴建国的声音卡住了。
刘一鸣在门口小声补了一句:「吴总,我……我昨天想恢复来着,但没密钥,进不去。」
郑海涛冷冷看了我一眼:「你早就准备好了?就等着看公司的笑话?」
「郑总,」我放下手机,语气平静,「你确定你要在这个场合,跟我讨论‘谁早准备好了’这个问题?」
他眼神闪了一下。
我打开手机相册,翻出一张照片——邱潘,也就是安恒数据服务那位「邱工」,项目进场当天站在机房门口,抬头看摄像头的侧影。
「这位邱工,需要我给郑总介绍一下吗?」
郑海涛的喉咙动了一下:「他是外包安全评估团队的人,我认识有什么稀奇?」
「他是你老婆的表弟。」
会议室里响起一声细小的吸气声。有人转头去看郑海涛。
郑海涛的脸颊抽了一下,随即拍桌:「周野!你血口喷人!」
我把手机屏幕朝向他,又滑开一张截图:
转账记录。付款方:北京安恒数据服务有限公司。收款方:吴建国。金额:人民币200000元。日期:2024年11月29日。
「这笔钱,是三周前打给吴建国的。」我说,「吴总,你还记得这个冬天你跟我说过什么吗?你说今年公司艰难,发八百块已经是情分。」
吴建国的脸瞬间血色褪尽。他往后退了半步,后背撞上窗台,发出一声闷响。
「那……那笔钱是项目咨询费!你懂什么!」
「那我还有第二份记录,」我说,「邱潘进场前,先给你转了20万。系统崩盘当天,安恒的投标文件恰好挂进了采购系统的待审目录。这叫什么?」
「巧合。」郑海涛的声音硬得像块铁,「少在这儿编故事,我要请法务……」
「法务来了正好,」我打断他,「我律师也在外面等着。郑总,你觉得该让警察先看哪一样?是转移故障责任,还是收买内部人员制造事故?」
会议室里死一样安静。空调嘎达响了一声,吹出来的风冰凉。
郑海涛站在那里,嘴唇翕动了两下。他的手指攥紧又松开,松开又攥紧,过了好一会儿,才说:「你说这些,有证据吗?」
「我说的每一个字,都有。」我看着他和吴建国,「你们呢?」
吴建国腿一软,差点没站住。他伸手扶住窗台,声音抖得不成调:「周野,我……我不知道会闹成这样,是郑总让我……」
「闭嘴!」郑海涛狠狠瞪了他一眼。
张总终于开口了,声音沉得像压着一块铁:「郑海涛,你最好把这件事,当着大家的面,说清楚。」
郑海涛站在那里,脸色白一阵青一阵。他环顾四周,看见的都是回避的目光。他最后看向我,喉结上下滚了一圈,脚步往后退了小半步。
「周野,咱们可以坐下来谈。你想要什么,你开个价。」
他说这句话的时候,声音已经没有了之前的底气,像一颗钉子砸进了棉花里,软绵绵的,再也没有落脚点。
我只回了他一句:「郑总,你打我那374个电话里,没有一个是这么说的。」
会议室里,所有人都看着我。
我站起身,把手机收进口袋:「数据,我可以恢复。但我要一个正式的流程,当着所有人的面,把这件事从头到尾说清楚。该谁的责任,谁就担着。」
张总站起来,看着郑海涛:「通知董事会。」
郑海涛的眼皮猛跳了一下。
他张了张嘴,想说什么,最后却只挤出一句:「张总,我可以解释。」
张总没有理他,转身走出了会议室。
门在身后合上,像一锤定音。
07
当天下午,董事会还没开,吴建国先撑不住了。
散会之后不到一个小时,他躲进了茶水间。我路过的时候,门半掩着,听见他在里面打电话,声音压得很低:「……那笔钱的事你别跟任何人说……不会查到你头上,你先想办法把邱潘弄走……」
我站在门边,听了几秒,拿出手机,点开录音——然后推门进去。
吴建国看到我,手机差点掉了。
「周野!你……你偷听我打电话?」
「吴总,」我没关门,站在门口看着他,「你知道现在监控都带录音吗?你站在茶水间里打着电话喊别让任何人查到头上——你是嫌自己死得不够快吗?」
他脸色灰白,握着手机的手指微微发抖。
「那笔20万,是郑总让邱潘打给我的!我只是帮他们做了个进场审批,我什么都没干!」
「什么都没干,」我重复了一遍,「上周五,你在管理层群里说‘周野负责核心数据期间存在重大安全隐患’,这话是不是你发的?」
他愣住了。
「你什么都没干,你只是在我离开会议室之前,先把刀递好了。」
我转身走了。身后传来吴建国低哑的声音:「周野……你别赶尽杀绝。」
我没有回头。
下午三点,公司内部通报出来了:
吴建国因严重违反公司管理制度,涉及利益输送和失职,即日起停职,移交公司纪检与法务部门调查。
HR徐静因为配合吴建国篡改绩效评定流程,被调离人力资源岗位,转为行政助理,实习期三个月。
刘一鸣因为在群里公开传播不实信息,被当众点名批评,取消年度晋升资格。
通报在内部系统挂出来,短短的几百字,不到二十分钟,阅读量已经超过全公司人数。
技术部的同事纷纷从工位上探出头来看我。有人欲言又止,有人假装路过,只有坐在我对面的小何低声问了一句:「周哥,你真要走了?」
我说:「还没定。」
他张了张嘴,像是想说什么,最终只点了点头。
傍晚的时候,郑海涛在公司走廊堵住了我。
他换了一件衣服,头发梳得整整齐齐,像是什么都没发生过一样。他微笑着上前一步,压低声音:「周野,你有本事。但你以为你赢了?你老婆公司去年接的那个项目,靠的是谁的关系,你心里没数?」
我看着他,没说话。
「你觉得你扳倒了我,你就能安安稳稳坐这个位子?」他的声音像一条蛇,「我告诉你,我在这行业混了二十年,人脉比你想的深得多。今晚你让宋雨回家好好想想,她那个项目要是黄了,你们家的房贷谁来还。」
他笑着退后半步,朝我点了点头,转身走了。
我站在原地,看着他走进电梯。
电梯门合上的一瞬间,我掏出手机,给宋雨发了一条消息:
「郑海涛老婆今天给你打过电话没有?」
十分钟后,她回:「打了。聊了二十分钟,拐弯抹角问我公司项目的事。」
我握着手机,指尖凉了一瞬。
我回她:「以后她打来,直接挂掉。」
她没回,隔了一会儿,发来一个「嗯」。
那天晚上回到家,宋雨已经把饭做好了,孩子窝在她怀里吃奶。我看她,她也看我,谁也没提那通电话。
我坐到书桌前,打开抽屉最底层,那里躺着一个文件夹。
文件夹正面贴着一行标签,是我三个月前写下的两个字:
「备案。」
我把它打开,里面是一叠打印纸——郑海涛与安恒数据服务有限公司的业务往来备注、邱潘的工商关联信息、还有我记下的几条日期。这些当时只是职业敏感,没想到真的用上了。
我把那叠纸翻到最后一页,看着自己写下的那句话:
「2024年9月,郑海涛在内部会议上三次推荐安恒。理由是:报价低、响应快、关系硬。」
关系硬。原来硬的是他自己的钱包。
我把文件夹合上,放进双肩包,准备明天带去公司。
宋雨从厨房端来一杯温水,放在我手边,轻声说:「孩子睡了我再睡。」
我接过水,没喝,握在手里慢慢暖着。
窗外,那栋写字楼的灯,今晚灭得比往常早。
08
第二天上午十点,郑海涛果然报了警。
他大概是想先发制人:以「核心数据遭破坏、涉嫌破坏计算机信息系统罪」为由,要求公安机关介入调查。派出所来了两个民警,穿着制服坐在会议室里,郑海涛西装笔挺地坐在对面,神色从容,仿佛昨天被逼到墙角的不是他。
「警察同志,这个周野,他在离职前私自拷贝公司核心数据,还在系统里留了后门。我们请他回来协助恢复数据,他一直关机不接电话,我们有理由怀疑他就是幕后攻击者。」
我坐在他对面,等他说完,才开口:「警察同志,我配合调查。我手里有备份文件和密钥,可以现场演示恢复流程。另外,我有一份邮件原始信息,想请你们帮忙核实一个IP。」
我把那封匿名邮件的原始邮件头打印了出来,推过去。
「这封邮件的发件IP段,经过三层跳转,最终指向我们公司五楼的办公网段。五楼的东侧办公室,只有一间长期有人使用,就是郑副总的办公室。」
郑海涛脸色一变:「你血口喷人!谁都知道公司网络可以远程登录!」
「远程登录的IP不会经过办公楼的物理交换机,」我看着民警,「这个技术细节,现场任何人都能验证。」
民警收下了材料:「我们会做进一步核实。」
郑海涛的嘴唇动了动,还想说什么,他的手机先响了。
他低头看了一眼屏幕,脸色骤变,挂断了电话。
几秒后,电话又响了。
他再次挂断。
第三次响起的时候,民警看着他:「郑先生,电话可以不接,但如果涉及案情,我们建议你配合。」
郑海涛捏着手机,手指关节发白:「一个骚扰电话而已。」
会议室的门这时被人从外面推开了。
张总带着一个穿检察制服的人站在门口。他看了郑海涛一眼,说:「郑副总,市经侦那边来了人,想跟你了解一下安恒公司的项目合作情况。」
郑海涛坐在椅子上的身体,像被人从里面抽走了骨头,猛地向下一沉。他的手指在桌沿上死死扣了一下,眼神从凶狠变成空洞,张了张嘴,什么话也没说出来。
两名民警站起来,把材料收进档案袋。
走廊里传来一阵急促的脚步声。有人在外面喊:「郑海涛在哪个屋?」
我的律师从旁边走过来,低声说:「吴建国今天上午主动去派出所投案了,交出了和郑海涛的微信聊天记录。里面有一条消息,郑海涛写的是——‘让外包的人做一次压力测试,把小周挤走。他手里的密钥和代码,得留给我们。’」
我听完,没有意外。
这盘棋,我从周四开始下,走到今天,终于把最后的王、后、车、马全都逼上了绝路。
下午两点,郑海涛被经侦带走了。
他走出办公楼大门的时候,头发被风吹乱了,没有人帮他整理。他回头看了一眼那栋楼,目光最后落在我身上——那眼神里没有愤怒,没有后悔,只有一种空洞的茫然。
他没有再说话,低头钻进了警车。
围观的人群里有人在拍视频,有人在私下议论。刘一鸣站在人群后面,脸色晦暗,像是被抽走了一袋子力气。
我收回目光,走回办公室,给我妈打了个电话。她接起来就问:「最近忙不忙?吃饭没有?」
我说:「挺好的,都挺好的。」
挂了电话,我坐在新调来的办公室里。窗户朝南,下午的阳光正好照进来。桌上放着一杯宋雨早上给我泡的茶,已经凉透了。
我喝了一口,然后给张总回了一条消息:
「数据恢复,我来做。但我要的流程,不能少。」
他回了两个字:「当然。」
傍晚,我走出公司大门,天边烧着晚霞。我坐在地铁上,把那块硬盘攥在手里,闭着眼,感觉到地铁的晃动一寸一寸把疲惫从脚底抽上来。
手机忽然震了一下。
宋雨发来一张照片:孩子坐在新买的爬爬垫上,咧着嘴笑。
下面跟着一行字:「洗衣机修好了。等你回家,吃火锅。」
我看着她发来的字,在偶尔停顿的地铁里,感到胸口紧绷的那根弦,轻轻松了一寸。
我回了一个字:「好。」
地铁窗外的灯光,一帧一帧往后退,像一个旧的章节翻了篇。
09
一周后,董事会。
这是我第一次走进那间会议室。墙上挂着公司十年的发展历程照片,长桌尽头坐着张总和三位董事,旁边是法务负责人和公司顾问律师。
张总先开口:「周野,公司欠你一个道歉。」
他说得很正式,也很慢:「你在公司三年,项目贡献有目共睹。却被克扣年终奖,被调离核心岗位,甚至在系统异常时被人为指认为嫌疑人。这是公司的失察,更是管理层的失职。」
我把面前的茶水往旁边推了推,说:「张总,道歉我收下。但我要的不只是道歉。」
张总点了点头:「你说。」
「第一,」我看着他,「补发我被克扣的年终奖和加班费,按实际绩效核算。」
「可以,去年你实际绩效是A档,按制度应该发放年终奖八万四。加上三年未足额支付的加班费,一共十三万二,本周内打到你的账户。」
「第二,」我说,「撤销我档案里的不实处分记录,要书面文件。」
「已经准备好了。」
「第三,」我顿了顿,「技术部核心系统的权限管理制度要改。单人持权太危险,这次的事已经证明了。以后系统最高权限必须双人分管,重大操作留痕、双人复核,不能再出现一个人手里攥着全公司命脉的情况。」
张总沉默了片刻:「这个制度,同意。由你牵头来定。」
他看了我一眼:「另外,董事会一致决定,正式聘任你为公司技术总监。」
会议室里安静了几秒。
我没有立刻回答,而是低头看了一眼手机。屏幕上还留着那条800元的到账短信,和那374条未接来电的记录。
我按下锁屏,抬起头:「我接受。」
下午,我回到技术部的工位区。
一路上,同事们的目光追着我走。有人喊「周总」,有人点头,有人站在自己工位旁边,像是想说什么又不好意思开口。我走到自己的新办公室门口,回身说了一句:「以前怎么叫,以后还怎么叫。」
技术部的几个年轻人笑了起来。
刘一鸣站在角落里,犹豫了很久,走到我面前:「周哥,之前……对不起。我不该在群里乱说。」
我看着他。他个子不高,站在那里,像一棵刚被雨打过的树苗。「你对不起的不是我,」我说,「是你自己。以后把心思放在代码上,比什么都有用。」
他咬着嘴唇,点了点头,转身走回工位。
傍晚回到家,宋雨正蹲在厨房里择菜。孩子坐在婴儿椅里,手里攥着一根磨牙棒,啃得满脸口水。
我换了鞋,走过去,把孩子抱起来。他把沾满口水的手往我脸上糊了一巴掌,咯咯地笑。
宋雨回头看我:「公司的事定了?」
「定了。」
「还走吗?」
「不走。」
她的动作顿了一下,然后继续择菜:「那正好。明天周末,带孩子去商场看看洗衣机。之前那台修了三次,修的钱都快赶上买新的了。」
我说:「好。买双开门的那款。」
她瞥了我一眼:「你疯了?那款小一万。」
「年终奖补发了,」我轻描淡写,「八万四。」
她手里的菜掉进水盆里,溅起几滴水。她没有说话,背对着我,肩膀轻轻动了动,过了好一会儿才说:「那我再买条鱼。」
晚上十一点,孩子睡了。
我坐在书桌前,打开电脑,把那份《核心系统双人权限制度方案》的初稿保存好。手机屏幕亮了一下,张总发来消息:
「下周行业峰会,你代表公司做一个技术分享。主题你定。」
我盯着对话框想了想,打下一行字:「《如何让核心数据在紧急情况下可恢复》。」
他回:「好。」
我锁屏,看了一眼窗外。
那栋写字楼的灯,还亮着几盏。我忽然想起那个晚上,它亮得刺眼,像在逼我臣服。
现在,它只是一栋普通的楼,楼里有一群普通人,明天还要上班,还会发年终奖,还会在系统出问题的时候着急。
只是从今往后,不会再有人用八百块打发一个人,再用374个电话追着他要一条命。
我合上电脑,起身,听见卧室里传来宋雨和孩子均匀的呼吸声。
我站在客厅中央,站了很久,像是在确认什么,又像在告别什么。
然后我走进房间,轻轻关上门。
10
一个月后,我正式上任技术总监。
办公室朝南,桌子比原来的大了两倍。桌上放着一台新配的笔记本电脑,和一个旧文件夹。行政小妹进来送文件,瞟了一眼那个文件夹,没敢问,轻手轻脚放下东西就出去了。
我打开文件夹,里面是《关于「12·20」网络安全事件的处理结果通报》。
通报写得很正式:郑海涛因涉嫌对非国家工作人员行贿、故意毁坏财物罪,被依法批准逮捕。吴建国因参与配合,主动投案并如实交代,依法取保候审,等待进一步审理。邱潘及安恒数据服务有限公司相关责任人,已被公安机关立案侦查。
通报最后一段写的是:「公司已全面升级数据灾备系统,强化核心数据权限双人管理制度,并对相关受损流程进行整改。」
我看了两遍,把文件夹合上,收进抽屉。
抽屉最里面,还有一样东西——那部旧手机。
我把它拿出来,充上电。屏幕亮了,弹出一条系统通知:未接来电记录374条。
我点开,红色号码从19:48一直排到凌晨3:06。中间夹着几十条微信语音和短信的弹窗记录。我往上划了一遍,又往下划了一遍,一条都没有删。
我把手机放在桌子上,打开旁边的钱包,从最里层抽出一张存单。
800元。
那笔年终奖,我后来取成了现金。取款的时候柜台小姐问我:「是要新钞吗?」我说不用,随便。
我把那800块钱装进一个透明密封袋,压在抽屉最底下,旁边是那张打印好的通话记录截图。
抽屉关上,锁牢。
下午,我去机房检查灾备系统。新来的安全员小陈在机房门口等我,见我过来,搓了搓手:「周总,那个……我听说您之前,拒了领导374个电话?」
「是800块钱的事,」我按下门禁,「不是374个电话的事。」
小陈没听懂,挠了挠头,跟在我后面进了机房。
机房的灯一排排亮起来,服务器的指示灯有条不紊地跳动着绿光。我站在那台曾经崩掉的机柜前,看着屏幕上「备份完整 恢复正常」的字样,站了片刻。
晚上七点,我走出办公楼。
公司门前的路灯已经亮了。手机在口袋里震了一下,是宋雨发来的一段视频——孩子站在新买的洗衣机前,拍着手喊「爸爸」。
我看了三遍,在对话框里打下一行字:「下班回家。」
发送,锁屏。
我走过那条熟悉的斑马线,脚步比一个月前轻快很多。身后那栋写字楼的玻璃幕墙上,晚霞正在收尽最后一点光。
我忽然想起那个晚上。手机屏幕一次次亮起,一次次暗下去,像一场单方面的轰炸。那时候我坐在沙发上,什么都没做,只是把手机扣在茶几上。
不接,就是不接。
不接,是因为那八百块钱到账的时候,我已经听清楚了所有答案——有些人的感谢是八百块,有些人的慌张是374个电话,有些人的真心,藏在深夜一碗白粥的蒸汽里。
我把旧手机留在了办公室,却把那800块和374通电话一起,放进了人生最浅的这一页。
以后再有电话打来,我再也不会忐忑地去听了。因为我已经知道,哪一通值得接,哪一通,连响都不该响。
声明:本篇故事为虚构内容,如有雷同纯属巧合,采用文学创作手法,融合历史传说与民间故事元素,故事中的人物对话、情节发展均为虚构创作,不代表真实历史事件。