苏以棠轻轻敲了下桌面,把那行脚本标签念完:“author:qf,approver:lgf,tag:media-eval。”她抬眼,眸光像刀,“狐在‘影集’里钻洞,桥在GF这头搭;人,是——曲凡。”
“抓狐,先断桥。”林修把白板分成两栏,左写“明线:银行/担保合规通报—脚本签名机制—外链熄火”,右写“暗线:影集溯源—补丁钩子—实地收网”。他旋即起草一份《风控脚本签名与灰名单暂停通告》,由银行与国策担保联名发出:即日起,任何含clean.sh的脚本升级必须经三方签名、专网发布,影集侧的“评估标签”全部停用。
“狐会绕签名。”苏以棠把一只黑壳U盘推过来,“我们做一道‘鱼线’——《clean.sh安全补丁说明v2(R5)》。”文档里标注:修复“日志误删风险”,建议升级;而真正的补丁里,埋了三枚极细的金丝钩:一枚DNS金丝(被调用即回传一次不可伪造的随机域名请求),一枚路径钩(把执行者的工作站名和挂载盘号写入只读缓冲),一枚时序钩(对齐“影集”与“江南机房固定IP”的请求时间)。
“补丁只送到合规技术部的工单系统,由银行提出‘必须改’。”林修说,“谁绕过‘签名机’去影集打补丁,钩子就会亮。”
当天下午,联名通告先行上线。晚上八点整,合规技术部群里弹出“紧急工单”:**“clean.sh v2(R5)——修复日志误删,新增回滚保护。”**曲凡没有回;二十分钟后,工单状态改为“处理中”,操作人显示:QF。
“他上钩了。”苏以棠把“潮汐表”的R5尾缀点亮。20:27,“R5被打开:GF内网开发机”;20:32,“R5发生导出:影集侧脚本仓—media-eval分支”;20:33,“DNS金丝回响:qf-meval-0833.r5…(影集侧分支构建机)”。
“不是生产签名机,是影集的构建机。”林修盯着回响上的主机名,“qf-meval,自己的名字都没藏。”
两人没有立刻下手,只把“路径钩”的缓冲抓满:QF-MBP / D:\shadow\clean / mount: Y: (江南机房映射)。随后,市局网安与专班同步出警——不是冲GF办公室,而是冲共享工位:江南创意园二期,夜里对外开放的“云工坊”。
九点零五分,“云工坊”里键声飞快。林修与执法队同时推门,几台显示器上还亮着“media-eval”的分支合并界面。椅子背后,一件灰色连帽衫的人猛地拔网线准备跑,被门口的防暴拦住。
“曲凡?”林修叫了一声。
回头的人不是曲凡,是一个脸色单薄的年轻人,胸牌写着“盛野(外包)”。他手忙脚乱举起工牌:“我只是按工单提的包!账号是曲工给的,他说生产签名机慢,先在影集侧预热——”
“曲凡呢?”苏以棠打断。
“他……他说一会儿来确认。”盛野声音发抖,“‘clean’只是做日志清理,没有删证,真的。”
话没落,门口又进来一人,黑衬衫、戴框镜,额角有一道浅浅旧疤——曲凡。他一眼看见执法队,脚步只顿了半秒,随即收回手机,抬起双手:“我配合。”
“配合就好。”林修把显示器上的合并记录翻了两页,“author:qf / approver:lgf / tag:media-eval——这些签名从哪儿来的?”
“旧模板。”曲凡嗓音哑,“以前公共事务那头要‘一次合规’,我就写了清理脚本,默认把临时目录和未签核的XMP丢进回收池。后来担保这边也要‘自动化’,我把脚本迁过去,懒得改标签。李总(LGF)说影集是‘评估沙箱’,先把包放影集,不走签名。”
“也就是说,‘评估’其实是删链路的一只黑箱。”苏以棠冷笑,“你在黑箱里,给‘样张’盖了事实的印章。”
曲凡闭了闭眼,像一瞬间老了:“我以为只是‘规范’,没想过会被拿去走账。后来影集侧多了media-eval-loan分支,我提出异议,被压了回去。”
“证据。”林修很平静,“我们不听‘以为’,只看‘事实’。你要保命,就把‘影集’的管理员令牌交出来,把清理脚本的审批流和覆盖范围说清楚。还有:谁让你把GF-桥写进用途规则。”
曲凡沉默不语。门外夜风灌进来,他像在衡量最后一格退路。半分钟后,他从手机壳里抽出一张写着乱序字母的纸片:“影集管理员token:ae79…。GF-桥的用途规则,是LGF拍板——他用的是**董事办(临时)**的指令码,说‘合并口径,提效’。”他顿了顿,“何总(HQ)没批签;他只点过一次‘否’。”
“那你呢?”苏以棠逼视他,“你有没有点过‘是’?”
曲凡苦笑了一下:“我点的是回车。这是我的罪。”
执法队当场扣押“云工坊”的两台构建机,网安用“ae79…”直连影集仓库,冻结media-eval与media-eval-loan两条支路,并调取clean.sh的全历史。日志里,一条条“删临时目录”“清回执XMP”“规范页眉”像一支支细针,扎在每个时间点上;而在几处关节点,审批人签名清楚地印着:lgf。
“狐落,桥断。”林修把R5的三枚金丝回执装入只读包,转身对曲凡,“你还有一条路——证人程序。把你手上的‘脚本—影集—GF桥—LGF审批’整条链补齐,我们给你争取轻罪回炉。”
曲凡抬头:“我还能活?”
“能。”林修的目光很冷也很准,“样张不是事实,你把事实交出来,风会给你一条缝。”
曲凡低下头,点了点。
——
夜深,银行与担保的“签名机制”在公告下迅速生效;影集侧的两个分支被封;“云工坊”贴上了红封条。舆论热帖又起,喊“技术人背锅”。集团舆情按下三张图:签名比对、时间线、只读封存号JF-…224510,配一句:“规则不是背锅,是刹车。”学术诚信社群跟了一句老话:“天下之事,利害相半;去其害,存其利。”
回到公寓,窗外航空障碍灯一明一灭。苏以棠把“ae79…”抄进证据目录,忽然看向林修:“你猜,何青为什么给你‘七分钟之门’,却不自己断?”
“他在刀口上走钢丝。”林修把R5封袋压在案上,“他能按一次‘否’,就已经把自己放在风里。真正的断挂,需要S3落笔——监管、银行、担保三方一起,‘母株’那端还要司法封存。他一个人断不了。”
手机亮了一下,是徐清的简讯:“董事长定‘明早十点’:金融专班会,三方同步;下午三点,‘母株脱挂’申请。”
林修点开,嘴角只是轻轻一动:“刀和风,同频。”
他抬眼看向窗外,夜色像潮在楼群间推拉。桌面上,一行字被他重重写下:**“断挂:母株→青藜·公益贷(S3)—影集/雾集(冻结)—GF桥(停)—白名(失效)。”**下面,他又添了两个名字:曲凡(证人)、何青(门)。
“下一步,”苏以棠合上电脑,“把‘DB-T’从每一份财务口径里剔除,让‘借天子以令诸侯’彻底失效。”
“再下一步,”林修看着她,眼神更亮,“去拿那本**‘青册·母株’的黑名册**——黑名在门里,我们要把它带到光里。”
风从百叶间穿过去,像一把看不见的梳子,把夜理得干干净净。潮线在远处慢慢上爬。林修知道,明天十点,刀会落在桥上;三点,风会掀到根下。逆袭的最好时机,不是最热闹的那一刻,而是刀风同频的这一拍。