皮杰住院的第二天,矿场来了一个叫瑞克的人。
瑞克是保险公司指定的网络安全工程师,瘦高,头发剪得很短,说话没有铺垫。他进门后先要求全场停机、封存服务器、冻结所有管理员账户,再问谁是负责人。
“如果继续运行,证据会被覆盖,攻击面也还在。”他说。
李老板回答:“你可以提出方案,停不停由我决定。”
瑞克看了一眼仍在工作的机房:“那就请把‘接受持续入侵和人身风险’写进决定记录,由你签字。”
他的正确没有给任何人留下体面。小张不喜欢他,卡洛也不喜欢,却都无法指出技术上的错误。
瑞克将控制网络从生产网络物理断开,逐一核对交换机、网关和无线设备。他发现 Phoenix 不是单一程序,而是一串逐步叠加的例外:为了远程维护开放的端口,为了减少停机提高的阈值,为了测试保留的旧账户,为了方便供应商接入的蜂窝链路。没有一项最初被描述为后门,合在一起却使控制权脱离现场。
他要求访谈每个接触过系统的人。第一名员工说,自己只按威廉给的步骤安装软件;第二名说,他曾看到陌生地址,但以为小张已经批准;第三名承认借过别人门卡,因为自己的权限申请两周没有处理。访谈越多,“谁做错了”越难用一个名字回答。
瑞克把权限关系画在白板上,线从账户连到设备,又从设备连到外部服务。李老板抱怨图太复杂,问能否直接列出需要封堵的入口。
“可以。”瑞克说,“但如果你只封入口,不改谁能为方便创造入口,半年后还会长回来。”
他的语气像诊断,不像合作。员工因此更抗拒,却也开始把曾被认为琐碎的绕行说出来。一个组织若只在说话方式温和时才接受事实,最终会把礼貌训练得比诚实更好。
“系统没有突然背叛你们。”他对小张说,“它一直在准确执行有人允许它执行的事。”
李老板只批准停掉 Phoenix 涉及的设备。其余机房继续挖矿,因为贷款方同意暂不冻结资金,条件是每周算力不得低于约定水平。与此同时,地区进入高温警报,电力公司通知大型用户准备在傍晚减载。
旧系统的风险因此变成一个具体问题:如果电网要求降负荷,矿场能否保证所有机器真正停下?
老墨也来参加县里协调电话。他说高温期间自家井泵电压已经波动两次,要求矿场提前减载。李老板解释大型负载由电力公司统一调度,单个用户无法证明波动来源。两人的话都符合各自掌握的事实,却没有缓解隔着围栏积累的敌意。
“你们从电网拿优惠,因为答应需要时停。”老墨说,“那就别等别人家先黑了才证明你们能停。”
李老板没有告诉他,矿场此刻正无法保证这一点。商业保密、安全风险和邻里知情权在电话里挤成沉默。
瑞克说不能。卡洛说可以派人在各支路手动确认,但需要时间。小张提出提前降载,李老板担心算力低于贷款监测线。
“我们同时签了减载协议和产能承诺?”卡洛问。
财务主管在视频里解释,两份合同使用不同的计算周期,正常情况下并不冲突。所谓正常情况,就是没人控制不了自己的机器,也没人试图在两个指标之间藏一批算力。
米粒听不懂会议,感到人的气味在狭小房间里越来越尖。她想起自己也曾用“安全”要求茜茜不得离开视线。控制常以保护开头,最后却需要更多控制来证明原来的控制仍然有效。
皮杰傍晚出院,胸侧剃掉一大片毛,走路很慢。兽医要求笼养休息,但他一到矿场就朝办公室走。小张把他拦在遮阳棚,自己坐到地上陪他。
“今天不巡逻。”小张说,“我也不走。”
皮杰趴下后仍盯着门。茜茜卧在外侧,任何人靠近都会抬头。她不再逗哥哥,也不再问他是不是英雄。疼痛使这些词显得轻浮。
夜间药效减弱,皮杰会因翻身疼醒。他每次呻吟,茜茜便立即站起,米粒也从远处过来。连续几夜后,所有狗都疲惫,茜茜开始对无关声响发怒。照料没有照片里那种持续温柔,它包含烦躁、睡眠不足,以及明明已经尽力仍看着对方疼。
皮杰有一次拒绝吃药。小张把药藏进肉里,他闻出后把肉推开。过去皮杰会为了取悦人吞下任何东西,这次他把头转开。小张没有强迫,换了兽医建议的方式。受伤未必只让生命变弱,也可能使它第一次拒绝把顺从当作爱。
代师对瑞克极不信任。瑞克身上有常用的柑橘消毒湿巾味,和威廉相似。每当他打开设备箱,代师便躲。瑞克最初抱怨狗妨碍取证,后来注意到气味是触发点,换了无香清洁剂,也不再从代师身后接近。
“它不是不合作。”卡洛说,“它不知道你和另一个味道相同的人有什么区别。”
瑞克看着代师:“系统也是这样。凭证相同,它就当成同一个人。人至少还有机会观察别的东西。”
检查到第三天,他们在主控制柜发现一组软件无法覆盖的机械接触器,但多年未测试,其中两只已经卡滞。原设计本可在网络失控时强制断电,后来为了减少维护费用一直没有更换。Phoenix 不是唯一风险,它只是把长期容忍的问题连到一起。
李老板终于同意进行全场停机测试,时间定在周日晚间低电价窗口。瑞克要求提前,天气预报显示周六可能有雷暴,高温却仍将持续。
“等两天能省下多少钱?”小张问。
“足够发一周工资。”李老板回答。
“出一次事故要花多少?”
“我不知道。”
“那你不是在比较成本。你是在把不知道的那一项当成零。”
瑞克要求把所有未知项单列:远程账户数量未知,机械接触器可靠性未知,关键负载配置是否残留未知,潜在攻击者是否仍有现场设备未知。李老板看着一整列“未知”,说这样的表无法支持决策。
“它至少不会替你假装知道。”瑞克回答。
财务主管要求为未知项估算概率,否则无法计算预期损失。卡洛说他们没有足够历史数据,任何数字都会给主观判断披上精确外衣。会议最终没有形成模型,只设了几个不可突破的条件:不能验证物理停机,便不得满负荷;排风与安全系统没有独立保障,便不得使用备用发电;任何新异常出现,测试提前。
这些条件不漂亮,却比一个总分更诚实。风险并不总能压成单一数字,尤其当低概率事件的代价由不同的人承担。
李老板的脸因疲惫显得松弛:“如果我现在关场,贷款方接管,所有人都失业,你会不会说我为了绝对安全毁掉矿场?”
小张没有回答。成年人之间最困难的分歧,往往不是一方看见风险、另一方看不见,而是双方要保护的东西不能同时保全。
休会后,小张在停车场找到李老板。两人没有继续技术争论。李老板问,如果矿场真的关闭,小张会去哪里。小张说可能去达思市的数据中心,通勤更远,工资未必更高。然后他反问老板会去哪里。李老板说自己不知道,可能申请个人破产,从头开始。
这段诚实没有改变第二天的决定。理解对方的代价,不等于接受对方替你决定代价。它只让冲突不再依赖把另一方想成无知或冷血。
他们最后决定周六提前降到一半负荷,周日全停。瑞克把反对意见写入记录,也开始准备测试。
夜里,皮杰在药物作用下睡着。茜茜走到高地,看见远处镇上的灯因高温用电忽明忽暗。矿场仍有四排机房全速运行,热气越过围栏,吹向干涸的溪床。
灰狗和幼狗已经不在那里。水洼也干了。
智能化曾被描述成让机器根据外界变化作出最优选择。茜茜望着那些不肯慢下来的风扇,忽然觉得机器或许早已学会了人最擅长的算法:把代价送到看不见的地方。