尘土与星辰 -1992|第295章|锁与缝隙|中文
出租车停在写字楼地下车库时,林尘的左脚已经彻底失去知觉。不是麻木,而是像灌了铅,每挪一步,脚踝处的旧伤就传来一阵钝痛,顺着小腿肌肉往上爬。他扶着车门站直,深吸了一口混杂着机油与潮湿水泥味的冷空气,把背包甩到肩上,走向电梯。金属门映出他眼下的青黑和略显佝偻的肩线
第295章 锁与缝隙
出租车停在写字楼地下车库时,林尘的左脚已经彻底失去知觉。不是麻木,而是像灌了铅,每挪一步,脚踝处的旧伤就传来一阵钝痛,顺着小腿肌肉往上爬。他扶着车门站直,深吸了一口混杂着机油与潮湿水泥味的冷空气,把背包甩到肩上,走向电梯。金属门映出他眼下的青黑和略显佝偻的肩线。他没照镜子,只是把重心往右腿偏了偏,按下楼层键。
早晨七点二十,公司里只有保洁阿姨在拖地。林尘刷开玻璃门,径直走向工位。电脑开机,屏幕冷光映亮桌面。他没开大灯,只留一盏台灯,把错题本摊在键盘左侧。安盾报告里的那行红字还在脑子里转:未授权访问,权重未加密。
他新建了一个分支,开始写鉴权中间件。没有用现成的重型框架,他选了一个轻量级的JWT库,自己封装了校验逻辑。令牌签发、过期时间、刷新机制,一行行敲进去。遇到跨域请求的预检问题,他加了OPTIONS路由的白名单放行。代码不长,但每个判断分支都必须闭合。医疗系统的流量不像互联网产品,不能靠重试机制蒙混过关,一次鉴权失败,就意味着一次诊疗流程的中断。他习惯性地加了三层异常捕获:网络超时、签名校验失败、令牌过期。每一层都对应明确的日志等级和返回码。
九点前,鉴权模块写完。他本地起服务,用Postman构造了二十组请求。无Token、过期Token、伪造签名、越权访问,全部返回401或403。通过。
接下来是权重文件。模型文件有四个G,直接加密会拖慢加载速度。林尘在内存里划了一块隔离区,启动时从加密存储读取,解密后直接映射到RAM,进程结束后自动覆写。密钥不写死在代码里,他写了个环境变量读取脚本,配合服务器的硬件加密模块做了一层哈希校验。防君子不防小人,但在合规审计的框架内,这已经够用了。他想起早年给老赵洗数据时,生僻字乱码导致的整批报废。技术债不会消失,只会换个形式讨回来。他必须把缝隙堵死在交付前。
十一点,苏曼推门进来,手里拎着两杯豆浆和包子。她把其中一杯放在林尘桌角,拉过椅子坐下。“安盾的工程师改到下午两点进场。刘科长那边说,评估组临时加了数据脱敏的抽查项,要求所有日志里的患者标识必须做二次哈希。”
林尘咬了一口包子,没说话。他点开PACS适配脚本的日志模块。昨晚为了调试方便,他留了一个DEBUG开关,默认打印原始字节流。如果这个开关没关,评估组一查日志,直接就能还原出脱敏前的ID。
“我改。”他放下包子,手指重新放回键盘。
他找到日志输出函数,把DEBUG级别的打印全部重定向到内存缓冲区,只在发生致命错误时才落盘。同时,他加了一层正则过滤,确保任何类似身份证、病历号的字段在写入前都被替换为星号。改完,他跑了一遍全量日志回放测试。终端窗口快速滚动,没有一条越界。他盯着屏幕,呼吸逐渐平稳。
“下午的渗透测试,你盯鉴权和限流,我盯数据流。”苏曼看着屏幕,语气平静,“赵启明刚发微信,说如果这次评估不过,A轮的对赌条款会触发回购。他语气很硬。”
“知道。”林尘敲下回车,“代码不会骗人。跑通就行。”
下午一点四十,林尘把脚本打包,推送到预发环境。服务器风扇声骤然拔高。他盯着监控面板,CPU占用率平稳在35%,内存余量充足。限流阈值设在了每秒两百次请求,超过的直接丢弃并返回重试提示。
两点整,安盾的工程师准时上线。林尘把测试账号和接口文档发过去。屏幕上的请求日志开始密集跳动。起初是常规扫描,端口探测、SQL注入、XSS跨站,全部被网关拦截。接着是压力测试,并发数逐渐攀升。一百,一百五,一百八。限流器准时触发,多余的请求被整齐地挡在外面。
“鉴权过了。”苏曼看着安盾的实时反馈窗口,“权重文件也没被直接读取。他们正在跑逻辑漏洞。”
林尘没放松。他盯着日志里的异常标记。有一个请求的Header里带了非常规的字段,试图绕过网关直接访问模型服务。他的中间件捕获到了,返回了403。但紧接着,安盾的脚本换了策略,开始用低频长连接试探。
监控面板上,连接数缓慢上升。林尘的手指在桌面上轻轻敲击。低频长连接会占用连接池,如果不及时清理,正常请求会被饿死。他迅速调整了Nginx的超时配置,把空闲连接的存活时间从三十秒降到五秒。同时,在应用层加了一个心跳检测,断开无响应的会话。
三点二十,安盾的工程师发来消息:“核心接口防护通过。权重隔离有效。日志脱敏符合三级等保要求。准备出正式报告。”
苏曼长出一口气,靠在椅背上。“过了。”
林尘看着屏幕,点了点头。他站起身,想去接杯水。左脚落地时,一阵剧烈的痉挛从脚底窜到膝盖。他猛地扶住桌沿,额头上渗出冷汗。他咬着牙,慢慢把重心移到右腿,缓了足足半分钟,才重新站稳。
“你脚不行,别硬撑。”苏曼递过一杯温水,“晚上回去热敷一下。明天评估组进场,你还得去现场盯台账。”
“没事。”林尘接过水杯,喝了一口。水温顺着食道下去,胃里终于有了点实感。
他坐回工位,开始整理交付文档。接口说明、部署清单、应急预案,一项项核对。错题本上又多了几页笔记:“低频长连接占用池”、“DEBUG日志残留风险”、“限流阈值需动态调整”。 他合上本子,准备关机。
手机突然震动。是刘科长发来的微信,只有一句话:“林工,评估组刚通知,明天上午的现场检查,要加一项‘模型可解释性’的溯源测试。要求提供最近三十天所有推理请求的原始输入和输出映射表。你们的数据管道,能拉出来吗?”
林尘盯着屏幕,手指停在半空。
原始输入输出映射。三十天。全量。
他们的数据管道只做了元数据归档,推理时的完整Payload为了节省存储,默认只保留摘要。如果要拉全量,得从冷备份里恢复,还要重新跑一遍解析脚本。时间只有不到十二个小时。
他闭上眼,脑子里快速过了一遍存储架构和脚本逻辑。能拉,但风险极高。冷备份的磁带机读取速度慢,一旦中途卡壳,明天早上交不出表,评估直接判不合格。
他睁开眼,回复:“能。明早八点前发您。”
窗外天色渐暗,写字楼的灯光次第亮起。林尘重新打开电脑,新建了一个终端窗口。他知道,锁装上了,但门缝里又透进了风。他得在风灌进来之前,把缝隙再堵死一次。
More from WayDigital
Continue through other published articles from the same publisher.
Comments
0 public responses
All visitors can read comments. Sign in to join the discussion.
Log in to comment