第164章 残留疑点
傍晚的光线一点点滑过内科病房的玻璃窗,暮色慢慢漫进室内。监护仪LED指示灯明暗交替,规律的滴滴声响持续不断。林泽依旧保持昏睡状态,呼吸节奏平稳,留置针固定在手背,输液袋剩余药液已经不多。
苏曼把病房窗帘拉开一道窄缝,没有完全闭合,留出一点视野可以观察楼下住院部大门口的来往人员。门外值守的两名便装人员完成第三轮换班,换班的交接声音压得很低,隔着门板只能听见模糊的响动。
她拿过手机,点开加密聊天软件。上一条消息停留在和陈默的对话末尾,双方确认当下证据链存在的缺口,所有核心材料只做备份留存,不向外提交。没有新消息弹出来,陈默那边应当还在处理海量文档归档工作。
苏曼把手机调至静音,放到床头柜远离病床的一侧,防止消息提示音惊扰昏睡的林泽。她弯腰打开自己随身双肩包,伸手在包的内层隔袋摸索,取出一只巴掌大小黑色金属外壳U盘。
U盘外壳表面有细微磨损痕迹,是好几年前的旧款存储介质。这是苏曼多年前还在大学做实习记者的时候,对林泽做专题人物采访所用的录音存档。那次采访距离现在已经过去接近四年,那时候林泽还在瑞科集团,是行业内被很多人看好的算法工程师。
当年采访结束之后,苏曼拷贝了一份完整录音副本留在自己手里。这么多年辗转搬家,U盘一直被收在背包夹层,很少拿出来使用。之前整理个人资料的时候偶然翻到,今天过来陪护,便一并带在了身上。
她坐到陪护椅,拿出病房配套的便携小型播放器,把U盘插入设备接口。播放器屏幕亮起,目录列表加载出来,多条音频文件排列在界面上。文件命名按照采访的时间节点标记,开场自我介绍、风控项目设计思路、测试阶段遇到的各类技术难题,分段记录完整。
播放器音量调到很低,输出的声响只局限在椅子周边一小块范围,不会传到病床那边。苏曼按下播放键,耳机戴到耳朵上。
耳机里面传出数年前的环境杂音,背景是瑞科园区会议室空调运转的微弱噪音,随后响起林泽的说话声音。语调平实,语速偏快,大多围绕智能风控系统的底层设计逻辑展开。
音频进度条持续向前滚动,前面一大段内容都是项目框架、算法模型、预期可以达成的风控效果。苏曼拖动进度条,跳过大段技术描述,定位到测试试运行那一段录音片段。
录音里面,林泽的说话声继续传来,讲述系统内部压力测试、模拟真实业务流水拦截演练的过程。讲完常规测试内容之后,音频出现短暂停顿,能听见杯子放置桌面的轻响。
接下来这一段,就是苏曼记忆里那个容易被忽略的片段。
“整体测试数据集跑下来,绝大多数异常交易都可以被识别拦截。但有几次,服务器日志会凭空出现来路不明的数据包。”
录音里面林泽的声音继续往下,“数据包触发系统告警,可我带人跟进排查的时候,数据包相关记录会被系统内部程序自动清除。不是人为手动删除,是脚本自动执行清理,事后我们反复复查服务器操作日志,找不到对应的操作人员账号。”
苏曼手指停在播放器按键上方,没有快进。耳机里面继续传出当时的对话。
苏曼当年的提问声从录音流出:“会不会是测试环境本身产生的垃圾数据包?”
“一开始我们也是这么判断。前后一共出现四次,时间点没有固定规律,数据包特征并不统一。我们做过环境隔离复现,把整套程序迁移到完全独立的测试服务器,依旧会出现同类现象。每次出现,相关记录短时间内就被抹除。我们提交过内部工单给运维部门,运维排查一轮之后反馈,没有发现外部入侵痕迹,给出结论归为系统缓存bug。”
音频到此,话题被当年的自己主动切换,转到项目落地进度、行业政策层面,异常数据包这件事就此带过,采访没有继续深挖。
录音片段播放完毕,播放器自动切到下一条音频文件。苏曼摘下耳机,暂停播放,把进度条重新拉回刚才那一段异常数据包的位置,又重新听了一遍。
四年之前的一次随口提起的技术异常,放在当下的处境里面,分量完全不一样。
当年所有人,包括参与项目的林泽本人,都把这件事当做系统环境层面偶发故障。那时候没有千万级亏损事故,没有后续构陷封杀,没有人会往人为预埋后门的方向联想。
苏曼拔出U盘,放回双肩包内层隔袋。这件录音存档只是当事人的口头回忆,只有音频记录,没有配套服务器日志、数据包样本作为实物佐证,单独拿出来,不能当做立案调查的证据。只能算作一条线索引子。
她拿起手机,编辑消息发送给陈默。
“我手上留存一份多年前的采访录音存档。林泽当年在风控系统测试阶段,就遇到过来路不明的数据包,记录会被脚本自动清理,运维当时定性为缓存bug。音频只有口述内容,没有数据包样本,不能作为实证。”
消息发送出去,病房里重新回归安静。监护仪滴滴声持续,林泽睡姿没有变动。
隔了几分钟,手机震动,陈默的回复传回。
“我记得林泽出事之后,曾经跟我简单提过测试阶段的怪事。那时候我们同样判断属于程序bug。现在回头看,疑点很大。我这边可以去调取瑞科服务器留存的老旧测试日志副本,看看能不能找到对应的痕迹。原始服务器硬件还保存在瑞科机房库房,普通人接触不到,但早期系统运行日志,有一部分做过异地备份,存储在第三方云存储节点。我可以调动技术团队,尝试访问那一部分备份日志。”
苏曼回复:“注意分寸,不要触发瑞科机房的入侵告警。一旦后台察觉到异常访问,周瑞安那边立刻就会收到通知,会直接把残存的备份数据全部销毁。”
“清楚,不会直接暴力闯入。走公开合规的运维查询接口,陈氏科技和瑞科早年有过技术合作,合作协议里面保留有限读取历史测试日志的权限,权限范围只针对当年联合开发项目。刚好风控系统早期版本属于双方技术交流项目范畴,可以用旧合作名义发起日志调取申请。”
看到这条回复,苏曼把手机屏幕按灭。
窗外天色彻底暗下来,城市楼宇灯光成片亮起。住院部楼道人流依旧往来不停,门外值守人员没有发生人员变动。苏曼起身走到房门,再一次拉开一条门缝。
两名便装人员靠在走廊两侧墙面,目光盯住电梯口。楼层保洁推着清洁推车从走廊经过,两个人视线短暂跟随推车移动,确认没有问题之后,重新落回出入口方向。
“目前没有陌生人员上来。”其中一人低声汇报。
苏曼点头,把门重新合上,扣好反锁卡扣。
回到病床边,她低头看向监护仪屏幕,血压、心率各项读数全部处在安全区间。医生白天查房明确叮嘱,绝对不能让病患接收高强度信息刺激,不能让他动脑。苏曼没有打算叫醒林泽,录音里面这条旧线索,只能交给陈默的技术团队去验证。
另一边,陈氏科技风控技术部隔间。
外面办公区员工大多已经下班离开,整层办公楼大半灯光关闭,只有内侧两间隔间依旧亮着显示器。陈默刚刚完成基金会证据简报的备份工作,几份离线硬盘收纳进防火保密柜。
桌面上显示器,聊天窗口还停留在和苏曼的加密会话。看完苏曼发来关于旧采访录音的消息,陈默点开企业内部OA系统,调出多年前陈氏科技和瑞科签署的技术合作协议电子扫描件。
协议文档篇幅很长,一页页往下翻找,定位到数据共享相关条款。早年两家企业在智能风控领域有联合研发项目,协议写明,陈氏科技拥有有限权限,可申请调取项目周期内的非涉密测试日志,用于双方联合技术复盘。
这个权限有明确边界,不能调取业务交易流水、用户隐私数据,只能访问程序测试阶段运行记录。恰好可以对应上四年前风控系统的压力测试日志。
陈默拿起办公座机,拨通公司运维技术主管的内线电话。
“你调阅一下老的对外合作协议,瑞科集团,四年前的风控联合研发项目。按照协议赋予我们的权限,提交正式公函,向瑞科机房运维部门,申请调取项目测试周期内的服务器运行日志备份。重点筛选出现不明数据包、自动日志清除事件的对应时间窗口。”
电话那头运维主管出声询问:“申请调取日志的理由填写什么?”
“历史技术缺陷复盘。对外就说我们内部新版本风控模块迭代,需要参考早年项目遇到过的程序异常案例。不要提及旧案、事故、举报相关字眼。全部走正式公函邮件通道,留正规业务往来记录,不留个人匿名操作痕迹。”
“明白,公函邮件我今天拟好,明天工作日一早发送瑞科运维对接邮箱。”
通话挂断。陈默放下座机听筒,鼠标点开浏览器,打开云存储服务商的后台页面。瑞科当年一部分测试日志,托管在第三方云服务商节点。想要拿到副本,同样需要瑞科方面出具授权确认。没有授权,技术手段无法绕过服务商权限校验。
不存在偷偷入侵下载的捷径。一旦越权访问,会触发服务商风控告警,日志直接被标记,瑞科内部运维第一时间收到提醒,残存的历史记录就会被人为抹除。
陈默很清楚风险。这套日志是为数不多能够回溯测试阶段异常现象的材料,一旦损毁,就再也没有别的渠道可以复现当年发生过什么。绝对不能贸然行事。
他切换窗口,重新打开林泽移交过来的加密文件包。上千份文档已经完成分类归档,基金会资金链路、供应链调包运单、工商主体资料,各自归入不同文件夹。
他新建一个独立文件夹,命名为【风控测试残留疑点】,把苏曼刚刚发来的音频文件加密副本导入进去,同时备注好采访发生时间、采访背景,写明:仅有当事人口述,无数据包样本,待日志核验。
做完文件归档,桌面上另一块显示器弹出外勤人员发来的消息。邻市仓储物流园区那边,两台遮挡改装号牌的厢式货车依旧停留在库区内部,没有驶出。园区晚间会关闭主出入口,外来人员禁止入内。外勤人员分成两班,轮流守在园区外围主干道,持续盯守出库通道。园区物业依旧拒绝提供租赁信息。暂时没有新进展。
陈默简单回复外勤:夜间注意轮换休息,不要硬熬,重点盯紧凌晨出库高峰。
消息发送完毕,隔间外面楼道传来电梯叮咚响动,是少数加班结束的员工离开大楼。整栋大楼越来越安静,只有隔间内部设备风扇持续发出低噪音。
陈默靠在办公椅,对着屏幕上的文件夹列表思索。
就算明天公函顺利发送出去,也不能预判瑞科运维那边会给出什么回应。
第一种可能性,瑞科运维按照合作协议,把对应时间段的日志备份回传过来,就可以从中筛查自动清除日志的脚本触发记录,定位数据包出现的时间节点。
第二种可能性,运维直接回函告知,该批次老旧测试日志,因为服务器硬件迭代,存储介质淘汰更换,备份已经销毁。很多科技企业,超过三年以上非核心测试日志,都会做定期清理。一旦回复销毁,这条线索就此彻底断掉。
第三种可能性,邮件流转到瑞科内部,被周瑞安派系的人看到申请内容,立刻警觉。他们可以表面按照流程回复公函,实际上回传一份经过篡改、清洗之后的虚假日志副本,里面所有异常记录全部抹除,拿过来的材料全是伪造,看不出任何破绽。
三种情况,没有办法提前预判。
陈默把这几重可能性逐条写进刚才那份证据简报的新增段落,不做主观猜想,只是客观罗列现实存在的几种走向。
就在这个时候,加密通讯软件弹出一条新消息,来自秦雪的匿名中转账号。
消息不是长篇文字,只有简短几句话。
“今天内审继续向下核查子公司账外资金,查到一个细节。部分流入自然人银行卡的拆分资金,转账触发时间,和风控系统当年上线试运行的时间窗口存在重合。资金流向的一批个人账户,有几人曾经是当年风控项目外包合作人员。”
陈默看到这条消息,手指立刻敲击键盘回复。
“能否拿到这批外包人员完整名单,以及对应转账的时间戳?”
隔了一小会儿,秦雪的消息再次过来。
“名单可以整理出来,但是银行完整流水拿不到。内审只能看到子公司账户向外转账的记录,钱打到外包人员卡之后的二次流转,银行不会向企业内审开放。我可以把整理好的人员名单、每一笔转账发生的具体日期,匿名发送给你。注意,这份材料来源不能暴露,内审调取外包人员台账本身,已经越过周瑞安划定的工作边界。”
“我明白,接收之后只做线索参考,不会把这份台账直接向外提交。”
几分钟过后,一份加密压缩文件通过中转通道传输完成。陈默输入解密密码,打开表格文档。
表格里面罗列二十多个人名,身份标注大多是项目外包测试、外包运维、第三方驻场技术人员。每一行附带转账日期、转账金额。
陈默把表格内的转账日期全部筛选导出,复制粘贴到另一张空白表格,和公开记录里面风控系统压力测试、试运行的时间轴做对齐比对。
一部分转账,确实集中落在系统上线前后两个月窗口。金额高低不等,几万到几十万区间。
这些人,名义上参与过风控项目外包工作。项目结束之后,多数人和瑞科没有继续续约合作。其中几个人,公开网络检索不到后续的就业记录,去向不明。
陈默复制其中一个外包人员名字,打开浏览器做全网检索。社交平台、求职网站、行业新闻,几乎搜不到有效公开信息,如同人间蒸发。换第二个人名检索,结果相近,只有一条早年项目外包公示里面出现过一次名字,之后再无痕迹。
没有证据直接说明这些人和异常数据包、后门植入存在关联。仅仅是转账时间重合,人员参与过当年风控项目,仅此而已。可以当做排查方向,不能当成定罪依据。
陈默把这份外包人员台账导入【风控测试残留疑点】加密文件夹,同步做三份离线备份。同时在简报上补充记录:子公司账外资金,部分流向风控项目时期外包人员,转账时间与系统测试窗口重合,人员后期行踪不明,后续需要进一步核实。
处理完表格,陈默再次打开李薇那份无法解密的加密邮件附件。只能查看元数据。文件创建时间,刚好是林泽出事之后一个半月。文件修改时间,在李薇离职前三天。
元数据里面,除了之前捕捉到的开曼群岛微弱线索,没有新增可读信息。密钥缺失,依旧无法打开正文内容。
时间走到晚上八点多,陈默肚子再度传来饥饿感。他伸手拿过桌边剩下的半块面包,慢慢啃食,眼睛依旧盯着屏幕上面的时间轴表格。
多条线索现在慢慢汇向三年前风控项目测试阶段:林泽当年采访口述的不明数据包、自动清理脚本、子公司账外资金流向一批外包人员、部分外包人员事后去向不明、李薇离职之前打包的这份巨型加密文件。
但是全部都是碎片。碎片和碎片之间,缺少一条可以把它们牢牢串在一起的实锤证据。
任何单拿一条出来,都存在别的合理解释。不明数据包可以是程序bug;给外包人员打款,可以是项目外包尾款结算;外包人员消失,可以是转行离开互联网行业;李薇的加密文件,不知道里面记录的到底是什么内容。
想要把这些疑点变成证据,需要拿到服务器原始日志、数据包样本、资金二次流转银行流水、李薇文件解密之后的记录。而这些东西,现在手里一概没有。
陈默把浏览器全部标签页做关闭,清理操作日志痕迹。按照林泽一直坚持的操作习惯,所有查询、文档处理,全部留下隔离痕迹,不留下单点可以溯源到陈氏科技的把柄。
他编辑消息发送苏曼。
“我已经向瑞科正式提交业务公函,申请调取当年风控系统测试阶段日志备份,走早年联合研发项目的正规权限通道。结果未知,存在日志销毁、返回伪造副本的风险。秦雪刚刚匿名传来一份台账,子公司账外资金有一部分流向当年项目外包人员,转账时间和系统测试窗口重合,多名外包人员后续公开信息清零。全部属于线索碎片,没有可以直接定性的实证。”
病房,苏曼手机接收到消息。
她抬眼望向病床,林泽依旧沉睡。监护仪各项读数保持稳定。病房里面安安静静,只有仪器持续的滴滴声。
苏曼看完文字,手指在屏幕上输入回复。
“这么多疑点集中在同一个时间窗口,不可能全部用巧合解释。但我们手上拿不到硬证据。所有推论,都建立在碎片拼接的猜测之上。一旦贸然抛出,对方可以每一条都拿出别的说辞进行辩驳。”
“没错。”陈默回复,“现在只能够保存全部碎片,等待后续补齐实物证据。不能提前向外扩散,防止打草惊蛇。”
苏曼发送确认收到,把手机屏幕按灭。
她站起身走到窗边,隔着玻璃看向楼下城市夜景。住院部楼下马路车流穿梭,车灯连成流动光带。无数普通人照常过日子,不会知道三年前一场职场构陷,到今天还牵扯出这么多层层叠叠的技术疑点、资金疑点。
病房门外面,值守人员依旧坚守岗位。楼道偶尔传来护士推车滚动的声响,隔着门板传进来,很快消散。
苏曼坐回陪护椅,目光扫过病床上昏睡的林泽。这些埋藏在三年前项目测试阶段的残留疑点,林泽本人当年亲身经历全部过程。只是现在他人处在昏迷,没有办法对这些碎片给出进一步的解释和推演。所有和旧案直接相关的一手认知,全部锁在他的脑子里。
与此同时,瑞科集团总部大楼。
高层办公区大部分办公室已经熄灯,只有少数几间房间依旧亮灯。周瑞安的办公室没有关闭。
桌面摆放纸质文件,其中一份,是明天临时董事会会议材料预演底稿。特助站在办公桌一侧,逐条汇报各条线情况。
“赵明远依旧被安置在指定酒店,接受涉税调查组问询。调查组目前依旧停留在子公司税务问题层面,没有触及基金会相关线索。律师已经完成会见,向赵明远传递利弊。”
周瑞安指尖在桌面轻轻敲打,听完汇报,开口:“他那边态度怎么样?”
“情绪波动很大,对被限制出境这件事心存不满,但是清楚自己现在处境。律师传话,他不会主动供出基金会跨境洗白相关内容,但前提是我们要保证他家属的生活安置。”
周瑞安点头,没有接话。
特助继续往下汇报:“另外,运维部门刚刚收到一封外部公函邮件,来自陈氏科技。依据早年联合研发合作协议,申请调取四年前风控系统压力测试阶段的服务器日志备份,对外理由是历史技术缺陷复盘。”
听到这一条,周瑞安抬起头。
“陈氏科技?陈默。调取风控测试日志?”
“邮件是正式对公业务公函,附件附带当年合作协议对应条款截图,流程格式齐全。”特助把打印出来的邮件纸质副本递过去。
周瑞安拿过纸张,目光扫过公函全部文字。通篇措辞全部是技术复盘的业务话术,看不出任何调查、追责相关字眼。
他盯着纸面看了一小会儿。
“不要直接拒绝。直接拒绝,反而会引起对方疑心。通知运维,筛选那一批日志,所有涉及不明数据包、自动脚本清除的记录全部剔除清理。整理一份干净版本副本,按照对方提供的邮箱地址回传过去。对外答复,老旧存储介质部分数据丢失,只返回留存下来的片段日志。”
特助记下指令:“明白。”
“盯着处理,不要留下人为篡改的操作日志痕迹。”周瑞安补充一句。
“清楚。”
特助拿着纸质副本退出办公室。办公室只剩下周瑞安一个人,落地窗外是整片城市灯火。他站在窗前,目光望向远处。
陈氏科技突然索要多年前的测试日志。不会只是简简单单的技术复盘。
周瑞安心里清楚,林泽昏迷,但是他身边的人,已经开始向着三年前风控项目的源头,伸手挖掘。