## 第三十三章:闻人屿的条件——他需要南宫氏内网的“只读权限”
周五早上七点五十三分闻人屿进公司,电梯到十六楼,走廊灯已经全开了。他在工位坐下,开机,终端启动。那条端口映射表复核的工单状态是"待处理",从昨晚十一点过四分起就没被人动过。他点开任务详情,把系统附带的日志片段拖进本地终端,跑了一条基础查询。三秒后返回结果,一组完整的端口映射表更新记录展开在屏幕上,时间戳、操作源地址、修改字段的标识符逐行列出。
他逐条过了一遍。其中一条更新记录的时间戳是上周三凌晨两点十七分,源地址字段显示为一个他之前没见过的终端标识码,格式不对——比南宫氏内部设备命名的标准规格多了一位后缀,像是一台不该出现在主干流程里的机器留下的签名。
他沿着那个标识码往上追了一层。查路由记录,发现它指向核心机房底层固件存储区的一个分支节点。那个节点在系统文档里的标签是"测试环境预留接口",按理说不会被任何活跃账号访问。系统架构图上它画在一根虚线后面,虚线意思是"物理存在但逻辑隔离"。
而那条端口映射表的更新操作恰恰是从那里发起的。
他需要访问那个分支节点的底层日志。操作者身份、授权路径、登录时段的周边关联记录,全在那份日志里。但他当前的只读权限只能调取固件存储区的主干日志,分支节点的日志被另一层锁隔开了——系统返回的提示框只有一行字:"访问被拒绝。所需权限等级高于当前账号配置。"没有额外解释,没有建议操作路径。
他把终端窗口关掉,靠在椅背上。现在有两条路:在当前权限框架内找绕行方式,或者在系统里提交正式的权限扩展请求。绕行意味着在防御层上再做一次修改——他之前已经在条件判断语句里嵌入了一行改动,那行代码的痕迹还躺在系统日志里,再叠加新修改就是在原有风险上继续加码。正式申请意味着把"我需要访问分支节点"这个意图以书面形式写进工单系统,从此每一次访问都会带着申请记录被日志覆盖。
两种方案都有痕迹。痕迹的形态不同,可追溯的路径长度也不同。
他选了后者。绕行的痕迹是"异常操作",正式申请的痕迹是"正常操作"。前者需要解释,后者不需要。
上午十点十一分,他站起来上四十六楼。电梯里另一个人没有,楼层指示灯跳数字的时候他低头看了一眼手机,加密笔记里那条权限预评估的状态栏还是灰色。他把手机收回去。
深色木门半敞着。他推门进去时南宫珩正在看一份打印文件,A4纸对折搭在桌面边沿。听到开门声他抬头,没说话,等闻人屿在他对面坐下。
"那条端口映射表的复核结果出来了。"闻人屿说,"更新时间指向了一个分支节点,系统文档标记为测试环境预留接口。我需要调取那个节点的底层日志来确认操作者的终端标识码和授权路径。我当前账号级别访问不到那个区域。"
"你需要什么级别的权限。"
"对核心机房底层固件存储区所有分支节点的只读访问权。不需要写入,不需要修改配置,只读日志和元数据。"
南宫珩把手里那份文件放下来,搁在桌面上。他没有立刻答,先靠在椅背上看了闻人屿一眼。那个视线的停留时长比日常对话的间隙短,但比下意识的停顿略长一点。
"你当前账号的权限范围是怎么定的。"
"运维助理标准工单权限。覆盖主干日志和日常巡检,不包含底层固件存储区的分支节点。"
"那条端口映射表是顾言舟留下的第一条条件。你走完它需要那个分支节点的日志才能完成完整路径。"
"对。"
南宫珩伸手把笔记本打开。他敲了几行指令,按键声均匀而短促,每一下之间的间隔几乎一致。闻人屿看不到屏幕上的内容,但能从南宫珩敲完最后一行后停下来的那半秒里判断出结果已经返回了。"你的账号在系统层的权限结构我调出来了。标准配置确实不包含分支节点。但有一个做法——我可以把一个技术审计的附属权限挂到你的账号下面。这个附属权限不会改变你的主账号角色,也不会在系统日志里产生独立的权限变更记录。它只以附加参数的形式出现在你的账号属性中。"
闻人屿把这段话拆开。附加参数不产生独立的权限变更记录,意味着他访问分支节点时的操作日志不会被标记为"权限提升后的访问"。系统只会看到一条常规审计任务记录,和其他技术审计任务放在同一组。这和他在防御层上嵌的那行修改是同一种思路——把真正的动作嵌在一层不会触发异常标记的壳下面。
"这个附加参数的创建者会显示为我的账号吗?"
"不会。系统层显示为总部技术审计自动分配,没有人名签名。"南宫珩说,"每次你用这条附加参数访问分支节点,系统日志里只会留一条审计任务标准记录,字段和正常的审计任务完全一致。"
"有效期呢。"
"你可以自己设定。到达期限之前,附加参数持续生效。"
闻人屿低下头,在手机备忘录里打了一行字,然后把手机转过去,屏幕朝南宫珩的方向。上面写着:"有效期设四十五天。和那个临时授权凭证的周期一致。"
南宫珩看了屏幕,然后转了笔记本,屏幕朝向闻人屿。权限配置界面开着,一个下拉菜单列着几条选项,最下面那条标注为"附加参数·审计用途"。
"你可以在界面上直接点确认。这个操作在我这台设备上完成,生成的是由我这边签发的配置指令,以总部技术审计的名义写入系统权限层。"
闻人屿伸手在触摸板上点了那个确认按钮。屏幕跳了一帧,显示了一个"权限更新成功"的提示框,然后自动关闭了。他收回手,指腹触到的触摸板表面温度比周围的空气高出一截,像是刚被持续握持过的手掌留下的。他在心里记了这个细节一下,没有分析它属于什么性质的东西,只是存进去了。
"现在你的账号底层挂上了那条附加参数。下次调取分支节点日志,系统走审计通道,不会触发权限告警。"南宫珩把笔记本合上,放到桌面角落,"你什么时候开始走第二条和第三条条件。"
"下周一。今天先把第一条收尾,用新权限把分支节点日志调出来,确认操作者标识码和授权路径。"
"那条日志的调取记录会出现在你的审计任务列表里。"
"我知道。"
闻人屿站起来。他往门口走了两步,侧过身。
"你给我的那条附加参数,你在配置界面里预设的默认可选范围是四十五天。"
南宫珩坐在椅子里没动。"对。四十五天是你在界面里看到的可选项之一。"
"你预设了四十五天这个选项。"
"我预设了。"南宫珩说。
他没有往下解释。但闻人屿知道,他把附加参数的失效时间和那份临时授权凭证的周期校准到了同一刻度上。四十五天之后,附加参数和顾言舟留下的临时授权凭证会同时失效。四个时间锚点——附加参数、临时授权凭证、条件追踪周期、身份档案失效——全部落在同一个点。这个结构的精度像一座钟的所有齿轮齿数被调到了同一组公约数上,不需要额外说明。
闻人屿站在门口。走廊光从门缝里透进来,和办公室内的暖光在他侧面的轮廓线上形成一道交界。他看着南宫珩的脸。那个人说完"我预设了"之后手指在桌面上搭着的位置微微收了一下,食指指腹压在桌板表面,停在那里的时间比"说完话之后自然放松"的时长多了一瞬间。
他推门走出去。走廊的顶灯比办公室里的光冷,白色调压过了自然光的暖色。他走完那段走廊时步伐均匀,到电梯口按下行键。等电梯的时候他拿出手机,看到上午新增的那条权限配置记录已经在加密笔记里归档了,状态栏显示"已生效·有效期内"。
下午他回到十六楼。终端窗口打开,用新挂载的附加参数调取分支节点底层日志。权限验证通过,系统放行访问请求,没弹告警也没弹确认窗。他花了大约四十分钟把日志过完,从中提取出操作者的终端标识码和一条经过两次跳转的授权签名路径。
终端标识码归属于一台注册在城西仓库地址的物理设备。授权签名路径的起点和南宫珩之前提供的那条固件文件里的坐标编码完全吻合。
他把这些信息归档到加密笔记,在第一条条件的条目下面写了一个"完成"标记。然后关掉终端窗口,把工单系统里的复核任务状态更新为"已完成",备注栏填了"底层日志核对无异常"九个字。那条备注和任何一条标准工单完成备注的格式没有区别,字体、字号、标点间距都和系统模板生成的一致,不包含任何多余信息。
下班时他站起来收拾东西。走出写字楼的时候天色已经转向傍晚的色调,光从西面来,拉出长影。他在台阶上站了一下,侧头朝街对面的角落看了一眼——那里今天停了一辆深色轿车,引擎盖在傍晚光线下泛着一层冷调的反光。前窗贴深色膜,看不到驾驶座。他看了大约两秒,然后收回视线走下台阶,往地铁站方向去了。
周六上午他待在家里。把周四到周五的操作记录在脑中对齐了一遍。端口映射表复核完成,分支节点日志调取完成,操作者终端标识码和授权签名路径确认完成,工单状态更新为已完成。第一条条件所有环节闭合。
他在便签纸上写了一个"1",在后面画了一个圈,然后在圈下面写了另一行字:"第二条条件的触发位置在固件版本号的校验位更新记录里。"他把便签纸对折夹进笔记本,站起来去厨房倒了杯水。
下午他收到一条加密通道消息,发送者钟离。内容只有一行:"旧入口监控脚本的未匹配特征码在一小时前被调用过一次。调用者权限高于普通查询,像是有人在做二次比对。"
闻人屿看着这句话。未匹配特征码被高权限调用者调取,说明对方的分析团队或者监控系统的自动比对模块正在把那组"单次访问"的特征码和其他数据源做交叉验证。如果交叉验证结果指向了某具体设备型号或系统版本配置,他们就会把它和当前活跃的账号列表关联。
他回了一句:"调用者的权限层级能追踪到吗。"
钟离过了几分钟才回:"追踪不到具体账号ID。但调用时间窗口和那组未匹配特征码产生的时间之间有完整日志链条。有人在这条链上做了匹配关联。"
"匹配关联走的是哪个接口。"
"固件版本号的校验位更新记录查询接口。"
闻人屿把这句话读了两遍。校验位更新记录——这正是第二条条件的触发位置。对方调用未匹配特征码的二次比对接口指向了同一个系统路径。这意味着对方的监控脚本可能已经扫描到了他在访问固件存储区分支节点时留下的某些特征残留,正在试图把这些残留和之前那组未匹配设备指纹做关联。他们通过校验位更新记录这个接口来做交叉验证,扫描深度可能已经触及了他下周将要触碰的那条线。
这不是巧合。
他把手机放下,在脑中重新对齐信息。他手上的操作窗口和对方的二次比对窗口正在以不同速度同时收拢。如果对方在他完成第三条条件之前完成了设备指纹的匹配关联,那条附加参数背后的账号主体就会被识别为"曾经使用Silence密钥的人"。但他的操作基于正常审计任务框架进行,活动记录嵌在系统日志的正常工单流里,不是以"Silence活动"的形态存在。对方的匹配关联只能证明"某台设备访问过某系统路径",不能直接证明"那台设备属于Silence"。
他在加密笔记里把时间线和关联关系写进去,然后关了手机屏幕。
周日他几乎没有出门。在房间里读完了那本二手小说的最后几十页,结尾很淡,像潮水退去之后留在沙滩上的一层平整的湿痕。他把书合上放回桌角,站起来活动了一下肩颈。窗外的天光在傍晚呈现出一种偏灰的淡金色,云层滤过之后只剩最细的那一束照进来。
晚上他提前睡了。窗帘拉严,路灯的光透不进来,一整片均匀的黑暗覆盖着天花板和墙壁。他平躺着做了几次深呼吸,入睡前的朦胧阶段里脑中闪过一个画面——周四下午在四十六楼办公室,他伸手在触摸板上点确认按钮的瞬间,指腹触到的那片高于周围空气的温度。那个画面没有展开就沉下去了,融进睡眠的底层。
周一上午他到公司之后,打开终端窗口开始第二条条件的追踪。固件版本号的校验位更新记录在系统层的存储位置比分支节点日志浅一层,访问路径不需要挂附加参数,直接用工单权限就能调取。他把更新记录拉出来,从最近一周开始向前翻阅,逐条核对时间戳和操作者签名。
翻到第四天记录的时候,他注意到一条更新时间位于上周日凌晨三点零九分的条目。它的校验位更新幅度和系统默认的自动生成逻辑之间存在一个偏离值,偏差幅度不大,但足以在对校验位生成规则的精确比对中显示出来。那种偏差像是有人手动修改过值但刻意维持了表面接近。
他把那条记录的完整元数据复制下来,存进加密笔记。然后继续翻阅剩余的记录。第二条条件的数据体量比第一条大,按正常工单处理速度需要两到三个工作日才能完成全部核对。他在脑中估算了一下时间窗口,确认它不会和四十五天周期冲突,然后关掉了终端窗口。
他站起来去茶水间接水。端着杯子往回走时经过走廊那扇窗,侧头往外看了一眼。街对面的角落今天没有车。他收回视线走回工位坐下来。那杯水的水面在他放下杯子之后微微晃了几下才恢复静止——容器本身被放置时带了一道极轻的残余惯性。他低头看着那圈波纹从杯壁扩散到中心又消散,然后松开了握着杯壁的手。
下午快下班时他收到一条来自内部邮箱的普通通知,标题是"下月技术审计排期预通知"。他点开扫了一眼正文,在一长串任务列表末尾看到一行标注为"固件版本校验位更新回溯·补充检查"的条目,执行时间安排在两周后。
他让它留在已读状态里,没有点开详情,也没有标记已处理。
两周后,有人会在那等他。