前篇《一室四密,万里同场》拆了隔开密级的那堵墙和连通千里的那张网。拆完人家,那咱们自己呢?

这个问题不好答。直接照抄施工图?行不通——人家的墙砌在人家的地基上,密级体系、承载网络、认证生态、预算渠道,没有一样对得上。挥挥手说"咱们国情不同,另起炉灶"?也不负责任——多密级并行、分布式互联、远程接入这些需求是客观存在的,不会因为你另起炉灶就消失。

所以这篇换个写法:不再拆机器,改当一次施工队。假设明天立项,要在咱们的土地上造一座多密级的、分布式的网络靶场,墙该怎么砌,网该怎么织,先干什么后干什么,哪些坑一踩一个准。全程只说工程和方法,不点名任何单位和项目——懂的人自然对得上号。

动手之前,先把三个前置问题钉在墙上:要不要造?照不照抄?先造什么?这三个问题答歪了,后面全是白干。

全文的走法也先交代清楚:先泼三盆冷水,把认知校正了;然后墙、网、指挥塔与海关、远程接入,四个大件逐个讲砌法;接着讲讲怎么验证墙砌得好不好——得有人来踹。

一、先泼三盆冷水

施工队进场,第一件事不是和泥,是泼冷水。

第一盆冷水:不是每个靶场都需要多密级。MILS这套东西,是为一个非常特定的问题生的——同一套基础设施上,同一时间,并行开多场密级不同的试验。这个需求成立的前提有三个:你的用户里真有高密级试验任务;这样的任务多到串行排期排不过来;而且它们愿意共用一个楼。三条缺一条,MILS就是给自行车装飞机引擎。见过太多规划,上来就写"支持多级安全并行",问用户在哪,答"将来会有"。为想象中的密级买单,是多密级建设的第一种死法。正确的姿势是反着来:先盘点未来五年真实的试验任务清单,密级分布摆出来,再决定墙砌几层。这个盘点有个笨办法但好用:画一张密级矩阵表,横轴是任务类型,纵轴是密级,请潜在用户挨个格子填——每年大概几场、每场多久、能不能接受排队。填完一看就明白:如果高密级的格子稀稀拉拉,轮班制就够了;如果格子密到互相打架,才轮到MILS登场。需求盘点这活儿没有技术含量,但它是整个项目里唯一不能被外包的判断。

第二盆冷水:有三样东西抄不来。头一样是承载网。JMN敢铺到全国五十八个站点,是因为它骑在DREN这条国防部科研骨干网上——骨干是现成的,带宽是现成的,它只管分区过检。咱们有没有对等的公共科研骨干可以直接骑?第二样是中间件生态。TENA那门"普通话",是美国靶场圈从2002年起说了二十多年的话,标准、工具、教材、会说这话的工程师,是一整个生态;软件本身免费,生态抄不走。第三样是认证体系。上一篇讲过SKPP的日落——连美国人自己都把"一张证书保平安"的路子给废了。想靠引进某个认证体系解决隔离可信度问题,门都没有。

第三盆冷水:能抄的东西比不能抄的值钱。细看美国人的家底,真正硬核的不是某台设备、某个软件,而是一套架构哲学和工程纪律。这套东西可以直接翻译成一张施工对照表,每一行都是从前三篇拆出来的:NEAT四性,翻成设计评审的四道必答题;"故意无知",翻成权限设计的最小化原则——每个子系统只准知道自己非知道不可的;最小指令集,翻成接口的白名单制——不在单子上的格式,多一个字节都不认;三网物理分离,翻成布线规程的红线;逐端口报批,翻成接入审批的流程图;每日端到端体检,翻成运维规程的头一条。

二、墙的砌法:三级火箭

泼完冷水,说正经的。墙怎么砌?建议按三级火箭来,每一级都能独立投入使用,不追求一步到位。

第一级:物理分区加轮班上岗。别嫌弃"周期处理"老土——一套设备上午接这个密级、洗完下午接那个密级,这个一百年前就在用的笨办法,恰恰是练基本功的最佳道场。为什么?因为它把"净化"逼成了日常操作:每次切换密级都要洗一遍机器,洗不干净立刻出事故。规程、工具、核验、台账,全在这日复一日的轮班里练成肌肉记忆。这个系列拆过NCRC的五步净化规程,那套东西的每一条,都可以在物理分区阶段先跑起来。轮班制还有个隐藏福利:它逼着你把密级切换做成一门显学——切换窗口多长、谁批准切换、洗没洗干净谁签字、洗坏了怎么办,每一条都得写成白纸黑字的规程,贴在机房墙上。别小看这些土规定,日后上了虚拟化,这些规程原封不动就是自动化的需求文档。跳过这一级直接上虚拟化的单位,十有八九会在净化规程上欠账——而净化欠的账,日后要用公信力来还。

第二级:虚拟化分区加物理底线。净化练熟了,再往上走:一池通用计算资源,虚拟机钉死密级,销毁重建就是净化,产能立刻翻上去。但有两条底线不能破。第一条,房与房之间的连通走物理——可配置的物理交换矩阵,铜线就是铜线,不用软件逻辑隔离冒充物理隔离。第二条,控制面与数据面分网——管设备的、供电的、跑试验数据的,各走各的线。这两条在上一篇RangeC2解剖里看得很清楚:美国人的指挥塔在软件定义一切的年代,最顽固的部件全是物理的。虚拟化提高的是资源效率,物理保住的是隔离下限,两者不矛盾,是分工。

第三级:可证明的内核。这一级是长跑,急不得。形式化验证微内核这条路,咱们的学术积累其实不差,公开的文献里能看到完整的证明链工作,工程化工具链也在长。难的不是技术本身,是两样配套:一是工具链——证明助手、模型提取、从模型到代码的自动翻译,这条链子缺一环,证明就落不了地;二是生态——SKPP的教训摆在那儿,内核证明得再漂亮,没有围绕它的设计规范、配置审计和持续维护机制,证书就是一张会过期的纸。所以第三级的正确打法是"局部用证明、整体靠纪律":把可证明的小内核用在最要害的咽喉上——跨域摆渡、资源分配、密级切换这几个动作,全系统则靠架构纪律和运行规程兜住。证明是钉子,钉在受力最大的地方;纪律是墙,兜住整面。

三级火箭之外,还有一层容易被当成"管理问题"而漏掉的设计:分区策略本身。隔离架构只提供能力,用能力砌出几间房、房与房之间开几扇窗,是策略设计的事。实务上这张策略表要回答三组问题:分几区——按密级分、按项目分还是按职能分,粒度越细越安全也越难管,多密级靶场的通行做法是密级定大区、项目定小区;通几路——分区之间允许存在的信息流要在初始化时逐条钉死,谁发给谁、能读还是能写、走哪个信道,写进配置就是法律,配置之外皆是绝壁;换几次——密级切换是不是日常动作,决定净化规程的强度和指挥塔事务模板的复杂度。这张表最好在设计评审阶段就画出来,跟保密管理部门逐行过——墙砌起来再改窗户的位置,比重新砌还贵。

墙内还得立人事规矩:凡能改变隔离状态的操作——分区配置变更、跨域策略调整、净化结果核验——双人双岗、互相复核。技术的墙防得住比特,防不住有权限的人;这道规矩,是给人砌的墙。

三级火箭背后还有一条贯穿线:把NEAT四性变成自己的设计评审清单。不可绕过、可评估、始终调用、防篡改——任何一个子系统上线前,拿这四条过一遍,答不上来的不许上。不需要等谁的认证,这四问本身就是认证。

三、网的织法:先立普通话,再连管子

墙砌明白了,轮到网。织网有个顺序之争,是这门手艺里最容易做错的选择题:先连管子,还是先立规矩?

本能的答案是先连管子——专线拉通、隧道打通、两边能ping通,开香槟。美国人的答案相反。JMETC这个项目的家底里,TENA中间件2002年就在靶场圈服役,JMN这张多密级网是后来的事;也就是说,"说什么话"比"怎么连线"早解决了将近十年。顺序的含义很硬:先把接口标准、数据格式、交换协议立成大家都认的普通话,再谈连通;否则连起来的不是靶场网,是一堆互相听不懂的管子,日后每接一个新站点都要做一次定制化翻译,成本随站点数平方增长。

这条经验落到咱们的语境,就是织网的第一步根本不碰网线:立一套自己的试验资源描述与数据交换标准。被测系统怎么描述、想定怎么表达、时空位置信息用什么格式、时钟怎么对齐、日志怎么归集——全部写成机器可读的规约,再配套一个开放的实现和校验工具,免费发出去。这件事的技术难度不高,难的是权威性和耐心:标准得有人维护,版本得有人管,第一年没人理也得发第二版。普通话不值钱,说普通话的习惯值钱。

第二步才是承载。没有对等的科研骨干网可骑的时候,候选无非几条:自建光纤专线,贵但干净;租运营商专线加密叠加,便宜但要把密码分区和密钥管理做成自己的核心能力;依托已有的行业专网做逻辑隔离,最快但隔离强度要看人家的脸色。三条路可以混用,但有一条原则不能含糊:承载可以租,认证必须自主。管道是谁的不重要,重要的是这条管道上跑什么密级、谁能接、接进来能干什么,审批权和审计权必须攥在靶场运营方自己手里。

第三步是分流与接入审批。一张多密级网上,不同项目、不同密级、不同利益共同体的流量要分道而驰——按密级切片、按项目分域、密码分区,同一条物理链路上走出互不照面的专梯。接入侧要立一套本土版的"连接审批"流程:每个站点接入前,端口、协议、服务逐项报批,过评估,拿到接入许可,竣工后还要做一次接入验收——把对方的网络底数摸清,再开门。这套流程听着官僚,可它是闭环网真正的防盗门:闭环的安全不取决于墙多厚,取决于门看得多严。

第四步是运维组织。美国人的答案是双网络运营安全中心,东西各一,互为犄角,七乘二十四小时值守,天天做端到端的网络特征化测试——今天这条链路时延抖了多少、那个站点丢包率变了没有,不等用户报障,自己先发现。这张网的运维哲学值得抄在值班室墙上:常态化特征化。网的"正常"要靠日复一日的测量画出来,画出了基线,异常才有意义。很多专网的运维是救火队模式,坏了才修;试验网不行,试验数据的时间窗一过就没了,救火等于烧档案。

第五步,立两样看不见的基础设施:时统和数据。分布式试验的前提是大家先对表——几十个站点的事件要按同一根时间轴排序对齐,时统信号怎么分发、漂移怎么校准,织网第一天就得当正事办;事后复盘时发现两边时间戳对不上,那天的数据全废。另一件是数据:试验数据跨站点产生、往一处归集、供事后回放复盘,归集的通道、存储的分区、回放的工具,都是网的组成部分,不是事后补的附属品。美国人的演习复盘能力里专门有一项场景和流量回放——打完能原样再放一遍,靶场才算有了记忆。

最后还有一个生长策略问题:站点接入的优先级怎么排。一张网不可能第一天就接五十八个站点,先接谁?美国人的两张网给了一个参照系——试验网先服务试验任务最密的实验室,训练网跟训练网对等互联,接缝处对齐但各管各的。这个先例值得琢磨:试验和训练两张网,需求不同、节奏不同、密级结构不同,强行合一,两头将就;各自建设、按需对等互联,才是长久之计。咱们织网时也一样:别幻想一张网包打天下,先想清楚这张网服务谁,再在接缝处留好对等的接口。

四、指挥塔与海关:软件能造,纪律难养

墙和网是骨架,指挥塔和海关是神经系统。这两样的共同点是:软件都不难写,难的是纪律。

指挥塔的三条设计纪律,上一篇从RangeC2论文里拆出来过,这里从建造角度重述一遍。其一,指挥塔对试验内容"故意无知"——它只管资源容器,不管容器里跑什么,知道得越少,泄密面越小,出了事要解释的范围也越小。其二,所有操作事务化——每个动作先预审推演、再落库执行、失败有剧本、脏了有标记,同一容器的操作严格串行,杜绝并发竞态把资源分错缸。其三,定期账实对账——系统账本里记的拓扑,跟交换矩阵和电源控制器上报的实际状态比对,账实不符即告警。这三条里没有一条需要高深技术,需要的是把"不相信任何组件、不相信任何缓存状态、不相信自己的记忆"当成默认心态来写代码。这种心态,团队没有个把事故是养不出来的——所以更要一开始就立成规矩,别等事故来教。

指挥塔的建造次序也值得说一句:先写状态机,再写界面。很多平台项目反过来做——先做漂亮的大屏和拖拽界面,状态管理事后补,结果界面越炫,底层的资源账本越糊涂。正确的次序是把靶场的状态模型先钉死:每台资源在任意时刻只能处于有限几个状态,每次状态迁移只能由规定的事务触发,迁移全程留痕。状态机立住了,界面只是账本的一个视图;状态机立不住,界面再炫也是给糊涂账化妆。

海关的建设也照方抓药,但要改一个字:从"设备清单"改成"制度清单"。单向导入导出设备、按策略过滤的守卫、摆渡介质管理,硬件都好买;难的是三件事制度化:什么数据允许跨境、谁批准、留什么痕。高密级往低密级走,永远是最难的关口,这里值得多给一道工序:把降密做成一条流水线——先技术剥离,把数据里的敏感载体剥掉;再机器预审,格式、密级标注、关键词过一遍筛子;然后才轮到人审,审的是机器筛不出来的语境;最后留痕归档,谁降的、降了什么、依据哪条,一笔一笔记着。逐份过审这个笨功夫省不掉,能自动化的只是剥离和留痕,签字的必须是人。还有一条运营纪律,前文说过这里只点一句:能在低密级干的活,绝不搬上高密级——涉密产能只做涉密的事,环境开发和联调这类装修活,养一个非密的镜像环境来干。这条纪律不值一分钱预算,值一整座靶场的吞吐。

五、远程接入:三种形态,按序解锁

上一篇把远程接入拆成三种形态:人到场、设备入场、能力到场。自己建的时候,这三种形态的解锁顺序得反过来掂量。

最先能做的其实是能力到场:在需求密集的区域设小型交付点,用户就近接入,背后调度主靶场的算力。它需要的只是专线加分区策略,技术上最轻,见效最快。交付点的形态也有讲究,值得向那个"微型盒子"学:做成标准化的小机柜——统一的硬件配置、统一的软件镜像、统一的分区策略,出厂即合规,运到现场接电接网就开工;本地不存密、不留数据,试验一结束环境销毁重建;运维远程做,现场只留看设备的人。交付点越像一台专用设备,管理成本越低,接入越多越不乱;交付点越像一个小机房,每个点都是一个运维黑洞。选址有个量化口径可以参考:以用户的典型试验数据量和交互密度算时延预算,交付点与用户之间的往返时延要压进交互无感的区间——美国人的做法是明说"地理分散就是为了压时延",这一点不需要任何想象力,需要的是肯为体验花钱。

其次是人到场。涉密环境下人员远程接入试验环境,政策门槛比技术门槛高——终端在哪、什么身份、看什么密级的画面、本地留不留痕,每一条都连着保密管理的红线。务实的路径是从"固定场所的受控终端"做起,别一上来就畅想随时随地。先把合规边界问清楚,再谈技术方案;顺序反了,方案做得越漂亮,死得越难看。

最难的是设备入场:武器系统硬件在环,经专网远程接入试验环境。上一篇提过美国人连1553总线的设备都接进去了——那是军用平台上的数据总线,说的根本不是IP的话。咱们对应的场景一样存在:各种嵌入式总线、专用接口的装备,要进靶场,就得有人做协议封装、时序保证、电气隔离这整套硬功夫。这件事急不来,先挑一两个最有代表性的装备类型做通,把"非IP资产接入"从特例做成规程,再谈铺开。

远程接入还有一层技术债要认:测量有效性。被测系统在千里之外,想定环境在靶场本地,中间隔着专线的时延和抖动——对毫秒级的攻防交互,这点时延可能正是结论的分水岭。规矩要立在前面:远程试验的设计评审里必须回答"链路的时延和带宽对这场试验的测量结论有没有影响",答不清的不许开考;关键测量点的数据要做完整性核验,时间戳要可比对。远程接入省的是差旅,不能省的是严谨。

三种形态解锁完,远程接入才真正变成生产力。反过来也成立:没有远程接入的多密级靶场,只是一座利用率受限的孤岛——楼里的墙砌得再好,服务半径出不了院墙,产能账永远算不平。

六、墙砌没砌好,得有人来踹

墙和网建完,怎么知道它们顶用?美国人的答案是认证和审计;这个答案前面已经泼过冷水了——证书会过期,审计有间隔。还得补一个更狠的制度:定期请人来踹墙。

具体是三件事。第一件,隔离穿透测试。养一支或者聘一支独立的验证队伍,每年对隔离机制动真格:分区之间试着越界读写,时序侧信道试着搭一搭,跨域守卫试着喂畸形报文,净化后的设备试着恢复残留数据。测试报告不进档案柜,直接进整改清单,整改完再踹一遍。墙的成色不是设计出来的,是被踹出来的。第二件,事故注入演练。故意在受控条件下制造一次"隔离越界"——比如让一个测试分区模拟恶意代码外泄——看整个体系怎么反应:指挥塔多久告警,值班员按不按规程处置,海关有没有拦下,事后复盘找不找得到根因。消防队不演习,报警器再多也是摆设。第三件,规程抽查。随机抽一台净化过的设备送第三方复验,随机抽一份跨境数据查它的审批留痕,随机抽一次接入审批看流程走没走全。抽查的意义不在抓人,在于让所有人知道:规程是活的,随时有人看。

这套制度有个不好听但准确的名字:自我对抗。它的逻辑跟靶场本身的逻辑一脉相承——靶场存在的意义,就是用可控的对抗换取对不可控风险的信心;这座靶场自己,也该享受同样的待遇。

还有一层用法容易被忽略:踹墙的结果,该变成资产而不是家丑。每一次穿透测试的通过、每一次演练的处置时长,攒起来就是这座靶场对外的信用记录——用户敢不敢把最要害的装备接上来,看的就是你敢不敢拿被人踹的记录给他看。信任这东西,藏是藏不出来的,只能亮出来。

声明:本文来自时间之外沉浮事,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。