啃文书库 > 负债清算我用系统追回全城 > 第五十二章:封管道

第五十二章:封管道


上午八点十二,天刚亮透,接收医院行政楼的玻璃幕墙像被水洗过一样冷。

林昼站在一层大厅的自动门旁,听着门外车轮碾过地面细碎的声响——两辆带监管标识的公务车停下,后面跟着一辆第三方取证机构的设备车。车门打开时,周负责人先下车,手里拎着一个灰色防震箱,箱体边缘贴着封条编号;监管联络人随后下车,脸色比昨夜更沉;最后下来的是两名穿便装、但肩背挺得很直的人员,其中一人胸口挂着工作证,证件上写着“网安技术支撑”。

封管道这一步,终于不再只是“审计建议”,而是“联合取证”。

林昼迎上去,周负责人没寒暄,直接问:“医院侧准备好了吗?我们要在中午前完成CI/CD镜像保全,越拖越危险。”

信息安全负责人也赶来,手里拿着一叠临时通行证与一张路线图:“医院这边没问题。供应商那边怎么进?”

监管联络人把文件夹一翻,抽出一张纸,纸上红章鲜明:“带着保全令与联合取证函过去。他们如果再拖,就按不配合处理,必要时现场采取强制证据保全措施。平台那边也会同步冻结他们对租户的任何远程发布权限。”

周负责人点头:“好。先把顺序再过一遍——到现场第一件事,不问原因,先固定系统状态:CI/CD主机、流水线配置库、凭据存储、构建产物仓库、制品发布记录。每一个都做只读镜像,哈希固化,然后再问‘谁’。”

信息安全负责人低声补了一句:“他们昨晚已经在找机会甩锅,可能会说‘外包维护’或‘第三方工具’。”

周负责人不动声色:“甩锅要有证据。管道里变量谁配置、凭据谁发、作业谁触发,系统都会记。”

林昼听着这几句话,忽然有一点恍惚——过去他最怕的就是“说不清”,怕人用话术把事实揉碎。现在他发现,真正的力量并不是谁口才好,而是谁能把事实放在桌面上,让所有解释都绕不过去。

大厅的钟指向八点二十七,联合取证小组出发。

---

九点零三,供应商在本市的运维中心。

这是一栋看起来很普通的写字楼,外立面干净,门口甚至摆着绿植,仿佛这里发生的一切都与“暗门”无关。但林昼很清楚,暗门从来不会写在门牌上,它写在变量里,写在权限里,写在“可选项”里。

前台看到监管函件,脸色立刻变了,电话打了三通才把人叫下来。合规负责人一路小跑进来,喘着气,先堆出一副客气的笑:“各位领导辛苦。我们已经在准备材料了,不过CI/CD系统涉及多个客户,镜像保全可能会影响其他业务,能不能——”

监管联络人直接打断:“不谈影响。保全令要求固定相关系统证据,你们可以在不影响其他客户的前提下做分区镜像,但必须保证可验证性。现在带我们去机房,立刻开始。”

合规负责人笑僵了一下:“机房不在这里,在云上。”

周负责人看着他:“云上也有控制台,有配置库,有日志。带我们到你们CI/CD控制台的实际操作席位,现场登录,先固定。”

合规负责人又想说什么,网安技术人员冷冷补了一句:“不要再用‘云上’当挡箭牌。云上更好固定,操作日志更完整。拖延只会增加你们的不配合记录。”

这句话像一把钥匙,直接把“谈条件”的门关死。合规负责人不再绕,领他们进了会议室。

会议室里已经坐着两名供应商技术人员,一名穿卫衣的年轻人,一名年纪偏大的运维主管。电脑屏幕上是CI/CD控制台首页,明显刚刚打开不久。林昼扫了一眼右上角,看到一个小字提示:**“近15分钟内发生配置修改:2次。”**

他心里一紧。

周负责人也看到了,语气没有变化:“谁改的?改了什么?”

年轻人下意识说:“可能是我们在准备配合,做了一些整理。”

监管联络人声音更冷:“保全令下发后,你们任何整理都可能构成证据污染。现在停止一切操作,先由取证员接管,按流程固定现状。”

取证员打开自带的法证工作站,接入只读录屏与操作日志捕获工具。周负责人把流程念了一遍:控制台登录使用只读账号,所有查询与导出操作在录屏下进行,导出文件现场计算哈希,见证方签字。

供应商运维主管想争:“只读账号权限不够,我们需要管理员才能导出某些日志。”

周负责人淡淡一句:“管理员可以,但必须在取证员控制下操作,并且先固定管理员账号的权限与登录轨迹。你们愿意用管理员,就等于愿意把管理员的责任链也摆上台面。”

运维主管嘴唇动了动,没再说。

登录开始。

第一项:固定流水线列表与最近七天触发记录。取证员输入关键字检索:RouteGuardian、Guardian-Prod、EmergencyAssurance。屏幕立刻跳出一条Job:**RouteGuardian-Prod**,旁边标着“高优先级  /  自动触发启用”。

取证员点开“最近触发”,列表刷出一串时间戳。林昼的目光被其中两条钉住:

*  18:52:Manual  Trigger(触发者:devops_x)

*  04:05:Force  Deploy(触发者:itil_admin)

04:05。

又是这个时间点,像一根反复出现的刺。

周负责人没有立即质问,先按流程让取证员导出“触发详情”:触发参数、环境变量、凭据引用、产物版本、发布目标。导出完成,现场哈希固化。

第二项:固定凭据存储。

控制台里有一个“Credentials”入口,打开后是权限树。取证员检索“HIGH_SCOPE”“itops”“route_admin”。页面跳出一个凭据条目:**HIGH_SCOPE_TOKEN**,类型为“密文引用”,最后更新时间:**04:03**。

04:03创建刷新凭据、04:05触发强制发布,这条时间链在这里终于握住了具体的“手柄”。

周负责人问:“这个凭据引用链接到哪里?是密钥管理系统还是本地加密库?”

年轻人急着解释:“我们用的是标准密钥管理,自动引用,不是手工——”

网安技术人员抬手打断:“别讲概念。导出凭据引用链:创建者、审批引用、用途标签、访问次数、访问来源。没有审批引用,记为违规。”

取证员点开凭据详情,字段弹出:

*  Creator:itil_admin

*  ApprovalRef:NULL

*  Tag:token  refresh  fix

*  AccessCount(24h):63

*  AccessOrigin:Jenkins  Agent  Pool  A  /  Agent  Pool  B

“ApprovalRef:NULL”像一颗冰冷的钉子,钉进会议室的空气里。

监管联络人盯着那一行,问合规负责人:“你们刚才还说在配合整理,为什么凭据创建审批引用为空?医疗客户的高危scope凭据可以无审批创建?”

合规负责人脸色发白:“这是……历史流程缺失,我们会补录。”

周负责人平静地说:“补录不改变事实。事实是:你们在关键时间点创建了无审批引用的高危凭据,并且该凭据在24小时内被访问63次。我们会把这条写进阶段报告。”

第三项:固定流水线脚本内容。

取证员打开RouteGuardian-Prod的Pipeline  Script。屏幕上出现熟悉的几行:刷新token、绑定高危scope、触发恢复动作、冻结受阻则请求控制权变更。那句最刺眼的开关依旧在:

**AUDIT_REF_OPTIONAL=true**

这不是“可选项”,这是“默认绕过”。默认绕过意味着制度被设计成“可以不走”。

周负责人问合规负责人:“这个变量谁设置的?为什么是true?有没有安全评审记录?”

合规负责人咬着牙:“这可能是工程师为了效率临时加的。”

周负责人没有反驳,只看运维主管:“你是主管。你告诉我:这条流水线脚本是否经过你们变更管理?是否有审批?谁批准上线?”

运维主管额头汗冒出来:“我们……我们有变更流程,但自动化脚本改动有时——”

监管联络人直接把话截断:“‘有时’就是漏洞。你们今天必须提交变更流程证据:该脚本的版本历史、审批工单、评审记录。没有就记为流程失效。”

取证继续推进。

第四项:固定制品仓库与发布目标。

取证员打开制品仓库,找到18:52与04:05对应的构建产物版本。发布目标列表里出现两个环境:CN主环境、APAC回退环境。林昼看到“APAC回退环境”那行,胸口又是一紧——这意味着管道层面已经把跨区回退作为“可发布目标”,而不是临时手工操作。

更关键的是,04:05那次“Force  Deploy”的发布目标勾选了“控制策略配置包”。也就是说,那次发布不只是代码更新,还可能重写策略配置。

这与“强制推送重写代码历史”的疑点,彼此照应:他们在同一时间点,既动了代码历史,又动了发布管道。

周负责人要求把04:05的发布详情全量导出:发布包内容清单、变更差异、发布审批链、回滚记录。系统提示:审批链字段为空。

又是空。

空不是偶然,空是习惯。

---

十点二十六,最尖锐的问题终于落到“谁”的层面。

网安技术人员要求提供itil_admin账号的登录轨迹。控制台显示:过去24小时内,itil_admin账号有两次登录,一次来自供应商办公网段,一次来自海外公共出口;海外登录发生在凌晨02:18,失败三次后成功一次,随后触发了凭据访问与作业查询,但未触发发布。

海外公共出口、失败三次后成功一次——与平台侧“海外出口重试旧token”的线索相互咬合。

监管联络人问:“你们解释一下:itil_admin为什么会在海外登录?谁在海外?是你们员工出差,还是账号泄露?”

合规负责人声音发虚:“我们会内部核查,不排除账号被盗。”

网安技术人员冷冷说:“你们现在要做的是提供证据,不是给结论。提供:账号MFA是否启用、是否绑定硬件令牌、登录设备指纹、IP归属、成功登录后的操作序列。我们会判断是否为被盗或内部行为。”

取证员把登录设备指纹导出。设备指纹显示为一台虚拟机浏览器环境,User-Agent伪装普通Chrome,但设备标识与供应商内部标准终端不一致。更异常的是,成功登录后第一件事不是查看报警,而是进入“Credentials”页面,查询HIGH_SCOPE_TOKEN。

像是在确认钥匙还在不在。

林昼看着那条操作序列,后背一点点发冷。他意识到,这件事已经不是单纯的“供应商为了效率留下暗门”,更可能存在“有人在暗门上做了二次利用”:要么内部有人主动伸手,要么外部有人拿到钥匙伸手。

无论哪种,都意味着风险升级。

周负责人把所有导出文件当场哈希固化,监管与网安分别签字。合规负责人也被要求签字确认见证。合规负责人手抖得厉害,签名像一条被拉扯的线。

十点五十八,周负责人宣布:“CI/CD控制台证据固定完成,下一步做系统镜像。请你们提供Jenkins控制节点与Agent  Pool的访问路径。若你们拒绝,网安将按程序介入。”

合规负责人终于扛不住,低声说:“我们需要上级批准。”

网安技术人员看了监管联络人一眼,监管联络人只说四个字:“现在申请。”

合规负责人拨电话出去,声音压得很低,但所有人都能听见他在说“保全”“网安”“强制”。电话那头沉默许久,最终回了一句:“配合。”

合规负责人挂断电话,像一下子老了几岁:“我带你们去。”

---

十一点二十五,供应商运维中心的机房通道。

门禁刷卡时,林昼注意到运维主管的手指一直在抖。门开的一瞬间,冷风迎面扑来,服务器风扇的嗡鸣像一片持续的潮水。周负责人没有看机器的“规模”,只看“定位”:控制节点、配置库、日志落地位置。

取证员开始做镜像。每一台关键主机都插入法证介质,走只读镜像流程。镜像过程中,系统显示某些日志保留策略仅为“7天”。周负责人立刻要求把备份策略与归档位置一并固定,因为日志保留短本身就是治理缺陷,且可能造成证据缺口。

运维主管试图解释:“我们有集中日志平台,会归档。”

周负责人说:“那就固定集中日志平台的索引与归档。”

镜像持续进行。林昼在机房边缘站着,听风扇声一阵阵掠过,像某种巨大的机器在呼吸。他忽然想到父亲说过的那句话——“他们怕你们急”。在这里,急没有意义,只有一步一步把证据拧紧。

十二点四十,镜像完成一半时,机房门外传来争执声。

一个穿西装的男人冲进来,胸牌写着“区域总监”。他进门就直奔监管联络人,语气强硬:“你们这样会影响我们所有客户服务,我们有商业秘密保护义务。没有法院令,你们不能拷走我们的系统镜像。”

监管联络人把保全令与联合取证函递过去,语气极稳:“这是行政监管与网安协同取证,依法依规。你可以对程序提出异议,但不得阻碍取证。”

区域总监冷笑:“那我现在就通知法务,后续你们承担后果。”

网安技术人员第一次抬高了一点音量:“你现在阻碍取证的每一句话都在录音录屏里。你要承担的后果可能比你想象的大。”

区域总监脸色微变,但还想硬撑:“我们也是受害者,账号被盗你们不去抓盗号的人,来抓我们?”

周负责人走过来,淡淡一句:“受害者也有治理责任。你们把审批引用设为可选、把高危scope交给自动化、把冻结受阻时改控制权写进管道脚本,你们在架构上给了盗号者武器。今天取证不是抓结论,是固定事实。事实固定后,谁是盗号者、谁是放武器的人,会由证据回答。”

区域总监噎住,最终只丢下一句“我们保留权利”,转身出去。

林昼看着他背影,忽然有一种很清晰的预感:当“商业秘密”挡不住取证时,对方会转向别的方式——把矛头指向具体的人,把复杂责任压到一两个“违规工程师”身上,然后说“我们已处理个案”。

个案替罪,系统继续存在。

这就是他们最想要的结局:承认几个错误,但保住暗门逻辑。

林昼在心里把这条预感写下来:**不能让责任被压缩成个案,必须把“默认绕过”定性为治理失效。**

---

下午三点,联合取证回到医院,召开临时复盘会。

周负责人把CI/CD取证结果用最简短的方式概括:

1)管道中存在高危凭据HIGH_SCOPE_TOKEN,创建审批引用为空;

2)管道脚本存在默认绕过审计引用开关AUDIT_REF_OPTIONAL=true;

3)04:05发生Force  Deploy,审批链为空,发布目标含策略配置包;

4)itil_admin存在海外登录成功行为,操作序列指向凭据查询与作业检查;

5)上述事实与租户侧脚本逻辑、平台侧拒绝事件、异常签名请求相互闭环。

监管联络人听完,只说一句:“从整改走向调查。”

这句“调查”落下时,会议室里每个人都明白意味着什么:供应商不再只是“需要整改的合作方”,而可能成为“涉嫌违反网络安全管理义务的主体”,甚至可能存在更深层的违法线索。

网安技术人员补充:“接下来我们会做两件事:一,追海外IP归属与登录路径;二,排查是否存在凭据外泄链路。请医院协助保护证人,尤其是提供线索的人。”

提供线索的人——Q7。

林昼突然想起那封邮件的代号,想起“别回我”。那不是故作神秘,是害怕被定位。

他问:“能否确定Q7是谁?”

周负责人摇头:“我们不会让你去查。我们会通过邮件头与传输路径去追线索源,但在未确认前,任何猜测都可能害死线人。”

“害死”这两个字说得很重,却并非夸张。在这种对抗里,线人的职业生涯、收入、家庭都可能被摧毁。比起技术风险,人更脆。

信息安全负责人当场提出:“医院侧启动证人保护提醒:任何对证人施压、调岗、解聘、扣帽子,全部记录并上报监管与网安。我们也会安排心理支持与法律援助。”

监管联络人点头:“会下发提醒。”

会议结束时,周负责人把一份“阶段报告提纲”递给法务,重点标注了一条:**“默认绕过机制属于架构性风险,不得以个案处分替代整改。”**

林昼看到这句话,心里稍微松了一点。至少审计机构与监管没有被“替罪羊策略”牵走。

---

傍晚六点二十,风暴从另一个方向吹来——供应商的律师函。

法务把邮件打印出来递给林昼,标题写得很刺眼:《关于停止侵害商誉及不实传播的律师函》。内容大意是:要求医院与相关人员停止使用“暗门”“撬锁”“证据污染”等词汇,否则将依法追诉,并索赔经济损失。

林昼扫了一眼,差点笑出来——他们开始抓词,而不是抓事实。

抓词意味着事实已经不好解释,只能把战场拉到“表述是否恰当”。这是典型的转移:你只要开始辩词,就会陷入无穷无尽的语义泥潭,忘了最重要的东西是日志、哈希、审批链、变量默认值。

法务问他:“要不要回函?”

林昼说:“回,但只回事实框架。不要争词。写明:所有表述来源于取证记录与监管文件,均在程序内使用;如有异议,请通过监管与司法渠道核实证据。我们不对外传播细节,不评价动机。”

法务点头:“明白。”

信息安全负责人补了一句:“临床群里不要出现任何词汇攻击,统一用‘高危自动化动作’‘审批引用缺失’‘默认绕过’这些中性描述。让他们的律师函打在空气上。”

林昼同意。对方要打词,就让他们打空气;他们最怕的不是词,是数字。

---

晚上九点,病房。

父亲精神比前些天更好,能坐起来和他讲几句。林昼把今天发生的事讲得很简短,只说“去封存了供应商管道证据”,没有讲海外登录、也没有讲律师函。他不想让父亲的心跳因为这些东西加速。

父亲却像早就猜到风暴不会停,问:“他们是不是开始吓唬你们了?”

林昼沉默半秒:“是开始转方向了。”

父亲点头:“正常。门锁上了,他们就喊疼。喊疼的人,嘴最毒。”

林昼握住父亲的手:“但我们不跟嘴打,我们跟字打。”

父亲轻轻回握,声音很慢:“记住,你别急。你急,他们就赢。”

林昼低声说:“我不急。”

他走出病房时,手机跳出一条银行短信:信用卡本期应还金额提醒,逾期将产生违约金与影响征信。短信文字很短,却像针一样扎在他心口——他的债务不会因为取证进展而暂停计息。

他靠在墙边,闭了一下眼,胸口像被两股力量同时拉扯:一股是规则的重力,一股是生活的重力。

清算系统弹窗又跳出来,仍旧冷静:

【清算进度:41%】

【新增线索:管道默认绕过】(证据等级:高)

【下一任务:追责路径拆分】(建议:治理责任链  >  个案责任链)

【提醒:财务压力上升】(建议:冻结非必要支出,保持现金流)

他看着“财务压力上升”,忽然觉得可笑——连系统都在提醒他钱的事。但他也明白,这是现实:如果追不回来,他不仅失去公道,还会失去活下去的余裕。

他把短信删除,把弹窗关掉,重新挺直背,往法务室走。

---

深夜十一点半,新的告警又来了。

第三方平台协查联系人发来一条更新:海外公共出口的旧token重试虽已归零,但平台检测到一个新的“幽灵服务主体”在尝试发起控制权变更请求,主体标识显示为“GhostSigner”,来源IP仍是海外公共出口,且请求报文结构与供应商管道脚本中的“request_controller_change”高度一致。

这意味着:即便锁换了,仍有人在尝试用“同样的方式”开门,只是钥匙不再匹配。

更可怕的是,“GhostSigner”这个主体不像残留任务,更像有人专门写了一个“签**”,在外部不断试探系统边界。

信息安全负责人看到后只说一句:“这已经不是整改问题,是对抗问题。”

周负责人回复:“把GhostSigner报文样本固化,我们会在CI/CD镜像中寻找对应组件。若存在外部签**代码或镜像痕迹,性质进一步升级。”

监管联络人更直接:“网安已介入,今晚开始做溯源。医院侧继续保持双人复核签名机制,不得因疲劳放松。”

林昼盯着“GhostSigner”四个字,脑子里闪过一个判断:这场战斗的真正对手,可能不止供应商的合规部门,也不止供应商的运维团队。还有一个在暗处的人,拿着旧逻辑、旧工具、旧路径,想把门再开一次。

他把这一夜的记录写进索引,最后落下一行:

*  CI/CD已封存,默认绕过证据确立;对抗升级为外部“GhostSigner”试探;下一步:溯源与责任链拆分,防替罪羊

写完,他合上本子,走廊尽头的灯发出轻微的电流声,像风暴前的低鸣。

他知道,门已经换锁,但有人还在门外摸索。

门外摸索的人,一旦找到新的缝,下一次就不一定只是在“试”。


  (https://www.kenwen.cc/book/422022/41507237.html)


1秒记住啃文书库:www.kenwen.cc。手机版阅读网址:m.kenwen.cc