年终奖到账600元,我冷静打卡下班,当晚公司22亿核心数据遭受攻击,上级疯狂给我打了598个电话,我就不接怎么着!

免责声明:本文为虚构故事,请读者朋友注意辨别,理智思考。

年终奖到账600元,我冷静打卡下班,当晚公司22亿核心数据遭受攻击,上级疯狂给我打了598个电话,我就不接怎么着!

年终奖到账600元,我冷静打卡下班,当晚公司22亿核心数据遭受攻击,上级疯狂给我打了598个电话,我就不接怎么着!-有驾

第1章

“赵东升,你他妈看看这个数字,六百块,这是人发的吗?”

刘洋把手机拍在我桌上,屏幕裂了一道缝,正好把那个“600.00”从中间劈开。茶水间的微波炉叮了一声,没人去拿。三个同事站在复印机边上,假装在等文件,耳朵全竖着。

我把刘洋的手机推回去,拿起自己的杯子喝了口水。“年终奖发多少,公司按绩效算的,我今年项目交付延期了两次,六百是多了。”

“赵东升你脑子有病吧?”刘洋的音量拔高了至少两个档,财务部那个小姑娘从玻璃门后面探了下头,又缩回去了。“去年新来的实习生都拿了八千,李强那个傻逼天天在工位上打游戏,绩效打了B,拿了一万二。你呢?你他妈去年一个人扛了三个大项目,大半夜在会议室改方案改到保洁阿姨来催你走,你给我看看你工位上那个日历,去年你加了三百多天班,你跟我说你绩效不行?”

茶水间里终于有人端着杯子出来,经过我工位的时候,脚步慢了半拍。

我翻了一下工位上那盆绿萝的叶子,黄了三片。“公司可能有公司的考量,也不是第一年了。”

“不是第一年你妈!”刘洋一脚踢在我桌腿下面的垃圾桶上,金属壳子滚出去老远,里面的咖啡渣洒了一地。“去年你拿了三千二,你说‘年底预算紧张’,前年你拿了五千,你说‘项目回款慢’,今年你直接给我降到六百了?赵东升你在这家公司待了六年,你工资涨过几次你知道吗?你刚入职那会儿月薪八千,现在月薪九千五,六年涨了十五个点,你他妈是来做慈善的?”

我没说话,把椅子往前挪了挪,打开钉钉开始写周报。

刘洋站在我旁边喘了大概十秒钟,我从余光里看到他的手攥成了拳头,指关节发白。然后他转身走了,椅子腿刮在地上发出一声刺耳的尖叫。

下午四点半,钉钉上弹出HR的消息:“赵东升,来我办公室一趟。”

我回了个“好的”,把周报草稿保存,站起来。

HR总监姓王,四十出头的女人,办公桌上常年摆着一盆蝴蝶兰,花开了谢、谢了开,我从来没见过那盆花真的枯过。她示意我坐下,从抽屉里拿出一张纸推过来——离职申请单。

“赵东升,公司正在做人员优化,你也在名单里。与其年底走得难堪,不如自己体面一点。补偿金按N+1算,你签字的话,年前就能走完流程。”

我没碰那张纸。“理由呢?”

“绩效排名末位。”她把电脑屏幕转过来给我看,一张Excel表,上面密密麻麻的名字,我排在倒数第三。“你看,这个排名是系统根据KPI自动生成的,也不是我针对你。”

“系统生成的数据源是谁提供的?”

王总监笑了一下,把电脑转回去了。“各部门负责人交叉评价,这是公司的制度。赵东升,你也不是新人了,应该明白,有些事走流程就是走流程,追究到底对谁都没好处。”

我在椅子上坐了两分钟。窗外是成都冬天那种灰白色的天,雾蒙蒙的,远处三环路上的车像虫子一样慢慢爬。HR办公室里很安静,只有她电脑主机风扇嗡嗡转的声音。

“我不签。”我说。

“那你可能要面对的是——”她顿了一下,“明天开始,你的工位会被调到负一层的机房值班室,负责夜班巡检,每个月补贴两百块,但你的岗位等级会调整为助理级,薪资按助理标准重新核定。赵东升,这比你自己走亏得多。”

我站起来,把她那张离职申请单推回去。“我考虑一下。”

走回工位的路上,走廊两侧的工区里有人在低声议论。我听见“六百”“赵东升”“HR叫过去了”这几个词在空气里飘。有人抬头看我一眼又迅速低下去。李强坐在靠窗那排,手机横着,估计在打游戏。

五点整,我关上电脑,把桌上的绿萝塞进包里,拎着外套下楼。

小区门口的面馆老板娘正在往汤锅里下面,看见我进来愣了一下:“今天这么早?”

“嗯,今天下班早。”我找个角落坐下,要了二两杂酱面,加一个煎蛋。

手机上钉钉开始震,王总监发了三条消息,我没点开看。朋友圈刷到刘洋两个小时前发的动态,一张图,银行的扣款截图,配文是“六年青春喂了狗”,下面有七八个同事点了赞。

老板把面端上来,煎蛋煎得边儿有点焦,我掰开把蛋黄拌进面里。手机又震,这次是电话,屏幕上显示“王总监”三个字。我摁掉,继续吃面。

吃完了又加了一碗面汤,喝完擦了嘴,扫码付了十四块钱。老板娘问我要不要加个卤蛋,我说不用了,今天胃口一般。

回到家六点不到,天已经全黑了。这套老破小的两居室是我三年前租的,月租两千三,墙皮有点掉,厨房的水龙头从去年冬天就开始渗水,跟房东说了三回,他说年后修,一修就修了一年多。我把包扔沙发上,绿萝掏出来放窗台上,倒了点水。

手机开始疯了。王总监打了四个电话,我没接。钉钉上部门群突然炸了,我点进去看了一眼,运营部的小周在群里发了一句话:“数据后台突然登不上了,谁动了权限?”

紧接着技术部的人开始刷屏。有人问是不是服务器在维护,有人说没有接到任何通知,有人说核心数据库的只读副本出现异常,读出来的数据全是乱码。最后技术部总监陈浩在群里发了一条:“所有人原地待命,不要操作任何后台,等排查结果。”

我退出钉钉,把手机扣在茶几上,开了电视。本地新闻频道在播菜价,青椒涨了两毛。我拿遥控器换了个台,放的是重播的《武林外传》。

手机屏幕亮了又暗,暗了又亮。七点的时候陈浩直接给我打了电话,我看着他名字在屏幕上跳了三分钟,直到它自动挂断。然后短信进来了,陈浩的:“赵东升,后台日志显示有人从你的账号在六点零三分执行了一条数据库导出指令,22个G的增量数据被拉走。这事必须马上说清楚。”

我没回。把短信删了,继续看郭芙蓉使排山倒海。

八点十二分,钉钉上直属领导方经理的消息弹出来:“东升,不管你在哪,现在立刻回公司。事情很大,你回来我们当面聊,什么都好说。你接一下电话。”

我看着那行字,把手机翻过去扣在沙发垫子下面,起身去厨房烧了一壶水,泡了杯茶。水龙头还是漏,水滴在瓷砖上嗒、嗒、嗒。

八点半,我手机从垫子下面掏出来的时候,未接来电已经攒了四十七个。王总监九个,陈浩十一个,方经理八个,剩下的有同事的、有人事的、还有三个是座机号码我不认识。短信和钉钉挤成一锅粥,最新一条是刘洋发的:“东升,你别冲动,有什么事回来再说,哥几个都在,公司现在乱套了。”

我给他回了一个字:“没。”

九点零三分,陌生号码打过来,我接了。

“赵东升先生吗?”对面是个男的,说话带一点广东口音,“我是公司法律事务部的张律师。目前公司已经对核心数据异常流出事件启动了内部调查,由于日志指向你个人账户的非法操作行为,我代表公司正式通知你,请你立刻配合调查,否则公司将报警处理。”

“嗯。”我说。

“你‘嗯’是什么意思?赵先生,这不是开玩笑的事,22个G的核心数据,涉及公司未来三年的战略规划、客户资源库和产品核心算法,这已经构成了商业机密泄露,你明白后果吗?”

“律师先生,”我喝了口茶,水有点烫,“你们报警之前,先查查我那个账号一个月前被谁重置过密码。”

对面沉默了两秒。

“你什么意思?”

“意思就是,”我站起来走到窗边,看着对面楼里亮着的一排排窗户,“今天是年终奖发放日,我的账号今天下班前还是助理级权限,不具备数据库导出资格。一个助理级账号,从哪儿拿到的核心数据导出权限,你帮我想想。”

电话那头传来翻纸的声音,窸窸窣窣的。过了大概十几秒,张律师的声音重新响起来,语速明显慢了:“这个信息我们需要核实,但是赵先生,无论账号状态如何,执行操作的是你的工号,你负有保管责任。”

“我负有保管责任,”我重复了一遍他的话,“那你帮我查查,今年八月三号凌晨两点零七分,谁用我的工号登录了OA系统,把项目文件包发到了一个外网邮箱。查到了告诉我一声,我也想问问那个人,为什么发走了我三个项目的核心源码之后,那三个项目就全黄了。”

张律师那边彻底安静了。

我听见他呼吸的声音变得很重,然后是椅子被猛地推开的声音。电话没挂,但他在跟旁边的人说话,声音压得很低,我听见“八月”“外部邮箱”“那三个竞标失败的”这几个短语从听筒里漏出来。

“赵先生,”张律师的声音又回来了,这次客气了很多,“关于你刚才提到的信息,公司会做进一步核查。但是在核查结果出来之前,你能不能先来一趟公司,面谈一下?”

“今天不行,”我说,“我今天下班了。”

“赵先生,这不是——”

“律师先生,”我打断他,“我工位在负一层值班室,明天早上八点上班。你要是着急,明天八点来值班室找我。今天就算了,我下班了。”

挂了电话,手机静了大概三分钟。然后又响了,这次是一个从来没存过的号。我接起来,对面是个女声,听起来三十多岁,说话很稳。

“赵先生你好,我叫周曼,是公司董事会的独立董事。”

我握着手机的手紧了一下。

“我知道你不想回公司,我理解。但是你刚才跟张律师说的那件事,我需要你当面跟我讲清楚。八月三号,你的账号发的那个外部邮箱,地址你还记得吗?”

窗外开始下雨了,细细密密的,打在玻璃上声音很碎。我盯着窗玻璃上滑下来的水珠,说了一个邮箱前缀。

电话那头安静了很久,久到我以为信号断了。

“赵先生,”周曼的声音变了,那种稳当忽然裂了一道缝,“这个邮箱名,你确定吗?”

“确定。”

“你从什么时候知道的?”

“八月四号早上。”

“为什么等到今天才说?”

窗玻璃上的水珠汇成一条线往下淌。我低头看了一眼茶几上那只绿色的塑料垃圾桶——是刘洋下午踢翻的那个,我出门前从工位底下捡起来了,带回了家。桶壁上还沾着一小块咖啡渍。

“因为今天发年终奖了,”我说,“六百块。我想看看,我手里这条命到底值多少钱。”

对面良久没出声。雨声填满了那段空白。

“赵先生,你今晚哪都别去,在家里等我。我现在过去找你。”

电话挂了。

我把手机放回茶几上,屏幕又亮了一下。598个未接来电的数字跳了一下,变成了599。

我没管它,端起茶杯把最后一口凉茶喝了,从包里掏出那盆绿萝,拿剪刀把三片黄叶子剪掉了。

手机又响了。

这次屏幕上跳出来的名字是——“陈浩”。

我盯着那个名字看了五秒,然后摁了挂断,把手机塞进沙发垫子底下。

阳台窗户没关紧,雨丝从缝里飘进来,落在那盆刚剪完叶子的绿萝上。

外面有人按门铃。

我没动。

门铃又响了三声。然后是敲门声。不重,很有节奏,咚咚咚,停两秒,再咚咚咚。

我走到门口从猫眼往外看。

楼道灯昏黄黄的,站着一个穿黑色大衣的女人,头发淋湿了贴在脸侧,手里攥着手机,屏幕亮着,上面的通话界面显示正在拨号。

然后我沙发垫子底下的手机震了。

她抬起头,对着门里说了一句话。

我隔着门板听清了。

她说:“赵东升,陈浩今天下午六点一刻,用你的账号把数据导走了。我不在电话里说,是因为他说不定正在听。”

她顿了一下,补了一句:“你开门,我帮你把他送进去。”

楼道灯闪了一下,灭了。

走廊里黑下去的一瞬间,我听见楼下传来一声很轻的关门声,然后是脚步声,皮鞋踩在水泥台阶上,一步步往上走。

第2章

我没开门。

周曼的手从猫眼里消失了,我听见她往后退了一步,高跟鞋在楼道的水泥地上磕了一下。皮鞋声越来越近,停在了三楼半拐角的地方。然后是一阵钥匙串晃动的轻响,像某个人在翻口袋找东西。

我把门锁反拧了一圈,退到客厅中央站着。茶几上手机又亮了,陈浩的名字跳上来,这次我没有挂断,等它自己响了七八声,然后接起来放到耳边。

“喂。”

“东升!”陈浩的声音裹着一股长途奔跑后的喘息,“你现在人在哪?你听我说,别听任何人瞎讲,数据的事绝对不是你想的那样,我被阴了,你等我——”

我把通话摁断了,转头走向玄关。

伸手开门的瞬间,周曼正站在门垫上,左手扶着门框,脸色被楼道窗外的路灯映成灰白的。她右手还攥着手机,屏幕上那通拨给我的电话仍然显示着“正在呼叫”,但通话已经断了。

“陈浩刚才给你打电话了?”她问。

“对。”

“他说什么了?”

“他说他被阴了。”

周曼嘴角往下压了一下,那不是笑,更像是一个人听见了意料之内的谎话之后,面部肌肉本能做出的反应。“他当然被阴了。他六点一刻从你账号导数据的时候,用的终端IP是公司内网,但是导出的目标地址是他在家里架的一台私有云。他以为没人知道那个IP的归属。”她把手机翻过来给我看,屏幕上是一张截图,上面列着一串IP地址和一栏备注,“我二十分钟前让人查的。他连你家门牌号都记在系统备注里了。”

我盯着那张图看了两秒。“你查到这些,是想帮他,还是想帮他?”

周曼把手机收回去,雨水顺着她额前的碎发往下滴。“我要是想帮他,就不会冒雨跑过来站在你门口淋着。赵东升,你八月三号就知道了那个外网邮箱,你手里一定有那个邮箱的邮件存档,对不对?”

楼道拐角处的皮鞋声消失了。整栋楼安静得像被按了暂停键,只有下面某户人家电视里传出来的广告背景音,隐隐约约的,听不清在卖什么。

“进来说。”我侧身让开门口。

周曼跨进来的时候,大衣下摆甩了一串水珠在门槛上。她没换鞋,直接走到客厅中央环顾了一圈。那盆绿萝、茶几上的空茶杯、沙发垫子下面半截露出来的手机。

“你一个人住?”她问。

“嗯。”

“那就不存在第三个证人要处理的问题了。”她把大衣脱下来搭在椅背上,里面是一件黑色高领毛衣,胸前别了一个小小的银色胸针,形状像一把扳手。“你手上那份邮件存档,给我看一眼。我只管陈浩那件事,你手里其他任何信息,我不问,也不记。”

我打开手机,翻了十几秒,点开一个加密文件夹,把屏幕转过去对着她。

那是一封八月三号凌晨两点零七分发出的邮件。收件人是一个Gmail地址,邮件正文只有一句话:“第一期交付完成,剩余两次按约定执行。”附件是三个压缩包,文件名称分别是当时我手上三个在研项目的核心代码目录。

周曼的手指在屏幕上方悬了半秒钟,然后她把手机轻轻推回来。“发件人不是你,对不对?”

“不是。我的OA账号在八月三号凌晨被人用手机验证码重置过一次密码。我第二天早上登录的时候发现登录记录有一条凌晨两点零三分的异常,IP归属地是公司内部VPN网关。我查了那个时间点的门禁记录,陈浩的工牌在凌晨一点五十二分刷了研发区的门。”

“这个证据你保存了?”

“存了三份。手机、邮箱草稿箱、还有我老家的一个硬盘。”

周曼往后退了一步,靠上沙发扶手,双臂抱在胸前。她的表情变了,那种最开始在门外的紧张感消退了一些,取而代之的是某种更接近于计算的东西。

“你从八月四号就知道是陈浩把你的项目源码卖给了竞争对手,所以你那三个项目全部竞标失败,公司损失了一大笔预期收入,而你被扣上了能力不行的帽子,绩效排名一落千丈。”她语速很快,像在一笔笔清算,“你知道是他,但你从八月到现在一句话都没说过。你在等什么?”

我走到厨房重新烧了一壶水。水龙头还在漏,嗒,嗒,嗒。“我在等一个时机。陈浩把源码卖出去之后,他以为这个事过去了,没人会查。他今年升了一级,从技术副总监变成总监,年终考评拿了S,奖金据说是六位数。我手里的东西如果八月就放出来,公司最多内部处分他一下,大事化小。因为他手里攥着另外两个项目的主控权限,公司不敢动他。”

“但现在不一样了。”周曼跟到厨房门口,身体斜倚着门框。“他今天用你的账号导出了二十二个G的核心数据。这件事闹大了,报警是必然走的一步。他如果只是卖你那三个项目,那是商业机密泄露,定性是民事赔偿级别。但他今天导出去的数据,涉及公司未来三年的战略产品线,这个级别的泄露是刑事。”

我把烧好的水倒进两个杯子,推了一杯给她。“所以我今晚哪也不去。他导数据的时候用的是我的账号,报警的话第一轮调查的矛头肯定先指向我。他以为能让我当这个替罪羊。”

周曼接过杯子没喝,捏在手里搓着杯壁。“但他没想到你手上还攥着八月份的邮件证据。一旦警方介入调查,你把八月份的记录交上去,时间线一对,他的动机链就完整了。他半年内两次从你账号窃取核心数据,第一次谋财,第二次——”

“第二次是栽赃。”我替她说完。

客厅里安静下来。周曼终于喝了口水,喉结动了一下。“那你今晚为什么不在电话里把这件事跟我说清楚?非要让我跑一趟?”

“因为电话可能被监听。”我看着她,“你既然能查到陈浩在家里架的私有云,那你也该知道,他把那台私有云的远程监控模块同时绑定了公司内网的一个蜜罐节点。公司任何人的通话记录、短信内容、甚至钉钉的流量,他都能调取部分元数据。”

周曼端着杯子的手停了一下。

“你怎么知道的?”

“八月查他的时候顺便摸到的。”我坐回沙发上,把垫子底下的手机掏出来看了一眼屏幕。未接来电跳到了六百二十三个,最新的几个是方经理和王总监交替打的。“他往我账号里塞了一个监控脚本,从我手机里收短信验证码。八月那次他就是靠那个脚本拿到我手机验证码重置了OA密码。我今天下午被HR降级到助理岗,账号权限被收回了助理级,但他那个脚本还在我手机上挂着。”

周曼放下杯子,凑近了一点。“你明知道他手机里有监控脚本,你今天还一直不接电话?”

“我手机今天下午四点四十五分被王总监叫去谈话之前,我把那个脚本的进程杀了。他今天一下午都没收到我的短信同步数据,所以他六点一刻用我账号导数据的时候,他没办法实时确认我有没有察觉到账号被用了。”我把手机屏幕解锁,调出一个后台进程管理界面,上面一行绿色的字显示“com.zhanghao.monitor - 已停用”。“他现在应该很慌。他六点多导完数据,以为我还在HR办公室签离职单,结果七点多发现我没回公司,电话也不接,他的栽赃预案全乱了。”

周曼盯着那行绿色字看了很久。然后她站起来,走到阳台边,推开了一扇窗缝。雨丝飘进来,她深深吸了一口湿冷的空气。

“赵东升,你今年多大?”

“三十一。”

“你在这家公司干了六年,拿六百块钱年终奖。你手上攥着能把一个技术总监送进去的证据,但你在工位上种了六年绿萝。”周曼转过来,雨水把她的半边肩膀打湿了。“你不觉得亏吗?”

“亏。”我说。

“那你为什么不动?”

我低头看着茶几上那杯凉透的茶。茶叶沉在杯底,一片片铺开,像某种写在杯底的暗号。“因为我想看看,在我动手之前,公司里有没有人会先发现这件事不对劲。八月的事,不是我一个人被坑了。那三个项目竞标失败,公司的直接损失超过八百万。如果公司的内审系统正常运转,陈浩的行为根本藏不了四个月。”

周曼沉默了几秒钟,然后她笑了一下。那种笑很淡,像一个人终于解开了一道想了很久的题。

“所以你今年绩效被打到倒数第三、年终奖发六百、HR让你签离职单、今天被降级去负一层机房,所有这些事,你全接了。你在测试这家公司的底线。”

“我在等一个节点。”我拿起遥控器把电视关了,《武林外传》的片尾曲戛然而止。“今天这个节点到了。”

周曼走回沙发前,俯身从大衣口袋里掏出一个小号的录音笔,银色的,比普通的U盘粗一圈。她把录音笔放在茶几上,按了一下侧面的按钮。一个小红灯亮了。

“现在开始,你说的每句话,我都会录音。这录音会在今晚十二点之前备份到三个不同的云端,其中一个是第三方存证平台,法律效力足够。”她直起身看着我。“赵东升,我要问你一个问题,你回答完之后,剩下的事情我来安排。”

“问。”

“你手里关于陈浩的证据,除了那封邮件和登录记录,还有没有第三个。”

我站了起来,走进卧室。书桌最下面那层抽屉,我伸手到最里面,摸出来一个牛皮纸信封。信封很旧,边角都被磨圆了,封口用透明胶带缠了三圈。我拿出来放在周曼面前的茶几上。

“你自己拆。”

周曼撕开胶带,抽出里面的一叠打印纸。最上面那张是一张Excel截图的打印件,表格里列着二十多条转账记录,收款账户全部指向同一个对公户头,付款方的备注栏里,每一行的经办人签名都签着一个名字——“陈浩”。

周曼翻到第二页,手指顿了一下。

第二页是一张微信聊天记录的截屏。对话双方的头像都打了码,但文字内容清清楚楚。其中一方在八月二号的晚上十一点四十分发了一条消息:“那三个项目的源码,你明天凌晨拿得到吗?”对方回:“账号权限已经搞定了,等验证码过来就行。”发消息的人又问了一句:“不会留痕迹吧?”对方回:“我监控着那个人的手机呢,他睡觉了。”

周曼把那张纸捏在手里,指尖发白。

“这个聊天记录,你哪来的?”

“八月三号下午,我入侵了陈浩的私人微信云备份。他那天的聊天记录还没来得及删。”

她把所有纸张塞回信封,拉上封口,抬头看我的眼神里多了一种我从没在任何人脸上见过的东西。那里面有一丝警惕,一丝赞叹,还有很淡的一丝——怕。

“你入侵了他的私人云备份?”

“对。”

“你知道这是违法的吗?”

“知道。”

周曼咬着下唇,过了一会才松开。“但这份证据的获取路径不干净,如果拿到法庭上——”

“所以我不打算把它直接交给警方。”我把信封从她手里抽回来,重新放回抽屉最深处。“这东西我只给一个人看。那个人今晚应该已经快到了。”

周曼的眉头皱起来。“谁?”

门铃响了。

我走向玄关,从猫眼望出去。楼道灯已经重新亮起来了,昏黄的光线下站着一个中年男人,穿一件灰色夹克,头发花白但梳得很齐整。他没带伞,肩头湿了一片,站姿笔直,像那种当过兵的人。他手上拎着一个公文包,另一只手里攥着手机,屏幕上是一个即将拨出的号码。

周曼走到我身后,从猫眼的侧面看了一眼,身子猛地僵了一下。

“他是谁?”她声音压得很低。

“公司审计委员会的老主任。”我的手搭上门把手,“他姓孙。陈浩第一次卖源码那三个项目的竞标结果出来之后,他私下找过我一次,问我有没有觉得什么不对劲。我当时说没有。”

我把门打开了。

孙主任看见我的第一句话是:“赵东升,你邮箱里那封八月三号的邮件,转发一份给我。”

说完这句话他才看见我身后的周曼。他的表情没有任何波动,只是点了点头。“周董也在。那省事了。”

他从公文包里抽出一台平板电脑,亮着的屏幕上是一份内部调令的电子文档。“审计委员会今晚八点四十分紧急召开了一次特别会议,决议通过了一项临时授权——我持有对公司全部技术账号操作日志的无条件查阅权限,时限四十八小时。”

他把平板转过来,屏幕上那行红字清清楚楚——“授权人:审计委员会全体成员。”

“陈浩导数据的事,我在七点二十分就知道了。技术部有人悄悄给我透了风。”孙主任的语气一直是平的,像在念一份说明书,“我原本打算调取系统日志走常规流程,但刚才周董的人查了IP之后,我意识到这件事比我想的大得多。所以——”

他低头看了一眼手表。

“还有十二分钟到九点。我建议你现在就把那封邮件转到我邮箱里,然后你、我、周董三个人对一下时间线。九点十五分,我会以审计委员会的名义正式触发内部调查程序。九点半之前,我们会向辖区经侦支队提交初步报案材料。”

楼道里的灯又闪了一下。

周曼从后面递过来她的手机,屏幕上是一个已经编辑好的收件人地址。“你从他那个外网邮箱账号登录进去,把邮件原文整个转发到孙主任的邮箱。不要截图,要原始邮件头。原始邮件头里有发件服务器的指纹信息。”

我接过她的手机,在上面输入了自己那封加密邮件的登录凭证,找到八月三号那封原始邮件,点击转发,填入孙主任的邮箱地址。

发送成功的那一刻,我的手机震了一下。

屏幕上跳出来一条短信,来自一个没有存名字的号码。

只有一行字。

“赵东升,你把东西交出去了对吧?没关系。你想想你妈住的那个小区,物业费谁在交。”

我握着手机,指尖的温度好像一瞬间被抽干了。厨房水龙头还在滴水,嗒,嗒,嗒。

周曼注意到了我的脸色。“怎么了?”

我没有回答。我把手机翻过去扣在茶几上,走到窗边往下看了一眼。楼下路灯旁边停着一辆白色SUV,驾驶座位置亮着一小片手机屏幕的蓝光。

那辆车的排气管后面,一缕白烟正在雨里慢慢飘散。

第3章

我盯着那辆白色SUV看了将近十秒。雨雾把车牌糊了一层,我只能看清最后两位是“79”。驾驶座上的蓝光灭了,排气管的白烟也散了,但车没走。

孙主任从后面走过来,站在我右肩侧往下看了一眼。“车你认识?”

“不认识。”

“车牌号记下来没有?”

“最后两位79,川A。”我转过身,把手机从茶几上拿起来重新亮屏,那条短信还在。“但这个号码我认识。这是陈浩另一个手机号,他用来联系外部的那个。我八月查他的时候见过。”

周曼从我手里接过手机,把那个号码存进自己的通讯录,然后递回来。“这条短信留好,别删。威胁证人的人身安全,这本身就够立案了。”她转头看向孙主任,“孙主任,报案材料里能不能把这条也附上?”

“能。但你得先确认他有没有实施跟踪行为。”孙主任翻开公文包拿出一个巴掌大的笔记本,拔开笔帽在上面写了一行字。“你把那条短信的内容和时间精确到秒报给我。周董,你那边的人能不能调一下楼下路口的监控?看看那辆车今晚几点出现在这里的。”

“能。但我的人查监控需要几分钟。”周曼已经开始低头打字了,手指在屏幕上飞快地划。

我站在客厅中央,后脑勺贴着墙壁的冷。那行字还杵在我脑子里——“你想想你妈住的那个小区,物业费谁在交”。

“孙主任,”我说,“我妈住的那个小区,物业费一直都是我从工资卡里自动划扣的。陈浩这句话的意思是,他知道我妈住在哪儿,也知道她的日常规律。如果他的消息来源是公司内部的员工信息库,那我不但能告他威胁,还能额外告一条侵犯公民个人信息。”

孙主任停笔看了我一眼,那眼神很沉。“你知道他为什么要在这个时间点发这条吗?”

“他在试我。”我坐到沙发上,手指搓着裤缝。“他发了这条短信,看我什么反应。如果我慌了立刻打电话回去,他就知道我手里没准备好后手,他可以继续施压。如果我没反应,他反倒不敢轻举妄动。”

客厅里安静了几秒。周曼打完字抬起头来。“我让人查那个号码的注册信息了。这种不记名卡一般查不到实名的,但至少把通话基站位置锁一下。如果今晚他的手机信号一直出现在这附近,那就能做实跟踪。”

孙主任把笔记本合上,拍了拍封面。“我先联系经侦那边的熟人,把案件的初步框架搭好。九点半报案,今晚十二点之前,陈浩应该会被限制离境。”

他转身往门口走,但走到一半停住了,回头看我。“赵东升,你这一晚上做得都很稳。但我得提醒你一件事。”

“您说。”

“你入侵他的微信云备份这件事,从现在开始,你只跟我和周董提过。如果警方问起来,那封邮件的原始数据来源是你在八月三号发现异常之后通过公司官方日志系统导出保存的。你说你是从日志里下载了邮件原文和登录记录的备份,从来没有碰过任何私人云服务。这一点你记住了没有?”

我看着他。他的眼睛里有东西,那种老审计人特有的、能把灰色地带说成黑白分明的本事。

“记住了。”

“好。还有。”他把门拉开一半,外面的冷风灌进来。“你那个手机里的监控脚本,现在还能不能重新启动?”

“能。我暂停的不是删除。只要给它权限,它就能重新跑起来。”

“那等会儿你重新把它打开,让它继续往陈浩的终端回传数据。”孙主任的声音低下去,像怕被走廊里什么看不见的东西听见似的。“他现在以为自己的监控还是有效的,只是今晚信号不稳定。你让他继续看到你的手机动态,他就不会想到你已经有防备了。今晚十二点之前,他只要还用那个脚本接收你的短信同步信息,他的终端IP就会持续向你的手机发送数据请求。我们能用这个反向定位他的实时位置。”

周曼抬起头看着孙主任,嘴角露出今晚第一个算得上满意的表情。“孙主任还是老审计的风范。”

“风范不值钱,证据才值钱。”孙主任把门彻底拉开,“我去楼下那辆车边上绕一圈,把他的车牌号拍清楚。如果他真是陈浩本人坐在车里,那就更省事了。你们俩别下来,等我消息。”

他走了。门在他身后轻轻合上,锁舌咔哒一声。

我站在原地没动。周曼坐在沙发上,双手捧着茶杯,茶早凉了她也没喝。“赵东升,你跟你妈关系好吗?”

这个问题来得太突然,我愣了一下才回答:“还行。”

“如果你觉得今晚这条短信对你妈构成实质性的安全威胁,我现在就可以帮你联系人,把你妈接到安全的地方住几天。公司虽然小,但我在公安系统有两三个说得上话的朋友。”

我摇头。“不用。我妈一个人住了十几年,比我想象的警觉得多。陈浩要是真的去她小区门口蹲着,她一个电话打给社区民警的速度比打给我还快。”

周曼看了我一会儿,然后低下头继续打字。我回到沙发上坐下,拿起手机,打开了那个监控脚本的后台,把它重新激活。屏幕上弹出一行提示:“服务已重启,同步终端IP:192.168.3.17”。我把那个IP抄下来发给孙主任,然后关了屏幕。

之后将近二十分钟,客厅里只剩周曼的键盘声和厨房水龙头执拗的滴水声。我盯着那盆绿萝,叶子上还挂着傍晚浇水留下的水珠,剪掉黄叶的断面泛着新鲜的青色。

手机震了。孙主任的消息:“车牌确认了。白色SUV,川A·7R79。车里没人。但驾驶座的脚垫上有一部手机,亮着屏,正在运行一个数据监控界面。我没碰。叫了辖区派出所的人过来守车。你那边监控脚本有没有收到新数据?”

我切到后台看了一眼。三秒钟前,那个终端IP发来一次心跳请求,状态显示“接收中”。

“有。心跳信号正常,每十五秒一次。”

孙主任秒回:“那就行。他没跑远,手机留在车上说明他就在附近用另一台设备远程看着车。等他回来拿手机。”

我把手机放回茶几上。周曼大概是听见了消息提示音,抬起头来。“他跑不了。经侦那边我给朋友打了招呼,今晚九点四十五分到十点之间,他们会先以‘公司内部审计配合’的名义给陈浩发一条通知,让他十点之前到派出所做一个简短的问话笔录。他如果去了,直接留人。他如果不去——”

“他如果不去,就说明他已经准备跑路了。”我替她把后半句说了。“那现在的问题就变成了:他手里那二十二个G的数据,有没有已经转出去。”

周曼的表情沉了一度。“他今天六点一刻导出来的数据量是二十二个G,全程跑了大概十一分钟。公司内网的下载速度上限是每秒三十五兆,他十一分钟最多拉走二十三个G。他有可能还没来得及做二次转发。”

“也有可能他已经做了。”我站起来,走到窗边又看了一眼楼下。那辆白色SUV的驾驶座里仍然没人,但挡风玻璃上多了一张蓝色的贴纸——应该是派出所的人来过了,留了条子。“他如果聪明的话,导出来的第一时间就应该往外部硬盘或者云端同步。公司内网到外部云端的出口带宽很窄,二十二个G至少要传四十分钟。六点一刻到现在快三个小时了,他肯定已经传完了。”

周曼咬了一下嘴唇内侧。“那你觉得他会把数据往哪儿送?”

“我查过他那个私有云的存储配额,只剩下不到五个G的空间。所以他今晚一定需要第二块存储介质。我猜他在来我家之前,先回了一趟他自己住的地方,把数据转存到了一个外接硬盘上。现在他手里那个硬盘就是他的命。”我转回来看着周曼。“你能查到陈浩今晚六点半到八点半之间的车辆轨迹吗?”

“交给我。”周曼拿起手机拨了个号,走到阳台上去讲话。她声音压得很低,我只听见“车牌号”“天网”“时间窗口”这几个词断续漏出来。

就在这时,我的手机亮了。一条新短信,仍然是陈浩那个不记名号码。

内容只有四个字:“我在楼下。”

我把手机举起来给刚从阳台走回来的周曼看了一眼。她的瞳孔骤然缩了一下,但她开口的声音依然平稳:“他在诈你。他车里的手机还在接收你那个监控脚本的心跳数据,如果他真的在楼下,那心跳信号的基站定位应该和你家的基站编号一致。你查一下心跳数据里带的基站信息。”

我切进监控脚本的日志,翻到最近一条心跳记录。数据包里有一个字段是LAC和CellID,手机的基站定位编码。我把那串数字复制出来,打开一个基站查询小程序。结果跳出来的那一瞬间,我松了一口气。

“这个基站编号覆盖的是我家楼下五百米范围。他是真的在附近。”

周曼的手指攥紧了手机壳边缘。“他在赌你会不会从这栋楼里走出去。”

“他要见我。”我把监控脚本的数据转发给孙主任之后,把手机塞进裤兜。“我去见他。”

“赵东升——”

“我不会出去。”我走到玄关,从鞋柜顶上拿了一把伞,但没有撑开。“他从楼下能看到我这间屋的窗户。我只要站到阳台上,他就能看见我。我们隔着六层楼说话,他动不了我。”

周曼沉默了两秒。“我站在屋里帮你录像。他只要开口说任何威胁性的话语,音频录下来就能当证据。”

我推开阳台门。雨比之前小了一些,细得像雾,落在脸上凉飕飕的。我扶着栏杆往下看。那辆白色SUV旁边的人行道上站着一个人,穿一件黑色的连帽冲锋衣,帽子扣得很低,但路灯的光还是把他的脸轮廓照出来了——陈浩。

他仰着头看我的窗口,看见我出现在阳台上,举起右手,做了个“下来”的手势。

我没动。

他放下手,从口袋里掏出一个巴掌大的银色硬盘举过头顶,冲我晃了晃。那个硬盘的侧面贴着一小块蓝色标签,隔着六层楼我看不清上面写的什么,但那大小和形状,是市面上最高规格的加密移动硬盘,容量足够装下公司未来三年的全部战略数据。

他喊了一声什么。雨声把他的声音压得很碎,我听见几个音节的轮廓——“……数据……你妈……”但听不完整。

周曼在我身后举着手机,镜头对着楼下。“他在说什么?”

“没听清。”我朝楼下喊了一句,“陈浩,你说什么?”

陈浩把硬盘放下来,又喊了一次。这次声音更大了,雨里终于飘上来几个我能辨别的字——“……你妈的物业费……我交的……不是你的卡……”

我的手指在栏杆上收紧了。

他说我妈的物业费是他交的。也就是说,他不仅知道我妈住在哪儿,他还在某个时间点绕过我,主动去物业那里动过手脚。那个小区物业费的扣款渠道一直都是我的工资卡,但如果他用某种方式截断了那条扣款链路,物业那边收不到钱就会联系住户本人。我妈要是接到物业催费的电话,她会怎么想?她以为儿子出了什么事。

我朝楼下喊回去:“你什么时候去改的物业扣款?”

陈浩没回答。他把硬盘收进口袋,转身走了几步,拉开那辆白色SUV的副驾驶门,弯腰钻进去,关上门。引擎发动的声音隔着雨传上来,车头灯亮了,照出一片湿漉漉的柏油路。

他没有走。车灯一直亮着,引擎低低地响,像一头蹲在雨里的野兽在喘气。

周曼在后面低声说:“他在等你下楼追他。”

“我不追。”我从阳台上退回来,关上玻璃门,锁好。回到客厅里,拿起手机看了一眼。孙主任的消息在屏幕上躺着——“派出所的人已经到位。九点五十分,正式带人。你稳住。”

九点四十八分。

楼下那辆白色SUV的引擎突然熄了火。车灯灭了。

然后我听见一声车门开合的闷响,紧接着是跑步声——皮鞋踩在湿漉漉的人行道上,啪嗒啪嗒,越来越远。

我冲到窗边往下看。陈浩的身影已经从路灯的光圈里消失了,跑向小区后门那条窄巷子的方向。那辆白色SUV还停在原地,副驾驶的门敞开着,里面的阅读灯亮着,照见那枚银色的加密硬盘还放在座椅上。

他没带走硬盘。

我的手机响了起来,这次是一个陌生座机号。我接起来,对面是孙主任的声音,气息有点急:“派出所的人刚才准备靠近车辆,陈浩提前发现跑了。但现在有个新情况。”

“什么情况?”

“车里面那个硬盘,派出所的同志刚才用执法记录仪拍了。那个蓝色标签上写的是一个你绝对猜不到的名字。”

孙主任顿了一拍,声音压到极低。

“标签上写的是‘周曼 - 备份’。”

我攥着手机转过头。

客厅里,周曼站在我身后三步远的地方,手里还举着那个银色的录音笔。她看见我转过来的眼神,表情没有丝毫变化。

她嘴角动了动,说了一句话。

“赵东升,他说那个硬盘是我的,你就信了?”

第4章

我的手还举着电话,孙主任在另一头沉默了三秒。周曼站在茶几边,录音笔的小红灯一明一灭,像某种心跳。

“赵东升,”周曼的声音很平,“你先告诉孙主任,我是什么时候到你这儿的。”

“八点四十二分。”

“对。八点四十二分之前,我跟陈浩没有任何私人联系。今晚之前我甚至不知道这个硬盘的存在。”她把录音笔举高了一点,朝着我手机的方向,“孙主任,你听到了。我在这个屋子里说的每一句话都被录下来了,包括刚才那句。”

孙主任在电话里嗯了一声。“周董,我没说怀疑你。但硬盘上的标签写着你的名字,这件事我必须查。你今晚的所有通讯记录,我会在明天上午之前调取。如果你跟陈浩有任何一次通话或者短信往来,时间戳不会撒谎。”

“你查。”周曼说,“查完了告诉我结果。”

我挂了电话,把手机屏幕扣在茶几上。周曼和我在这个不到二十平米的客厅里对站着,中间隔了一盆绿萝和两只凉透的茶杯。

“你刚才说,你今晚之前不知道这个硬盘。”我说。

“对。”

“但你刚才在阳台上录像的时候,你的手机取景框一直没对准楼下的硬盘。你录的是陈浩本人。”

周曼的嘴角动了一下。“因为我在录他的脸和他说的话。硬盘放在副驾驶座椅上,角度太低,隔着六层楼拍不清楚。我录人证比录物证优先级高,这是基本取证逻辑。”

我又看了一眼那盆绿萝,叶子上的水珠已经干了。“你八点四十二分到我家门口的时候,你说了一句话——‘陈浩今天下午六点一刻,用你的账号把数据导走了。’你当时怎么知道时间精确到六点一刻的?”

周曼把录音笔放在茶几上,直起身。“因为我在六点十六分收到了一条系统警报。我作为独立董事,有权限接收公司核心数据库的异常操作实时推送。那条推送显示账号zhaods在18:15:37执行了一条全量读取指令,目标表超过二十张。我六点二十分就打电话给技术部的人问情况,六点三十分陈浩回了我一条微信,说他在做例行数据清洗。”

“那条微信你还有吗?”

“有。”周曼拿出自己的手机,翻了十几秒,转过来给我看。屏幕上是一段微信聊天记录,陈浩的头像旁边写着“周董,刚做了个数据整理,把一些老的测试表清理了一下,没什么大事。”时间是18:31。

“这条消息现在看就是他在打掩护。”我把手机推回去,“但他为什么要在六点一刻导数据?他下午四点多就知道我被降级了,如果要栽赃我,最合理的操作是在降级之前用我原来的高级账号导数据。降级之后导出来的日志会有时间戳上的矛盾——一个助理级账号在六点一刻导出全量数据,系统的权限审计模块一定会报警。他这么做等于故意留下一道破绽。”

周曼眉头皱起来了。“你是说,他故意让系统报警?”

“你今天晚上收到的那条系统推送,会不会也在他的预料之中?”

客厅里安静下来。水龙头还在滴水,但我忽然觉得那声音变大了。

周曼拿起手机,打了一个电话。接通之后她只说了一句:“帮我查一下今天晚上六点一刻那条系统警报的推送对象名单,全部列出来。”然后挂了。

她把手机放到耳侧等着回消息,手指在沙发扶手上轻轻敲着。她的指甲剪得很短,没有颜色。

两分钟后手机震了,她低头看屏幕,然后脸色变了。

“系统警报的推送对象一共有五个人。”她把屏幕转过来给我看,上面列着五个名字:审计委员会孙主任、技术总监陈浩、董事会秘书、CTO,还有——周曼。

“我是这五个人里的一个。但这五个人里,只有我和孙主任今晚真正看到了这条警报。”她的声音变慢了,“如果陈浩知道这条警报会推送给谁,他在六点一刻动手,就是为了让这条警报被我看到。他知道我会查,也猜到我今晚会来找你。”

我站起来,走到窗边。楼下那辆白色SUV还停在原处,副驾驶车门敞着,里面阅读灯的光照在那个银色的硬盘外壳上。小区后门的方向安安静静的,陈浩跑进去的那条窄巷子像一张黑幽幽的嘴。

“他把硬盘留在车里,把标签写成你的名字,然后跑了。”我转回来说,“这是一个定向的烟雾弹。警方看见那块硬盘上的标签,第一反应是你跟他之间有勾结。虽然你今晚八点四十二分才跟我第一次见面,但硬盘在你名字出现的时间点跟他导数据的时间点是一致的——六点一刻导出来的数据,硬盘上写的却是你的名字。如果你真的不知情,那这盘棋就是他一个人把你也算进去了。”

周曼咬着下唇内侧,过了好一会儿才松开。“他想制造我和你的对立。你看见标签第一时间就会怀疑我,咱们俩一旦互不信任,今晚的所有配合就全崩了。”

“但我没有怀疑你。”我说。

“你没有?”

“你把录音笔一直开着,从进我家的第一秒就在录。一个串通作案的人不会给自己留下这么完整的视听记录。你不但没关录音笔,还在孙主任打电话的时候主动提醒他你全程在录音。这跟硬盘标签上的名字正好反着来——标签指向你,录音笔证明你。”

周曼看了我几秒钟,然后坐回沙发上,后背靠进垫子里面,像是散了一口气。“赵东升,你这种人留着做程序员真是浪费了。”

我没接这句话。低头看了一眼手机,孙主任的微信又进来了。是一条语音,我点开外放。

“派出所的人进了那条巷子,暂时没追上。但他们在巷子尽头一个垃圾桶旁边发现了一部手机,应该是他跑的时候扔的。手机已经恢复了部分数据,里面有今晚八点十分的一条未发出的短信草稿,收件人是——”孙主任停了一下,“是你,赵东升。”

那条草稿的内容是什么?”

孙主任停顿的时间更长了,我听见他在话筒那边深吸了一口气。“草稿里写着:‘硬盘不是周曼的。硬盘是方经理的。我拿错了。真正的数据在方经理手上。’”

客厅里的空气像被冻住了三秒。

方经理。我直属领导。今天下午钉钉上发了消息让我回去的那个男人。他从头到尾没有出现在今晚的任何一条线索里,只在七点多发过一条四平八稳的劝我回公司见面的消息。而陈浩扔在巷子里的手机,草稿箱里存着这样一条指向他的短信。

周曼从沙发上坐直了。“方经理跟这件事有关?”

“我不知道。”我的脑子在飞快地转,“但陈浩的这条草稿是发给我的。他当时准备把这件事直接告诉我,说明他到今晚八点十分的时候,还想跟我做交易。他想用‘真正的数据在方经理手上’这条情报换我——”

“换你不交八月份那封邮件的证据。”周曼接过我的话,“他清楚一旦你交出了八月邮件,他跑不掉。但如果他告诉你数据是方经理导走的,他就能把自己摘出来,把脏水全泼给方经理。”

“但他没发出去。”我说,“他为什么没发?”

周曼翻了一下手机上的时间。“八点十分。他扔手机的时候是八点四十之后了。这条草稿在手机里存了至少半个小时没发,说明他中途改变了主意——也许是他觉得方经理还有用,也许是他发现了你手机里的监控脚本已经重启了,他在用另一台设备监视你的手机信号,临时决定不发消息、直接来楼下堵你。”

厨房水龙头的滴水声忽然停了。渗了快一年的水,在这个雨夜里奇迹般地止住了。几秒钟后,管道里传来一阵咕噜咕噜的排气声,像是整个楼的水压突然被人动了手脚。

周曼的电话又响了。她接起来听了几句,然后看向我,表情里多了一丝警惕。

“孙主任刚才让人查了方经理今晚的行踪。方经理在七点四十分离开公司,开车去了南边一个高速服务区,在那里停了四十分钟,然后开车回来了。现在车停在他自己家楼下的车库里,人上去了。”

“高速服务区?”

“南边的永兴服务区。那个服务区再往南走二十公里就是机场。”

我和周曼对看了一眼。

方经理四十分钟的时间,足够在服务区的某个角落里把二十二个G的数据从一块硬盘转到另一块硬盘上、或者交给某个人。他回来的时候身上的数据载体可能已经换过了,也可能什么都没有了。

我的手机在裤兜里震了一下。掏出来一看,是方经理的短信。只有一句话。

“东升,我刚从外面回来。你家里那个漏水的水龙头,我让人帮你修了。别问为什么,有些事你知道了反而不安全。”

我盯着屏幕,手指关节发白。

他知道我家水龙头在漏水。今天晚上之前,我只跟三个人提过这件事——公司前台小刘、楼下面馆老板娘、还有上周来修空调的师傅。方经理不可能从这几个人嘴里知道这个消息。他一定来过我家。就在今晚某个时间段,他来过我家门口。

我冲到门口打开门,弯腰去看门垫底下。我平时出门都不留钥匙在垫子底下,但今晚六点半我上楼的时候把钥匙放在外套口袋里,外套进门就扔沙发上了。我在门垫下面摸了一圈,指尖碰到一个冰凉的金属片。

拿出来看。一把钥匙,铜色的,两齿,门锁上的刮痕痕迹很新。

周曼跟到门口,看见那把钥匙,声音变了调:“他进过你家?”

“他很可能进去了。”我推开虚掩的卧室门,迅速扫了一遍——书桌抽屉还是关着的,窗帘原样,床单平整。我走到床边蹲下去,看了一眼床底下。空的。

但书桌最下面那个抽屉的锁扣,我走的时候是横着的,现在锁扣竖起来了。

我拉开抽屉,那封牛皮纸信封还在原地。打开看了一眼,里面的纸张全部完好。但我伸手到信封底下摸的时候,摸到了一个不属于我的东西——一张对折的白纸。

展开来看,上面是用圆珠笔写的一行字,笔迹很急,有五个字被墨水晕开了。

“数据我截了一半。剩下的一半在陈浩手里。你妈那笔物业费我昨天补交的。别让周曼碰那个硬盘。她不是你这边的人。”

落款没有签名。

但那个“她不是你这边的人”后面跟了一个画上去的小符号——一个方块中间划了一道斜线。那是公司内部沟通里方经理专用的签批符号,我认得出来,项目验收单上他签过无数次。

周曼站在卧室门口,看见我手里的纸,声音压得很低:“写了什么?”

我把纸对折塞回信封里。“方经理进过我屋,留了张条子。”

“他跟你说了什么?”

我看着她的眼睛。她说“她不是你这边的人”的时候,声音里没有任何波动,像她根本不关心自己的名字会不会出现在那张纸上。

“他说他把一半的数据截下来了。”我选了半句真话,“剩下的一半还在陈浩那里。”

周曼点了点头。“那现在的问题是那一半数据在哪儿。陈浩今晚出现在你家楼下又跑了,他手里只剩下半份数据,价值大打折扣。他如果要卖,必须找到方经理手上那半份凑成完整的二十二个G。他们两个人现在处于互相捏着对方命门的状态。”

我低头看着手机屏幕上方经理最后那条短信——“你家里那个漏水的水龙头,我让人帮你修了。”

水龙头确实是刚才停的。他在这句话之前的某一个时刻,确实安排了人来修。但那个人是谁?物业?还是他自己带的人?

我走到厨房打开水龙头试了一下,水流正常了,不漏了。水压稳了,哗啦啦的。转身要关的时候,我看见洗碗槽旁边放着一个白色的小药瓶。我之前没见过。瓶身上贴着一条手写的标签,写的是“管道堵漏剂”。但那个标签底下的原标签还露着一个边角,我看清了原标签上印着的几个字——“布洛芬缓释胶囊”。

方经理留了一瓶止痛药在我家厨房里。

他要么是今晚自己吃了药忘了带走,要么是故意留在那儿给我看。如果是后者,那他在告诉我一件事——他今晚的身体状况不好,他做了某种决定,那个决定可能让他需要止痛。

我攥着药瓶走回客厅。周曼正站在窗边往下看,听见我的脚步声,头也不回地说了一句:“楼下派出所的人把那块硬盘拿走了。他们用证物袋装起来了。孙主任说等鉴定结果出来之前,那块硬盘暂时封存在派出所的物证柜里。”

“好。”我把药瓶放进裤兜里,坐回沙发上。

今晚所有的线索在我脑子里铺开了一张网——陈浩导数据、硬盘留车上、标签写周曼、巷子扔手机、草稿指方经理、方经理进我家、水龙头被修、药瓶留厨房、一半数据被截、短信警告别信周曼。

每一条线索都能连上一条线,但没有任何一条线是直的通向终点的。像是有人故意在所有直线上打了结,让每一条路都多出一个分叉。

周曼从窗边转回来,看了一眼墙上的钟。九点五十八分。

“陈浩如果还在这附近,他跑不远。孙主任让人封锁了小区四个出入口。”她走回沙发旁边坐下,拿起那个银色的录音笔,关掉了录音键。“赵东升,我问你一个事,你如实回答。”

“问。”

“你八月份查陈浩的时候,除了查到他跟那个外网邮箱的联系,你还查到过他跟公司里其他人之间的转账记录吧?我在你那个信封里看到的二十多条记录,转账经办人是陈浩,但收款方的对公户头——那个户头的法人是谁?”

我看着她,没有立刻回答。

她也在看着我,眼神很稳,像一颗钉在木头里的钉子。

“那个户头的法人是方经理的姐夫。”我说。

周曼的表情没有变,但她搭在沙发扶手上的手指轻轻蜷了一下。

“所以你八月份其实就知道方经理也有可能涉及?”她的声音放轻了,像怕惊动房间里什么看不见的东西。

“我知道那二十多笔钱流向了方经理亲戚名下的公司,但我没有直接证据证明方经理本人知情。可能是陈浩借用了那个户头洗钱,方经理的姐夫只是个通道。也可能是方经理默许了。”我把手伸进口袋,摸到那瓶布洛芬的棱角。“但今晚他出现在我家里、留了纸条说截了一半数据、还让人修了水龙头——他正在试图告诉我他是哪一边的。”

周曼低下头,过了好一会儿才抬起来。“那你觉得他是哪一边的?”

我的手机屏幕亮了。

孙主任的消息:“陈浩抓到了。在小区后门外面的河堤边上蹲着,身上没有硬盘、没有手机、没有任何数据载体。但他主动说了一句话——‘我要见赵东升。我告诉你们剩下那半份数据在哪儿。’”

紧接着第二条消息进来:“方经理的车刚才从自家车库开出来了,正往你们小区方向走。”

我看着那两条消息,然后把手机递给周曼。

她看完之后,把手机还给我。我们俩同时站起来,同时朝玄关方向迈了一步。

门铃响了。

我走过去从猫眼里往外看。

走廊灯下站着方经理。他穿着一件深蓝色的羽绒服,拉链没拉,里面是一件皱巴巴的衬衫,最上面两颗扣子没系。他的脸色很白,眼睛下面是浓重的青色,左手攥着一串车钥匙,右手插在口袋里。

他像提前知道我会打开门一样,盯着猫眼的位置,嘴唇动了动。

隔着一扇门,我读出了他说的话。

“开门。我把东西带来了。就在我车上。”

他顿了一下,补了一句。

“但你先跟我说清楚一件事——陈浩把硬盘标签写成周曼的名字,是你教的,还是她自己演的?”

第5章

我的手搭在门把手上,方经理隔着猫眼跟我对视。他身后走廊尽头的灯又闪了一下。周曼站在我身后三步远的位置,没动,呼吸轻得像不存在。

我把门拉开了。

方经理没往里走,他靠在门框上,右手从羽绒服口袋里抽出来,手里捏着一把车钥匙。他的手指关节有些肿,指甲缝里嵌着一道黑印子,像是搬过什么东西。

“你先回答我那个问题。”他说。

“硬盘标签的事不是她教的,也不是我教的。”我侧身让他进门,“她自己从系统推送里看到的陈浩导数据,自己跑过来的。”

方经理跨进门,看了一眼客厅里的周曼,点了点头,那动作像是确认了自己预料之中的某件事。“周董,你今晚从公司过来,路上下雨开得慢吗?”

“不慢。”周曼回答,“我从天府三街出发,走高架,三十分钟。”

“那你应该在八点三十五分左右就到了。”方经理把羽绒服脱下来搭在椅背上,里面那件衬衫的领口有一块深色的污渍,看着像咖啡。“你八点四十二分才敲赵东升的门,中间那七分钟你在哪儿?”

客厅安静了一拍。

周曼没有犹豫。“我在楼下停车场打了两个电话。一个给技术部的人确认推送警报细节,一个给审计委员会的赵秘书问孙主任今晚的开会情况。你要通话记录的话,现在就能看。”

方经理没接这话,转头看向我。“赵东升,你跟我干了四年活。你应该知道我在什么事上不会撒谎。你查陈浩的时候查到了我姐夫那个户头的转账记录,你当时为什么没来找我对质?”

“因为我查到的二十多笔转账,转出时间最早的一笔是今年三月,但你姐夫那个公司账户的开户日期是去年十二月。陈浩去年年底就在准备了。你姐夫可能只是被利用的那个通道。”

方经理听完这句话,忽然笑了一下。那个笑很短,嘴角一扬就收回去了,像某种肌肉的惯性反应。“你果然查过开户时间。那你知道我姐夫那个公司去年十二月开户的时候,是谁去银行办的现场手续吗?”

“不知道。”

“是我姐。她拿着我姐夫的身份证去开的,理由是帮朋友走一笔工程款。”方经理从裤兜里掏出一包皱巴巴的红塔山,抽出一根叼在嘴里,没点。“我今年三月发现那笔钱转进去的时候,打电话问我姐。她说她不知道那是什么钱,只是帮陈浩一个忙,陈浩说那笔钱是合作方的项目回款,借她公司的户头走一下税务,给五百块手续费。”

周曼开口了:“你发现问题之后做了什么?”

“我三月底把陈浩叫到天台谈了一次。他说那笔钱是跟外部一个技术服务商的分成,走我姐户头是因为那个服务商要公对公开票。他说得滴水不漏,合同、发票、签收单全有。我当时信了。”方经理把烟从嘴里拿下来,捏碎了。“直到八月,赵东升那三个项目竞标全部失败,我复盘竞标报告的时候发现对手的方案里用了一段代码结构,跟赵东升第三项目的核心逻辑几乎一模一样。我顺着查了一下那段代码的公开时间,发现它在八月初就被人上传到了海外一个码农论坛上。”

“那你怎么确定上传的人是陈浩?”

“我不确定。但我查了那个论坛帖子的注册IP,用的是公司内网的一个出口节点。那个节点分配给技术部专用。公司技术部里能在凌晨两点拿到内网出口权限的人,数不出几个。”方经理把捏碎的烟丝扔进垃圾桶,动作很轻。“我今晚七点四十分开车去永兴服务区,是因为六点五十分的时候我收到一条匿名短信,说那二十二个G数据的三分之一会在七点半被人送到服务区西侧停车场垃圾桶底下的塑料袋里。发短信的人让我去拿。”

“你去了?”周曼的声音紧了一下。

“去了。垃圾桶底下确实有一个黑色塑料袋,里面装着一块移动硬盘。”方经理从羽绒服内袋里掏出一个U盘大小的东西,黑灰色的金属壳,接口处还缠着一圈透明胶带。“这块硬盘里是今晚六点一刻导出数据的三分之一,大概七个G。我打开看了第一批文件目录,全是公司产品线的市场调研原始数据,不是核心算法。”

“剩下的三分之二呢?”

“不在我手上。可能还在陈浩手里,也可能被他转走了。但我判断他转不完二十二个G的全部数据,因为公司出口带宽的限制我刚才说过。他最多能完整转走今晚数据的三分之一,剩下的会分段慢慢传。我拿到的这七个G,应该就是他计划今天夜里完成的第一批传输。”

我伸手接过了那个硬盘,翻过来看了看背面。接口处的透明胶带上粘着一小块贴纸,上面用黑色油性笔写了一个数字——“1/3”。

“这上面的笔迹你认识吗?”

方经理摇头。“匿名短信发过来的,号码查了是虚拟号。贴纸上的字像是故意写得歪歪扭扭的。”

周曼从我手里拿过硬盘看了一会儿。“如果这个硬盘是陈浩让人放到服务区的,那他为什么要让你去拿?他完全可以把这一份数据直接交给下家,绕开你。”

方经理的嘴角压了一下。“因为他不信任下家。那个下家要的是完整二十二个G的数据,如果我先拿到了三分之一,陈浩就可以拿这三分之一当筹码跟下家谈价。他让我当中间保管人,是因为他今晚太乱、人手不够。”

厨房里新修好的水龙头安安静静的,不再滴水。整栋楼好像都比平时安静,楼下马路上偶尔过一辆车,轮胎碾过湿漉漉的柏油声传上来,闷闷的。

我的手机在口袋里震了一下。掏出来看,孙主任的消息:“陈浩在派出所问询室里坐着,什么都不说,只说见你。你最好来一趟,他开出的条件是——见你之后,他把剩下三分之二数据的去向告诉你。”

我把消息念给对面两个人听。

方经理听完之后往门口走了一步。“我去。”

“你不能去。”周曼拦住他,“你现在手上拿着三分之一的数据硬盘,你去见他等于把两个持有数据的人放在同一个空间。派出所的监控看着,警方会怀疑你们在串通。”

“那让赵东升一个人去?”方经理转回来看我,“你一个人去见陈浩,他跟你说了什么、没说什么,出来之后你跟警方怎么证明?”

周曼从大衣口袋里掏出那个银色的录音笔。“我跟他一起去。我不进问询室,在走廊上录全程。赵东升进去跟陈浩谈,我在门外监听。他谈完出来,录音拿给孙主任备档。”

方经理看着那只录音笔,眼神动了一下。“周董今晚的准备做得真齐全。”

“方经理,”周曼把录音笔收回口袋,语气没有任何起伏,“你今晚七点四十分开车去服务区之前,给赵东升发的那条钉钉消息里写的是‘你回来我们当面聊,什么都好说’。你知道那时候赵东升已经被降级调去负一层了,你让他回来,回来做什么?回来加班吗?”

方经理的表情变了一瞬,像被人踩住了鞋带。

“我当时以为数据是他导的,让他回来配合查。”他说,“后来我发现那个匿名短信,才知道事情不对。”

“你什么时候发现的?”

“八点左右。我上了高速,收到第二条匿名短信,里面给了服务区的具体位置和垃圾桶编号。我那时候脑子才转过弯来——导数据的人用了赵东升的账号,但发匿名短信的人知道数据的精准去向。这说明导数据和发短信的人大概率是同一个,他在调虎离山。”

周曼走到门口换鞋了。“走吧,赵东升。车在楼下。”

我跟着她往外走。经过方经理身边的时候,他把那串车钥匙塞进我外套口袋里。“我车停在小区东门路边,灰色迈腾,后备箱里有一个登山包。包里有今晚所有匿名短信的手机截屏、两块备用硬盘的读盘记录、还有我在服务区停车场拍的车牌号照片。你把那个包带到派出所去,给孙主任看。”

他手掌在我肩上按了一下。“东升,我今晚去服务区拿硬盘这事,如果明天公司要追责,我认。但我得让你知道一件事——你八月被偷的那三个项目源码,我三月份就知道陈浩在走我姐公司的账,我四月份就应该报警。我拖了五个月,让你一个人扛着绩效排名垫底、年终奖被砍到六百块。这事我对不住你。”

他说完往后退了一步,靠在走廊墙上,从裤兜里重新摸出一根红塔山叼在嘴里,这次打火机啪地一声点了。

走廊里弥漫开一股烟草味。

周曼已经下了一层楼梯,脚步声在水泥台阶上回响。我站在门口最后回头看了一眼方经理。他靠着墙抽烟,羽绒服挂在椅背上,衬衫领口那片咖啡渍在楼道灯下看更明显了。

“方经理,你今晚吃了止痛药吗?”

他夹烟的手停了一下。“没吃。”

“我家厨房多了一瓶布洛芬。”

他低头看着烟头,灰烬落了一截在地上。“那是我放的。我走的时候忘了拿。今天下午HR给你降级的时候我就在旁边那间会议室里开会,开完会我头一直疼。来你这之前我在楼下药房买了一板。修水管的时候拆了一粒吞了。”

我点了点头,转身下楼。

周曼的车停在小区东门口,一辆黑色帕萨特,车身溅了半高的泥点。她拉开驾驶座的门坐进去,我坐副驾,安全带扣上的咔哒声在安静的车厢里格外响。

她发动车,往派出所的方向开。雨又开始大了,雨刷左右扫着挡风玻璃,把路灯的光切成一段一段的。

“你信方经理刚才说的那些吗?”她问。

“信一半。”

“哪一半?”

“他去服务区拿硬盘是真的,那个硬盘里的数据是真的。他三月发现陈浩走他姐公司账目是真的。”我靠在座椅上,盯着前方雨刷扫过的弧线。“但他今晚八点四十到我家之前,那条‘数据我截了一半’的纸条上用了他自己的签批符号,这个行为逻辑不对——一个人如果真的要匿名留条提醒我,不会在条子上画自己专用的签名标记。他在故意让我认出来。他要让我知道这张条子是他留的。”

周曼握着方向盘的手指收紧了一瞬。“所以他让你知道纸条是他留的,然后告诉你‘别让周曼碰硬盘’,意思是——”

“意思是他在提醒我,你也许跟今晚的事有关,但同时他自己也想从你手里抢走调查的主导权。”我转头看着她的侧脸,“你跟方经理之间,是不是以前有过什么事?”

周曼沉默了几秒。车驶过一个水洼,轮胎溅起的水花打在底盘上,砰的一声。

“我去年作为独立董事,牵头审核过一次技术部的年度预算。方经理那个部门的申请额度被我一刀砍了百分之三十。他当时在邮件里跟我吵了一架。从那之后,我跟他在任何一个会议上说话都不超过三句。”

“今晚他进我家门的第一句话,就是问你那七分钟去哪儿了。他心里那根刺还在。”

周曼的车拐进派出所门口的巷子,减速停在一个临时车位上。她熄了火,车厢里安静下来,只有雨点敲打车顶的声音。

“赵东升,”她没有转头看我,手还握着方向盘,“你进问询室之前,我最后问你一个问题。”

“问。”

“你那个手机里的监控脚本,今晚重启之后收到的所有心跳数据,你把完整日志发给孙主任了对吗?还是你自己存了一份?”

我看着她映在侧窗玻璃上的脸,雨水让那道倒影变得模糊。

“我自己存了一份。”

“为什么没发给孙主任?”

“因为心跳日志里除了陈浩的终端IP之外,还反复出现了一个内网IP段——那个IP段不属于技术部,属于财务部。财务部十二楼有一台机器在半夜两点到五点之间频繁向陈浩的监控终端发送数据请求。”

周曼终于转过头来看我。车窗外的路灯在她脸上切出一道明暗分明的线。

“你什么时候发现的?”

“今晚九点十分。重启脚本之后的第一波心跳数据里就带了那个IP。我没告诉任何人,因为那个IP对应的主机,是公司财务部的年终奖结算服务器。”

车厢里只剩下雨声。

周曼推开车门,撑开一把黑伞站在雨里等我。

“走吧。”她说,“问询室里有一个人等你告诉他,你今晚到底站在哪一边。”

我推开车门,雨丝飘进来落在手背上,凉的。派出所门口的值班灯在雨雾里晕成一团暖黄色的光。

进大厅的时候,孙主任从走廊另一头快步走过来,手里举着一个平板。“他刚才改主意了。他说不见你,要见另一个名字的人。点名要见方经理。”

我停住脚步。

孙主任把平板转过来给我看——屏幕上是一行从问询室内部监控里截取的字条照片。陈浩用墨水笔在一张白纸上写了四个字,举起来对着监控摄像头。

“让姓方的来。”

第6章

孙主任站在走廊的日光灯下面,那张照片的像素不高,但四个字清清楚楚。周曼收了伞站在我旁边,伞尖的雨水在水泥地上积了一小滩。

“他说不见我,要见方经理?”我又确认了一遍。

“原话就是这句。问询室的民警问他为什么点名要方经理,他只说了一句话——”孙主任低头看了一眼记录,“他说‘方经理手上那块硬盘是假的,真东西在别处。他来了我才告诉你们。’”

走廊里静了一瞬。方经理给我的那块黑灰色硬盘还在我外套内侧口袋里,贴着胸口的位置,硬邦邦的一小块。如果是假的——那他从服务区垃圾桶底下拿到的,要么是一块被掉过包的空盘,要么是一块装了诱导信息的陷阱盘。

周曼把伞靠在墙边。“方经理现在人在赵东升家楼下,抽着烟。我没让他走。”

“把他叫过来吧。”孙主任说,“陈浩刚才在问询室里情绪不太稳定,一直用手敲桌子。如果方经理来了能撬开他的嘴,那就用最快的方式把剩下那三分之二数据的去向搞清楚。晚了夜长梦多。”

周曼掏出手机打电话。我站在派出所大厅的电子屏前面,屏幕上滚动播放着反诈宣传的标语,红底白字,一个字一个字往左移。那行字映在我眼角的余光里,机械地重复着——“不轻信、不透露、不转账”。

我低头摸了一下口袋里那瓶布洛芬。硬塑料外壳上还残留着一点口袋里的体温。方经理今晚告诉我他吃过一粒,那那瓶里剩下的那几粒他放在厨房是什么意思?一个连水龙头都要修好再走的人,不会随手把药瓶落在别人家里。他是故意的。但那瓶药摆在那里能说明什么?说明他有病?说明他身体不好撑不住了?还是说明他做了某个决定之前需要止痛来稳住神经?

周曼打完电话走过来。“他二十分钟到。他让我跟你说——那个硬盘你先别打开,等他来了再说。”

“他知道硬盘可能是假的?”

“他没说,但他显然是猜到了。他上车之前跟我重复了两遍,别让任何人读取那个硬盘的内容。”

孙主任皱了皱眉。“如果怕读取,直接让技术部门封存就行了,他为什么强调‘等他来再说’?”

没人回答。

二十分钟后,方经理从门口走进来。头发被雨淋得贴在额头上,羽绒服拉链拉到了最顶上,整个人比一个多小时前在楼道里站着的时候更瘦了一圈。他进来以后先看了一眼周曼,又看了一眼孙主任,最后看向我。

“硬盘呢?”

我从口袋里掏出来递给他。他接过去翻来覆去看了两遍,然后从自己兜里掏出一根USB数据线,把硬盘接上他随身带的那台旧笔记本电脑。屏幕亮了,他敲了几行指令,然后手指顿在回车键上方。

“里面有一个自动运行脚本。任何一个读取操作触发这个脚本,都会往一个外网地址回传系统权限验证请求。”他把屏幕转过来让我们看,一行代码上面标着清晰的注释——remoteshell:443。这个硬盘一旦被插进任何一台联网的电脑,它就会试图从外网建立一条反向隧道进入本机系统。

方经理拔掉了数据线。“我在服务区打开它的时候用了离线模式,只读了文件目录就断了。我当时觉得不对,但没时间细查。”

孙主任接过硬盘看了看。“所以这个硬盘是一个后门——谁读它,谁的系统就会被它标记。”

“它被设计出来,就是等着‘截获’数据的人打开它。谁打开了,谁就被定位了。”方经理把硬盘装回自己的口袋,“我把它从服务区带回来这一路,如果它自带GPS模块的话,我现在的位置早已经被发送出去了。”

周曼转头看向走廊尽头那扇关着的问询室门。“陈浩在等我们打开这块硬盘。他一开始让你去服务区拿东西,目的就不是给你数据——他是要定位你。只有定位了你,他才知道另一份真数据在你手上哪个位置。”

方经理没有否认。

孙主任走到问询室门口,敲了两下门,跟里面的民警低声说了几句话。门开了一条缝,他侧身进去了。过了大约一分钟,门重新打开,孙主任朝我们招手。

“他同意你们三个人都进去。但每次只进一个人。顺序是——赵东升先进,然后是方经理,最后是周董。”

方经理把手里的硬盘放到门口的证物临时存放台上,把口袋里的烟盒和打火机也放上去了。他拍了拍手。“去吧。”

我推开问询室的门。

房间不大,一张铁桌子、三把椅子、墙角的监控摄像头亮着小红灯。陈浩坐在桌子对面,两只手腕没有上铐,但十指交叉搁在桌面上,像一个正在做决定的人。他的冲锋衣还穿着,帽子摘了,头发被雨水打湿成绺贴在头皮上。

他在看见我进门的那一刻,眼睛里什么都没有。不是敌意,不是害怕,不是慌张。是一种空。

“坐。”他说。

我拉开他对面的椅子坐下。铁桌子的桌面冰凉,手放上去的那一刻指甲盖都凉透了。

“你八月份就知道是我的事了。”他开口,声音干哑,像很久没喝水。“你一直没动。你在等我犯更大的错。”

“是。”

“今晚六百块钱年终奖的事是HR自己做的,不是我授意。你被降级调去负一层也是HR那套绩效排名的结果,跟我没关系。”他说这几句话的时候语速很快,像急着把某个前置条件讲清楚。“你今晚打卡下班不接电话,不是因为你知道我会导数据。你是因为被降了级在生气。我导数据是借了你生气的东风。”

“你借东风借得很准。”

“我一直在盯你的手机信号。你四点四十五分杀了我那个监控脚本的进程,我五点就知道了。但我五点就知道你今晚会提早走、不接电话、不会看钉钉。你被王总监约谈完了肯定不想理任何人。那个时间段是唯一的窗口期。”陈浩的手指在桌面上动了动,拇指互相绕了一圈。“我用你的账号导完数据之后,本来计划是十点左右再让人匿名举报系统异常,然后把日志指向你。但我没想到周曼这个董事身份的系统推送会在六点十六分就触发警报。”

“你没想到她比你更快。”

“我没算到她的权限级别比系统审计模块的默认延迟阈值还高。一般警报有十五分钟缓冲期,她那个推送是即时。六点十六分她就已经开始打电话了。”陈浩说到这里,舔了一下嘴唇,上面干得起了一层白皮。“后面的事就全乱了。我本来安排的每一步都被提前了。我本来应该在八点把那个假硬盘放进服务区、九点让方经理去拿、十点举报你。结果方经理七点四十就到了服务区,因为他七点就收到了匿名短信——短信不是我发的。”

我后背的肌肉紧了一寸。

“那条匿名短信不是你发的?”

“不是我。我原来的计划里没有让方经理去服务区拿硬盘这个环节。那个硬盘本来是放在另一个地方等人来取的。”陈浩看着我的眼睛,“我让人放在服务区的硬盘是另一个,被人掉包了。方经理拿到的那块是假的,我放的那块里面装着真正的三分之一数据。”

问询室的空调嗡嗡地响着,吹出来的风带着一股灰尘味。

“你放在服务区的硬盘被谁掉包了?”

陈浩的嘴角动了动,那表情像是在笑,但眼睛里没有笑意。“我不知道。但我可以把那个人的特征告诉你——他提前了至少半个小时到服务区,知道垃圾桶的编号和位置,还知道那块硬盘的物理外形。能做到这三件事的人,只有在我放了硬盘之后半个小时内查看了我放盘位置的人。”

“谁有查看那个位置的权限?”

“那个位置不是公司系统里的坐标,我是用手机发给一个中间人的。中间人负责把硬盘送到服务区的指定位置。知道那个位置的三个人——我、中间人、还有看了中间人手机消息记录的人。”陈浩的语速慢下来了,像在一步一步把自己的推理摆上台面。“中间人是我用了一年半的外包信差,我每个月给他两千块跑腿费。他今天下午六点半从我手上拿了硬盘,说好七点准时放到服务区西侧第三个垃圾桶底下。他放完发了一张照片给我确认。”

“照片呢?”

“照片上垃圾桶旁边的地面上有一双脚。黑色皮鞋,左脚鞋带系法很特别——打了个双环结。”

我低下头,脑海里闪过一些画面。今晚来来回回跑过楼道、停车场、服务区、派出所的这些人里,有一双黑色皮鞋出现在垃圾桶旁边的地面上。那双鞋今晚被雨水泡过,走进我家门的时候在玄关地垫上留了湿印子。

方经理进我家的时候,羽绒服下面是深蓝色牛仔裤和深灰色运动鞋,不是皮鞋。孙主任穿的是棕色短靴。派出所民警的统一配鞋是黑色系带工装鞋,但那个系带是普通十字交叉。周曼穿的是黑色尖头短靴,拉链侧开。

那双黑色皮鞋只在一个人脚上出现过——今晚在走廊里经过三楼半拐角之后消失的脚步声。那个脚步声在我和周曼隔着猫眼说话的时候停在了三楼半的位置,然后一直没再往上走,也没往下走。一个既不属于来我家做客的人、也不属于离开这栋楼的人——那是一个站在半层楼梯上、隔着转角听我和周曼对话的人。

“那双皮鞋你见过?”陈浩盯着我的表情变化。

“我没见过。但我家楼道里今晚有一个人停留了很长时间,就在三楼半的拐角,他没敲门也没走。”我重新看向陈浩,“那个人可能就是你那个中间人。他放了硬盘之后拍了照片发给你,然后没有离开服务区,而是跟着方经理的车一路来到了我家楼下。”

陈浩的手指在桌面上收紧了。“如果他跟着方经理回来了,那他现在——”

“他可能在某个地方等着你把真正的数据拿出来。”

问询室的门被敲响了。孙主任推开门探头进来:“陈浩,方经理进来了,你要跟他说什么?”

陈浩抬起头,越过我的肩膀看向门口。方经理站在孙主任身后,手里捏着一块硬盘——就是从服务区拿回来的那块假盘。

陈浩看见那块硬盘的瞬间,整个人从椅子上弹起来了一寸。“那不是我的。我放的硬盘外壳侧面有一道划痕,我故意划的。这个外壳上没有。”

方经理低头看了一眼手里的硬盘,翻过去侧着举起来。铁桌上方日光灯的冷白光打在硬盘外壳侧面——光滑的金属表面没有任何划痕。

他把硬盘放回到门口桌上。“所以这块硬盘从一开始就是假的。我拿到它的那一刻,掉包就已经完成了。”

陈浩慢慢坐回椅子上,双手捂住脸,用掌心反复搓了两下额头。“完了。中间人把我的硬盘换掉了。他拿着真的数据跑了。”

周曼从走廊里走进来,靠在门框边。“那个中间人叫什么名字?手机号多少?车辆信息呢?”

“他每次接活都用虚拟号,我连他真实名字都不知道。”陈浩的声音闷在手掌下面,“我只知道他开一辆白色SUV。今晚他开的那辆,车牌我记在手机里了,手机我扔了。”

白色SUV。

我站在问询室里,所有的线忽然同时绷紧了。楼下那辆川A·7R79——陈浩扔下跑掉的那辆车,副驾驶座上放着写有“周曼-备份”标签的硬盘。那辆白色SUV是陈浩开来的,但他说中间人也开白色SUV。

两辆白车。今晚在同一个小区里停了两辆白色SUV。

我转身问周曼:“你今晚开车来的时候,小区东门停了几辆白色SUV?”

周曼想了一下。“两辆。一辆停得靠路边,就是陈浩那辆。另一辆停在更靠近门卫室的位置,我当时以为那是业主的车。”

孙主任已经开始拨电话了。“我让人查小区东门监控,看看那辆停靠门卫室的白车什么时候来的、什么时候走的。”

方经理站在门口,手里握着那块假硬盘,脸色越来越白。“如果中间人换了真硬盘跑了,那他现在手里有三分之一的数据。加上陈浩导出的二十二个G里已经转走的三分之一,今天流出去的数据至少有三份——陈浩手里可能还攥着没转完的一部分、中间人手上有一份真的、另外有人可能从中间人那里复制了一份。”

“还有第四份。”陈浩把脸从手掌间抬起来,声音很轻。“我今晚六点一刻导出来之后,先复制了一份到我自己的私有云上。那个私有云的存储配额只有五个G,所以我只能存了其中一小部分。剩下的我分成三段分别传到了三个不同的外部存储服务商的临时空间里。那三段今晚十二点之前如果不续期,会被系统自动删除。”

“你今晚原本打算十二点之前续期吗?”

“原本打算。但我的手机扔了、车也丢了,我现在没办法登录那些存储空间的二次验证。如果十二点之前没有设备确认续期,那三段数据就会消失。”陈浩低头看了一眼墙壁上挂着的圆形时钟。十点五十分。

距离十二点还有一个小时零十分钟。

问询室里所有人都在同一时间看了一眼那个钟。

孙主任率先迈步走出门:“我现在去调取陈浩那个私有云的访问权限,如果能在十二点之前登录进去把数据下载下来封存——或者说如果那三段临时存储空间还能找到原始链接——我们还有机会。”

周曼紧跟着孙主任出去了。方经理站在门口,手里还攥着那块假硬盘,看着我。

“东升,”他说,“你还记得我把那个药瓶放在你厨房的时候,旁边还放了一个什么东西吗?”

我回想了一下。水龙头旁边的洗碗槽里只有那个药瓶,没有别的东西。

“只有药瓶。”

方经理的眉头皱起来了。“我放了两样。一瓶药和一个U盘。U盘里存着我今晚从服务区返回路上拍的所有照片——包括那个中间人的侧脸。”

那个U盘不在我厨房里。

有人拿走了。在方经理离开到我去开门之间的一个多小时里,有人进了我家厨房,拿走了那个U盘,只留下了药瓶。那个人知道U盘在厨房里,精准地取了目标物,没碰其他任何东西。

他要么亲眼看见方经理放东西,要么他跟踪方经理从服务区一路跟到了我家楼下。

门外的走廊传来孙主任的喊声:“小区东门监控调到了!七点五十分有一辆白色SUV从东门驶出,车牌号末两位是79——跟陈浩那辆的尾号一样。两辆车挂的是同一副假牌。”

两辆白车同一副车牌。真车和假车共用了一个号牌。

中间人开着挂假牌的车走了,真的数据在假车牌的那辆车里。而真车牌的那辆还停在小区里,副驾座上放着一个写了周曼名字的空壳硬盘。

周曼从走廊尽头走回来,脚步很快,脸上带着一种按捺不住的急迫。“我让人查那辆挂假牌的白车的行驶轨迹了。它从小区东门出去之后上了三环,往南走了。天网在七点五十六分在城南大道最后一个卡口拍到它之后,就没再出现在任何一个固定监控里。”

“南边是机场方向。”方经理说。

如果那辆车往机场去了,人可能已经在候机楼里了。从城南大道卡口到机场的路程不到二十分钟,八点二十分左右他就应该到了。现在是十点五十二分,那人可能已经登上了九点之后某个航班的机舱,正坐在三万英尺的高空上带着真数据离开这个城市。

陈浩从问询室里走出来,民警跟在他身后。他走到走廊中间,看着我们几个人,忽然开口:“他走不了的。那个硬盘我设了一个远程锁——十二点整如果没有我的设备发送解锁指令,硬盘里的所有内容会自动抹除。他就算带上了飞机,只要十二点没到我的验证,他拿到的就是一块白盘。”

十点五十四分。

“你现在用什么设备能发解锁指令?”

陈浩从民警手里接过一部临时手机,那是他的私人物品里唯一没被收缴的。“我手机扔了,但我记得远程锁的管理后台账号密码。只要有一台能联网的设备,我就能在十二点之前取消抹除指令。”

孙主任把自己那台平板递了过去。“用这个。派出所内网需要跳一下权限,我来处理。”

陈浩接过平板,手指在上面飞快地敲了一串网址。登录界面跳出来,他输入账号密码,进了后台。

然后他的动作停了。

后台界面上显示着一行红色的状态提示——“远程锁管理权限已被转移。新持有人:未知设备。锁状态:激活。抹除指令生效时间:23:59。”

有人在陈浩扔掉手机之后到现在的这段时间里,用一台未知设备登录了他的后台,把远程锁的权限转移走了。现在那块硬盘上数据的存亡,取决于那个未知设备的持有者。

而那个持有者,今晚进过我家厨房,拿走了方经理放的U盘,此刻可能正坐在城南大道某辆车上,握着那个硬盘和那份权限,等着十一点五十九分的到来。

我拿出自己的手机,打开那个监控脚本的后台日志。最近一条心跳数据是四分钟前发来的,来自那个财务部的内网IP。我把那条记录的完整数据包点开,往下翻到最底部的备注字段。

备注栏里有一行小字,之前我没有注意到——“目标终端外挂存储设备识别码:HDD-2026-0831-079。”

那块硬盘的编码。那个财务部的内网机器在四分钟前刚刚读取了那块硬盘的识别码。财务部十二楼的年终奖结算服务器在今晚十一点之前,有人远程登录上去,把那个硬盘挂到了那台机器的外接接口上。

而年终奖结算服务器的唯一操作员是——王总监。今天下午四点四十五分把我叫去办公室、递给我离职申请单的那个女人。她不仅是HR总监,还是财务部系统的最高权限拥有者。

我攥着手机抬头,看见周曼也正看着我。她从我的表情里读出了什么,嘴唇微张。

“她在财务部十二楼,”我说,“现在。”

走廊尽头传来一阵急促的脚步声。派出所值班民警跑过来,手里举着一部对讲机:“南边城南大道一辆白色SUV刚刚在收费站被拦停了,驾驶员是一名女性。她后备箱里找到了一个银色加密硬盘,外壳侧面有一道人工划痕。”

她是一名女性。

王总监。

陈浩站在走廊里,看着平板屏幕上那行红色的“权限已转移”状态,慢慢把平板放下,嘴唇颤了一下,问了一个所有人都想到但没人说出口的问题——

“她今晚七点之前就知道我所有的计划了。中间人把硬盘送到服务区的时候,她在场。方经理拿到的假盘是她放的。”

他抬起头看着我们所有人。“可她从下午四点到晚上十点,一直在HR办公室里处理年终奖发放的收尾工作,是王总监今晚全程在公司——”

我打断了他。

“下午四点四十五分,她叫我去她办公室。四点四十七分,她给了我一份离职申请单。四点五十分,她说我的绩效排名倒数第三。她说那句话的时候看了一眼电脑屏幕——我走了以后回想起来,那台电脑的桌面背景是城南大道高速收费站的实时监控画面。”

孙主任举着平板,已经打通了财务部值班室的电话,对面有人接起来,他说了一句话:“去十二楼服务器机房看一下,有没有人在。”

电话那头安静了三秒,然后值班员的声音传出来:“机房锁着。门禁记录显示最后一个进入的人是王总监,进去时间下午五点整,出来时间——门禁记录上没有出来时间。”

她还在里面。从下午五点一直到现在。那个机房有独立空调和备用供电系统,一个关上门就能站八个小时的密封空间。

周曼从我手里拿走手机,把那条心跳数据包转发给了孙主任。“定位那个外挂硬盘的实时坐标。”

孙主任看了一眼屏幕。“坐标就在公司总部大厦——十二楼。”

陈浩靠在墙上,整个人像被人从骨头里抽走了什么。他张了张嘴,声音哑得几乎听不见。

“她拿走了我的硬盘,她拿走了所有的东西。我的计划、我的数据、我的全部,她从头看到尾,站在我背后,看了整整半年。”

我问了一句话,声音落下去,连自己都觉得轻得像羽毛落在水面上。

“她是你今晚整盘棋里真正的那个人吗?”

陈浩没有回答。他闭上眼睛,往后靠向墙壁,后脑勺撞在墙面上,发出一声闷响。

走廊外面的雨声忽然大起来了,像整条街的水同时落了下来。

孙主任站在派出所门口的雨檐下面,手里的平板屏幕亮着,上面是公司总部十二楼的实时门禁状态。小红灯闪了一下,变成绿色。门开了。值班员在对讲机里说了一句话,顺着走廊传进来,被雨声割得断断续续的——“机房里面没有人。桌上放着一块硬盘,旁边压着一张纸。纸上写了一行字。”

值班员念了那行字。

“年终奖六百块,就当给各位买了张电影票。散场了。”

雨还在下。城墙上的排水管哗哗地淌水。我站在派出所大厅门口,看着雨幕里公司总部那栋楼的方向,十二楼的灯亮着,透过雨雾看过去,白晃晃的一格窗。

周曼走过来,站在我旁边,撑着伞。伞面罩住我的头顶,雨声忽然小了一半。

“那个硬盘还在桌上。”

“嗯。”

“里面的数据——”

“应该还在。”我说,“她没带走。她把东西留在那,人走了。”

方经理从后面走出来,烟头在雨里熄了,他没再点第二根。

孙主任合上平板,走回大厅里,在椅子上坐下来,揉了揉眉心。

我摸到裤兜里那瓶布洛芬,硬塑料外壳硌着手心。把瓶盖拧开倒了倒,里面滚出来一粒白色药片,还有一小张卷起来的纸片。纸片上写了一行很小的字,笔迹和厨房那张条子一样,是方经理的。

“U盘在我外套内袋里,那瓶药是给你的。疼的时候吃一粒。”

我站在雨檐下,把纸片重新卷好塞回药瓶里,揣回口袋。

机场方向的天边,一架飞机的航行灯在云层底下闪了三下,然后熄灭了,隐进雨云里。

周曼把伞往我这边又斜了一点。

“回家吧,”她说,“明天还得上班。”

0
全部评论 (0)
暂无评论