第50章 交叉证据
06:49,周砚比闹钟早醒了十分钟。
他没有像往常一样先摸手机,而是坐在床沿,盯着窗外还没完全褪去的夜色,脑子里把“门禁缺口”的交叉链条重新跑了一遍——门禁刷卡、会议室临时使用、监控缺失、会话日志、账号保护触发、匿名短信与威胁、以及今天开放日后必然出现的“合规核查扩大化”。
对手的节奏越来越清晰:他们不追求一次性把他打死,而是用一连串看似合理的小动作,把他从“交付链路的核心”一点点挤到边缘。只要他在链路里失去“最后一米”的控制权,结果就可以被重新叙述;只要他被迫停下来解释,项目节奏就会断;只要项目节奏断一次,“试用期复核”就能被重新启动。
所以他必须同时做两件事:让d4的执行继续产出可见结果;让302的追溯从“无法确认”变成“必须确认”。
他起身洗漱,换衣服时把那本离线硬壳笔记本塞进包里,又把昨晚整理的《开放日现场风险事件记录(中午版)》和《开放日闭环日报(d3)》的打印件放进文件袋最上层,透明封条没拆。
封条不是装样子,是一种宣告:我不靠口头解释,我靠可审计的记录。
07:41,周砚到公司。
电梯门一开,办公区的灯比平时亮,显然有人更早到。走廊尽头的玻璃会议室里,有两个人影在对着电脑屏幕低声说话,屏幕反射出的光像一条细细的白线,切开了清晨的雾气。
他还没坐下,项目群里就跳出两条消息。
运营同事:“d4跟进计划:上午10点前完成二次触达,预计回访30人,目标新增确定预约≥6。”
媒介主管:“法务那边说有外部投诉线索,可能要我们暂停社群资料发放,等声明。”
同一时间,两条线的拉扯就来了——一条要继续跑结果,一条要用“合规核查”把动作按停。
周砚没有在群里回任何一句。他先打开共享盘,把d4的动作清单拉出来,逐项看责任人与时间节点,然后单独给运营负责人发了一条指令,短到像战术口令:
“执行不断:1)二次触达按脱敏名单走c,通话录音与备注必须完整;2)资料发放继续分批私信,只发‘资料清单与证据路径’+‘隐私告知链接’,不发任何疑似内部截图;3)每小时汇总新增确定预约,15:00前给我一次中间复盘。”
发完,他把手机放到一边,打开邮件。
一封来自信息安全部的邮件躺在未读里,主题带着一种刻意的“程序感”:《302公用电脑本地事件日志(封存提取版)》。
附件是一个压缩包,里面有两个文件还有一份提取说明,写着“日志由信息安全部在封存状态下提取,未做内容编辑,仅做脱敏处理”。
周砚的指尖停了半秒。
他们终于把他要的关键东西拿出来了——这意味着他昨天那封《302追溯缺口清单》确实起了作用,也意味着对方意识到“拖”会引发更大的项目事故风险,只能先交出一部分证据。但交出并不代表配合,交出也可能是“选择性投喂”:给你足够多的信息让你分心,却不给你能落锤的那一根钉子。
他没有急着打开evtx文件,而是先把压缩包下载到本地,按规范命名:202x-xx-xx_302追溯_本地事件日志_信息安全部提取版.zip,然后拖进共享盘“合规记录/302追溯/原始证据”目录,留言区写清楚“原始提取件,未解压版本,保留校验值”。
做完留痕,周砚才解压文件,用事件查看器打开。
第一眼,他就找到了他最想要的东西:时间戳。
syst日志里有一条“power-troubleshooter”事件:18:48:12,系统从睡眠唤醒。
紧接着是“kernel-pnp”事件:18:49:03,检测到新的usb输入设备连接,设备描述为“hid keyboard device”。
这条记录像一道冷光掠过周砚的眼底。
hid键盘设备——意味着在那一分钟,302公用电脑被插入了一个“键盘类设备”。它可以是真实键盘,也可以是伪装成键盘的注入器。关键在于:公用电脑本来就有键盘,为什么还会额外插入一个hid设备?除非有人用它去自动输入。
他继续往下翻。
18:50:27,有一条“taskscheduler”事件:创建了一个计划任务,任务名是一串看似随机的字符“officeupdatecheck_3a9f”。
18:50:29,任务被设置为“在用户登录时触发”。
19:01:10,任务触发执行。
紧接着,security日志里出现三条连续的4625事件:登录失败,账户名为周砚的账号,失败原因“密码错误”,来源类型显示为“交互式”。
三次失败,时间间隔几乎一致,像机械敲击。
这不是一个人临时手抖输错密码的节奏,这是脚本的节奏。
周砚的背脊没有发凉,反而一种更冷的清醒在胸口沉下去——对方用的不是“有人坐在电脑前输密码”,而是“提前布置计划任务,在固定时间自动触发失败登录”。这就解释了为什么监控缺失那十二分钟如此关键:那十二分钟里发生的不是“失败登录”,而是“布置触发器”。
失败登录只是结果,触发器才是凶器。
视野边缘,蓝色面板亮起,像把推理的最后一块拼图递到他手里:
【关键突破:18:49插入hid设备→18:50创建计划任务→19:01自动触发失败登录→账号保护模式被触发】
【结论导向:攻击不依赖操作人当时在场,操作人只需在监控缺失时段布置触发器即可】
周砚没有立刻把“攻击”这两个字写进任何文档。他知道,在公司语境里,“攻击”是定性词,会引发部门之间的防御本能。他要用更合规、更难反驳的表达:异常操作链路、非授权自动化输入、计划任务创建记录。
他打开一个新的文档,标题写得像审计底稿:《302公用电脑异常操作链路梳理(基于本地事件日志)》。里面只列事实,不写推断:
- 18:48:12 系统从睡眠唤醒(syst日志事件id…)
- 18:49:03 新增usb hid键盘设备连接(syst日志事件id…)
- 18:50:27 创建计划任务officeupdatecheck_3a9f(syst日志事件id…)
- 19:01:10 计划任务触发执行(syst日志事件id…)
- 19:01:12/19:01:38/19:02:05 连续三次账号登录失败(security日志4625…)
每一条后面,他都写了“证据来源:日志文件名+事件id+截图编号”,把证据路径钉死。
08:36,门禁明细、监控缺失说明、本地事件日志三条线终于可以叠加了。
门禁显示:18:46王xx进入,18:49离开;监控缺失从18:47开始;日志显示18:49插入hid设备、18:50创建计划任务。
时间线几乎无缝衔接。
这是交叉证据的力量:你可以说监控缺失是故障,你可以说门禁进出只是路过,你也可以说登录失败无法锁定责任人,但你解释不了——为什么监控缺失开始的那一分钟里,公用电脑被唤醒并插入了一个额外的键盘类设备;你解释不了——为什么刚好在王xx离开一分钟后,计划任务被创建。
周砚把这条时间线打印出来,红笔圈住“18:49”和“18:50”两个点,在旁边写了四个字:必须落锤。
可落锤需要“人”的对应关系。日志告诉你发生了什么,门禁告诉你谁进出,下一步就是把“动作”落到“人”。
他要的不是“怀疑王xx”,他要的是“证明王xx是否是唯一可能实施该动作的人”,或者“证明王xx的卡被他人使用”,从而逼出真正的操作者。
09:02,周砚起身去茶水间倒水。
路过行政区时,他看见行政部的孙xx正站在打印机旁整理纸张,动作熟练。孙xx就是门禁明细里19:02和19:08两次刷卡进入的人。周砚没有停,也没有盯着看,只把这个画面记在脑子里:孙xx今天来得也很早。
回到工位,他给物业安保主管发了一封邮件——物业邮箱在公司通讯录里,平时只用于访客管理与消防演练。但现在,他需要物业系统的一个细节:门禁刷卡是否有联动抓拍。
邮件主题写得很克制:《门禁刷卡联动抓拍留存状态咨询(302会议室门禁)》。
正文只问两句:
“1)302会议室门禁刷卡是否联动抓拍照片或短视频(含抓拍设备型号与留存周期);
2)若有抓拍留存,能否按公司内部调查流程提供涉事时段(18:40—19:10)刷卡抓拍记录,供核验。”
他没有说“谁干的”,没有说“攻击”,只说“核验”。同时抄送梁总和信息安全部负责人。
这是他惯用的手法:把请求从“个人追查”升格为“公司调查”,让任何阻挠都显得不合规。
09:28,物业回复很快,字里行间明显谨慎:“门禁系统具备联动抓拍功能,但抓拍设备位于门侧上方,清晰度受角度影响。资料提供需走公司安全部正式函件流程。”
周砚没有嫌麻烦。他把邮件转发给信息安全部负责人,附言只有一句:“请以安全部名义向物业出具正式函件调取门禁抓拍,涉事时段18:40—19:10。”
他知道对方可能会拖,但他也知道:梁总在开放日后强调“核查不得扩大解释”,同时又要求“原始线索与范围明确”。现在他给的就是明确的范围、明确的证据链、明确的调取路径。
10:03,运营负责人按要求发来第一小时汇总:二次触达完成9人,新增确定预约2,关键顾虑集中在“通勤浮动”和“月供区间”。
周砚回:“按q&a卡片回应,强调区间+来源+实测证据。下午14:00加一次短答疑,控制在8分钟内,不增新口径。”
他把项目执行继续往前推,像把车轮死死压在轨道上,不给任何“暂停”的理由。
10:26,阿远终于出现了。
他不是来吵架的,而是带着一种刻意的“组织关怀”姿态走到周砚工位旁,声音压得很低:“你最近太紧绷了。开放日结束,接下来该把风险收一收。法务那边已经收到投诉线索,我建议你这两天把所有导出动作先停掉,避免再给人抓把柄。”
周砚没有抬头看他,手指仍在键盘上敲着日报表格,语气平淡:“导出只发生过一次脱敏导出,审批链路与日志都在。停掉导出会影响现场接待与预约转化,你要停,请走书面流程,写明影响与责任归属。”
阿远脸上的肌肉抽了一下,笑意更薄:“你总拿责任归属说事,做事不是这样做的。组织是要协同的。”
“协同的前提是规则明确。”周砚终于抬眼,眼神没有锋芒,只有清晰,“你要协同,就把你的建议写成可审计的动作项。否则都是口头话。”
阿远沉默了两秒,像是强压怒意,转身走了。
他走得很快,像怕自己再多停一秒就会失控。
周砚看着他的背影,心里更确定了一件事:对方开始急于让他“停”。因为他已经拿到了能落锤的链条。
11:17,信息安全部负责人发来消息:“门禁抓拍调取需要梁总签字的正式函件。我这边在起草。”
周砚回:“函件内容请写明:用于核验302公用电脑异常操作链路,与项目交付风险评估直接相关,范围限定18:40—19:10,资料仅用于内部调查并按合规归档。”
他把每一个字都写细,不给对方后续“范围太大”“目的不明”的借口。
11:46,梁总把函件签了,发在一个小范围群里:信息安全部负责人、法务专员、周砚。
梁总附了一句:“今天把抓拍拿回来,别拖。”
周砚没有回复多余的话,只发了一个“收到”,然后截图归档。梁总的态度清晰——他不喜欢内部扯皮,也不喜欢项目节奏被拖,更不喜欢有人拿合规当工具做权力游戏。只要周砚把风险与证据写得足够硬,梁总就会站在“结果”那一边。
12:38,午休时间。
周砚没有去吃饭,他把上午的日志链路梳理补成一份更完整的“交叉证据矩阵”,一张表里横向是证据源(门禁、监控、系统日志、会话日志、审批邮件、威胁短信/),纵向是关键时间点(18:46、18:47、18:49、18:50、19:01)。每个交叉格子里写“有/无/缺失/待调取”。
这张矩阵不是给自己看的,是给任何一个想“模糊焦点”的人看的——你想说无法确认?你先解释为什么这些格子会在同一段时间里形成如此密集的异常。
13:20,物业安保主管来电。
对方声音很谨慎:“我们按函件范围调取了302门禁抓拍,照片有,但角度偏,清晰度一般。现在安全部的人可以来取。”
周砚把电话开免提,直接对信息安全部负责人说:“你们去取,我不经手原始件。取回来后请按流程归档,我只需要在合规室查看并做记录。”
他从一开始就把自己从“直接接触原始证据”的动作里摘出去——不是怕麻烦,而是避免对方说他“篡改”“选择性呈现”。他只在合规室查看,只做记录,全程留痕,任何人要质疑,就去质疑流程,而不是质疑他。
14:05,安全部负责人把抓拍照片发来了一份“查看版”,并说明原始件已封存。
周砚打开第一张照片,呼吸没有变化,但指尖却在那一瞬间收紧。
照片里,刷卡进入的人戴着帽子,口罩拉得很高,遮住了大半张脸。但有两个细节极其清晰:一是手腕上的表带颜色,二是外套袖口的反光条纹。
周砚不是靠脸认人,他靠细节。
他把照片放大,对比门禁明细上“18:46 王xx刷卡进入”的时间点,再把视线移到照片角落的时间戳:18:46:17。
时间对上了。
然后,他打开第二张照片——18:49刷卡离开。画面里还是同一个人,帽子口罩没变,手腕表带没变,外套条纹没变。
这意味着:至少在门禁系统层面,“王xx的卡”确实被用于进出,而且门口抓拍的人与门禁记录绑定。
问题来了:这个人是不是王xx本人?
周砚脑子里闪过昨天门禁明细里的另一个点:19:02与19:08,孙xx两次进出。
抓拍照片里,19:02进入的那个人没有戴帽子,脸清晰,是孙xx本人。
物业抓拍至少在这个角度能看清脸。