九月二十二日,凌晨四点十三分,深圳创新大厦五楼hicq项目组主办公区。所有的顶灯都关著,只有中央伺服器机柜的指示灯在黑暗中规律闪烁,像某种深海生物的呼吸。王磊瘫在自己的工位上,手边的菸灰缸里已经塞满了菸头,空气里瀰漫著隔夜咖啡的酸餿和菸草烧灼的焦苦。他面前的四块屏幕亮著惨白的光,左边两块是hicq 4.2版本的后台日誌分析,右边两块是qq最新版本的功能截图对比。
日誌显示,九月十五日凌晨三点二十七分,hicq 4.2版本的“游戏状態深度同步”功能代码完成最后一次內部提交。九月十六日上午十点,该版本开始在內网测试环境部署。九月二十日凌晨零点,版本封包,准备在九月二十五日上午十点全网推送。
而qq的更新日誌显示:九月二十二日凌晨零点,qq 2006 beta3版本静默更新。新增功能包括:“游戏状態共享”——可以在qq面板实时显示好友正在玩的游戏,並一键加入;“游戏內呼出”——在支持的游戏內按快捷键,直接呼出qq聊天窗口;“游戏成就同步”——自动同步游戏成就到qq空间。
这三个功能,与hicq 4.2版本计划推出的“游戏状態深度同步”核心特性,相似度超过85%。但发布时间,比hicq早了整整三天。而且,qq的版本號是“beta3”,意味著这个功能至少已经开发测试了两周以上。也就是说,在hicq团队刚完成代码、还没开始內测时,腾讯就已经在做同样的功能了。
“巧合。”王磊对著空气说,声音嘶哑得像砂纸摩擦,“他妈的不可能是巧合。”
他调出过去一个月的代码提交记录。hicq 4.2版本的“游戏状態深度同步”功能,由三个子模块组成:游戏进程鉤子、状態数据採集、网络同步协议。这三个模块的开发,分別由三个小组负责,最后在九月十五日集成。开发文档和设计思路,只存在內部wiki上,访问权限限定在项目组核心成员——十二个人。
他又调出这十二个人的权限日誌。在过去一个月,他们访问“游戏状態深度同步”相关页面的记录,一共四百七十三次。时间、ip、操作类型,清清楚楚。王磊的眼睛像扫描仪一样,一行行地过。大部分访问集中在工作时间,ip是公司內网,操作是“查看”“编辑”。但有三条记录,格外刺眼:
用户:张晨(產品经理,入职76天)
时间:9月12日,23:47
ip:119.137.63.218(深圳电信adsl动態ip)
操作:下载设计文档(gamestate_sync_spec_v1.2.pdf)
用户:张晨
时间:9月13日,01:15
ip:同上
操作:查看接口定义(gamestate_api_v0.8.md)
用户:张晨
时间:9月14日,22:33
ip:同上
操作:下载测试用例(test_case_gamestate.xlsx)
凌晨,非工作时间,家庭ip,下载核心设计文档和测试用例。而且,是三次。
王磊的心臟像被一只冰冷的手攥紧了。张晨。三个月前从新浪uc挖来的產品经理,二十八岁,履歷乾净,面试表现优秀,入职后负责hicq游戏生態的產品设计。是他主动申请加入“游戏状態深度同步”项目,理由是想“深入理解技术实现,更好设计產品”。当时王磊觉得他有干劲,批了权限。
但现在看,太巧了。张晨入职七十六天,正好是hicq用户突破两千万、腾讯开始疯狂反扑的时候。他加入的项目,正好是hicq未来六个月最核心的功能。而他下载那些文档的时间,正好是代码即將完成、腾讯可能开始紧急跟进的节点。
王磊拿起手机,想打给林浩,又放下。凌晨四点,证据还不够。他需要更多的链条。他调出公司门禁系统的记录,查看张晨过去一个月的出入时间。正常,都是朝九晚六,偶尔加班到九点。通讯记录?公司內部的即时通讯工具,张晨的聊天记录都很正常,討论工作,分享资料,没有异常。但王磊注意到,张晨加入了一个名叫“深南大道篮球小分队”的群,群里五个人,都是公司不同部门的年轻人,偶尔约球,聊天內容很日常。
其中一个人的名字,让王磊眼皮一跳:李想。印尼出海项目的负责人,一周前刚派去雅加达。但李想和张晨,什么时候认识的?他查了两人的聊天记录,只有寥寥几句,关於篮球赛的时间地点。看起来没问题。
但直觉告诉王磊,有问题。他调出李想的权限记录。李想是社交產品线的元老,权限很高,能访问大部分hicq的项目文档。但过去一个月,他没有访问过“游戏状態深度同步”的相关页面。一次都没有。
不对。王磊切换思路。如果张晨是內鬼,他下载文档后,怎么传给腾讯?邮件?u盘?网络传输?公司的网络出口有监控,但如果是加密传输,或者用外部设备,很难查到。他调出网络安全组的日誌,查看九月十二日至十四日,从公司网络发出的所有异常连接。数据量很大,他筛选了深夜时段、加密协议、以及连接持续时间超过五分钟的记录。
一条记录跳了出来:
时间:9月13日,01:20-01:35
源ip:119.137.63.218(张晨的家庭ip)
目標ip:121.14.67.104(深圳电信idc机房,经查为一家小型外贸公司伺服器)
协议:ssh(加密)
流量:18.7mb
十八兆。正好是“gamestate_sync_spec_v1.2.pdf”和“gamestate_api_v0.8.md”两个文件压缩加密后的大小。时间,就在张晨下载文档的五分钟后。
王磊的后背瞬间被冷汗浸透。他抓起电话,打给网络安全组的负责人。“老吴,查这个连接,121.14.67.104,我要知道这个ip背后是谁,现在,马上。”
二十分钟后,老吴回电,声音紧绷:“磊总,查了。那家外贸公司是个空壳,註册人是个七十岁的湖南农民,明显是代持。伺服器租用了三个月,只用过两次,一次是九月十三號凌晨,一次是九月二十號晚上。二十號那次,流量更大,传了五十多兆,时间在qq更新前四小时。我们追踪了资金流水,租伺服器的钱,是从一个香港的离岸帐户打来的,层层洗过,追不到源头。但收款方……是腾讯的一家关联公司。”
电话掛断。办公室里的空气像凝固的冰。王磊坐在黑暗里,听著自己心臟沉重的跳动。证据链,全了。张晨在深夜下载核心文档,通过加密通道传到腾讯控制的伺服器。腾讯拿到设计思路,紧急开发,抢先发布。这不是巧合,是商业间谍。
窗外的天色开始泛白。深圳在晨雾中甦醒,但王磊只觉得冷,从骨头缝里渗出来的冷。他想起张晨平时谦逊有礼的样子,想起他在项目会上积极发言,想起他说“想为浩宇做出世界级的產品”。全是演的。
他拿起手机,这次拨给了林浩。电话响了三声,接起。林浩的声音很清醒,不像被吵醒。
“磊子。”
“老大,出事了。”王磊的声音在抖,“有內鬼。hicq 4.2的设计文档,被腾讯拿到了。是张晨,新来的產品经理。证据確凿。”
电话那头沉默了几秒。然后,林浩说:“到我办公室。现在。”
上午七点,林浩办公室。窗帘紧闭,没开大灯,只有书桌上那盏檯灯昏黄的光。王磊、张小龙、法务总监老陈、安全组老吴都在。桌上摊著列印出来的日誌记录、网络连接图、资金流水。空气里有种紧绷的、一触即发的压抑。
“人控制了吗?”林浩问,声音很平静,但底下是冷的。
“还没。”王磊说,“他今天正常上班,还有半小时到。要不要现在就……”
“不急。”林浩拿起张晨的履歷,仔细看了一遍。新浪uc两年,產品经理,负责游戏大厅功能。离职原因是“寻求更大发展空间”。背景调查乾净,前同事评价不错。“太乾净了,反而有问题。新浪uc和腾讯是死对头,他跳槽来浩宇,合情合理。但一进来就精准找到最核心的项目,还正好是腾讯最想知道的……”
他抬起头,看向老吴:“那个外贸公司伺服器的两次连接,除了九月十三號和二十號,之前没有任何活动?”
“没有,註册后一直閒置,直到这两次。”
“那就是专门为这次传文件准备的。”林浩放下履歷,“张晨可能只是个执行者,背后还有人。他刚来三个月,能拿到核心权限,是因为他主动申请,而且理由正当。谁批的?”
“我批的。”王磊声音发涩,“当时觉得他有想法,想给他机会。”
“不怪你。”林浩摇头,“內鬼要做事,一定会找最合理的路径。但我想知道,腾讯怎么知道我们在这个时间点,在做这个功能?hicq 4.2的开发计划,只有核心团队知道。张晨就算拿到了文档,也得有人告诉他,这个文档有价值,什么时候传出去最有效。那个时间点——代码完成,还没內测——正好是腾讯能紧急跟进、又能抢在我们前面发布的时间。这需要內部有人给他信號。”
办公室陷入死寂。所有人都在想,那个“內部的人”是谁。能知道hicq 4.2精確开发进度的人,不超过十个。而这十个人,都是跟了浩宇两年以上的老人。
“查。”林浩最后说,“但不要打草惊蛇。王磊,你今天正常工作,该开会开会,该布置任务布置任务。老吴,监控张晨的所有网络活动,包括他家里的。老陈,准备法律材料,证据固定。张小龙,hicq 4.2版本暂停发布,重新评估功能方向。另外,准备一个假的4.3版本计划,內容要诱人,要看起来是绝密,让张晨有机会传出去。我们要看看,这条线上,还有谁。”
“老大,”王磊忍不住问,“不直接抓人吗?他还在继续偷怎么办?”
“让他偷。”林浩笑了笑,笑容很冷,“但要偷我们想让他偷的东西。腾讯不是喜欢跟吗?这次,我们餵他点『好东西』。”
他站起身,走到窗边,拉开一丝窗帘。清晨的阳光刺进来,在办公室地板上投下一道锐利的光痕。
“这场仗,从明面打到暗面了。也好,让我们看看,腾讯的下限在哪里,我们的內鬼,藏得有多深。”
窗外,深圳的早晨,车水马龙,一切如常。
而浩宇的內部,一场无声的反间谍战,在这一天,悄然拉开序幕。
静待暗流涌动,静待真相浮出,静待那只藏在阴影里的手,自己暴露。