免责声明:本文为虚构故事,请读者朋友注意辨别,理智思考。
年终奖到账500元,我冷静下班,当晚公司360亿核心数据遭受对手攻击,直接收到上级的198个电话,我:反正都是500,不接怎么了?
第1章
“李默,年终奖到账了吧?五百块,公司对你够意思了。”
张海涛把这句话扔在开放办公区正中央的时候,距离下班还有七分钟。他的声音不大,刚好够部门里二十几个人全部听见,又刚好不会传到玻璃墙另一边的总监办公室。说完他自己先笑了,嘴角往上一扯,露出那颗补过的侧切牙。
我没抬头。屏幕上是这次数据迁移项目的排期表,最后一行写着今晚十一点开始执行。五百块在手机通知栏里躺着,像一口吐在脸上的痰,干了,但还黏着。
“李默,张主管跟你说话呢。”坐我斜对面的周琳用笔帽戳了戳我的胳膊,压低声音,眼神里带着那种“你赶紧服个软”的催促。
我把眼睛从屏幕上抬起来,看着张海涛。他今天系了条新领带,蓝底白点,领结打得鼓鼓囊囊,像喉咙里长了个瘤。他等着我回话,手插在裤兜里,肩膀微微后仰,整个人的重心落在右腿上,一副等你来求我的站姿。
“听到了。”我说。
“就这反应?”张海涛往前迈了半步,皮鞋底在静电地毯上擦出一声短促的吱呀,“五百块啊,我帮你争取的。按规定你这个考核档本来拿不到年终奖,是我不嫌麻烦签了字,你才有这五百。不说声谢谢?”
“谢谢。”我说。
办公室里安静下来。有人把键盘敲得噼里啪啦响,假装在工作,有人低头刷手机,拇指划动的频率明显加快了。张海涛看着我的脸,大概在找某种他期待的东西,没找到。他的嘴角又扯了一下,这次没笑完,变成了一声从鼻子里哼出来的气音。
“行。”他说完这个字转身就走,皮鞋跟磕在地上,哒、哒、哒,一路磕回他靠窗的那张桌子。我目送他的背影,注意到他右手的拳头在裤兜里攥了一下,裤兜的布料绷紧了又松开。
七分钟到了。打卡机发出嘟的一声,我拔下工牌,把键盘推进桌面凹槽,起身。动作不快,也不慢。周围的同事都还在椅子上坐着,没有人动,因为平常第一个走的人总会被张海涛在周会上不点名地提一嘴。但今天我不在乎了。这五百块把我在乎的额度用完了。
电梯里只有我一个人。数字从二十七往下跳,每跳一下,楼层显示板就闪一道红光。到一楼大厅的时候,手机在兜里震了一下。我拿出来看,是公司OA系统的推送通知,红点标在“离职申请审批”那一栏上。我没点开,把手机塞回裤兜,推开大厦的旋转门。
冷风灌进来,灌进衬衫领子。我深吸一口,空气里有晚高峰的汽油味和烤肠摊的廉价肉香。走到地铁站口的时候,我回头看了一眼身后的写字楼。二十七楼亮着灯,那是我们项目组的楼层。今晚十一点开始迁移,张海涛应该会留守盯着。想到这个,我本该有点愧疚,但心里什么也没浮上来。就像站在一片干涸的湖底,抬头看天,发现天也是一样干。
手机又震了一下。这次是微信。我划开看,周琳发来一条消息:“你还好吧?张主管在群里说今晚大家都别走,就你没看到消息吗?”
我看了一眼部门群。未读消息四十七条。点进去,最上面是张海涛发的一条:“各位,今晚十一点准时开始数据迁移演练,所有后端和运维人员必须留岗,不得请假。李默@李默,你人呢?”
发送时间是三分钟前,配了一张办公室全体的合影。照片里我的工位空着,椅子上搭着我的外套,像一具被掏空的壳。
我回了周琳一个字:“嗯。”
然后我把群消息设置成免打扰,走进地铁口。车厢里人挤人,我的脸贴在冰凉的车门玻璃上,外面是城市的流光。手机又响了,这次是电话。屏幕亮起来,来电显示:张海涛。我把手机翻了个面,塞进外套内袋,没接。挂断后又响了三次。第三次的时候车厢里有人皱眉看了我一眼,我干脆把手机调成静音。
回到出租屋,九点四十分。我洗了个澡,煮了碗面,然后坐在床沿上,把手机开机。锁屏上堆了十八个未接来电,全是张海涛。微信未读消息超过两百条。我一条也没点开。把手机扔在枕头边,关上灯,准备睡觉。
但手机屏幕又亮了起来。我侧头看了一眼,是一条短信,陌生号码,四个字:“接个电话。”
紧接着屏幕再次点亮,来电显示:周海明。我的手指悬在接听键上方,停了两秒,然后按了下去。
“李默,你在哪儿?”周海明的声音又低又急,语速比平时快了两倍都不止。
“在家。”我说。
“你知不知道公司出事了?”他压低声音,几乎是在用气声说话,“数据库正在被攻击,核心数据,就是你们组负责的那套。张海涛现在像疯了一样在办公室跑来跑去。二十分钟前他开始给你打电话,打了几十个你都不接。现在连蒋总都知道了。”
我沉默了两秒,然后问:“所以呢?”
电话那头传来急促的脚步声,有人在喊周海明的名字。他匆匆说了一句“你看群”就挂了。
我点开部门群。最新一条消息是蒋总亲自发的,三个问号,然后是一段语音。点开听,蒋总的嗓音在颤抖:“李默,我是蒋宏远。无论你人在哪里,请立刻马上回公司。数据安全事件正在发生,你是核心开发,我们需要你协助排查。希望你以公司利益为重,个人情绪先放一放。回电话给我。”
在这条语音下面,张海涛紧跟着发了一行字:“李默你完了,年终奖嫌少是吧,这回等着吃官司吧。”
然后是周琳的消息:“李默,快回电话吧,真的出大事了。”
再往下,是IT安全组的同事发出来的一张系统后台截图,红色警告框占满整个屏幕,入侵检测系统在疯狂告警,受影响的文件路径密密麻麻滚动刷屏。截图上方的时间显示:二十二点四十七分。
我把手机息屏,放在床头柜上。房间里很静,楼下有小孩在哭,有人在阳台上打电话,声音很大,我听不清内容。我又拿起手机,点开张海涛的微信头像。他朋友圈设置了三天可见,封面图是一张站在办公室落地窗前拍的城市夜景,配文是“拼了”。我看了两秒,退出,然后打开了他私聊我的一串语音。我没有播放,直接右上角,设为不显示。
接着我打开企业微信后台,输入我的账号和密码。登录成功。我的权限还在,还没有被踢。系统日志显示我的账号在今晚十点十二分发起过一轮数据导出请求,目标服务器是国内某云服务商的冷存储节点。导出状态:成功。日志来源IP:公司内网172.16.3.88。那个IP,是我工位所在的网段。
我猛地从床上坐起来。
手机又响了。
电话还是周海明打来的。
“李默,你现在必须告诉我,”他的声音在发抖,像被人掐着后颈逼出来的,“安全组查到一条导出记录,用的是你的账号。十点十二分。你知不知道这件事?”
我盯着床对面那面斑驳的墙,墙上有楼上渗水留下的一块黄渍,形状像一只张开的手。我的声音比我预想的要平静:“不是我干的。”
“那你的账号怎么回事?你的密码还有谁知道?是不是你工位上还登着?”周海明连珠炮一样问出来,问完自己先泄了气,“操,反正现在安全组认定是你,张海涛已经在群里带节奏了,说你是蓄意报复。”
“我没有。”
“你跟我说没用。”他压低嗓子,“你赶紧回来,当面对质。现在还能说成账号被盗用,要是再拖下去,就不是你干不干的问题了,是所有人都会默认是你干的。”
电话那头有人在喊“周海明,蒋总叫你”。他匆匆挂了。我坐在床沿上,手心在渗汗,指尖却发凉。手机屏幕暗下去又亮起来,未接来电已经排到了四十六个。锁屏上的通知层层叠叠,像是被什么东西撑着不让它喘气。
我打开备忘录,把知道的信息一条一条记下来。导出时间十点十二分。我当时在家,地铁卡记录可查。家里的路由器日志能显示手机的联网时间。我可以证明自己不在公司,但证明不了账号不是我干的。如果是公司内网IP发起的请求,要么有人在我的工位前动了手,要么有人伪造了内网身份。无论哪种,都需要进公司查。
我犹豫了十分钟。这十分钟里张海涛又打了六个电话,发了一条朋友圈,只有四个字:“吃里扒外。”配了一张公司监控截图,截图上是我的工位,椅子上挂着我那件灰色外套,时间戳显示二十二点零九分,工位空着,周围一个人都没有。
看到这张图的时候,我的后背上像被浇了一桶冰水,凉意顺着脊柱往下淌。监控截图从公司内网流出,到朋友圈只需要十秒。张海涛没打码,没写名字,但谁都能认出那是我的位子。
我打给周海明,电话响了很久才接。他那头背景音嘈杂,有人在敲键盘,有人在骂人,还有打印机在咔咔吐纸。
“我现在过去。”我说。
“你确定?”周海明明显愣了一下,然后压低声音,“蒋总现在情绪很差,他女儿刚给他打电话说看朋友圈都看到监控截图了。你现在过来,可能会被直接按在会议室里逼问。”
“如果我不过来,这事就坐实了。”我从床上站起来,套上外套,把钥匙和手机分别塞进两边的兜里,“帮我看一下安全组还有谁在公司。”
“陈默、刘倩、还有新来的那个实习生小赵,都来了。”他顿了顿,“还有,张海涛从外面叫了个人,不知道是谁,穿黑衣服,一米八多,站在他旁边。”
我没接话。挂断电话,出门。楼下那家便利店的灯还亮着,门口的风铃在我推门时叮了一声。我买了罐黑咖啡,站在街边喝了半罐,招手拦了辆出租车。
车上我给周琳发了条消息:“我到公司之前,帮我做一件事。去看看张海涛的工位上有没有人动过。别让人看见。”
她很快回了个“好”,后面跟了一串省略号。
出租车在高架上飞驰,两边的路灯把车窗照成一片一片的橙色,又迅速退去。司机从后视镜里看了我两眼,大概觉得我脸色不对,问了一句“兄弟没事吧”。我说没事,麻烦开快点。
到公司楼下的时候,已经过了十二点。旋转门还开着,保安坐在服务台后面,看到我进来,眼神怪怪的,手里的对讲机举到一半又放下。我刷卡过了闸机,电梯间里空无一人。按了二十七楼,电梯门关上,开始往上爬。镜面墙上映出我的脸,头发被风吹得有些乱,衬衫领子歪向一边。
电梯到二十七楼,叮。门开了一条缝,外面的冷白灯光先挤进来,然后是声音。安全组的人在工位间穿梭,电话铃声此起彼伏,有人在会议室里拍桌子。我走出电梯,所有人的动作像被抽了一帧,有几秒的定格,然后齐刷刷转向我。
张海涛第一个冲过来。他走得很快,鞋底在地上擦出接连不断的吱吱声,领带歪到脖子侧面,脸上那点惯常的倨傲被一种兴奋到扭曲的神情替代了。他停在我面前两步远,拿手指着我,指尖在抖:“你还有脸来。”
我没理他,目光越过他的肩膀,落在会议室门口。那里站着蒋宏远,手里攥着几张打印纸,脸色铁青。他旁边的黑衣男人像堵墙一样立着,眼睛半睁,像在打盹,但手指一直按在腰间的什么东西上。
“李默,来会议室。”蒋宏远的声音不高,但每个字都带着压到极限的沙哑。
我往会议室走。经过张海涛身边的时候,他低声说了一句:“你完了。”声音很轻,像是吹进我耳朵里的一口脏气。
会议室里灯全开着,长桌上摊满了打印出来的日志和截图。蒋宏远坐在主位,安全组的陈默和刘倩并排坐在他左边,实习生小赵缩在角落里,脸白得像张纸。我站在桌子对面,没人让我坐。
“十点十二分,你的账号发起了一条全量导出请求,目标路径是核心数据库。导出文件大小在后台被清理前无从核实,但发起指令的账号、密码、内网IP全部指向你。”蒋宏远把手里的纸拍在桌上,纸页散开,滑出半尺远,“李默,我不想跟你废话。是不是你干的。”
“不是。”我说。
“账号是你的,密码你知道,内网IP是你工位的网段。今晚你不在公司,但你的工位没人动过,监控没拍到任何人靠近。你告诉我,不是你,那是谁。”
“我的密码不是只有我知道。”我停顿了一下,“上周三系统强制定期改密,我在工位上改的。有没有人看见,我不知道。”
张海涛从外面走进来,抱着胳膊靠在上,嘴角噙着笑。他插嘴道:“你改密码那天我路过你工位,看到你在敲新密码,嘴里还念叨,是不是叫李默你心里清楚。全公司能知道这个密码的人,就你一个。”
我转过头看他:“你看到了?”
“看到了。”张海涛站直身体,收起笑,“两遍。”
“那你说说,我新密码是什么。”
张海涛脸上的表情僵了一瞬,像是被人在后脑勺拍了一下,但他很快恢复了轻蔑:“你现在让我们说,好到时候倒打一耙说我偷了密码,李默,你算盘打得挺响。”
蒋宏远抬起手,制止了张海涛继续说下去。他盯着我,眼袋像两条淤青,声音冷得像冰水:“李默,我现在不关心谁偷了你的密码。公司核心数据正在外泄,每一分钟都在产生不可逆的损失。你是这个项目的核心开发,唯一能追回数据的人,除了你没有别人。你现在,马上,打开你的电脑,协助安全组追踪。不管你干了什么,先止损,再追责。”
我没动。他盯着我。会议室里安静得能听见墙角机柜的嗡鸣。陈默的手指放在键盘上,屏幕上是他早就开好的命令行窗口,光标在闪。
“不。”我说。
这个字落在会议桌上,像一颗钉子从高处掉下来。
张海涛差点跳起来,嗓门一下拔高:“蒋总你看他这态度,分明就是心虚——”
“我协助的前提是,公司先查清楚那条导出记录到底是谁发起的。”我打断他,看着蒋宏远,“否则我碰任何一台设备,都会变成我在继续操作。我不背这个锅。”
蒋宏远看着我,十秒,二十秒。他的喉结动了动,像在咽什么东西。然后他慢慢说:“你没有资格跟我谈条件。”
话音未落,手机震了。是蒋宏远自己的手机,就在桌上。他低头看了一眼,脸色瞬间变了。然后他把手机拿起来,对着屏幕看了很久。我注意到他的拇指在抖。
他忽然抬头,目光越过我,看向会议室外面。玻璃墙外,张海涛的手机也响了。接着是陈默的、刘倩的、小赵的。铃声此起彼伏,像午夜骤起的虫鸣。
我手机也震了。我拿出来,锁屏上的消息来自公司安全系统——红色告警,来自攻击方的新动态。蒋宏远把手机屏转向我,页面上只有一行字。
“游戏开始。我要让李默亲手把数据送出去。”
他声音发颤:“对方指定,只跟你一个人对接。”
会议室里的空气像被抽走了一样,所有人都在看自己的手机。告警信息一条接一条地弹出来,手机震动的声音此起彼伏,像一群马蜂在玻璃盒子里乱撞。
蒋宏远把手机拍在桌上,屏幕还亮着。那行字就横在上面,白底黑字,像一条贴在墙上的判词。他看着我,眼神比刚才更复杂,里面除了一开始的怀疑和愤怒,又多了一层他不想承认但压不住的东西。
“你认识他。”蒋宏远说,用的是肯定句。
“我不认识。”我把手机放回桌上,屏幕朝下,“我也没收到任何私下的联系。”
“那为什么对方点名要你。”张海涛抢着插嘴,声音尖了起来,“蒋总,这还不能说明问题吗?里应外合,贼喊捉贼。他知道公司核心数据的架构,现在攻击方指定他一个人对接,摆明了是同伙。”
我偏过头看他。他站在会议桌旁,双手撑着桌沿,整个人往前倾,像一条被拽到极限的绳。我开口:“张海涛,你从头到尾都在把矛头往我身上引。我很好奇,你到底想干什么。”
“你什么意思?”他直起身,“事实摆在这里。你的账号,你的工位IP,现在攻击方点名你。三样都齐了,你还想反咬我?”
“监控截图是你发的。”我说,“十点零九分,我的工位空着。我当时在家。这张截图只能证明我不在,不能证明我账号被谁用了。可你发出去的时候配的字是‘吃里扒外’。谁授权你截图外泄的?”
张海涛的脸涨红了,嘴巴张了张,但被蒋宏远一个手势压了回去。
“都出去。”蒋宏远说。他的声音不大,却让陈默和刘倩同时顿了一下,像被遥控器按了暂停。陈默最先反应过来,合上电脑,拉着刘倩的袖子往外走。实习生小赵像只受惊的兔子,贴着墙根溜了出去。
张海涛没动。
“你也出去。”蒋宏远看了他一眼。
“蒋总,我——”
“出去。”
张海涛咬了咬牙,转身往外走。经过我身边的时候,他的肩头撞了我的胳膊一下,力气不大,但带着明显的挑衅。我没让开,他也没停,两个人肩膀擦过的那一秒,我闻到他身上一股陌生的烟味,很冲,和他平时在办公室里抽的那种细支烟完全不一样。
会议室门关上了。只剩我和蒋宏远。
他站起来,走到窗边。窗外是凌晨的北京,灯光铺到天际线尽头,像一片冻住的星海。他背对着我,过了好几秒才开口:“李默,你进公司六年,是我面试的你。你什么能力我心里清楚。今晚的事,我暂时不给你定性。但你要明白,如果数据真的彻底丢了,这个责任谁也扛不住。包括我。”
我没说话。
他转过身,脸上的疲惫像一层揭不掉的膜:“攻击方指定你对接,一定有原因。你想想,最近得罪过谁。或者,有没有人在测试你的反应。”
“您觉得我是得罪了人,还是被人设计了?”
蒋宏远没回答。他走回桌边,拿起手机划了几下,然后递给我。屏幕上是一封邮件,发件地址是一串无意义的字母数字,只有两个字:“李默。”
我没有伸手接。
他收回手机,自己点开邮件正文,把屏幕转向我。邮件里只有简短几句话:“我手上现在有你们未来三年所有客户的数据。价值我不说了。李默要是愿意,我分他三成。李默要是不愿意,我就让这些数据在四十八小时内出现在你们最大的竞争对手手里。你们报警也没用,跟你们谈的人不是我。”
我把每一个字读完,抬头看蒋宏远。他脸上多了一种说不清的神色,像是在等我露出马脚。
“我没见过这封邮件。”我说。
“安全组已经确认,邮件是攻击方从外部匿名服务器发来的,不是伪造。”他说,“现在最棘手的是,对方明确要跟你对话。如果不回应,他可能真的把数据交易出去。公司等不起。”
“所以,你现在相信不是我?”
“我信不信不重要。”他的语气里透出一丝疲惫到极点的实际,“重要的是,这件事必须在你和对方的接触中被解决。公司不可能冒险得罪一个手里握着命的威胁者。而你必须去跟他谈。”
我沉默片刻,走到会议桌的另一端,拿起桌上的一瓶矿泉水,拧开,喝了一口。水是凉的,从喉咙滑下去,像一条细线。我放下瓶子,说:“我要安全组和我一起进场,全程监控。我不私下接触。”
“可以。”蒋宏远说,“陈默和刘倩都在,你来协调。另外,安全组现在需要你做一件事——你那台办公电脑必须开机,我们需要采集系统痕迹。这已经是底线。”
“好。”我说。
走出会议室的时候,外面的气氛比我进去前更紧张了。所有人都在看我。张海涛靠在他的工位旁边,嘴角挂着一丝笑,像已经预定了我罪名的观众,等着看处刑。周琳站在自己的位子上,手藏在桌子底下朝我摆了个“小心”的手势。
我走到自己工位前。那台台式机还在休眠状态,屏幕上方的指示灯闪着蓝光。我按下电源键,屏幕亮起来,系统开始启动。输入开机密码时,我忽然停住了。键盘上落了极薄的一层灰,只有几个键的灰被抹掉了:C、O、N、T、E、N、T、S。这几个键上干干净净,像被人戴着手套轻轻擦过。
我没有声张。系统登录成功,桌面上的一切还是我离开前的样子。可我的手指悬在鼠标上方,没有点下去。因为任务栏上多了一个我没见过的图标,隐藏在最右侧的折叠区域里,图标是一个灰色的齿轮,正在缓慢旋转。
我转过头,对陈默说:“安全组的设备,借我一台笔记本。我的电脑先别碰,任务栏上有个可疑进程在运行。”
陈默的脸一下就绷紧了,快步走过来,弯下腰看。他只看了一眼,就倒退两步:“这是谁装的?”
张海涛也凑了过来,表情从戏谑变成了狐疑。他弯腰看屏幕,嘴里说:“李默,你电脑上跑了什么东西,你自己不知道?”
我没理他,对陈默说:“查这个进程的启动时间和创建者。现在,马上。在攻击方下一个动作之前,我要知道这鬼东西是怎么爬上我电脑的。”
陈默点头,回身去拿他的分析本。我直起身,环顾四周。周琳的手在桌下朝我比了个“七”,又往张海涛的方向指了指。我不动声色地点头。
手机又震了。这次是微信,一个好友申请。头像全黑,昵称就一个句号。附言写着:“李默,你以为你在帮公司?他们连你年终奖都只给五百。跟我聊聊,我给你看个东西。”
我盯着那行字,拇指悬在“通过验证”上方。陈默在本子上敲键盘的声音像一串急促的雨点。蒋宏远站在会议室外打电话,脸色越来越差。
我点了“通过验证”。
通过验证后,对方没有马上发消息。聊天窗口空白着,只有一行系统提示:你已添加“。”,现在可以开始聊天了。
我把手机屏幕压在大腿上,抬头看陈默。他已经用工具扫描我那台电脑上的可疑进程,屏幕上的数据在飞快滚动。张海涛站在旁边,双臂抱胸,嘴角绷成一条线,眼珠在陈默和我之间来回转。
“启动时间是今晚十点零三分。”陈默停下来,指着屏幕上的日志记录,“这个进程伪装成系统服务,用的是一个过期的签名,常规杀软不会报。创建者账户……是域管理员权限。”
“域管理员权限?”蒋宏远从会议室外走进来,手里还攥着手机,脸色比刚才更难看了,“公司能够接触域管理员账号的人不超过四个。李默的普通权限根本做不到。”
“所以呢?”张海涛的声音里带着些不自然的干哑,“他自己装不了,不代表他不能指使别人装。蒋总,你可不能因为他权限不够就直接排除嫌疑。”
陈默抬起头,推了推眼镜,声音不大但很清楚:“张主管,这个进程的安装路径指向远程推送。也就是说,是有人通过内网运维通道把它塞进李默电脑的。能走这个通道的人,权限比李默还高。”
张海涛张了张嘴,像是被什么卡住了喉咙。蒋宏远看他一眼,那一眼很重,像把一块石头扔在他脚面上。
“查。”蒋宏远说,“运维通道的登录日志、操作记录、关联设备,全给我查出来。今晚谁碰过这条通道,我要知道。”
陈默应了一声,手指在键盘上翻飞。刘倩抱着另一台笔记本走过来,插上内网口,开始同步日志。会议室里的气氛像一根被越拧越紧的弦,所有人的动作都带着一种压制的急促。
我的手机震了一下。我低头看,那个全黑头像发来一个链接。下面跟着一行字:“先看看这个。你身边有内鬼。”
点开链接,跳转到一个加密网盘页面。一个视频文件。我抬头看了看四周,没人注意我。我把耳机从外套内袋里拿出来,插上,点开视频。
画面抖动了几秒,像用手机偷拍的。拍的人站在一个半掩的防火门后面,镜头穿过门缝,对准安全通道的拐角。灯光很暗,但足够看清两个轮廓。一个高个子,穿黑衣服,背对着镜头。另一个要矮一些,穿着格子衬衫,声音被压得很低,但我一下就听出来了。
那是张海涛。
“钱我不要多,就按说好的个数。事情办完,我立刻走。”张海涛的声音从耳机里传来,闷闷的,像被人按在枕头里说的。
“别跟我讨价还价。”黑衣人的声音更沉,像砂纸磨在木头上,“你的部分已经做完了。剩下的,等李默上钩。”
画面到这里断了。视频长度十九秒。我将进度条拖回去,重新听了一遍,每一处细节都记住。然后我把耳机拔下来,把手机屏幕朝下扣在桌面上。
张海涛正在跟蒋宏远说话,表情诚恳得发腻:“蒋总,我这边真没操作过运维通道。我就一个项目主管,哪有那个权限。”
蒋宏远没有回他,只是盯着安全组的屏幕。我走过去,打开手机上的视频,把屏幕递到蒋宏远面前,按下播放。画面里的声音很小,但会议室够安静。张海涛的声音漏出来,像一只老鼠在墙里面啃木头。
张海涛的脸瞬间白了。
“这什么东西?”他往后退了半步,声音拔高,破了音,“这是合成的,是伪造的。李默你从哪弄来的?”
“刚刚对方发给我的。”我说,“他说,我身边有内鬼。”
蒋宏远盯着手机屏幕,脸色从铁青变成灰白,又变成一种极深的沉默。视频放完,他把手机还给我,然后慢慢转头看向张海涛。
“张海涛,这视频里的声音,你自己听听。”
“蒋总,这绝对是陷害。我怎么可能串通外部的人搞公司?我在这儿干了十二年,比李默还久。我有什么动机?我图什么?”他的语速极快,句子像从嘴里滑出来一样,连带出一些含混的尾音。
“图什么,你自己心里有数。”我开口,声音没抬高,甚至比平时更轻,“今晚那笔导出记录用的我的账号,我工位IP。远程进程十点零三分被推送到我电脑上。监控截图十点零九分被你发出去。时间点咬得这么死。张海涛,你告诉我,如果不是你,谁能在你眼皮底下把这些事串得这么好?”
他猛地转向我,脖子上青筋鼓起来,像一条条被烫过的蚯蚓。他张了张嘴,没说出话。蒋宏远抬手止住他,然后对陈默说:“把安全通道附近的监控全部调出来。今晚九点以后的所有角度。”
陈默在键盘上敲了几下,屏幕切换到监控系统。画面被分成六格,映出二十七楼各个角度的静态画面。时间轴拖到晚上九点五十分左右,靠近安全通道的那台摄像头突然黑掉,像是被东西挡了。过了半个小时才恢复。黑掉前最后一帧画面里,张海涛的背影正往通道口走。
时间显示:二十一点四十七分。
会议室里忽然没声了。张海涛的脸从白转青,又转红。他张了张嘴,声音像从嗓子眼里挤出来:“我——我是去那边抽烟。公司规定不能在大楼里抽烟,我承认。但我没见什么黑衣人。”
“通道门后就是监控死角,摄像头被什么挡的?”我问。
“我怎么知道!陈默,你查清楚,我怎么可能闲得没事去挡监控。”张海涛冲陈默喊,手指在空气里乱挥。
陈默没说话,继续拖时间轴。走廊口的另一个摄像头显示,在张海涛进入安全通道后不到三分钟,一个高个子黑衣服的男人也从办公区一侧闪过,脚步很轻,但能看到轮廓。两人一前一后消失在监控盲区。
“这总不是我编的吧。”我说。
张海涛靠在会议桌边,胸腔剧烈起伏。他抬头看蒋宏远,嘴唇在抖,像要说什么。蒋宏远却没有再看他。他转过身,背对着所有人,过了很久才说:“张海涛,公司会请外部审计介入。今晚你不用参与了,回家等通知。”
“蒋总——”
“不要逼我在这里说更难听的话。”蒋宏远的声音冷得像一扇铁门在深夜被风吹动,“通知就这么多,走吧。”
张海涛站在原地。他的身体似乎失去了某种支撑,肩头塌下去半寸,然后忽然朝我走过来一步。他压着嗓子,几乎是在我耳边说:“李默,你以为你赢了?你等着。”
说完他转身,撞开会议室的门,脚步声沿着外面的走廊远去,像一串碎裂的节拍。
陈默轻轻吐了口气。刘倩在旁边低声说:“那现在怎么办?攻击方还在等李默回应。”
我的手机再次震动。全黑头像发来新消息:“内鬼送走了。现在,我们可以谈正事了。”
我盯着屏幕,回了一句:“你想怎么谈。”
对方正在输入的提示出现了几秒,然后跳出来一行字。
“明天中午十二点,国贸三期地下一层停车场,B区217号车位。一个人来。我给你看全套数据。你敢带人,我就敢让这些东西出现在你们对手的年会上。”
我把手机递到蒋宏远眼前。他看完那行字,脸上的表情终于彻底裂开了一道口子,里面淌出来的全是恐惧。
会议室里没有人说话。手机屏幕暗下去之后,蒋宏远的脸映在黑色的玻璃桌面上,像一张浮在水底的旧照片。他慢慢坐下,双手交叉撑在额前,过了好几秒才开口,嗓子像被砂纸磨过:“你不能一个人去。”
“他没有给我别的选项。”我说。
“我们可以报警。”刘倩小声插了一句,声音在安静的会议室里显得格外单薄。
蒋宏远抬起头看她,眼神疲惫而锐利:“报警?对方敢把地点定在国贸地下的停车场,说明他根本不怕。数据在他手上,报警的后果我们扛不住。”
陈默推了推眼镜,犹豫着开口:“那也不能让李默一个技术人员去。对方是做什么的,有没有人身威胁,都未知。这种会面太危险了。”
“他找我,总不会只是打我一顿。”我把手机装进裤兜,“既然点名要我去,说明他需要我。无论他想要什么,我不去,这局就开不了。”
蒋宏远盯着我,像要透过我的脸看见我脑子里的底牌。过了片刻,他问:“你有什么条件。”
“三件事。”我伸出三根手指,“第一,今晚所有证据全部封存,包括张海涛的监控、运维日志、我的系统痕迹。第二,我手机号、账号、行程信息保密。第三,明天见面前,我要安全组给我一个内网加密通信频道,只连我耳机。我一个人进去,但我要你们听到全程。”
蒋宏远想了几秒,点头:“前两条没问题。第三条,设备让陈默准备。你进去之后发生任何情况,我们会第一时间赶到。”
“不能第一时间。”我说,“如果我十分钟内没给信号,你们再动。否则对方察觉了,数据就真没了。”
“你这是在赌。”蒋宏远说。
“公司把我逼到这个位置,我只能拿命去替公司擦屁股。蒋总,你知道那五百块到账的时候我在想什么吗?”我看着他,语气里没有起伏,“我在想,原来我在这个公司值五百。现在公司要我去冒险,我的价码什么时候涨的?”
蒋宏远的嘴唇动了一下,但最终什么也没说。他松开交叉的手,站起身,对我说:“明天的事,公司不会亏待你。但李默,你别把自己真当成孤胆英雄。安全第一。”
我没接话,转身走出会议室。周琳站在她的工位旁,看到我出来,朝我小幅地招了招手。我走过去,她压着声音说:“张海涛走的时候在电梯口打电话,说什么‘他发现了’,还提到‘老地方’。我没听清剩下的话。”
“谢谢。”我说。
“你手机怎么突然有人加好友?我刚刚看到你在看一个视频。”她的眼睛里有掩饰不住的担忧,“是不是那个人?你真的要一个人去见他?”
我看着她,没有直接回答,只是说:“周琳,如果明天我出了什么事,帮我做一件事。把我工位抽屉里那本蓝色笔记本交给我姐。她知道怎么处理。”
她的眼眶猛地红了,但没哭。她点了点头,手在身侧攥紧了衣角。
陈默从会议室出来,手里拿着一只黑色的入耳式耳机和一个拇指大小的中继器。他把东西交给我,说:“信号走加密频段,我们这边能实时收听。你到地库之后按一下耳机侧键,我们就开始录音。电池能撑两个钟头。”
我接过来试了试,耳机塞进耳道,外面几乎看不出来。中继器放进外套内袋,贴着胸口的位置。陈默又补了一句:“安全组在国贸附近安排了三个暗哨。如果你按耳机三下,他们会立刻进场。不过,”他顿了一下,“不到万不得已,别按。”
“知道了。”
那天晚上,我在公司一直待到凌晨四点。陈默把攻击方的入侵路径梳理了一遍,发现数据泄露的规模确实严重——涉及公司近三年主要客户的核心配置信息和合作报价,一旦被公开,公司的商业信用会在一天内崩盘。更严重的是,攻击方似乎还复制了部分数据库的完整镜像,体量超过三百六十亿条字段记录。
这个数字,就是张海涛朋友圈里后来被人截图传播的“360亿核心数据”。数字本身不是重点,重点是谁传出去的。但那时候我还不知道,这个数字会在第二天成为挂在公司头顶的刀。
凌晨四点半,我打车回家。司机一路没说话,收音机里放着一档夜间情感节目,有女人在哭诉丈夫冷暴力。我靠着车窗,闭上眼睛,脑子里像有一台生锈的机器在空转。
到家后我洗了把脸,在书桌前坐下,打开电脑。我没有登公司系统,也没有看消息。我只是在搜索引擎里输入了一个名字:何远洲。这是张海涛走之前说的“老地方”所在的办公楼物业登记人,也是视频里黑衣男人所戴手表表盘上反射出来的那枚工牌上的名字。我当时只看到一帧画面,就记住了。
搜索结果出来。何远洲,前德岳科技安全架构师,五年前离职,原因:一起数据泄露事故,公司疑似将所有责任推给他,导致他被行业封杀。德岳科技,是本公司最大的竞争对手之一。
我盯着那行字,窗外的天开始泛白。手机又震了一下。全黑头像发来一句话:“查得挺快。不过何远洲只是收钱办事。真正要见你的,另有其人。”
我回他:“谁?”
对方没有回复。过了两分钟,发来一张照片。照片上是一个男人的背影,正站在一处高楼窗边,窗户上映着城市的晨光。那个背影我认得,比任何人都熟悉。
我握着手机,手指像被冻住一样,一点一点变冷。
那个背影,是蒋宏远。
手机屏幕上的照片像一块烧红的铁,烙在我掌心。我不敢置信地把图片放大,又缩小,再放大。窗边的男人确实像蒋宏远,那身深灰色西装、微微前倾的站姿、左手插兜的习惯,全都对得上。但仅凭一张背影,说明不了什么。
我回过去:“一张背影照能证明什么。”
对方很快回了一行字:“证明你老板昨晚没回家。你信不信,他现在还在公司里,坐在那间会议室里,盯着手机,等你的消息。”
我没有再回复。把手机翻过去放在桌上,去洗了个澡,水很烫,蒸汽充满了整个卫生间。我站在花洒下面,让水从头顶冲下来,脑子里像有一团被水泡胀的纸,越搅越浑。
洗完澡出来,天已经全亮了。我在沙发上眯了一个小时,睡得极浅,梦里全是张海涛那颗补过的牙和蒋宏远站在窗边的背影。醒来的时候,手机里有五条未读消息。一条是周琳的:“注意安全。”一条是陈默的:“设备测试正常。”剩下三条来自“。”。
第一条:“查得不错。何远洲确实和德岳有关系。不过你猜错了一件事。”
第二条:“张海涛不是何远洲的人。”
第三条:“张海涛是另一条线上的。”
我看着这几行字,后脑勺像被人从里面敲了一下。原以为张海涛是为了钱内通了外部攻击者,结果他的关系比这个更复杂。如果张海涛不是给何远洲干活的,那他昨晚鬼鬼祟祟见的人是谁。何远洲如果不是张海涛的接头上家,又是谁把他放进监控盲区的。
我把这些问题存进备忘录,在心里快速梳理了一遍。现在浮在明面上的只有张海涛和何远洲,背后也许还有第三个人,甚至第四个人。对方故意放这些信息给我,无非是想让我在见面之前先乱。我不能乱。
上午十一点,我出门。陈默的中继器贴在胸口,耳机塞好。手机充满电。穿了件黑色防风外套,口袋里只带了钥匙、手机和一包烟。我不怎么抽烟,但今天在便利店买烟的时候,手指无意识地多敲了柜台两下。
十一点四十五分,出租车在国贸三期的地面入口靠边停下。我下车,四周人流密集,穿西装的人从旋转门里进进出出,没有人注意我。我站在街边,抽出一根烟点上,吸了一口。烟味很淡,像吸了一口热空气。我把它扔进垃圾桶的灭烟口,走向地下停车场入口。
地库里的冷气很足。皮鞋踩在水泥地上,声响被低矮的天花板压回来,显得格外空。B区在靠近电梯间拐角的地方。我沿着车道往深处走,车不多,有几辆豪车停在靠墙的位置。顶灯忽明忽灭,像有风在电路里乱窜。
到了217号车位。车位空着,旁边的柱子上有一道新刮的痕迹,白漆剥落了几块。我站定,环顾四周。没有车,没有人。只有远处电梯井里传来的机械运转声,低低的,像有头兽在地底呼吸。
耳机里突然传来陈默的声音:“李默,我们在你左侧三十米左右。看到你了。你注意右前方,有辆黑色越野刚开进去,没开灯。”
我侧头向右前方看,一辆黑色越野从坡道上滑下来,速度很慢,像漂在暗流上。它拐了个弯,朝我这边驶来,在离我五六米处停住。车灯没亮,发动机的声音很轻。车窗贴着黑色的膜,从外面什么也看不见。
后座的车窗降下一条缝。一只手伸出来,手腕上裹着白色纱布,手指极长,骨节分明。那只手朝我勾了勾,然后缩回去。车门锁“咔”地一声弹开,后门被从里面推开一道巴掌宽的缝。
我走过去。心跳得很稳,像暴风雨前海面平静得太不真实。拉开车门,弯腰坐进去。车内的空调很冷,皮革座椅凉得透进骨头。驾驶座上没有人。后座除了我之外,只有一个人。他坐在对角,穿一件黑色冲锋衣,帽子拉得很低,脸藏在一团阴影里。那只缠纱布的手放在膝盖上,另一只手在操作一部手机。
“你迟到了两分钟。”他的声音经过某种微型变声器处理,带着一点金属摩擦的锐度。
“你的信息太多,我花了点时间消化。”我靠在座椅上,没看他,“说吧,费这么大劲把我弄来,想让我干什么。”
“先别急。”他把手机屏幕转向我。屏幕上是一个实时监控画面,像素不高,但能看清那是一间布置简单的公寓。客厅里坐着一个女人,正在给一个小男孩喂饭。女人的脸看不清,但她的轮廓和那件浅绿色开衫让我手指猛地一凉。
是我姐。
“你的第一反应是对的。”他说,声音像贴着我耳边响,“你有三个小时。三个小时内,你按照我的要求完成远程操作,把公司数据库的最后一道容灾备份,同步到指定云节点。你完成之后,你姐姐家门口的两个人会安静离开。你不做,或者报警,或者在耳机里告诉你的同事,我不会杀她,但那个孩子今天还会不会看到妈妈,就不好说了。”
车内的冷气像凝成了冰。我的喉咙像被什么东西卡住。耳机里陈默的声音立刻传来:“李默,别答应。我们马上行动,定位他。你稳住他。”
我几乎能听见自己血液撞在耳膜上的声音。
“别动。”我开口,声音不大,但足够让耳机那头的人听清。我不知道这话是说给陈默听,还是说给自己听。我转过头,看着那张藏在阴影里的脸,慢慢问:“我凭什么相信你。”
他把手机翻了个面,低头操作了几下,然后递到我面前。屏幕上换成了一段实时视频通话。我姐坐在餐桌边,正笑着给小孩擦嘴。镜头慢慢转向窗户方向,能看见楼下停着一辆银灰色面包车,车旁站着两个戴帽子的男人。其中一个抬头朝镜头方向看了一眼,然后手机屏幕一黑。
“够了吗。”他说。
我合上眼,又睁开。再开口时,嗓子像裂了一道口子,又干又涩。
“你要哪个节点。”我说。
他笑了,声音透过变声器传出来,像两块铁片在摩擦:“别装。你知道是哪个。我要的是容灾的镜像,不是他们给你的那份假数据。备份域的核心密钥,只有你记得住,因为它是你在上一次容灾演练时亲手改的。公司里没别人知道。”
我的手在膝盖上慢慢握成拳。他的信息准确到了可怕的地步。容灾镜像的备份域密钥确实是我设的,改了之后没有录入密码管理系统。这件事只有我自己知道。连蒋宏远都没有权限查阅。
他接着道:“把密钥说给我。会有人用你的账号在内网执行同步。你不用碰电脑。你只需要说一个字。”
我盯着他:“如果我说不呢。”
“你没有资格说不。”他说,“你姐家的门牌号,需要我给你背一遍吗。”
车里安静了几秒。车窗外面,地下车库的一盏灯忽然闪了一下,发出“兹”的一声轻响。我耳机里又响起陈默的声音:“李默,我们已经锁定车辆位置。你先拖住他,我们的人三十秒就到。”
三十秒。太长。也太短。
我张开嘴,喉咙里像含着一把碎玻璃。那个密钥就卡在舌根处,只要轻轻一推,就会滚出来。我看向那个黑暗中的脸,忽然发现他缠着纱布的那只手背上,靠近虎口的位置,有一道极浅的旧疤,呈半月形,被灯光一扫就没了。
那是我见过的一道疤。在蒋宏远的手上。