因为她知道明天早上八点,实验室里会有一杯热的蜂蜜柠檬水放在她的键盘旁边。杯套上会写著“温姐”,字迹工整,横平竖直。
她知道自己会喝掉那杯蜂蜜柠檬水,然后打开电脑,看到他在注释里留的话。她会回,他会再回。键盘声会在实验室里响一整天,她的快,他的稳;她的轻,他的重。
温以宁是在周三清晨发现的。
她习惯每天早上到实验室之后先检查服务器日志,这是她从入职第一天就养成的习惯。周一检查系统状态,周二检查数据备份,周三检查访问记录。规律、重复、不会出错。
但这天早上,日志里出现了一条她不认识的记录。
时间是周二凌晨两点十七分,来源IP地址不在实验室的白名单上,访问路径指向她的核心代码库——量子加密系统的底层实现,整个项目最关键的部分,没有上报专利之前连宋晚晴都没有完整权限。
被访问的文件有四个。不是浏览,是下载。
温以宁盯著萤幕上那条记录,手指放在滑鼠上没有动。她先确认了防火墙设定——正常。确认了权限分级——正常。确认了内部网路的登录日志——正常。所有防御系统都在正常运作,但攻击已经发生了。不是系统被攻破,是有人用合法的权限做了不合法的事。
她把那条记录复制出来,保存在一个单独的文件里,然后关掉日志窗口。
“宋晚晴。”
宋晚晴从机房探出头来。“在。”
“上周的内部权限审计报告给我。”
“现在?我还没——”
“现在。”
宋晚晴的脸色变了一下,把报告调出来发给她。温以宁打开报告,逐页检查。核心代码库的访问权限只有三个人:她自己、宋晚晴、以及上周刚刚加入系统的——程越。
她把报告关掉,靠在椅背上。
程越的权限是她批的。上周一,合作项目正式启动的时候,她亲手在权限管理系统里勾选了“核心代码库-只读”的选项。当时宋晚晴提醒过她“要不要再等等”,她说不用。她信任他。不是因为感情,是因为专业判断——他的工作需要这些权限,没有这些权限他没办法做优化。
现在这条信任变成了一把刀,架在她的脖子上。
她没有立刻做任何事。她花了半个小时,把过去一周的所有访问日志重新过了一遍。程越的帐号在核心代码库的操作记录有三十七条,每一条都在正常工作时间内,访问的文件与他的工作内容完全匹配。那条凌晨两点十七分的记录,使用的是一个不属于任何人的临时凭证——不是程越的,不是宋晚晴的,不是她自己的。
有人在系统里开了一个后门。
九点整,院办的电话来了。打电话的是科研管理处的处长,语气比平时客气了三倍,客气到温以宁在听到第三句话的时候就知道出事了。
“温博士,麻烦你来一趟院办。有些事情需要当面沟通。”
“什么事?”
“来了再说。”
她挂掉电话,站起来。程越刚到实验室,正在脱外套。他看到她站起来的动作,停了一下。
“怎么了?”
“院办找我。”她拿起桌上的笔记本电脑,“你在这里等我。”
“我跟你一起去。”
“不用。”她走到门口,回头看了他一眼。他站在工位旁边,手里还攥著外套,表情平静,但她看到他另一只手的手指在裤缝边上轻轻摩挲——他在紧张。
“等我回来。”她说。
院办在行政楼四层,走廊比实验室的宽一倍,地板是深棕色的实木,擦得很亮,能照出人的影子。温以宁走进会议室的时候,里面已经坐了四个人。科研管理处处长、信息安全办公室主任、院办副主任,还有一个她不认识的中年男人,西装领带,面前放著一个笔记本电脑和一个牛皮纸信封。
“温博士,请坐。”处长指了指对面的椅子。
她坐下来,把笔记本电脑放在桌上,没有打开。
“长话短说,”处长推了一下眼镜,“我们接到通报,你的量子加密项目核心技术可能已经泄露。泄露时间大概在一周之内,泄露途径是实验室的内部网路。”
温以宁没有说话。
“信息安全办公室已经做了初步调查,”处长继续说,“泄露的源头指向一个外部IP,但这个IP是通过内部权限进入系统的。拥有核心代码库访问权限的人目前有三个——你、宋晚晴、以及新加入的合作方技术顾问程越。”
会议室里很安静。空调的风口对著她吹,冷气打在脸上,她没有躲。
“院里的意见是,”处长看了一眼那个不认识的中年男人,“在调查结果出来之前,终止与程越的合作,收回所有访问权限。同时,你需要配合信息安全办公室做一次全面的安全审计。”
“终止合作的依据是什么?”温以宁的声音很平。
“目前的证据指向——”
“目前的证据只能说明有人用了内部权限,不能说明是谁用的。”她打断他,“程越的权限是我批的,他的所有操作记录都在正常工作时间内。凌晨两点十七分的那次访问,使用的是一个临时凭证,不是任何人的个人帐号。”
处长和那个中年男人交换了一个眼神。
“你已经看过日志了?”中年男人开口,声音低沉。
“我是实验室负责人,检查系统日志是我的日常工作。”
“那你应该知道,那个临时凭证的生成时间,是在程越加入项目组之后。”
“生成时间和谁在使用是两回事。”
中年男人打开牛皮纸信封,从里面抽出一张纸,推到她面前。那是一份网路访问记录的摘要,上面用红笔圈了几个时间点和IP地址。其中一个时间点是周二凌晨两点十七分,IP地址指向一个海外伺服器。摘要的最下方写著一行注释:“该IP与程越前雇主公司的伺服器位于同一网段。”
温以宁看著那行注释,没有说话。
“我们不是说程越一定做了这件事,”处长的语气软了一些,“但目前的证据指向他。在事情查清楚之前,继续合作是有风险的。院里的决定是——”
“我要见他。”
“温博士——”
“在做出任何决定之前,我要见他。”她站起来,“你们可以收回他的权限,可以暂停合作,但我要当面告诉他这件事。这是基本的尊重。”
会议室里沉默了大约五秒。处长看向那个中年男人,中年男人点了一下头。
“可以。”处长说,“但今天之内,权限必须收回。”
温以宁走出行政楼的时候,阳光很刺眼。她站在台阶上瞇了一下眼睛,拿出手机。有三条未读讯息,都是程越发的。
“院办找你什么事?”——九点十二分。
“需要我过去吗?”——九点十八分。
“温以宁?”——九点二十五分。
她打了四个字:“在实验室等我。”发送。
回实验室的路上她走得很慢。不是犹豫,是在想一件事。从看到日志的第一秒到现在,她从来没有怀疑过程越。不是因为感情,是因为逻辑。如果他要偷她的技术,不需要用这种方式。他已经在合作项目里了,有合法的权限访问所有文件,有合法的理由获取所有数据。他只需要多花几个晚上,把文件复制到自己的电脑里,没有人会发现。没有人会检查合作方技术顾问的个人设备——这是行业惯例,也是信任的基础。
但他没有。他的操作记录全部在正常工作时间内,全部与工作内容相关,全部可以被追溯。一个打算偷技术的人不会留下这么干净的痕迹。
真正偷技术的人,会让痕迹看起来像别人留下的。
她走进实验室的时候,程越站在她的工位旁边。他看到她的第一秒没有说话,只是看著她的脸,像在读一行需要仔细理解的代码。
“他们要终止合作。”温以宁说。
程越的表情没有变化。他点了点头,像在确认一个已经预期到的结果。
“因为泄露的事。”
“你知道?”
“我早上看到了日志。”他说,“凌晨两点十七分,临时凭证,海外IP。”
温以宁看著他。“你看到了为什么不告诉我?”
“我在查。”他的声音很平静,“那个临时凭证的生成方式很特殊,不是通过正常的权限管理系统,是通过一个漏洞——上个月系统更新的时候留下的一个安全缺口。我在追那个缺口的来源。”
“追到了吗?”
“还没有。但有一件事可以确定——”他看著她的眼睛,“那个凭证不是从我的设备生成的。生成地点在实验室内部,用的是服务器机房的一台备用机。”
温以宁的心跳加速了。
服务器机房。备用机。实验室内部。
这意味著做这件事的人不是外部黑客,不是程越,是实验室里的某个人。一个有权限进入机房的人,一个知道系统更新时间的人,一个了解核心代码库价值的人。
她转头看向服务器机房的门。门关著,但没有锁。机房里有六台服务器、三台备用机、一个监控萤幕。任何一个实验室的人都可以在正常工作时间进去,在备用机上执行一个预先写好的脚本,生成一个临时凭证,然后在凌晨两点用这个凭证下载文件。没有人会注意到,因为机房没有监控摄像头——她当初觉得没有必要。
她错了。
“你知道是谁。”她看著程越。
“不确定。但有个方向。”他打开自己的电脑,萤幕上是一个网路追踪的界面,红色的线条在地图上标注了一条路径——从实验室的伺服器到一个中转节点,再到一个海外IP,最后指向一个她认得名字的公司。
她竞争对手的公司。
“这是——”
“嗯。”程越关掉萤幕,“我昨晚追到的。但还不够。中转节点用了三层代理,我需要时间拆解。本来打算今天下午跟你说。”
温以宁站在那里,手指攥著笔记本电脑的边缘,指节泛白。
她想到了实验室里的每一个人。宋晚晴?不可能。宋晚晴是她的助理,跟了她三年,是她最信任的人。但信任不是证据。其他研究员?有三个人有机房权限,两个是博士生,一个是资深工程师。每个人都有动机——更好的职位、更高的薪水、更快的晋升。每个人都有可能。
她的实验室里有一个人,在她不知情的情况下,打开了她的核心代码库,复制了她的技术,卖给了她的竞争对手。这个人每天早上跟她打招呼,跟她讨论实验数据,跟她一起开会、一起吃饭、一起加班。这个人看著她写代码、跑测试、申请专利,看著她一步步把这项技术从理论变成产品,然后在凌晨两点十七分,把这一切打包下载。
“温以宁。”程越的声音从旁边传来,很低,很稳。“这件事不是你的错。”
她没有说话。
“你是实验室负责人,但你不可能二十四小时盯著每个人。系统漏洞是更新时候留下的,不是你设计的。权限管理是按照院里的标准流程做的,不是你一个人决定的。”他停了一下,“你不会把责任推给我,所以你也不要推给自己。”
她抬头看他。他的表情很平静,但她看到他眼睛里有一种东西——不是同情,不是心疼,是一种很深的、被她压了五年的、终于找到出口的理解。
“你为什么不早点告诉我?”她问。
“因为你不需要我保护你。”他说,“你需要的是——自己做出选择。”
温以宁愣了一下。
然后她明白了。
他从周二凌晨就发现了异常。他花了两天的时间追踪,没有告诉她,不是因为他想隐瞒,是因为他在等她发现。等她用自己的方式看到日志,等她用自己的判断分析证据,等她用自己的立场做出决定。他不替她做决定。这是她给他设的边界条件,他在遵守。
“现在我发现了。”她说,“现在我需要你做一件事。”
“什么事?”
“帮我抓住他。”