年终奖发了 1200 元,我淡定打卡下班,当晚公司 160 亿核心数据遭遇攻击,领导拼命给我打了 516 个电话,我就不接咋地了!

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

年终奖发了 1200 元,我淡定打卡下班,当晚公司 160 亿核心数据遭遇攻击,领导拼命给我打了 516 个电话,我就不接咋地了!

年终奖发了 1200 元,我淡定打卡下班,当晚公司 160 亿核心数据遭遇攻击,领导拼命给我打了 516 个电话,我就不接咋地了!-有驾

第1章

“陈默,你跟我说实话,你是不是故意的?”

行政部的李姐堵在工位过道,手里攥着一张薄薄的工资条,指尖几乎要戳到他鼻尖上。下午六点零三分,办公区已经走得半空,只剩下零星的键盘声和茶水间飘来的水汽。陈默刚刚关掉电脑屏幕,黑色显示器上映出他平静的脸。

“什么故意的?”他把工牌从脖子上摘下来,绕在手指上,一圈一圈。

“年终奖!”李姐的声音陡然拔高,像被踩了尾巴,“全公司就你一个人没签字!财务那边催了三遍,你什么意思?嫌少?嫌少你找人事去,你找我干什么?我不过是个发通知的!”

陈默看了看她手里的纸条,1200,打印体,连个零头都没凑成整数。他把工牌塞进外套口袋,站起身,椅子推回桌下发出一声轻响。

“不签字就是不认可。”他说,“这钱我不领。”

李姐愣住了大概两秒。周围几台还没关机的电脑屏幕幽幽亮着,开发组的小周从隔板后面探出半个脑袋,又缩了回去。市场部的林姐正拎着包往门口走,脚步明显慢了下来。

“你不领?”李姐声调又变了,从高亢变成尖锐,像指甲刮黑板,“陈默,你是去年全组绩效A,年终奖表上就你这一栏数字最扎眼,你知不知道多少人看着?你不领,我怎么办?我这表怎么往上报?”

“那是你的事。”陈默绕过她,走到工位门口,弯腰把运动鞋的鞋带重新系了一遍。他的工位在角落里,窗边,能看见对面写字楼星星点点亮起来的灯。

李姐追过来两步,声音里带上了哭腔:“你别走!你站住!你跟我说清楚,到底是嫌少还是有别的想法?你——”

“李姐。”陈默直起身,回头看了她一眼。他的语气平淡得像在念会议纪要,“去年我跟的智能仓储项目,上线后节省人力成本三千万。去年我牵头重构的数据中台,响应速度提升了百分之四百。去年我——”

“行了行了!”李姐打断他,脸涨得通红,“那是你的工作!公司给你发工资了!年终奖就是个心意,你较什么真?你要不满意,你找赵总去,你冲我发什么火?”

陈默没再说话。他把外套拉链拉到顶,头也不回地走向电梯间。身后李姐的声音断断续续,像是还在跟谁打电话,隐约能听见“不知好歹”“给脸不要脸”几个词飘过来。

电梯门关上的瞬间,他看见手机屏幕亮了。微信群里,行政部刚发了一条全员通知:本年度年终奖已于今日18:00前全部发放完毕,如有异议请于三个工作日内联系人力资源部。

底下弹出第一条回复,是市场部王胖子发的:“1200,够吃两顿火锅,不错了兄弟们。”

然后是几个笑脸表情。然后是技术部老孙的一句:“能发就不错了,外面多少公司今年一分没有。”

陈默把手机翻了个面,屏幕朝下,揣进兜里。

电梯一层层往下,数字跳动。到了五楼,门开了,进来一个人。财务部的周晓楠,抱着一个纸箱子,箱子里是些零零碎碎的个人物品,马克杯、绿萝、一盒没拆封的润喉糖。她看见陈默,愣了一下,嘴角动了动,想说什么,又咽了回去。

“你也被……?”陈默先开了口。

周晓楠点点头,把纸箱子往上托了托,下巴抵着箱沿:“优化名单,今天下午刚定的。赔了N+1,让我今天就搬。”

电梯继续往下。陈默看着楼层数字从4跳到3,忽然说:“你去年的报表做得没问题。”

周晓楠苦笑了一声:“报表没问题,有问题的从来都是报表以外的东西。”她顿了顿,侧过脸看着电梯壁上模糊的倒影,“陈默,你那个项目,我记得你报过一次风险预警,去年十一月的事,对吗?”

“对。”

“后来谁压下来的?”

陈默沉默了几秒,电梯到了负一层停车场。门开了,冷风灌进来。他迈出去一步,又停住,没有回头:“赵东升。”

身后传来一声轻轻的“哦”。电梯门在他背后合上了。

停车场空旷得很,他的车停在最里面靠墙的位置,一辆灰色的老款高尔夫,车身上蒙了一层薄灰。他坐进驾驶座,发动引擎,手机在兜里震了一下,又一下。他没看,先把车倒出来,开出地库,汇入晚高峰的车流。

外面天已经黑透了。高架桥上红灯连成一条河,车里的暖风吹得人有点犯困。他在等一个长红灯的时候,才把手机掏出来看了一眼。

未接来电,17个。全部来自同一个号码——赵东升。

微信消息三十多条,最早的一条来自人力资源总监韩璐,时间显示18:07,内容只有一句话:“陈默,你年终奖签字的事,赵总想找你谈谈。”

后面跟着赵东升本人发来的:“小陈,看到回个电话。”

再后面是:“你在哪?”

“李姐说你没签字就走了?”

“电话为什么不接?”

“陈默,你什么意思?”

倒数第二条是赵东升发的语音,最后一条还是语音。陈默没有点开听,把手机放到副驾驶座上,踩下油门,往前挪了二十米,又停下来。

七点四十分,他终于开进自家小区的地库。停好车,拔钥匙,手机亮了,未接来电的数字从17跳到了23。

他没拿手机,锁了车,上楼。一室一厅的老房子,客厅的灯坏了半个月,他一直没修,进门就摸黑踢掉鞋子,去厨房倒了杯冷水。窗外的城市灯火通明,对面那栋楼里有人在阳台抽烟,橘红色的火星一明一灭。

他坐在沙发上,把手机从口袋里拿出来,放在茶几上。屏幕像溺水的人一样拼命亮起来——赵东升,赵东升,赵东升。

然后是韩璐的微信:“陈默,你知道今天是什么日子吗?你知道你那套系统今天在跑什么吗?”

陈默盯着那条消息看了几秒,端起水杯喝了一口。水很凉,顺着喉咙下去,激得他打了个寒战。

他没有回复。屏幕暗下去,又亮起来,这次来电显示是赵东升的私人号码,他存的名字是“赵东升”。

手机在玻璃茶几上震动,嗡嗡嗡嗡,像一只被困住的金龟子。陈默看着它,手指搭在水杯壁上,一动不动。

五分钟后,震动停了。屏幕上显示未接来电:29个。

他伸手拿起手机,划开锁屏,翻了翻消息记录。韩璐在三分钟前发了一条:“陈默,你别冲动。那套系统的备用密钥在你那里对吧?你冷静一下,咱们有什么话好好说。”

消息框上面,显示“对方正在输入……”,持续了很久,最终发过来的只有一个字:“在?”

陈默把手机放下,起身去卫生间洗了把脸。镜子里的自己跟早上出门时没什么区别,眼睛底下有点青,嘴角往下撇着,头发三天没洗了,油腻腻地贴在额头上。他打开水龙头,热水冲出来,白气蒸腾,模糊了镜面。

等他擦完脸出来,手机上又多了12个未接来电。

总数,41个。时间刚过晚上八点。

客厅里很安静,只有冰箱压缩机嗡嗡运转的声音。他坐在沙发上,电视没开,灯也没开,整个人陷在黑暗里。茶几上的手机又震起来,屏幕光映在他脸上,一闪一闪。

他伸手,把手机翻了个面,扣在桌上。

震动变得沉闷,隔着木质的桌面,像远处有人在擂鼓。一波,停了,又起。一波,停了,又起。

直到某一刻,它彻底安静下来。

陈默在黑暗中坐了很久,久到眼睛适应了从窗帘缝隙渗进来的路灯光。他拿起手机,解锁,看到最后一条未读消息,来自赵东升。时间,八点四十七分。

“陈默,你就当帮我这个忙。算我求你。”

底下跟着一条语音。陈默犹豫了两秒,点开,把听筒凑到耳边。

赵东升的声音压得很低,带着一种他从未听过的慌张,呼吸急促,像刚跑完三千米。背景音里有人在大声说话,隐约能听清几个词:“防火墙”“外网渗透”“备份节点”。

“我知道你怨我。”赵东升说,呼吸声粗重地喷在麦克风上,“但是那套系统的后门只有你知道。今天晚上八点半,数据中台被攻击了,内部渗透,对方走的是你留的那个测试端口。全公司一百六十亿的核心资产都在这套系统里,现在全部锁死了。”

语音到这里断了,大概是被掐断了。紧接着又进来一条,只有三秒。

“你在听吗?你回我一句行不行?”

陈默把手机放到耳边,听完。然后把手机放回茶几上,屏幕朝上。

消息提示又闪了一下——未接来电,这个小时的第52个。

他站起身,走到窗边,把窗帘拉开一道缝。外面在下小雨,细细密密的,路灯的光被水汽洇成一团团毛茸茸的黄。楼下有个外卖员骑车经过,溅起一片水花。

身后茶几上的手机,又开始震了。

陈默把窗帘重新拉上。

黑暗里,屏幕的光一闪一灭,像某种沉默的呼救。他没有回头。

第2章

九点十七分,手机第四次断电关机。

陈默从抽屉里翻出充电线,插上,屏幕亮起来的时候,未接来电的角标像血一样红。数字停在79。他粗略扫了一眼,赵东升的名字占了绝大多数,中间穿插着韩璐的,还有几个陌生号码,尾号是公司总机的短号。

他把充电线扯下来,手机揣进裤兜,拿了把伞出门。

外面雨不大,但风冷,吹在脸上像细针扎。他没开车,走出小区门口,拐进马路对面那条夜市街。雨棚底下卖炒粉的摊子还在营业,老板穿着胶鞋在铁板前翻动铲子,白汽裹着酱油味腾起来。他要了一份蛋炒粉,加辣,坐在塑料凳上等。

雨棚边缘滴下来的水珠在脚边砸出小坑,他低头看了看手机。充电五分钟,电量和未接来电一起涨到了16%。新进来的微信里有一条来自周晓楠:“听说出事了?你没事吧?”

陈默打了三个字:“在外面。”然后退出对话框。

炒粉端上来,油汪汪的一盘,辣子放得足,吃了两口就呛出了鼻涕。他用纸巾擤了擤,抬头看见对面那栋居民楼的窗户一格一格亮着灯,有人把晾在阳台上的衣服往里收,动作急躁,像是怕淋了雨。

手机又亮了。这次是一条短信——赵东升发来的,不是微信,是原始短信,像十几年前那种通讯方式。内容很短:“你是不是在惠民路夜市?我看到你车了,在地库。你别走,我过来找你。”

陈默夹粉的筷子顿了一下,然后继续吃。

他把最后几口扒拉完,扫码付了钱,起身往巷子深处走。雨棚尽头拐个弯,是一条更窄的小巷,两边是关了门的五金店和打印社,卷帘门拉到底,只有一盏昏黄的灯挂在电线杆上。他找了个干爽的台阶坐下,后背靠着潮湿的墙壁,把手机屏幕调到最暗,看着那串数字一截一截往上爬。

100个。十分钟后。

他没有数。只是隔一段时间瞥一眼屏幕,那个红色角标就像癌细胞一样扩张,从两位数蹭进三位数,又从一百出头往二百逼近。

赵东升的电话在十点十一分进来的时候,他已经坐在那面墙根下抽了半包烟。手机震动时他的大腿肌肉跟着颤了一下,屏幕亮起来映在雨雾里,来电显示旁边多了一行小字:“对方已拨打多次”。他拇指悬在接听键上方大概三秒,然后挪开。

巷子尽头传来脚步声,挺急的,皮鞋踩在水洼里发出吧嗒吧嗒的闷响。陈默把烟掐了,站起来往更深处退了两步。人影从拐角处闪出来,穿一件深灰色的商务夹克,领口歪着,头发被雨淋得贴在额前。

赵东升。

陈默贴着墙根没动。他看见赵东升在前面那条巷子里停下来,左右张望,掏出手机按了一下,然后他自己的手机立刻震起来,震动声在窄巷里回响,像某种暴露坐标的警报。赵东升猛地转头,视线穿过雨幕,锁在他身上。

两个人隔着大概十米。

赵东升朝他走过来,步子一开始很快,中途慢下去,最后停在离他两米远的地方。雨不大不小地落,两个人的肩膀都被淋得半湿。

“你电话为什么不接?”赵东升开口的第一句就是这个。他的声音比语音里稳了一些,但下巴上的肌肉在跳,看得出来是在硬撑。

陈默把手机屏幕按灭,塞回兜里:“吃饭呢。”

赵东升深吸了一口气,抬手抹了一把脸上的雨水,指关节泛白:“行,吃饭,没问题,你吃你的。我就在这儿等你,你什么时候吃完咱们什么时候说。”

“我吃完了。”

“那——”

“我回家睡觉。”陈默从他身边擦过去,往巷口走。

赵东升一把抓住他的手腕。那力道很大,指甲几乎掐进肉里。陈默停下,低头看了看那只手,又抬头看了看赵东升的脸。

“陈默,”赵东升的声音压在喉咙里,“你不能这么干。公司现在服务器全锁了,运维那边试了三个方案全失败,对方走的就是你那个测试端口,备用的密钥你知道在哪对不对?你告诉我,就一句话的事,我让技术部去操作,不让你担任何责任。”

陈默把自己的手抽出来。赵东升没有继续抓,手掌悬在半空,像是被弹开的弹簧。

“你说你不让我担责任。”陈默把袖子捋下来盖住手腕上掐出的红印,“上回智能仓储那个项目,你也这么说的。”

赵东升的脸在路灯下白了一瞬。

“那件事不一样。”他说。

“哪不一样?”陈默看着他,“去年十一月我提交的风险预警,白纸黑字写的,底层架构有漏洞,如果不修,一旦被定向攻击,整个数据层会直接熔断。你那时候怎么说的?”

赵东升没答话。雨顺着他的鬓角淌下来,汇聚在下巴尖,滴在夹克胸口。

“你说,”陈默把他自己那句话原封不动背出来,“‘小陈,市场形势不好,成本压得紧,你这个阶段提技术改造,太不合时宜。先上线,出了问题再说。’”

赵东升的嘴唇动了动,没出声。

“现在出问题了。”陈默说,“你跟我说‘就一句话的事’?”

他转身往巷口走。身后赵东升的声音追过来:“那你想怎么样?要钱?要补偿?你提条件,我现在就能批。陈默你站住!你知道今晚这一下,公司损失多少吗?股价明天开盘会跌成什么样你知道吗?那里面有你跟团队干了一年的心血,你就看着它烂了?”

陈默在巷口停住,回头看了他一眼。

“赵总,”他说,“我去年年终奖,1200。你知道我手下那个刚转正的小孩,去年干了什么吗?他一个人跟完了整个仓储模块的接口对接,连续两个月凌晨两点下班。他拿多少?”

赵东升愣在那里。

“也是1200。”陈默说,“他今天早上来找我,说房租下个月要涨,问我能不能预支点工资。我替他问了人事,人事说‘年终奖发了就发了,哪有预支的道理’。”

雨大了一些,巷子里的昏灯被风吹得晃了晃,两个人在忽明忽灭的光影里对峙。

“你让我提条件。”陈默把手插进裤兜,摸到冰凉的手机壳,“行,我只有一个条件。你把今年所有人的年终奖按绩效重新算一遍,该是多少是多少,少的一分不补,多的必须吐出来。然后你当着全公司的面,说清楚去年十一月那份风险预警是谁压下来的,为什么压下来。”

赵东升的脸彻底白了。他张了张嘴,喉咙里挤出几个字:“你疯了吧。”

“我没疯。”陈默说,“我不过是想让事情回到它本来该有的样子。”

他转身,走进雨里。身后的赵东升没有追上来,但他听到一声沉闷的撞击——像是拳头砸在了湿漉漉的砖墙上。

陈默没有回头。

他走出那条巷子,回到主路上,沿街的商铺基本都关了门,只有一家便利店还亮着惨白的光。他进去买了瓶水,站在自动门旁边喝了两口,透过玻璃门看见街对面停着一辆黑色的奥迪。车牌号他认识,韩璐的车。

她没下车,但车窗摇下来了一条缝,里面飘出一点烟味。陈默隔着马路和那辆车对视了几秒,然后低下头按亮手机。

未接来电的数字已经变成了134。

微信消息塞满了通知栏,他翻了翻,大部分是公司同事发来的,措辞各不相同,但意思差不多——“怎么回事?”“你还好吗?”“听说今晚系统崩了跟你有关系?”其中一条来自技术部老孙:“端口日志我看了,确实是你的测试账户在八点二十九分发起了连接请求。小陈,你要真是被人利用了,赶紧跟赵总说清楚,别扛。”

陈默盯着那条消息看了很久。水瓶子在他手里被捏得咔嚓响,塑料变形的声音在安静的便利店里格外刺耳。

他没有回复老孙,锁了屏,走出便利店。

雨已经小到几乎停了,空气里有一股泥土和柏油混合的味道。他走在空荡荡的人行道上,路灯把他的影子拉得很长。手机在口袋里震了最后一次,然后彻底安静下来。

他掏出来看了一眼,最后一个未接来电,来自赵东升,时间,十点四十六分。

总数,143。

他把手机塞回兜里,加快脚步往家的方向走。还有两条街,拐过前面那个路口就是小区侧门。他穿过人行横道的时候,余光瞥见路边一张长椅的靠背上,贴着一张新的寻物启事。白纸黑字,打印体,被人用透明胶带歪歪扭扭粘在铁架上。

他走过去扫了一眼。

上面写着:寻找一只灰色英短,右耳有缺口,走失于惠民路附近。如有线索请联系,后面跟着一个手机号。

陈默看着那个手机号,站住了。

尾号是他的生日。

他转过头,四下环顾。深夜的街道空旷无人,只有一辆洒水车远远地从另一条街开过去,放着《致爱丽丝》的曲子,声音模糊失真。

他又低头看了一眼那张寻物启事。纸张的右下角,用圆珠笔手写了一个很小的字,藏在透明胶带下面,不仔细看根本发现不了。

那个字是:“等”。

第3章

陈默把那张寻物启事撕了下来。

纸面被夜露浸得潮软,圆珠笔写的“等”字洇开了一点点蓝色的毛边,像一滴没干的眼泪蹭了上去。他折了两折,塞进内侧口袋,然后加快脚步穿过马路。

小区侧门的保安亭亮着灯,老张头正在刷短视频,声音外放,一个女声在喊“家人们上链接”。陈默刷卡进闸,没打招呼,径直走到自家楼下。他抬头看了一眼——六楼的窗户黑着,跟他出门时一样。

电梯到了,他走进去,按下六楼。上升的过程里他重新把那张纸掏出来展开,凑在电梯顶灯底下看。打印体的寻物启事没什么特别的,上面写的那串手机号确实就是他的,一个数字不差。他翻到纸背面,想找有没有水印或者其他痕迹,结果背面干干净净,只有一张不知道什么时候沾上的透明胶带残留。

电梯门开了。楼道里的声控灯坏了,他踏出去跺了一脚,没亮,又跺了一脚,还是没亮。他只好摸黑走到自家门口,掏出钥匙,刚插进锁孔,就听见门后面有什么东西动了一下。

他的手指顿住了。

钥匙插了一半,他停在那里,耳朵贴近门板。里面很安静,安静得像是隔了一层被子在听外面的声音。他站了大概十秒,然后把钥匙慢慢拔出来,往后退了一步。

门是从里面反锁的。他出门的时候只带了手机和伞,没带钥匙吗?他摸了摸裤兜,钥匙串确实在他手上。那他出门时是怎么锁的门?他回忆了一下,好像随手带上了,没有反锁。而此刻他手里的钥匙插进去,明显感觉锁芯咬到了一个额外的阻力——里面有人上了保险栓。

陈默靠在走廊墙壁上,心脏跳得比刚才跑了两条街还快。他没出声,也没动。楼道里黑乎乎的,只有安全出口指示牌发出幽幽的绿光,照在他对面的消防栓玻璃门上,映出他自己模糊的轮廓。

里面的人也没动。

两个人隔着一扇门,像两头在黑暗中互相感知对方位置的兽。陈默能听到自己的呼吸声,一下一下,很轻,但在寂静里异常清晰。他用拇指摩挲着钥匙齿的边缘,金属冰凉,刻痕硌着指腹。

手机突然震了。就一声,短促得像被烫了一下。他低头看屏幕,是一条新短信,号码陌生,内容只有几个字:“别回家。”

下一秒,门锁从里面咔哒一声拧开了。

陈默猛地贴紧墙壁,身体弓起来,拳头攥住钥匙串,尖齿朝外。门开了一条缝,大约两指宽,里面没有灯光透出来,只有一团浓稠的黑暗。然后那团黑暗里伸出一只手——白净的,指甲修得很短,手腕上戴着一根红色的编织绳。

手朝他招了招。

陈默认出了那根红绳。

“进来。”门里的声音很低,几乎是用气声在说。

他迟疑了两秒,还是迈步上前。门被拉开,里面的女人穿着他的旧卫衣,袖口长出来一截,盖住了半个手掌。她赤着脚站在玄关地砖上,头发挽成松垮的丸子,露出耳后一小片干净的皮肤。

“苏念。”陈默的声音卡在喉咙里,说出来的时候带着一股压不住的哑,“你怎么在这?”

苏念没有回答他。她侧身让开路,他走进去,门在她身后轻轻合拢,反锁,挂上链条。动作一气呵成,像是演练过很多遍。

陈默站在客厅里,闻到空气中有淡淡的茉莉花香,混着一股熟悉的消毒水味道。他走到厨房方向,果然看见灶台上放着一小碗泡面,碗边搁着一瓶碘伏和一包棉签,盖子半掀开,里面的棉签用掉了一根。

“你受伤了?”他转过头问她。

苏念抱着胳膊靠在玄关鞋柜上,卫衣帽子拉到头顶,遮住了大半张脸,只露出下半截鼻梁和嘴唇。她的嘴唇有点干,起了一层白色的皮。

“不是我的伤。”她说,“我来的路上跟了一个人,在你们公司楼下跟了两个小时。那个人左腿不太利索,走路的时候脚尖往外撇,穿黑色戴帽衫,帽檐压很低。八点二十分左右,他进了你们写字楼的地库。我没能跟进去,但我在外面等到九点,看见他出来了两次。”

陈默站在原地没动:“两次?”

“第一次出来,去了地库对面那个公共电话亭,待了大约三分钟。第二次出来,他没有原路返回,而是绕到了写字楼后门,上了一辆白色面包车。面包车没挂牌,至少我没看到前面的牌。”

苏念说完这段话,把帽子掀下来,露出整张脸。她比上次见面时瘦了,颧骨线条更明显,左眼角下面多了一道浅浅的疤,像是被什么东西划的,已经愈合了,但颜色还泛着粉。

“苏念,”陈默走过去一步,“你什么时候回来的?你为什么会在惠民路?那张寻物启事是你——”

“是你公司的事。”她打断他,声音忽然冷下来,“今天下午,有人在你们内部论坛匿名发了一份文件,是去年十一月那份风险预警的PDF扫描件。发帖的ID是新建的,发完就注销了。但这份东西被人截了图,转到几个技术社群,然后三点钟的时候,你赵总的邮箱收到了一封勒索邮件。”

陈默的手指攥紧了钥匙串。

“邮件内容写的什么?”

苏念低头翻自己的手机,划了几下,把屏幕转过来给他看。那是一张截图,邮件正文是纯英文,但翻译过来意思很简单:今晚八点半,你们的数据中台会被定向锁死。解锁条件只有一个——把去年十一月被压下来的那份报告,以公司公函的形式发送到所有客户的邮箱,并附上签字人的道歉声明。

邮件落款处没有署名,只有一个代号:Q。

陈默盯着那个字母看了很久。Q。他记得这个代号。三年前,他刚从上一家公司跳槽过来,入职培训的时候听人提起过,说是公司早年技术部的一个传奇人物,后来因为某个项目出了事,被赵东升亲手清理出去了。当时闹得很不愉快,走的时候连竞业协议都没签,直接拿了一笔钱消失。

“Q是赵东升的人。”陈默把手机还给她,“当年那件事,是Q帮他背的锅。”

苏念接过手机,指尖碰了碰他的指节,很快就缩回去了:“我知道。你跟我说过。”

客厅里安静了几秒。陈默走到茶几旁边,看见自己的手机还在充电,屏幕上有新消息进来,是赵东升发来的最后一条微信,时间显示十一点零二分:“陈默,我刚才说的话还算数。你要什么条件,我现在就能批。只要你开口。”

他没有回复。苏念从玄关走过来,赤脚踩在地板上几乎没有声音,她站到他旁边,两个人一起低头看着屏幕上那行字。

“你打算怎么办?”苏念问他。

陈默把手机翻了个面,又扣回桌上。他转身走到窗边,把窗帘拉开一道缝,往外看。楼下小区里一切如常,路灯下有只橘猫蹲在垃圾桶旁边舔爪子,没有可疑车辆,没有黑衣男人,安静得像什么都没发生过。

但他知道今晚的事情不只是年终奖那么简单。那张寻物启事上的“等”字,苏念的出现,Q的代号,还有此刻反锁着的家门。所有的线头像是被人故意扔在他脚下,等着他弯腰去捡。

“先睡觉。”他说。

苏念抬眼看他:“你睡得着?”

“睡不着也得睡。”陈默把窗帘重新拉好,走回卧室,从衣柜里翻出一床干净的毯子扔在沙发上,“你睡床,我睡沙发。明天再说。”

苏念没有推让。她抱着毯子看了他一眼,嘴角动了动,像要说什么,最后只是点了下头,转身往卧室走。走到门口,她停住脚步,没回头。

“陈默,客厅茶几底下,我放了样东西。你看一下。”

说完她关上了卧室门。

陈默站在客厅中央,低头看向茶几。木质的,老款,四个腿有点晃,他平时往底下塞过旧杂志和遥控器。他蹲下来,掀开搭在茶几边的桌布,用手电筒照了照。

底下放着一个牛皮纸信封,很薄,封口没有粘死,露出一角打印纸的白边。他抽出来,打开,里面只有一张A4纸,上面是一份银行转账记录。

转账人账号被打了码,但收款人那一栏清清楚楚写着他自己的名字。转账金额,一百六十万。转账备注栏只有四个字:“项目奖金”。

转账日期,今天。

陈默盯着那四个字看了很久。一百六十万,正好是他去年那个数据中台项目内部估算的市场估值。他慢慢把纸折好,放回信封,塞进自己的外套内袋,和那张寻物启事贴在一起。

茶几上的手机又亮起来。赵东升的新消息:“我知道你现在不想跟我说话。但我得告诉你一件事,今晚的局,策划的人不止外面来的。我在公司查了后台操作日志,发起的那个测试账户虽然是你的名义,但登录IP在你们楼上——十五楼,行政部。”

陈默把手机拿起来,拇指在屏幕上停了一瞬。

十五楼,行政部。赵东升办公室的上面,坐的是行政总监刘芸。

他忽然想起来,今天下午李姐来发年终奖的时候,左手中指上戴了一枚新的戒指。而他记得很清楚,李姐的老公,三年前就在Q被清理出去的那个项目组里。

手机又震了一下。苏念从卧室门缝里递出来一句话,隔着门板,声音闷闷的:“茶几底下那个东西,你要是看完了,来卧室一下。”

陈默把手机揣回兜里,走到卧室门口,手搭在门把手上,犹豫了一秒,拧开了。

门开了,卧室里没开灯,但窗外的路灯光透过百叶帘的缝隙投进来,在地板上切出一条条平行的亮线。苏念背对着他坐在床沿,那条旧卫衣的帽子重新戴了上去,她手里攥着一样东西,被影子遮住了大半。

陈默站在门口没进去:“怎么了?”

苏念侧过头,光线滑过她的侧脸,把眼角的疤照得更明显了一点。她把手里的东西举起来——一张照片,塑封的,边缘有点卷。

照片上是一群人站在竣工剪彩的横幅底下,横幅上印着日期,三年前的秋天。陈默站在人群后排,旁边隔着一个位置,站的是Q。Q那时候还留着长头发,笑得露出满口白牙,一只手搭在旁边赵东升的肩膀上。

赵东升也笑着,但笑容跟其他人不太一样。他的眼睛没有在看镜头,而是偏了一个角度,落在Q身后的一个人身上。

那个人穿着行政部的制服,胸口别着工牌,但因为光线的缘故,工牌上的名字拍得一片模糊。

陈默盯着那张照片看了很久,才从模糊的像素里认出了那张脸。

是李姐。但那个时候,李姐的左手中指上还没有戒指。

第4章

苏念把照片翻了过来。

背面贴着一张便利贴,蓝色,边角卷起,上面的字迹是圆珠笔写的,笔画用力到透过纸背。陈默接过来看,是一组数字:15-02-18-33。

“我在照片封套里找到的。”苏念说,“这照片本来夹在你的那本《分布式系统设计》里,我翻书的时候掉出来的。便利贴贴在照片背面,藏在塑封膜和相纸中间,不拆开根本看不见。”

陈默把那张便利贴揭下来,放在手心。数字排列没什么规律,像是楼层、房间号、日期和编号的混合体。他走到书桌前摁亮台灯,翻开那本旧书,找到夹照片的那一页。书页中间有一处折角,折角对应的段落讲的是“分布式系统的权限分层与审计追溯”。

他盯着那几行字看了几秒,脑子里某个东西咔哒响了一下。

“十五楼是行政部,零二号是刘芸的办公室,十八是……”他念念有词,手指在桌面上无意识地敲,“三十三——门禁卡编号?”

苏念从他身后凑过来,温热的呼吸擦过他的耳廓:“你猜得对。三十三是刘芸那张应急门禁卡的序号,我以前做行政助理的时候录入过那一批卡片,这个编号我眼熟。”

陈默把便利贴折好,塞进钱包夹层,合上那本书塞回书架。他直起身,看了一眼墙上的钟,十一点五十三分。窗外雨彻底停了,但云层压得很低,路灯光变成一团模糊的橘黄色晕染。

“你得睡。”苏念说。

“你不用管我。”

“你明天要面对的事比我多。”苏念伸手拉住他的手腕,力道不大,但他感觉到了她指腹的薄茧。那是常年握相机和手指滑过键盘留下的痕迹,“陈默,我今晚不是来劝你的。你做什么决定我都站你那边。但你至少让脑子休息几个小时。”

陈默低头看着她的手。红绳在腕骨上方缠了两圈,尾端缀着一颗很小的银珠,灯光下微微反光。他记得这根绳子是去年她离开之前编的,打的是死结,解开只能剪断。

他没说话,点了点头,坐到床沿。苏念松开手,走回客厅把沙发上的毯子抱进来,铺在地上,自己蜷进去,背靠床板,闭上眼睛。

陈默躺下来,面朝着天花板。他闭着眼,但耳朵醒着。客厅的冰箱,窗外的车声,还有苏念均匀的呼吸。他翻了个身,把脸埋进枕头,闻到上面残留的、属于她的洗发水味道。

也不知道过了多久,他以为自己没睡着,但再睁眼的时候,窗帘缝透进来的光已经从橘黄变成灰蓝,天快亮了。

苏念已经醒了。她坐在床边的地板上,手机屏幕亮着,手指快速滑动,看见他翻身,她头也没抬地说:“凌晨四点十七分,Q的账号在暗网发了一条新消息,说‘甲方已收到,执行完成’。底下附了一张截图,是你那份风险预警的PDF最后一页——里面有赵东升的手写签字。”

陈默坐起来,头发炸在头顶,眼睛酸胀得像被砂纸磨过。他揉了揉脸,去卫生间洗了把冷水,镜子里的自己比昨天更憔悴了一层。

他出来的时候,苏念已经把手机翻过来给他看。那条暗网帖子的评论区已经有了三十几条回复,大部分是技术圈的人在讨论,有人猜是哪个公司的内部纠纷,有人贴出了他们公司的股票代码,有人在问“下次还有没有这样的活接”。

陈默把手机还给她:“什么时候了?”

“六点二十。你手机响过三次,赵东升的。还有一次是韩璐,语音留言,你要听吗?”

他拿起自己的手机,果然有一条未读语音,来自韩璐,时长两分十四秒。他点开,放在耳边。

韩璐的声音比平时低了很多,语速很慢,像是在一个字一个字斟酌着往外吐:“陈默,我在公司等你。今天早上九点,董事会临时会议,赵总要在会上汇报昨晚的事。你知道那份汇报材料里会怎么定调吗?他会说‘核心技术骨干恶意离职前篡改系统,造成重大事故’,你会成为全责方。但如果你现在回来,把备份密钥交出来,我可以让法务那边把措辞改一改,从‘恶意’改成‘操作失误’。你听懂我的意思了吗?”

语音结束。

陈默把手机放下。苏念看着他的脸色,轻轻问了一句话:“你信她吗?”

“我不信任何人。”他说。然后他弯腰系好鞋带,从衣柜里拿出一件干净的灰色帽衫套上,把钥匙手机钱包全部揣进兜里,走到门口换鞋。

苏念站起来:“你去哪?”

“公司。”

“你知道现在去等于什么?”

“我知道。”陈默拉开门,回头看了她一眼,“但你昨晚放在茶几底下的那张转账记录,我把照片发给了一个人。那个人回我了,他说那张卡的来源可以追到五年前的一笔海外转账,收款方是一家注册在开曼的空壳公司。那家公司的法人代表,姓刘。”

苏念的眼睛亮了一下:“刘芸?”

“刘芸的弟弟。”陈默把门拉开一条缝,冷风从楼道里灌进来,“所以我得去公司。不是去认罪,是去开会。”

他走了出去,门在身后合拢。电梯还在楼上,他索性走楼梯,一层一层往下转,脚步声在空荡的楼道里反复回荡。到一楼的时候,他掏出手机,给赵东升回了一条消息:“九点,我在你办公室门口等你。”

消息发出去七秒,赵东升回了一个字:“好。”

陈默推开单元门,天已经彻底亮了,但阴天,铅灰色的云压得很低,空气里弥漫着雨后的湿冷。他穿过小区步道,路边的冬青被夜雨冲洗过,叶片油亮亮的,挂着水珠。

他走到小区门口,正要拐向公交站,一辆黑色轿车从路边缓缓开过来,停在他身侧。车窗降下来,露出一张他认识的脸。

刘芸。行政总监,四十五岁上下,短发,戴一副无框眼镜,嘴唇涂着很淡的豆沙色唇膏。她穿着一身藏蓝色的西装套裙,坐姿端正如标尺,一只手搭在方向盘上,另一只手冲他招了招。

“上车。”她说。

陈默站在车门外,没动。

刘芸笑了一下,推了推眼镜:“放心,我不是来截你的。赵东升派我来接你,怕你半路被人堵了。昨晚的事你也知道,背后不止一个人,你能活着走到公司门口算你本事大。”

“刘总,”陈默低头看着车窗里的她,“那个测试端口的事,你比我清楚吧?登录IP在十五楼,你办公室楼下的机房。昨天下午李姐来发年终奖的时候,手上那枚新戒指,是她老公送的?她老公三年前从项目组走的时候,手里是不是握着什么东西?”

刘芸脸上的笑容没变,但搭在方向盘上的那只手,指节收紧了。车里安静了两三秒,然后她伸手从副驾驶座上拿起一个牛皮纸档案袋,从车窗递出来。

“打开看看。”她说。

陈默接过来,拆开线绳,抽出里面的文件。厚厚一摞,打印的,上面是监控截图,时间戳显示昨晚八点十九分到八点三十五分。截图里拍到地库B2层的人影通道,一个穿黑色戴帽衫的男人走到墙角,蹲下来在配电箱后面鼓捣了什么,然后站起来,抬头看了一眼摄像头的方向。

那个人的脸被帽檐遮了大半,但陈默从侧脸的轮廓认出来了。老孙。技术部的孙国栋。

“他怎么——”

“你问错了问题。”刘芸打断他,镜片后面的眼神忽然变得很冷,“你应该问的是,谁拍到了这些截图,以及为什么截图现在在我手里。”

陈默把文件塞回档案袋,抬眼看她。

刘芸从手刹旁边拿起自己的手机,屏幕上打开着一个监控软件的实时画面。画面里是一间灰色的机房,机柜整齐排列,指示灯密密麻麻地闪烁。角落里,一个人背对着摄像头蹲在地上,正在插拔一根网线。

那个人穿着行政部的制服,左手中指上,戒指反射出一点金属的光。

李姐。

“她知道她老公当年的事。”刘芸说,“但她不知道Q现在在跟谁合作。她以为她拔掉那根线就能毁了数据中台的备份节点,但她拔掉的是测试环境的模拟器,动不到真正的核心。”

陈默站在路边,风灌进帽衫下摆,吹得他后腰一片冰凉。他看着手机屏幕里李姐蹲在地上的背影,那张每天在走廊里跟他打招呼的脸,那个昨天下午冲着他喊“你冲我发什么火”的嗓门。

“所以你从一开始就知道。”他说。

刘芸把手机收回去,重新挂挡:“我知道的事比你以为的多。上车吧,还有四十分钟董事会就开了。赵东升今天要交出去的不只是一份汇报,他交出去的是他这把椅子。你想清楚自己站哪边。”

陈默把档案袋夹在腋下,拉开副驾驶的门,坐了进去。

车发动,驶入主路。后视镜里,小区门口的冬青树越来越远。他从口袋里摸出手机,看到苏念在五分钟前发来一条消息,只有五个字:“我查到了Q。”

紧接着第二条:“Q在找的人是你。三年前他走的时候,赵东升答应他的条件里有一条——技术负责人的位置留给他。但你来了之后,那个位置变成了你的。”

陈默盯着那行字,拇指悬在键盘上方。

车拐了一个弯,阳光从云缝里漏下来一道,打在副驾驶的挡风玻璃上,刺得他眯起了眼。

刘芸在旁边说了一句话,语气很淡,像在聊天气:“到了。你做好心理准备,会议室里不只有赵东升,还有两个你不认识的人。其中一个,姓秦。”

陈默的手机又震了一下。苏念的第三条消息:“Q的真名叫秦远。昨晚那个公共电话亭的监控我调到了,他打出去的电话,只有一个号码。尾号跟你那张寻物启事上的手机号一模一样。”

他锁了屏,把手机塞回兜里。车停在了写字楼地下车库的入口处,闸杆缓缓抬起,黑色轿车滑入昏暗的坡道。

后视镜里,日光被地库入口吞没的一瞬,陈默看见自己眼睛里映出的一点光,灭了。

第5章

会议室的门是双开实木的,把手镀金,陈默入职三年,这扇门他只进出过两次。一次是入职第一周的新人见面会,一次是去年年终述职,赵东升坐在长桌顶端,对他点了点头说“干得不错”。门关上之后那声“干得不错”就被吞进了地毯里,再没出现过。

这一次他推门进去的时候,里面已经坐了六个人。

赵东升坐在主位,领带松了一半,衬衫领口开了两颗扣子,眼睛底下乌青一片,像是整夜没合过眼。他的左手边是韩璐,穿了一件深蓝色针织衫,表情端得像雕塑,手里捏着一支笔,笔帽被咬出了牙印。右手边空着一个位置,再过去依次是技术部老孙、行政总监刘芸,以及两个陌生面孔。

陈默的目光在那两个陌生人身上各停了一瞬。左边那个约莫五十岁,秃顶,戴一副金丝眼镜,西装三件套,袖口的扣子是银色的,上面刻了一个极小的花纹,他没看清。右边那个年轻一些,三十出头,蓄着短须,穿了件黑色的圆领衫,外面披着休闲夹克,不像是来开董事会的,倒像是刚从哪家咖啡馆顺路过来的。

圆领衫男人抬头看了陈默一眼,嘴角勾了勾,不算笑,更像某种确认。然后他低下头,继续转手里的一枚硬币,指尖翻动,硬币在指缝间来回穿梭,没有发出任何声响。

赵东升看见陈默进来,从椅子上欠了欠身,又坐回去了。他的嘴唇张了张,最终只说了一句:“坐吧。”

陈默走到那个空位旁边,拉开椅子坐下。桌面是深胡桃木色的,光可鉴人,倒映着头顶水晶吊灯的碎影。他放好那个牛皮纸档案袋,把双手平放在桌面上,手指交叠。

赵东升清了清嗓子,双手撑在桌沿,身子微微前倾:“各位,今天这个临时会议,议题只有一个。昨晚八点半到今天凌晨,公司数据中台遭受定向攻击,核心资产被锁。初步排查,攻击路径利用了内部测试端口,该端口隶属技术部工程师陈默的工作账户。”

他说到这里停顿了一下,目光扫过陈默的脸。陈默没什么表情,直视着他。

“端口账户确实是陈默的。”赵东升继续说,“但经过昨晚连夜的技术溯源,攻击发起时的登录IP与陈默本人的常用设备不符,IP归属地是十五楼行政机房,监控显示昨晚有非机房工作人员进入该区域。”

他把话头递给了老孙。老孙穿了一件皱巴巴的格子衬衫,头发乱得像草窝,站起来的时候碰翻了桌面的马克杯,咖啡渍洇开一小片,他手忙脚乱地擦了两下,然后翻开笔记本电脑。

“那个IP……我查了,十五楼机房的动态分配池,昨晚八点十九分被手动分配了一个特定地址,归属到测试账户名下。分配操作的日志是加密的,但加密用的密钥属于……”他咽了口唾沫,抬头看了刘芸一眼,“属于行政总监级别的应急权限。”

刘芸端起茶杯喝了一口,不紧不慢地放下:“没错,是我权限范围内的操作。但我昨晚八点到九点在跟海外客户通电话,通话记录可以查到。至于我的应急密钥是否被人复制或盗用,那是技术部该查的事。”

老孙张了张嘴,没接上话。韩璐接了过去:“密钥在录入系统时,只有本人掌纹和密码双重验证才能启用。复制盗用的可能性极低,除非本人配合。”

会议室里安静下来。八双眼睛在彼此之间游移,像八颗被摆上台面的棋子。陈默感觉到那个圆领衫男人的视线又落在他身上,但这次他转头对上了。

“你是谁?”陈默问。

圆领衫男人把硬币收进掌心,扣在桌面上,发出一声轻微的金属磕碰。他朝陈默伸出手,手掌向上,像是某种示意的姿态:“秦远。你可能没亲眼见过我,但你那个端口账户的底层架构,是我三年前搭的。”

赵东升的脊背僵了一下。老孙擦咖啡的手停住了,纸巾压在桌面上没再动。韩璐那支笔的笔帽彻底被她咬扁了,凹陷处露出白色的塑料芯。

陈默看着那只伸过来的手,没有握。

“你不是来找我的。”他说。

秦远收回手,也不恼,笑容纹丝不动地挂在脸上:“我确实是来找你的。只不过方式温和了一点,换了个说法,叫什么来着——”他侧头看了一眼赵东升,“项目奖金?”

赵东升的脸色白了一层,手指攥紧了桌沿,指关节发出细微的咔哒声。

“秦远,”他压低声音,“会议内容不包括翻旧账。”

“不急。”秦远摊开手,“我今天是以数据安全顾问的身份坐在这儿的,赵总昨天半夜请我来的。他说公司出了点技术麻烦,需要‘前核心骨干’救场。我当时听了挺高兴,觉得赵总终于想通了,知道当年把我送走那笔账该还了。”

他语气轻松得像在讲笑话,但桌子下面,陈默看见他的右腿不自然地往外撇着,像是受过伤之后的代偿姿态。他忽然想起来苏念昨晚说的——“左腿不太利索,走路的时候脚尖往外撇”。那个在地库跟了两个小时的黑衣戴帽衫男人,就是秦远。

“所以昨晚那个公共电话亭,是你打出去的电话。”陈默说,“你的目的从来不是攻击,你是要让赵东升主动找你回来。”

秦远转了转手腕,那枚硬币又重新出现在他指间:“算是吧。但我没想到你的反应比我想的有趣得多。你看到了那张寻物启事,你撕了它,你回了家,你见了不该见的人,你拿到了不该拿的东西。”他的视线落在陈默面前那个牛皮纸档案袋上,“那个袋子里的监控截图,你猜是从谁那里流出来的?”

陈默的拇指在档案袋的封口处摩挲了一瞬。他没有回答。

这时候秃顶金丝眼镜的男人终于开口了。他的声音很沉,像砂石摩擦的质地,一开口,整个会议室的空气降了两度:“诸位,我是瑞恒资本的代表,姓江。瑞恒持有本公司百分之二十三的股份,是第一大外部股东。我需要知道,昨晚的攻击是否造成了实质性的数据损失,以及今天开盘之后,这件事会以怎样的口径对外披露。”

他顿了顿,看向赵东升:“赵总,你给我的材料里,说的是一起‘员工操作失误引发的技术事故’。但刚才两位的发言,似乎指向的是更复杂的情况。”

赵东升的嘴唇抿成一条线。他的额头渗出一层细密的汗珠,在吊灯下泛着油亮的光。陈默看着他的样子,忽然想起了去年十一月那个会议室。那时候赵东升坐在同一把椅子上,姿态比现在从容得多,手里拿着一份风险评估报告,轻轻一推,推回了陈默面前。

“小陈,市场形势不好,成本压得紧。你这个阶段提技术改造,太不合时宜。”

陈默把手伸进外套内袋,掏出了那张苏念放进茶几底下的银行转账记录,展开,平铺在桌面上。胡桃木的倒影里,一百六十万那几个数字格外清晰。

“这份转账,昨天到账的,备注写着项目奖金。”他推过去,推到桌子中央,“转出账户查过了,开曼群岛的空壳公司,法人代表姓刘。而刘女士的弟弟,”他转头看向刘芸,“三年前跟秦远在同一批裁员名单上。那批名单,是赵东升亲手签的。”

刘芸端着茶杯的手稳得像焊在了半空。她的表情没有丝毫波动,只是慢慢放下杯子,杯底与桌面接触,没有发出一丝声响。

“陈默,”她说,“你知道行政部的职责是什么吗?”

“管钱,管人,管制度。”

“还有。”刘芸从自己的文件包里抽出一份装订好的文件,同样推到了桌子中央。那份文件封面印着“内部审计报告”字样,日期是今年的三月,签发单位是瑞恒资本的内部风控组。

“行政部的职责,还包括在管理层出现重大失误的时候,确保信息第一时间传达到真正应该知情的人那里。”刘芸推了推眼镜,镜片反光遮住了她的眼睛,“赵东升,去年的财报你们在报表里做了哪些手脚,需要我现在念出来吗?”

赵东升猛地站起来,椅子腿在地毯上发出闷响。他双手撑桌,脖颈上的青筋鼓了出来:“刘芸你——”

“坐着吧。”秦远轻轻说了一句。

他的手从桌面底下伸上来,把一枚硬币弹到了赵东升面前,银色的圆形在胡桃木桌面上旋转,像一颗微型的陀螺。硬币转了很久才停下来,倒下的那一面,头像朝上。

赵东升看着那枚硬币,嘴唇翕动了几下,终于坐了回去。他坐下去的样子像一截被抽走了骨头的木偶,肩颈线条垮塌下来,衬衫领口歪得更厉害了。

陈默看着这一切,没有说话。他把那份转账记录折好收回口袋,把档案袋里的监控截图也一并放回去,然后站起来,把椅子推回桌下。

“你们讨论完了,告诉我结果。”他说,“但我今天来,不是为了听你们谁把谁扳倒。我只有一个问题要问赵总。”

他转过身,看着赵东升。赵东升抬起脸,目光散着,瞳孔扩张,像一根绷到极限的弦。

“去年十一月那份风险预警,”陈默一个字一个字地说,“你压下它的时候,知不知道那条漏洞如果不补,一旦被定向攻击会锁死整个核心数据层?”

赵东升没有回答。但他抖了一下,左手从桌面上滑了下去,攥住了自己膝盖。

韩璐替他开了口:“他知道。”

陈默看着赵东升,看了很久。会议室里安安静静的,只有吊灯里偶尔发出一声细微的电流嗡鸣。

然后他掏出手机,解锁,拨了一个号码。电话只响了一声就接通了,那边传来苏念压低了的声音:“怎么说?”

“报警。”陈默说,“数据安全法第十七条,故意隐瞒重大系统漏洞造成严重后果的,追究直接责任人刑事责任。你把昨晚所有的溯源记录、暗网截图、公共电话亭的监控、还有那张转账记录,全部打包发给经侦支队的张警官。他认得我。”

他挂了电话,把手机放回兜里。

赵东升的椅子发出一声轻响,像是什么东西终于散了架。

陈默没有再看任何人,转身走向会议室的门。手搭在门把手上时,身后的秦远叫住他:“陈默,你那份报告里的漏洞,有没有留过补丁?”

陈默停住脚步,没有回头。

“留过。”他说,“去年十二月,我自己写的补丁,挂在备用密钥的加密层里。只要输入正确的时间戳,补丁会自动覆盖漏洞。时间戳是——”

他拉开门,走出去之前,最后留下一句话:“是你当年离职的日期。秦远,你欠我的那顿酒,记得还。”

门在他身后合拢。走廊里空荡荡的,消毒水的味道浮在空气里,日光灯嗡嗡地响着。他走过消防通道的转角,在窗边停下来,看着外面的天空。

阴云散了一些,太阳从云缝里刺出几道光束,打在对面写字楼的玻璃幕墙上,碎成一片金色。

手机震了一下。苏念发来的:“发了。张警官让我转告你一句话。”

“什么?”

“他说:‘好样的。’”

陈默把手机放回兜里,沿着走廊往电梯间走去。身后会议室的门紧闭着,里面那些声音被厚实的木门吞掉了,他听不见,也不打算再听。

电梯到了,门开,里面站着一个人。

李姐。穿着昨天那套行政制服,手里捧着一个纸箱,跟昨天周晓楠的姿势一模一样。她的脸色灰白,左手中指上那枚戒指摘掉了,指根留下一圈浅色的压痕。

她看见陈默,箱子晃了一下,差点脱手。

陈默伸手帮她扶住箱底。两个人的手在纸箱边缘短暂接触,冰凉的对碰。

“李姐,”他说,“你老公的事,我替他走完了。”

李姐没说话。她低头看着箱子里那个空掉的马克杯,眼眶慢慢红了一圈。

电梯门在他们面前合拢,数字开始跳动,一格一格往下。

陈默靠在轿厢壁上,闭上眼睛。

第6章

三个月后,陈默租的那间一室一厅换成了城东一套两居室,客厅的灯修好了,暖黄色的,照在刚拆封的纸箱上。阳台外面种了一排薄荷,苏念从花鸟市场搬回来的,说这种草好养活,掐一把泡水喝清凉。

窗台上搁着他那本《分布式系统设计》,书脊开了线,内页里夹着的那张照片被他取出来了,封进一个新的相框,摆在电视柜上。三年前剪彩横幅底下一群人笑着,他站在后排,秦远隔了一个位置搭着赵东升的肩膀,刘芸穿着行政制服在画面右侧摆弄胸牌,老孙蹲在最前面比着剪刀手,而赵东升那时候笑起来的弧度,和后来每一次决策会议上那种笑,陈默看了三个月才看出来,根本是两种表情。

苏念在厨房煮面,锅里的水咕嘟咕嘟冒泡,她把切好的西红柿推进去,转头问他:“张警官那边结案了?”

“结了。”陈默坐在沙发上拆最后一个纸箱,里面是书和旧笔记本,他把它们一本一本地码进新书架,“赵东升经侦移交检察院,涉嫌隐匿重大安全风险、伪造财务数据、关联行贿,数额不小。韩璐主动交代了部分事实,争取了从宽。老孙的监控截图,刘芸留了底,但老孙本人写了亲笔说明,承认昨晚的端口操作是他受赵东升指使执行的,把李姐撇了出去,只说她是配合放风,不知道具体操作内容。刘芸的弟弟那个空壳公司的事,跟公司这一起合并调查了,目前还在走流程。”

苏念把面条下进锅里,拿筷子搅了搅:“秦远呢?”

“他在瑞恒资本的引荐下进了新成立的数据安全专项委,当顾问。那天会议室里的江总——瑞恒资本的代表——全程录像了。董事会当天就出了决议,赵东升停职,刘芸暂代执行总裁,直到新的管理层选出来。秦远走之前托人带了一句话给我,说那顿酒他记着,等我空了随时找他。”

苏念从厨房探出头,额角沾了一点面粉:“他那个腿,后来怎么样了?”

“治了。”陈默低头翻书的时候,从某一页飘下来一张旧便签,上面写着一行字:“后门留在此处,仅限本人及本人指定之人调用。”落款是秦远的签名,日期正好是他离职那天。陈默看了那张便签一会儿,把它重新夹回书里,“他说当年赵东升让他背锅走人,条件里有一条技术负责人的位置留给他,但等了一整年,回来的是一个叫陈默的新人,他就知道赵东升从来说话不算数。”

面煮好了,苏念端了两碗出来搁在茶几上,汤色清亮,番茄的酸甜味漾开。两个人面对面坐着,筷子夹起面条,白汽往上飘,在暖黄色的灯光里散成薄雾。

陈默吃了一口,烫得吸气,苏念递给他一杯凉水,杯壁上凝着水珠。

“你后悔吗?”她忽然问。

陈默放下筷子,看着她。苏念坐在对面,穿着他那件旧卫衣的袖子还是长了一截,只露出几根手指,左眼角那道疤淡了一些,变成浅浅的粉色,不仔细看已经不太明显了。红绳还戴在手腕上,银珠磕着碗沿发出轻响。

“后悔什么?”

“那套系统。”苏念说,“你留了补丁,但没用。昨天晚上那个时间戳一过,补丁自动关闭了暴露端口,系统恢复了。如果你当初不上交那个补丁,让它一直锁着,赵东升的事可能拖不了三个月,也许三天就结案了。”

陈默想了想,端起杯子喝了口水。水很凉,跟那天晚上他坐在沙发上的那杯一样,但这一次下喉没有打寒战。

“我当时做那个补丁的时候想的是,如果有一天这道后门真的被打开了,那一定是有人逼到了绝路。秦远也好,赵东升也好,谁用这个端口都不重要,重要的是我需要一个机制,能让系统在被人利用之后还能自己爬回来。”他把杯子放下,看着苏念的眼睛,“那套系统里跑的不只是赵东升的数据,还有市场部王胖子、技术部老孙、开发组小周,还有那个刚转正的小孩。他们不知道端口的事,年终奖的事,他们只知道第二天来上班系统恢复了,能接着干活。”

苏念安静地听他说完,低下头吃了一口面。过了一会儿,她把碗捧起来喝汤,碗沿遮住了下半张脸,但陈默看见她的睫毛颤了一下,比平时湿了一点。

“你变了。”她说。

“哪变了?”

“以前你只计较自己那部分。年终奖少发一块钱你都要追着人事问明白。现在你计较的是所有人的。”

陈默笑了一下,嘴角弯起来的弧度很小,但落地窗玻璃上倒映着那张脸,确实跟三年前入职照片里那个绷着下巴的年轻人不太一样了。他重新拿起筷子夹面,吃了两口,停下来看着窗外的天。

初冬的傍晚,天色从铅灰过渡到深蓝,对面那栋居民楼已经亮起了一排排橘色的小方块,有人隔着窗玻璃逗小孩,有人收衣服,有人把饭桌支在阳台上,三个人围着冒热气的锅。

“念,”陈默看着对面那个阳台上的三口人,“你说一个人做错了一件事,是不是就再也回不了头了?”

苏念把空碗放到茶几上,起身走到他旁边,在沙发扶手上坐下来。她的腿贴着他的胳膊,隔着卫衣的布料传来一点体温。

“那要看是哪件事。”她说,“赵东升错在明明知道漏洞会出事,还是选了压下去。秦远错在用自己的手段去逼对方低头,而不是走法律那条路。你呢——你错在一个人扛了那么久,连我都不说。”

陈默侧过脸看她。苏念的侧脸被窗外的暮光描了一层淡金色的边,眼角那道疤在光线里几乎透明。

他伸手,把她卫衣袖口里露出来的那截红绳拉了一下,轻轻系紧。

“以后不扛了。”他说。

“说好了?”

“说好了。”

窗外的路灯在同一瞬间亮了,光从窗口漫进来,在地板上铺开一片暖融融的橘色。陈默站起来,把茶几上的碗收了,端到厨房。水龙头打开,热水冲在手背上,白汽腾起来模糊了窗玻璃。他洗完碗用围裙擦了手,走出厨房的时候,苏念正蹲在阳台那片薄荷旁边,给每一株浇水。水壶倾斜,细流落在叶片上,滚成晶莹的水珠往下淌。

他走过去,蹲在她旁边,手指拨了一下最边上那株的叶子,薄荷的清凉气味散开来,沾在指尖上。

“苏念。”他叫她。

“嗯?”

“那张寻物启事,真的是你贴的吗?”

苏念放下水壶,侧过头,嘴角挂着一点似笑非笑的弧度:“你猜。”

“那‘等’字——”

“是我写的。”她伸手拍了拍他的头顶,像拍一只蹲在台阶上等了很久的猫,“你当年让我走的时候说了一句‘等我处理完手头的事’,我一等就是一年。后来我想,既然你不知道什么时候能处理完,那不如我回来告诉你——你的事,也有我一份。”

陈默看着她,喉咙里堵了一下,什么声音都没发出来。最后他只是点了点头,伸手帮她把另一盆刚移栽的薄荷端到阳光最好的位置。

天彻底黑了下来,但屋里灯亮着,暖黄色的一整片,把两个人的影子投在白色的墙壁上。冰箱嗡嗡运转,水龙头偶尔滴答一声,楼下传来谁家的小孩喊着“妈妈我回来了”,然后是一串跑上楼的脚步声。

陈默坐在沙发上,手机搁在茶几上,屏幕朝上。通知栏里滑过几条消息,他划开看了一眼。技术部群里老孙发了一条:“新系统今天上线跑了一整天,稳定。兄弟们辛苦了。”底下跟了十几个大拇指表情。小周单独给他发了一句:“默哥,我把房租交了,这月涨的那部分我补上了,谢谢你。”周晓楠在朋友圈发了一张新办公室的照片,配文:“新东家,新开始。”秦远在午夜里发了一条只有“陈默”两个字的艾特,没有下文。

他把手机锁屏,面朝下放回桌面。

苏念从阳台进来,关了门,薄荷的清凉味跟着她一起飘到屋里。她在他旁边坐下,靠着他肩膀,长长地呼出一口气。

“明天周末。”她说,“要不要去一趟惠民路夜市?那家炒粉摊你上次说好吃,我还没尝过。”

陈默把她的红绳又摸了一下,银珠在掌心转了转:“去。顺便看看那张寻物启事还在不在,在的话收回来。”

“收回来干什么?”

“留着。”他说,“等以后什么时候又找不到你了,我就把它贴在小区门口,你看到了自己会来找我。”

苏念没接话。但她把脸埋进他肩膀,卫衣帽子的布料蹭在他下巴上,痒痒的,像薄荷叶拂过脸颊。

窗外的城市一片灯火,每一扇亮着的窗户后面都藏着不同的人不同的日子。有些人像赵东升那样选了不该选的路,回不了头。有些人像秦远那样走了一段弯路,最后还是找到了正确的方式回来。而有些人,比如他,用了整整一年才明白一件事——有些事从一开始就不是一个人扛的,那些该告诉的人,早该说了。

他闭上眼,头顶的暖光灯在眼皮上投下一片柔和的橘红色。

茶几上,手机安安静静地躺着,再没有疯狂震动的未接来电。窗台上的薄荷在夜风里摇了摇叶子,影子映在玻璃上,细碎地晃动。

那盆薄荷的土里,埋着一小段红色的编织绳头。那是苏念编红绳时剪掉的废料,她说留着也没用了。陈默没扔,趁她浇花的时候悄悄塞进了花盆底下。三个月过去,薄荷的根已经缠住了那截绳子,分不开了。

日子就这么过下去了。

比想象中的好。

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