笔记本的风扇呼呼转着,比我走的时候响得多。
我放下包,手还没碰到机器,一股热浪就扑过来。
不对劲。
早上九点零五,办公室还没坐满三分之一的人。我盯着屏幕右下角——电量百分之十七,昨晚走的时候是满电,电源线还插着。我弯腰看了一眼插排,线被拔了。
谁动过我电脑?
“老周。”隔壁工位的李姐探过头,压着声音,“你昨天是不是把电脑借给张伟了?”
我嗯了一声,手指在触控板上划了一下。屏幕亮起来,桌面图标乱七八糟,浏览器开着七八个标签页,最前面那个是个我没见过的网页——深色背景,绿色字符,像是什么命令行界面。
“他昨晚加班用你电脑来着,我看他十点多才走。”李姐端着保温杯,眼睛往我屏幕上瞟,“说是有个紧急需求,他电脑带不动。”
张伟是我们组的,去年刚毕业,平时挺老实一孩子。昨天下午他找我借电脑,说是项目要跑个数据模型,他那台老ThinkPad跑不动。我想着晚上不用,就给他了。
我点开任务管理器。
CPU占用率百分之九十八,内存飙到百分之九十以上。进程列表里有个叫“SyncService”的东西,图标是个灰色齿轮,吃了将近八个G的内存。
我没见过这个进程。
右键,打开文件位置。路径指向系统盘一个叫“ProgramData\WinSync”的文件夹,创建时间是昨晚八点四十七分。
点进去,十几个文件,后缀名我大部分不认识。有个叫“config.ini”的配置文件,我用记事本打开,里面是一串IP地址和端口号,还有一段加密字符串。
心跳开始加速。
我掏出手机拍了张照片,然后拔掉网线。手指在键盘上停了两秒,直接按住电源键强制关机。
“李姐,张伟来了没?”
“没呢,他一般九点半才到。”
我看了眼时间,九点十二分。
重启,进BIOS,设置U盘启动。从抽屉里翻出系统安装盘,插进去,格式化C盘。进度条走起来的时候,我靠在椅背上,手心全是汗。
那个IP地址我认识。不是我们公司的,但格式很眼熟——上个月安全部门发过一封内部邮件,说是有外部服务器在扫描公司内网,让大家注意钓鱼邮件。我当时扫了一眼就删了,现在想起来,那封邮件里提到的可疑IP段,跟这个一模一样。
系统装完,我开始装驱动和办公软件。周围的同事陆续到岗,茶水间里传来咖啡机的声响,有人在聊周末去哪吃饭。
一切正常,除了我心跳不太正常。
九点四十分,张伟还没来。
我给他发了条微信:“你今天请假了?”
没回。
又过了十分钟,技术总监王海从电梯里出来,脸色不太好看。他径直走向张伟的工位,看了一眼空着的椅子,然后掏出手机打电话。
电话没打通。王海的眉头拧得更紧了。
“周明。”他突然叫我,“你过来一下。”
我跟着他进了小会议室。王海关上门,拉了百叶窗,转身看着我。
“张伟昨晚是不是借了你的电脑?”
“是。”
“你电脑现在什么情况?”
我顿了一下。“我重装了系统。”
王海明显松了口气。他靠在会议桌上,揉了揉太阳穴,沉默了好几秒才开口。
“昨晚凌晨两点,安全部门监测到有内部设备在向外部服务器传输数据,流量异常。他们追查下来,IP地址指向你的工位。”
我后背一凉。
“数据传输的内容是什么?”我问。
“还在查。”王海看着我,“你电脑上有敏感文件吗?”
我脑子里快速过了一遍。我的工作主要是前端开发,接触不到核心数据库。但公司用的是统一域账号登录,我的账号权限能访问内部代码仓库,还有几个项目文档共享目录。
“代码库权限。”我说,“还有部分项目文档。”
王海的脸色更难看了。
他拿起手机打了个电话,说了几句我听不懂的技术术语,然后挂了。“安全部门的人马上过来,你把你昨晚到今天早上的操作详细说一遍。”
我说了。从借电脑开始,到今天早上发现异常,到重装系统。
王海听完,沉默了很久。
“你做得对。”他说,“重装系统是对的。但张伟……”
他没说完。会议室的门被推开,进来两个穿黑色POLO衫的人,胸口别着工牌——安全部门的。
他们问了我很多问题。什么时候借的电脑,张伟说了什么,我早上发现了什么,有没有动过什么文件。我一一回答了,把手机里的照片给他们看。
其中一个瘦高个看完照片,跟王海交换了一个眼神。
“WinSync。”瘦高个说,“这是个远程控制木马,伪装成同步服务。上个月我们在外部威胁情报里见过这个样本,没想到已经进到内网了。”
“张伟呢?”王海问。
“联系不上。”瘦高个说,“手机关机,住址我们已经派人去了。”
会议室里安静了几秒。
我坐在椅子上,手指无意识地敲着桌面。脑子里反复回放昨天下午张伟找我借电脑时的画面——他站在我工位旁边,笑得很正常,说话也很正常,就是那种同事之间借个东西的普通对话。
“周哥,你电脑今晚不用吧?我那个项目有个模型要跑,我那破电脑带不动,跑一半就死机。”
“行啊,你用吧,电源线在桌子底下。”
“谢了周哥,明天给你带奶茶。”
就这些。三句话,一个普通得不能再普通的对话。
但仔细想,有个细节不太对。
张伟的工位在我斜对面,他平时很少主动跟我说话。我们虽然在一个组,但负责的模块不一样,工作交集不多。他突然找我借电脑,我当时觉得是因为我们离得近,现在想来,他工位另一边坐的是李姐,李姐的电脑配置比我的还高。
他为什么偏偏找我借?
“周明。”王海叫我,“你最近跟张伟有没有什么异常接触?”
“没有。”我说,“平时话都不多。”
“他有没有问过你关于权限、系统、网络方面的问题?”
我回想了一下。“上上周吧,他问过我一次,说他的域账号登不上代码仓库,问我有没有遇到过。我说可能是密码过期了,让他找IT重置。”
瘦高个在本子上记了些什么。
“那个问题后来解决了?”他问。
“我不知道,他没再提过。”
会议室门又被推开,这次进来的是HR总监陈敏,脸色比王海还难看。她手里拿着一个文件夹,放在桌上打开。
“张伟的入职资料。”她说,手指点着其中一行,“简历上写的前一家公司,我们刚刚核实了,不存在。”
所有人都愣住了。
“背调怎么做的?”王海的声音压得很低。
陈敏没回答,但从她的表情能看出来,这事儿要有人倒霉了。
“他入职多久了?”瘦高个问。
“十一个月。”陈敏说,“还在试用期转正后的考察期。”
十一个月。一个用假简历进来的人,在公司潜伏了十一个月,然后在一个普通的周四晚上,借了一台同事的电脑,试图往外传数据。
他传的是什么?传出去了多少?还有没有其他人?
这些问题像石头一样砸在我脑子里。
“安全部门会全面排查。”瘦高个说,“周明,你这台电脑暂时由我们保管,我们会做镜像分析。你今天先用备用机。”
我点点头。
会散了,我回到工位。安全部门的人把我电脑拆走了,留下一个空荡荡的底座。李姐探过头来,欲言又止。
“没事。”我说,“电脑坏了,换一台。”
李姐哦了一声,没再问。但她的眼神告诉我,她知道不是电脑坏了这么简单。
十一点左右,办公室里的气氛开始变得微妙。有人在窃窃私语,有人频繁看手机,有人假装去茶水间但路过张伟工位时明显放慢了脚步。
消息传得比我想象的快。
中午吃饭的时候,我在食堂碰见了运维组的老赵。他端着餐盘坐到我旁边,压低声音说:“听说你们组出事了?”
“你听谁说的?”
“安全部门的人一早就来机房了,把所有交换机的日志都导出来了。”老赵夹了块红烧肉,“阵仗大得很,我在公司干了八年,第二次见这阵势。”
“第一次是什么时候?”
“三年前,有个离职员工删了生产数据库,后来发现是竞争对手派来的。”老赵嚼着肉,含含糊糊地说,“那次开了三个人,包括一个副总。”
我没接话。
下午两点,王海又把我叫进了会议室。这次会议室里多了两个人,一个是我没见过的中年男人,西装革履,表情严肃。另一个是公司法务部的律师,我认识,姓刘。
“这位是总部来的调查组负责人,方总。”王海介绍。
方总点点头,示意我坐下。
“周明,我们看了安全部门的初步报告。”方总说话不紧不慢,但每个字都带着分量,“你在发现问题后第一时间断网、重装系统,处置得当。公司决定给予内部表彰。”
我还没来得及反应,他又说:“但有几个问题需要你配合调查。”
“您问。”
“张伟入职以来,跟你有没有过私下接触?比如吃饭、喝酒、打球之类的?”
“没有。”
“他有没有打听过你的家庭情况、经济状况?”
“没有。”
“你有没有在任何场合泄露过你的系统密码?”
“没有。我密码都是十六位随机生成的,只有我自己知道。”
方总看了我几秒,像是在判断我说的是不是真话。然后他点了点头。
“张伟用你的电脑,需要你的密码。他怎么拿到的?”
这个问题让我愣住了。
对。我的电脑设了登录密码,开机就需要输入。张伟要能用我的电脑,必须知道密码。
但我没告诉过他。
“我不知道。”我说,“他没问过我密码。”
方总和律师交换了一个眼神。
“你的密码有没有可能被其他人知道?比如写在便签上,或者被同事看到过?”
“不可能。”我说得很坚定,“我密码从来不写下来,输密码的时候也会注意遮挡。”
“那就有两种可能。”方总靠在椅背上,“要么张伟用了某种技术手段破解了你的密码,要么,有人把你的密码告诉了他。”
会议室里安静得能听见空调的嗡嗡声。
“你电脑的本地管理员密码,IT部门有留存吗?”方总转向王海。
王海摇头。“公司政策,本地管理员密码由员工自行设置,IT不保留。”
“那域账号密码呢?”
“域账号密码只有员工本人知道,域控管理员也看不到明文密码。”王海说,“但如果有域控管理员权限,可以重置密码。”
方总沉默了一会儿。
“查。”他说,“查最近一个月内,所有域控管理员的操作日志。包括密码重置、权限变更、组策略修改,全部查。”
王海点头,拿起手机发消息。
我坐在那里,脑子里飞速转着。
如果张伟是用了什么技术手段破解密码,那说明他的技术水平远超一个普通前端开发。如果他背后有人帮忙拿到了密码,那说明公司内部还有其他人。
不管是哪种可能,这事儿都比我一开始想的复杂得多。
“周明,你可以回去了。”方总说,“这段时间尽量不要离开本市,可能随时需要你配合调查。”
我站起来,走到门口的时候,方总又叫住我。
“你重装系统这个决定,很果断。”他说,“如果再晚几个小时,后果可能严重得多。”
我点了点头,拉开门出去了。
走廊里,阳光从窗户照进来,在地板上切出一道道明暗相间的条纹。我走回工位,坐在椅子上,盯着对面张伟空荡荡的座位。
桌面上还放着他的杯子,一个印着某互联网公司logo的马克杯,里面还剩半杯水。显示器旁边贴着一张便利贴,上面写着几个我看不清的字。椅子扶手上搭着一件灰色外套,是那种优衣库的基础款。
一个普通同事的普通工位,看起来跟办公室里其他几十个工位没有任何区别。
但坐在这个工位上的人,用一份假简历混进了公司,潜伏了十一个月,然后在昨晚,用我的电脑往外传数据。
他传的是什么?
这个问题一直在我脑子里转。
下午四点,老赵给我发了条微信:“你过来看看。”
我去了机房。老赵坐在一排显示器前,屏幕上全是密密麻麻的日志记录。
“安全部门的人走了,但他们导数据的时候我瞄了一眼。”老赵指着屏幕,“你看这个。”
他调出一段网络流量日志。时间戳是昨晚九点二十三分,源IP是我的工位,目标IP是那个可疑的外部服务器。传输协议是HTTPS,加密的,看不到内容。但数据包大小那一栏,数字很大。
“这个量。”老赵说,“传了大概四十多分钟,总共传出去了将近两个G的数据。”
两个G。
纯文本的话,两个G能装下几百万页的文档。如果是代码,能装下几十个完整的项目仓库。
“九点二十三分开始传。”我说,“张伟八点多就在用我电脑了,他八点到九点之间在干什么?”
老赵滚动日志,往上翻。
八点到九点之间的日志显示,那段时间我的电脑在大量访问公司内部的多个文件服务器。文档系统、代码仓库、项目管理平台、甚至包括财务系统的只读共享目录。
“他在翻东西。”老赵说,“用你的账号,把能访问的东西全翻了一遍。”
我的域账号权限不算高,但也不算低。能访问的共享目录有十几个,代码仓库有七八个项目的读写权限。虽然接触不到核心数据库和财务系统,但项目文档、源代码、架构设计图这些东西,足够一个有经验的竞争对手拼凑出公司的技术路线和业务布局。
“安全部门的人怎么说?”我问。
老赵摇头。“他们嘴严得很,一个字都不透露。但我听他们打电话的时候提到了一个词——‘APT’。”
APT。高级持续性威胁。
这个词我听过。通常用来形容那种有组织、有目的、长期潜伏的网络攻击行为。不是普通黑客搞的,背后往往是商业间谍或者国家级攻击者。
一个刚毕业一年的小伙子,能搞出APT级别的攻击?
要么他简历上的“应届生”身份也是假的,要么他背后有一个团队。
不管是哪种情况,这事儿都远远超出了一个普通公司安全事件的范畴。
我回到工位,发现手机上多了几条消息。是王海发的,让我明天上午去一趟总部,配合调查组做详细笔录。
我回了个“收到”,然后靠在椅子上,望着天花板。
脑子里乱糟糟的。
张伟的脸浮现在我脑海里——圆脸,戴眼镜,笑起来有点腼腆,说话声音不大,开会时永远坐在角落里。他入职的时候是我带的他熟悉项目,我跟他讲代码规范、开发流程、部署方式,他听得很认真,记了满满一个笔记本。
那个笔记本里,记的是代码规范,还是别的什么?
我想起一件事。
大概三个月前,有一次加班,办公室只剩我和张伟两个人。我去茶水间倒水,路过他工位的时候,看到他屏幕上有几个窗口,其中一个是命令行界面,上面跑着一串我看不懂的命令。
我当时没在意,以为他在学什么新技术。现在想起来,那个命令行界面跟我今天早上在他浏览器里看到的那个网页,风格很像——深色背景,绿色字符。
“周明。”李姐的声音把我拉回现实,“下班了,你不走?”
我看了眼时间,六点半了。
“走。”我合上笔记本,站起来。
走出办公楼的时候,天已经黑了。路灯亮起来,橘黄色的光洒在人行道上。我站在门口,看着来来往往的车流,忽然觉得有点冷。
手机震了一下。
一条陌生号码发来的短信。
“周哥,对不起。”
我站在路灯下,盯着这四个字看了很久。
手指在屏幕上悬了几秒,然后拨过去。关机。
我把手机揣进口袋,往地铁站走。脑子里反复回放那条短信——“周哥,对不起。”
他知道我发现了。他什么时候知道的?他今天早上没来上班,是因为知道事情败露了,还是因为已经拿到了想要的东西不需要再来了?
如果是后者,那两个G的数据,他已经带走了。
地铁上人很多,我挤在人群里,抓着扶手,脑子里还在转。
张伟为什么要发这条短信?如果他是职业间谍,不应该犯这种低级错误。发短信等于承认了事情是他干的,等于给自己留下证据。
除非,他不是职业的。
除非,他是被人利用的,或者被人胁迫的。
这个念头一冒出来,就停不住了。
如果张伟是被人利用的,那利用他的人是谁?公司内部的人,还是外部的人?他潜伏十一个月,目的是什么?如果只是偷数据,三个月前那次我看到他在跑命令行的时候,他的权限应该已经够了,为什么那时候不动手?
为什么要等到昨晚?
为什么要用我的电脑?
最后一个问题最让我不安。
他选择用我的电脑,是因为我的权限刚好能访问他需要的东西,还是因为,他想要把嫌疑引到我身上?
如果是后者,那这个局,比我想象的深得多。
地铁到站,我走出车厢,冷风从隧道里灌过来。我裹紧外套,往出口走。
手机又震了。
这次是王海。
“周明,你到家了没?安全部门刚出了初步报告,张伟在昨晚传出去的数据里,包含公司明年即将发布的核心产品源代码。董事会已经知道了,明天会有大动作。你做好准备。”
我站在地铁出口的台阶上,看着这条消息,手有点抖。
核心产品源代码。
那是公司投入了两年时间、几百号人、上亿资金研发的东西。明年一季度就要发布,是公司未来三年的命脉。
被偷了。
被一个入职不到一年的“应届生”,用我的电脑,偷走了。
我深吸一口气,回了条消息:“知道了。”
然后我拨了一个号码。
响了三声,对方接了。
“喂,爸。”我说,“我可能需要你帮忙。”
电话那头沉默了两秒。
“什么事?”我爸的声音很平静。他在公安系统干了三十年,什么大风大浪都见过。
“我公司出了点事,涉及商业间谍,我可能被卷进去了。”
“你在哪?”
“地铁站,刚下班。”
“回家,锁好门,哪也别去。”我爸说,“我打个电话,一会儿回你。”
挂了电话,我站在地铁口,看着街对面的霓虹灯。这座城市还是那么热闹,那么正常,没有人知道在一栋普通的写字楼里,刚刚发生了一场精心策划的商业盗窃。
而我的名字,可能已经被写在了嫌疑人名单上。
回到家,我反锁了门,拉上窗帘,坐在沙发上。
手机亮了。
不是我爸,是公司内网APP推送的一条全员通知。
“关于技术部员工张伟违规操作的处理公告:经查,技术部员工张伟存在严重违反公司信息安全规定的行为,现予以开除处理。同时,经公司管理层决定,技术总监王海因管理失职,予以免职。信息安全部门将全面升级内部安全策略,请全体员工配合。”
我盯着屏幕,一个字一个字地读。
王海被免职了。
技术总监,管着上百号人,因为一个下属的行为,被免职了。
但公告里说的是“违规操作”,不是“商业间谍”,不是“数据盗窃”。公司在压消息,不想让外界知道核心代码被偷了。
这可以理解。如果消息传出去,股价会暴跌,客户会流失,竞争对手会趁火打劫。
但这也意味着,公司不打算报警。
不报警,张伟就抓不到。抓不到张伟,那两个G的源代码就追不回来。追不回源代码,我这个“电脑主人”的嫌疑就洗不清。
我爸的电话来了。
“我帮你问了。”他的声音还是那么平静,“你们公司没有报案,至少目前没有。但我朋友说,你们公司法务部下午联系过市局经侦支队,咨询了一些问题,但没有正式立案。”
“为什么不立案?”
“可能是证据不足,可能是公司不想闹大,也可能……”他顿了一下,“是公司内部有人在压这件事。”
“什么意思?”
“意思是,可能不止张伟一个人。”
我握着手机,手心又开始出汗。
“爸,我该怎么办?”
“保护好自己。”他说,“从现在开始,你所有的通讯记录、邮件、聊天记录都保存好。跟任何人谈这件事,都录音。如果有人找你谈话,不管是公司的人还是外面的人,第一时间告诉我。”
“好。”
“还有,明天去公司,什么都不要说,什么都不要承认。你是受害者,不是嫌疑人,不要被人绕进去。”
“明白。”
挂了电话,我躺在沙发上,盯着天花板。
天花板上有条裂缝,从灯座延伸到墙角,很细,平时根本注意不到。但此刻,在寂静的房间里,那条裂缝看起来格外清晰。
就像张伟。
平时根本注意不到的一个普通同事,此刻却像那条裂缝一样,横亘在我生活的正中央。
第二天早上,我比平时早了半小时到公司。
办公室已经来了不少人,气氛明显不对。平时早上大家会聊聊天、吃吃早餐,今天所有人都安静地坐在工位上,只有键盘敲击的声音。
张伟的工位已经被清空了。杯子、外套、便利贴,全都不见了。桌面干干净净,好像从来没有人坐过一样。
李姐看到我,欲言又止。我冲她点了点头,没说话。
九点整,全员邮件来了。
发件人是CEO,标题是“关于公司近期信息安全事件的通报”。
邮件很长,措辞很官方。核心意思就是:公司发现一起内部员工违规操作事件,已对相关人员进行处理,技术总监王海因管理失职被免职,公司将全面升级安全策略,成立专项调查组,等等。
邮件里没有提“商业间谍”,没有提“源代码泄露”,没有提“外部攻击”。一切都被包装成了一起普通的内部违规事件。
但所有人都知道,事情没那么简单。
邮件发出去不到半小时,行业媒体就爆出了新闻。
“某知名互联网公司核心产品源代码疑遭泄露,技术总监引咎辞职。”
标题下面是一篇语焉不详的报道,但关键信息都点到了——源代码泄露、内部员工、技术总监被免。虽然没有点名是哪家公司,但业内人一看就知道。
消息一出,公司股价开盘就跌了五个点。
办公室里更安静了。所有人都低着头干活,没人说话,没人走动。连茶水间的咖啡机都安静得出奇。
十点钟,我被叫到了大会议室。
会议室里坐了七八个人,有我认识的,也有不认识的。CEO坐在主位上,旁边是方总,再旁边是法务部的刘律师。对面坐着两个穿制服的人——警察。
“周明,请坐。”CEO指了指空着的椅子。
我坐下来,心跳加速,但表面上保持镇定。
“这两位是市局经侦支队的同志。”方总介绍,“公司已经正式报案,他们会负责这起案件的调查。你把事情的经过,从头到尾说一遍。”
报案了。
我心里松了口气。报案意味着公司不打算压了,也意味着他们不认为我是同谋。
我把事情从头说了一遍。从张伟借电脑,到今天早上发现异常,到重装系统,到配合安全部门调查。说了大概二十分钟,两个警察一直在记录。
我说完之后,年长一点的警察合上笔记本,看着我。
“你之前跟张伟有没有私人恩怨?”
“没有。”
“他有没有向你透露过任何关于他真实身份的信息?”
“没有。”
“你觉得他为什么要用你的电脑?”
这个问题,我想了一晚上。
“两个可能。”我说,“要么我的权限刚好能访问他需要的东西,要么他想把嫌疑引到我身上。”
警察点了点头,没有继续追问。
“周先生,感谢你的配合。后续如果有需要,我们会再联系你。”
我站起来,走出会议室。
走廊里,阳光还是那样照进来,在地板上切出明暗相间的条纹。一切看起来跟昨天一样,但一切都不一样了。
我走回工位,坐下。李姐递过来一杯咖啡。
“你还好吧?”她小声问。
“还好。”我接过咖啡,喝了一口。苦的,没放糖。
手机震了一下。
我低头看,是一条微信好友申请。头像是个风景照,名字叫“远方”,备注信息写着:“周哥,我是张伟。”
我盯着屏幕,手指悬在“通过”按钮上。
咖啡杯里的热气袅袅升起,在空气中慢慢散开。
办公室里,键盘声此起彼伏,一切都恢复了正常。好像什么都没发生过。
但我手机屏幕上那行字,像一根针,扎在这正常表象的薄膜上。
“周哥,我是张伟。”
我深吸一口气,点了通过。
全部评论