陈默推开公司玻璃门,地毯吸饱了潮气,踩上去软绵绵的。空气里有股消毒水和昨夜雨水混合的味道,凉飕飕地往肺里钻。
他径直走向办公室。
皮鞋踩在地板上的声音很脆,在空荡的走廊里回响。感应灯一层层亮起,又在他身后一层层熄灭。
桌上放着那个离线硬盘。
黑色,金属外壳,侧面贴着标签纸。写着日期和“备份_加密”几个字,墨迹有点晕开。陈默拿起来掂了掂,很轻,轻得不像装着一场攻防战的所有证据。
他打开保险柜。
机械锁芯转动的声音很沉,咔哒一声弹开。他把硬盘放进去,旁边还有几份纸质合同和印章。关上柜门时,金属碰撞发出闷响。
电脑屏幕亮起来。
沈清澜的远程连接请求已经等在桌面上。陈默点了接受,监控界面跳出来。画面分成四块,左上角是公司网络拓扑图,右上角是李帆工位的实时录像。
李帆已经坐在那里了。
他低着头,手指在键盘上敲得很快。监控镜头从斜上方拍下去,只能看见他的头顶和微微弓起的背。屏幕光映在他脸上,一片惨白。
“他今天早到了二十分钟。”沈清澜的声音从耳机里传出来,带着晨起的沙哑,“进门时撞到了前台桌子,水杯差点翻。”
陈默放大录像画面。
李帆的手在抖。不是特别明显,但敲完一串代码后,手指会悬在键盘上方微微发颤。他端起马克杯喝了一口,杯沿碰到牙齿,发出细微的磕碰声。
“权限限制生效了。”沈清澜说。
确实。监控日志显示,从今早八点零三分开始,李帆的账号访问核心文档库的请求全部被重定向。重定向到一个看起来一模一样的镜像站点,只是里面所有的文件都是加了料的。
文件创建时间是三天前,修改记录显示昨天深夜还有更新。水印系统昨天半夜自动植入了追踪代码,任何打开、复制甚至截图的操作都会触发标记。
标记是隐形的。
只有后台监控系统能看见。一旦触发,那个文件就会像沾了荧光粉一样,在所有流转过的设备上留下痕迹。
陈默切到网络流量图。
李帆的节点亮着绿光,流量平稳。但有一条异常的数据流,从他电脑上一个隐藏的进程发出去,目标是个境外代理服务器。
流量很小,每秒不到1kb。
混在正常的网页浏览数据里,几乎看不出来。但特征匹配上了昨晚的攻击模式,同样的加密方式,同样的心跳包间隔。
“他在往外发状态报告。”沈清澜说,“内容加密了,但长度固定。应该是在汇报昨晚的失败,还有……申请新指令。”
陈默盯着那条细小的数据流。
它像一根蛛丝,从李帆的电脑里伸出去,穿过防火墙,钻进茫茫互联网。另一端连着谁,现在还不知道。
但很快就能知道。
“诱饵文件访问记录调出来。”陈默说。
画面切换。列表滚动,时间戳精确到秒。今天早上八点十七分,李帆的账号第一次尝试访问镜像站点。八点二十三分,他打开了那份假文件。
停留时间:四十二秒。
“他看了。”沈清澜的声音紧了紧,“但没下载,也没复制。只是浏览。”
“在看什么?”
“页面热力图显示,他鼠标在几个关键参数区域停留最久。第三章第七节,关于多模态融合算法的接口定义。”沈清澜敲了几下键盘,“那些参数是我们故意写错的,偏差率百分之十五。如果用这个参数去实现,系统会崩溃。”
陈默靠回椅背。
皮质座椅发出细微的挤压声。窗外的阳光斜射进来,在桌面上切出一块亮斑。灰尘在光柱里慢慢旋转,像微型星系。
“他记下了。”陈默说,“或者截了图。”
“追踪标记还没触发。”沈清澜停顿了一下,“但他如果只是用眼睛记,我们没办法。除非他把文件传出去。”
“他会传的。”
陈默看着监控画面里的李帆。他已经关掉了文件窗口,正在浏览技术论坛。页面滚动得很快,但每隔几秒就会切回桌面,像是等什么消息。
焦虑会让人犯错。
尤其是当你背后有人拿着鞭子抽的时候。李帆母亲的那个医疗费缺口,像悬在头顶的刀。刀柄握在赵志刚手里。
“外部监控组就位了吗?”陈默问。
“就位了。”沈清澜调出另一个画面,“公司对面咖啡馆,二楼靠窗位置。两个人,一男一女,看起来像普通白领。但他们点的咖啡一口没喝,笔记本一直开着。”
画面是长焦镜头拍的。
有点模糊,但能看清那两人的侧脸。男的三十多岁,穿灰色夹克,手指在触摸板上滑动。女的戴着眼镜,时不时看一眼手机。
他们坐的位置正对着默视科技的大门。
“从早上八点半就在那里了。”沈清澜说,“点了两杯美式,现在已经凉透了。女的去了三次洗手间,每次都会在窗边停几秒,用手机拍照。”
“拍什么?”
“进出公司的人。”沈清澜放大其中一张照片的截图,“重点是李帆。今早他进门时,女的连拍了七张。”
陈默感觉手心有点潮。
他在裤子上擦了擦,布料摩擦发出沙沙声。耳机里传来沈清澜的呼吸声,很轻,但很清晰。
“他们在等李帆出去。”陈默说,“或者等他把东西发出来。”
“那我们要不要……”
“不。”陈默打断她,“让他去。让他把文件传出去。只有赃物出去了,才能人赃并获。”
监控画面里,李帆站了起来。
他拿起手机看了一眼,手指在屏幕上快速打字。然后他关上电脑,抓起椅背上的外套。动作有点急,椅子腿刮过地板,发出刺耳的摩擦声。
“他要出去了。”沈清澜说。
陈默切到走廊监控。李帆快步走向电梯,脚步很碎。电梯门打开时,他回头看了一眼公司大门,喉结滚动了一下。
然后他走进去。
电梯下行。数字从17开始跳,16,15……陈默切换到咖啡馆监控。那一男一女同时抬起头,对视了一眼。男的合上笔记本,女的把手机塞进包里。
他们在收拾东西。
“外部组跟上。”陈默对着麦克风说,“保持距离,拍清楚交接过程。特别是如果传递u盘或者纸质文件,一定要拍到特写。”
耳机里传来低沉的回应:“明白。”
陈默看着屏幕上的多个画面。电梯到了一楼,李帆走出来。他穿过大堂,保安跟他打招呼,他点了点头,但脚步没停。
玻璃门自动打开。
早晨的阳光涌进来,把他的影子拉得很长。他站在门口犹豫了两秒,左右看了看。然后他朝着街对面的咖啡馆走去。
步伐很快,几乎是小跑。
“他过去了。”沈清澜说。
咖啡馆二楼,那一男一女已经站了起来。他们没有下楼,而是走向后门的方向。那里有个消防通道,直接通向后巷。
李帆没有进咖啡馆正门。
他拐进旁边的窄巷,巷子很窄,只能容一人通过。墙面上贴着各种小广告,潮湿的墙皮剥落,露出里面发黑的砖。
巷子尽头就是消防通道的铁门。
门开着一条缝。李帆推门进去,身影消失在昏暗的楼梯间里。
“后巷有我们的摄像头吗?”陈默问。
“有一个,但角度不好。”沈清澜调出画面。镜头从对面楼的窗户斜拍下去,只能看见消防门和一小段楼梯。
李帆和那两人就在楼梯转角处碰面了。
画面很暗,但能看清轮廓。男的从包里拿出一个平板电脑,递给李帆。李帆接过来,手指在屏幕上滑动。
他在看什么?
几秒后,李帆从口袋里掏出一个小巧的u盘。金属外壳在昏暗光线下反了一下光。他把u盘插进平板侧面的接口。
“他在拷贝文件。”沈清澜的声音压得很低,“从平板上拷到u盘里。平板应该是他们的,里面装着昨晚攻击失败的分析,还有……新的指令。”
陈默盯着那个模糊的画面。
u盘上的指示灯在闪烁,红色的光点,一下,一下。拷贝大概持续了十几秒,然后李帆拔下u盘,递还给那个男的。
但男的没接。
他摇了摇头,说了句什么。距离太远,麦克风收不到声音。但从口型看,大概是“你留着”。
李帆握紧了u盘。
金属边缘硌着掌心,他手指关节微微发白。然后他把u盘塞回口袋,拉上拉链。动作很用力,拉链头撞到纽扣,发出清脆的声响。
女的从包里拿出一个信封。
很薄,牛皮纸材质。她递给李帆,李帆接过去,捏了捏厚度。然后他点点头,把信封塞进外套内袋。
整个过程不到两分钟。
然后三人分开。那一男一女从消防通道另一侧离开,李帆原路返回,走出巷子。他站在阳光下,眯起眼睛,抬手挡了挡光线。
脸色比刚才更白了。
“信封里是什么?”沈清澜问。
“钱。”陈默说,“或者支票。预付的报酬,让他安心继续做事。”
“那u盘呢?”
“u盘里是新的工具。”陈默切回公司内部监控,“可能更隐蔽的渗透软件,或者针对我们新防御系统的破解方法。他们昨晚失败了,所以升级了装备。”
李帆回到公司。
他走进大堂时,保安又看了他一眼。这次李帆没点头,直接走向电梯。电梯门关上后,他靠在轿厢壁上,闭上眼睛。
胸口在起伏。
监控镜头拍到他额头有细密的汗珠,反着光。他抬手擦了擦,手背在发抖。
回到工位后,他没有立刻坐下。
他站在椅子旁边,看着电脑屏幕。屏幕还是黑的,映出他自己模糊的倒影。他看了很久,然后慢慢坐下,插上那个u盘。
系统弹出了安全警告。
“检测到未知设备接入,是否扫描?”李帆的手指悬在鼠标上方,停住了。他咬了咬下唇,嘴唇被牙齿压得发白。
然后他点了“取消”。
警告窗口消失。u盘图标出现在资源管理器里,名字是一串随机字符。李帆点开,里面只有一个文件夹,命名是“工具包_更新”。
他双击打开。
文件夹里是三个可执行文件,还有一份txt格式的说明文档。李帆打开文档,快速浏览。眼睛在屏幕上来回移动,瞳孔微微放大。
“他在读操作指南。”沈清澜调取了李帆电脑的实时截屏,“文件里详细说明了怎么绕过我们新部署的行为检测系统。方法很专业,不是业余黑客能写出来的。”
“职业团队。”陈默说,“赵志刚请了外援。”
李帆关掉了文档。
他盯着那三个可执行文件,鼠标光标在上面来回移动。然后他打开公司内网,登录了自己的开发环境。这是个沙箱系统,和真实的生产环境隔离。
他把其中一个文件拖了进去。
运行。命令行窗口弹出,黑色背景,绿色文字快速滚动。代码在跑,正在检测当前系统的安全配置。
“他在测试。”沈清澜说,“很谨慎,先在自己的沙箱里试。”
“让他试。”陈默说,“沙箱里我们埋了更多诱饵。让他觉得工具有效,让他放松警惕。”
命令行窗口运行了大概一分钟。
最后弹出一行提示:“环境检测通过,可安全部署”。李帆盯着那行字,肩膀松了一下。他靠在椅背上,长长地吐了口气。
白雾在屏幕前散开。
然后他拔掉u盘,收进抽屉最里面。锁上抽屉时,钥匙转了两次,咔哒,咔哒。声音很轻,但在安静的办公区里格外清晰。
上午的工作开始了。
同事陆续到岗,敲键盘的声音、讨论的声音、椅子拖动的声音。咖啡机的蒸汽声,打印机出纸的刷刷声。
一切都和平时一样。
但陈默知道,不一样了。鱼已经咬了钩,线正在收紧。那个u盘,那个信封,还有楼梯间里短暂的会面,都被多个角度的摄像头拍得清清楚楚。
证据链正在形成。
“接下来怎么办?”沈清澜问。
“等。”陈默说,“等他使用新工具,等他再次尝试窃取核心数据。下一次,我们会让他拿到他‘想要’的东西。”
“那份假文件?”
“对。”陈默打开另一份文档,“我昨晚修改了几个参数,让错误更隐蔽。表面上看,架构设计非常精妙,但底层逻辑链里埋了个死循环。用这份文件去开发,前期一切正常,等系统规模大到一定程度时……”
“会崩溃。”沈清澜接上话,“而且崩溃点会很难排查,因为死循环埋在第三层的依赖模块里。”
“至少拖他们三个月。”陈默合上文档,“三个月,够我们做很多事了。”
窗外的阳光又移了一点。
亮斑从桌面爬到文件柜上,金属边框反着刺眼的光。陈默眯起眼睛,看向窗外。街道上车流开始密集,喇叭声远远传来。
新的一天,新的陷阱。
只是这次,陷阱已经启动。弹簧压紧了,机关对准了目标。只等猎物再往前一步,踩下那块松动的木板。
沈清澜忽然说:“李帆母亲那边的医疗费,我托人去查了。”
“怎么样?”
“确实是个无底洞。”沈清澜调出一份医疗记录,“晚期癌症,靶向药每个月五万多,医保只报一小部分。他预支的工资,撑不了两个月。”
陈默没说话。
他看着监控画面里的李帆。他正在写代码,手指敲得飞快。但每隔几分钟就会走神,眼睛盯着屏幕某处,瞳孔没有焦点。
那是被生活逼到墙角的人的眼神。
“可怜之人必有可恨之处。”沈清澜说,“但他走上这条路的时候,就已经没回头路了。”
“我知道。”陈默关掉监控窗口,“但证据就是证据。他拿了钱,做了事,就要承担后果。”
“你会报警吗?”
“看情况。”陈默站起来,走到窗边,“如果他能成为证人,指认赵志刚,也许可以谈条件。但他得先明白,自己已经暴露了。”
楼下街道,那对男女从咖啡馆后门走出来。
他们沿着人行道快步离开,男的边走边打电话,女的不时回头看公司大楼。阳光把他们的影子投在地上,拉得很长,扭曲变形。
然后他们拐过街角,消失了。
陈默的手机震动了一下。是外部监控组发来的消息:“目标已离开,车牌号已记录,正在追踪。交接过程完整录像已加密上传。”
他回复:“收到。”
手指在屏幕上停留了几秒,他又打字:“继续监控李帆家附近,看他今晚会不会和母亲联系,或者……有没有人去找他母亲。”
“明白。”
陈默放下手机。
掌心有点汗,在玻璃上按出模糊的指印。他看着窗外这座城市,高楼林立,玻璃幕墙反射着刺眼的天光。
每个人都活在各自的困境里。
有人挣扎着向上爬,有人被拖进深渊。李帆选择了那条看似捷径的路,却不知道那条路的尽头是悬崖。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!
而赵志刚站在悬崖边,手里拿着绳子。
绳子的一头套在李帆脖子上,另一头握在自己手里。他以为自己在掌控一切,却不知道陈默已经站在他身后。
手里拿着剪刀。
办公室门被敲响。陈默转过身,说了声“进”。沈清澜推门进来,手里端着两杯咖啡。热气袅袅升起,空气里弥漫开焦苦的香气。
“刚煮的。”她把一杯放在陈默桌上,“你看起来需要提神。”
陈默接过来。
纸杯很烫,透过杯壁能感觉到温度。他喝了一口,苦味在舌根蔓延开,然后才是淡淡的回甘。
“谢谢。”
沈清澜在他对面坐下。她今天穿了件浅灰色的衬衫,袖口挽到小臂,露出纤细的手腕。手腕上戴着一块智能手表,表盘是深蓝色的,指针在慢慢转动。
“我下午要去趟原公司。”她说,“星耀那边,离职手续还有最后一点要办。”
陈默抬起头:“他们没为难你吧?”
“暂时没有。”沈清澜转着咖啡杯,“但hr总监昨天给我发了封邮件,说ceo想和我‘最后谈一次’。语气很客气,但意思很明显。”
“想挽留你?”
“或者想探探口风。”沈清澜看向窗外,“毕竟我要去的是他们的直接竞争对手。他们可能想知道,我会带走多少东西。”
“你会去谈吗?”
“会。”沈清澜说,“但只是走个形式。我已经决定了。”
陈默点点头。
他没问“决定什么”,因为答案很明显。从她选择站在他这边开始,从她熬夜一起部署安全系统开始,从她冷静地录下每一份证据开始。
她已经用行动给出了答案。
咖啡慢慢凉了。窗外的阳光爬上中天,办公区里传来午餐时间的声音。椅子拖动,说笑声,微波炉叮的一声。
李帆也站了起来。
他和几个同事一起走向餐厅,边走边聊。他笑了一下,但笑容很僵硬,嘴角扯上去,眼睛却没有弯。
他在演。
演一个正常的、无忧无虑的程序员。演给同事看,演给监控看,也演给自己看。好像只要演得够像,那些肮脏的交易就不存在。
但他不知道,观众已经看穿了剧本。
沈清澜喝完最后一口咖啡,把纸杯捏扁。塑料杯壁发出咔嚓的轻响。她站起来,整理了一下衬衫下摆。
“我两点出发。”她说,“大概四点回来。监控系统我设置了自动告警,如果李帆有任何异常操作,你会第一时间收到通知。”
“好。”
她走到门口,手放在门把上。停了一下,回过头。
“陈默。”
“嗯?”
“陷阱已经启动了。”她说,“但别忘了,我们也在陷阱里。赵志刚不会只派一个李帆,他一定还有后手。”
“我知道。”陈默说,“所以我们要走得更快。”
沈清澜看了他两秒,然后点点头。拉开门走出去,高跟鞋的声音在走廊里渐行渐远,最后消失在电梯方向。
办公室里又安静下来。
只有空调出风口低低的嗡鸣,还有电脑风扇的转动声。陈默坐回椅子上,打开那份假文件的最终版。
光标在代码行间移动。
他逐行检查那些埋下的逻辑错误,确保它们足够隐蔽,也足够致命。每一个错误都像一颗定时炸弹,被精心伪装成璀璨的宝石。
只等有人把它们捡起来,捧在手里。
然后引爆。
窗外传来隐约的雷声。陈默抬起头,看见天边又聚起了乌云。厚厚的,沉甸甸的,像吸饱了水的棉絮。
又要下雨了。
他关掉文档,靠在椅背上。闭上眼睛,脑海里浮现出昨晚那些红色的警报,跳动的曲线,李帆那个红色的节点。
还有沈清澜在电话里紧的声音。
一切都在按计划进行。鱼咬了钩,线在收紧,陷阱的机关已经卡到位。只等最后那一下触发。
但他心里没有轻松感。
只有一种冰冷的、沉甸甸的东西,压在胸腔里。像那块乌云,悬在天上,不知道什么时候会化作暴雨倾盆而下。
手机又震了。
他拿起来看,是沈清澜发来的消息:“星耀ceo的秘书刚联系我,说谈完之后,晚上想请我吃个饭。地点定在‘云顶餐厅’,说是‘私人性质的送别’。”
陈默打字:“你怎么回?”
“我说看时间。”沈清澜很快回复,“但我不会去的。那是鸿门宴。”
“小心点。”
“你也是。”
对话结束。陈默放下手机,看向窗外。乌云又近了一些,天空暗了下来。远处有闪电划过,细细的一道,瞬间照亮了天际线。
然后雷声滚过来。
轰隆隆的,像沉重的车轮碾过石板路。雨点开始落下,先是稀疏的几滴,砸在玻璃上啪啪作响。
很快就密集起来。
水幕再次笼罩了城市,一切都变得模糊。陈默坐在那里,看着雨,听着雨。手指无意识地敲击桌面,一下,一下。
和心跳的节奏渐渐重合。
陷阱已经启动。齿轮开始转动。没有人能停下来,除非走到最后一步。
无论那一步是什么。