凌晨四点十七分,老夫子还在盯着监控后台。屏幕上那条被标记的异常记录孤零零地挂着,像一根扎进鞋底的钉子,不流血,但走两步就疼一下。
他合上笔记本,起身走向技术部。走廊灯亮着,比平时干净,像是刚被人擦过一遍。
“别等早会了。”他推开技术部大门,“现在开会。”
值班的技术员抬起头,眼圈发黑。有人正趴在键盘上打盹,听见声音猛地坐直。
“怎么了?又出事了?”
“不是出事。”老夫子把文件夹拍在桌上,“是该防事。”
秦先生从后头跟进来,手里拎着两杯热豆浆,顺手递了一杯给老夫子。
“你昨晚没睡?”他问。
“睡了三小时。”老夫子喝了口豆浆,“梦到老赵在填报销单,金额写的是三个亿。”
秦先生一愣,随即笑出声:“这梦得报警。”
屋里气氛松了一下。老夫子却没笑,打开投影仪,调出一张流程图。
“我们现在的财务系统,就像一把锁挂在门框上,门板早就拆了。”
大屏幕上跳出三年来的审批数据。一条条转账记录滚动而下,金额越大,审批人名字越单一。
“八十七万,设备维护费。”老夫子指着其中一条,“签字的是老赵。复核人?他自己。财务盖章?还是他自己。一条龙服务,连换衣服的时间都省了。”
技术员们面面相觑。
“这不是漏洞。”一个年轻员工小声说,“这是根本没设防。”
“所以今天要建墙。”老夫子敲了敲屏幕,“新制度第一条——所有超过五万元的支出,必须三方会签。”
“哪三方?”
“项目负责人、财务主管、独立监督员。少一个,钱就转不出去。”
屋里安静了几秒。
“那以后买桶矿泉水也得走流程?”有人嘀咕。
“五万以上才触发。”老夫子说,“你们要是能在发票上把一瓶水写成五万,我建议直接去干诈骗。”
众人笑起来。
“还有。”老夫子继续说,“每一笔操作,实时上传区块链存证。改不了,删不掉,回头查得到谁点的确认键。”
他话音刚落,金手指启动。界面一闪,分析报告自动生成。
《治理漏洞清单:17项》
《新增校验规则:23条》
《预计拦截高风险交易类型:9类》
“这么厚?”秦先生接过打印稿,翻了两页,眉头皱起来,“比我当年考公务员背的法规还多。”
“不是我想加。”老夫子说,“是系统告诉我,少一条都不安全。”
一名技术主管戴上眼镜细看:“这里面有几条……比如‘离线状态下禁止提交审批’,执行起来难。外勤同事没网怎么办?”
“那就等有网再交。”老夫子说,“宁可慢一步,不能错一步。以前我们图快,结果让人把公司当提款机用了三年。”
屋里没人再说话。
过了会儿,有个女技术员举手:“如果三个人串通呢?制度拦得住吗?”
老夫子看着她:“拦不住。但至少让他们串通的成本变高。以前一个人就能转款,现在得拉两个垫背的。多一个人,就多一分心虚。心虚多了,迟早露馅。”
会议室静了片刻。
然后,不知谁先点头,接着是第二个,第三个。
“干吧。”技术主管合上文件,“代码今晚就得动。”
接下来七十二小时,技术部几乎没人离开工位。
前端重做审批界面,弹窗多了三层验证;后端嵌入动态加密逻辑,每笔请求都要过五道关卡;数据库开启熔断机制,连续三次异常访问自动锁定Ip。
老夫子全程守在现场,时不时提出修改意见。
“这个提示语太软。”他说,“改成‘操作已被记录,伪造签名将承担法律责任’。”
“登录验证码不能只发手机。”他又说,“加上邮箱和指纹,三选二。”
秦先生负责整理制度文本,整整打了二十八页A4纸,装订好摆在桌上,像本小型词典。
第三天下午四点十七分,系统上线满二十四小时。
警报响了。
红色弹窗跳出来:“检测到异常支付行为,流程已冻结。”
所有人抬头看向主屏。
一笔87万元的“设备维护费”试图绕过监督员审核,直接进入付款队列。AI识别出收款方为空壳公司,且近三个月无实际业务往来,判定为高风险交易,自动拦截。
“来了。”老夫子站起身。
秦先生立刻打开日志追踪资金流向。技术员调取操作终端信息,发现提交Ip来自公司内部,但设备未登记备案。
“内鬼用的临时电脑。”技术员说,“想蹭网混过去。”
“没成功。”老夫子看着屏幕,“第一次拦截,有效。”
话音刚落,办公室门被推开。
大番薯端着泡面冲进来,头发翘着一撮,嘴里还嚼着叉子。
“听说抓到了?”他走到桌前,听完情况,一巴掌拍在桌上,“好家伙!这才三天就敢试?”
面汤溅出来一点,落在键盘上。
“不是‘又’。”老夫子拿起纸巾擦键盘,“是‘第一次’。”
“一样的!”大番薯瞪眼,“逮住就是好事!”
“不一样。”老夫子盯着屏幕,“以前是事后追查,现在是当场拦下。我们现在不是找贼,是在修墙。”
技术部几个年轻人围过来,看着被冻结的交易记录,脸上慢慢露出笑。
“真拦住了啊。”有人喃喃,“我还以为第一周不会触发。”
“说明有人急了。”秦先生说,“制度一立,伸手的人立马感觉到疼。”
老夫子没接话。他调出这笔款项的上下游账户,开始逐层反推。
十分钟不到,关联出三家注册地相同的空壳公司,法人不同,但联系电话一致。
“熟人手法。”他说,“老套路。”
秦先生凑近看:“要不要现在上报?”
“再等等。”老夫子摇头,“让它再动一次。我们看看是谁按的确认键。”
他转头对技术员说:“开启操作录屏功能,下次任何高风险流程启动,自动录制操作全过程,加密存储。”
“还要加人脸识别吗?”技术员问。
“加上。”老夫子说,“谁点的,脸得对得上。”
会议重新开了一轮,围绕如何优化响应速度和减少误判展开讨论。有人提议增加白名单机制,有人担心会被钻空子。争论持续到晚饭时间,最后决定先试行一周,根据数据调整规则。
夜里九点,第一批合规通过的审批单完成流转。金额不大,六万三千元,用于采购办公设备。三方电子签名齐全,区块链存证成功生成。
“成了。”技术主管长舒一口气,“第一次完整跑通。”
老夫子点了下头,没说什么。他打开自己的终端,把今天所有拦截记录打包,上传至公证云平台,附上时间戳和原始日志。
“留档。”他对秦先生说,“以后每一起,都这么存。”
秦先生应了一声,低头继续整理材料。
屋里的灯一盏盏熄灭,只有主控台还亮着。绿色进度条缓慢推进,显示系统运行正常。
老夫子站在屏幕前,手指在键盘上敲了几下,调出那个被拦截的Ip地址。
他顺藤摸瓜,追到一台未授权的笔记本电脑,mAc地址清晰可查。
再往前查,这台设备曾在两天前连接过公司wi-Fi,认证身份是“临时访客”,登记人为“行政部李姐”。
他记下这个名字。
然后打开邮件系统,新建一封草稿。
收件人空白。
主题也没写。
正文只有一行字:
“明天早上九点,请李姐来一趟技术部,聊聊她的访客账号。”