一、引子:复盘室里的争吵

先想象一个场景,干过对抗演习的人都不陌生。

一场网络安全试验收官,复盘室里坐了三拨人。红队领队敲着桌子说:我们打穿了,核心数据库的数据被我们改了三个小时,你们毫无察觉。蓝队领队脸涨得通红:胡说,我们的告警平台明明报了,值班员按规程处置了。白队——也就是裁判——坐在中间,两边都看着他。

这时候,什么能终结这场争吵?不是资历,不是嗓门,是数据。红队工具的日志到底记录了几次成功写入?蓝队告警平台的告警时间戳是什么时刻?被篡改的数据库,在攻击窗口里给指挥官呈现的界面到底变了没有?三个问题,每一个都得有机器记录的东西来回答,而不是靠人的记忆和面子。

这个系列写到第六篇,前面拆的是美国网络靶场的墙(MILS)、网(JMN)、考场运营和建造论。这一篇换一个器官:眼睛。一座靶场凭什么说"你行"或者"你不行"?凭它记录的东西。网络靶场的本质,是"网络空间安全的科学研究观察、测量和分析装置"——注意排序,先观察,再测量,然后才轮到分析。试验靶场的全部公信力,最终都落在"你测得准不准"这六个字上。

墙砌得再硬,网织得再远,测出来的数不可信,这座靶场就只是个昂贵的演播厅。这篇就拆美国人的测量学:数据从哪来、真值怎么立、观测本身怎么不弄脏被测对象、数据最后怎么滚成结论。

二、先立规矩:测量是靶场的本体

先纠正一个常见的工程错觉:很多靶场规划里,"数据采集与态势感知"是最后一章,排在场地、算力、仿真、安全之后,像个收尾的附件。美国人的排法相反。

看两份文件的措辞就知道分量。一份是国防部作战试验鉴定局(DOT&E)局长吉尔摩2014年签发的备忘录——背景是那年DOT&E刚把网络安全作战试验的程序正式成文,这份备忘录等于给全军采办项目下了死命令。里面有句话狠得可爱:"所有能收发数字信息的受监督系统都必须接受网络安全试验——这包括通过USB口或者可移动介质这类物理手段上传下载数据的系统。"翻译一下:只要你的系统有任何一个比特的进出口,哪怕是个U盘插孔,你就在被测之列。测量对象的边界,被这句话推到了"凡有数据处皆考场"。

另一份是试验资源管理中心对Cyber TASE的官方定义,一句话三个词值得抠:数据采集、汇聚与可视化,目的是让分析员能够监测和分析网络活动对被测系统的"起因、效果、影响"(cause, effect, impact)。起因、效果、影响——这是三级火箭:攻击从哪里进来(起因),系统的什么功能变了(效果),仗还打不打得赢(影响)。一场试验的数据采集体系,必须把这三级全部罩住,少一级,结论就矮一截。

这个传统不是一家之言。2018年的《网络安全试验鉴定指南》(CSTE Guidebook 2.0)里,数据采集程序与仪器埋点、观测记录并列,写进试验规划的必备条目——规划文档里没有数据采集这一章,方案评审就过不了。规矩立到这个粒度,测量才算从"手艺"变成了"制度"。

所以规矩得这么立:测量系统不是靶场建好之后再装的摄像头,它是和靶场一起设计的骨骼。MITRE那份技术报告把设计顺序写得斩钉截铁:想定定义目标,目标定义需求,需求定义指标,指标定义要提取的测量值,测量值最后才决定选什么仪器。这个顺序的逆命题更扎心:先买仪器再定指标的靶场,等于先买秤再决定称什么——称出来的东西没人认。

三、四条管子与一个裁判:Cyber TASE解剖

Cyber TASE,全称网络试验分析与仿真环境,中央试验鉴定投资计划(CTEIP)出钱,陆海空三军和国防信息系统局合建,2015年公开简报。它立项的理由很直白,填两个窟窿:头一个窟窿叫"缺乏有效的IT和数据链试验仪器"——具体说,没人能把网络数据、主机数据、应用层数据和真值数据同时采上来,更没人能自动分析C4I系统在持续攻击下表现如何、把跨协议栈的数据关联起来。第二个窟窿是缺一个带测量能力的高保真LVC环境。

拆开它的架构图,数据采集是四条管子加一张暗网。

第一条管子是网络数据采集器。流量镜像、会话记录、进出节点的原始包——攻击怎么进来的、横向怎么动的、数据怎么出去的,全在这条管子里。第二条是主机数据采集器:进程、线程、CPU、内存、磁盘、中断,连时钟漂移都记。第三条是应用层采集器:应用日志、协议级的交互记录——杀毒软件从样本落地到报警用了几秒,这种问题只有这层能答。第四条最特别,叫战术数据链(TDL)采集器:军用数据链上跑的指挥控制消息,攻击对"作战链路"的影响靠它说话。

四条管子采上来的东西,必须走一张独立的网送走——简报里叫Stealthnet,隐蔽网。这个名字起得讲究:采集流量绝不能跟试验流量挤一条路。理由有两层,一层是技术——采集流量本身就是负载,混进试验网就污染了测量对象;另一层是对抗——红队打进来之后,头一个想掐的就是防守方的眼睛,采集网走带外通道,红队在试验网里翻江倒海也摸不着它。暗处的眼睛,才算眼睛。

采上来之后是汇聚、关联和可视化。这四条管子出的数据格式五花八门、时间基准各异,关联引擎干的活就是把它们钉到同一时间轴上,拼出因果链。简报里有个用例讲得极生动,值得逐帧过一遍:海军的GCCS/M指挥系统跑在CANES机载网络上,红队对数据库服务器来了一发SQL注入——注意,不是拖库,是改库。指挥官面前的共同作战图(COP)悄无声息地变了样。仪器侧的输出是这样的:"警告:CANES用户正在接收被污染的作战图。事件来源:SQL注入——GCCS/M数据库服务器观测到异常数据流,网络入口节点确认新流量。"品品这句话的结构:先报任务层面的后果(图被污染了),再给技术层面的归因(SQL注入),最后是两路独立证据的交叉印证(主机观测+网络入口确认)。一次测量,同时回答了"仗受没受影响"和"技术上发生了什么"——这就是cause、effect、impact三层在一次告警里的完整落地。

再往上看一层,Cyber TASE把测量嵌进了试验工作流的每一段,四段各有各的测量任务。规划段:先把指标和测量量定义出来,把需要的基础设施排上日程——仪器是排期资源,不是现场即兴。环境段:建场的同时要把"刺激"布好——物理和虚拟化的激励源、威胁的注入通道或者威胁仿真,仪器埋点跟环境搭建是同一个动作。执行段:测量与监视、实时分析、实时可视化——试验进行中就要看得见,出了问题当场排障,而不是事后对着死数据猜。评估段:事后分析、形成结论,外加一个良心环节——评估试验本身的充分性与准确性。四段合起来,测量从"试验结束后的统计"变成了贯穿全程的呼吸。

四、先有被测的世界:数据发生器的保真度经济学

测量学有个经常被忘掉的前提:得先有一个值得测的世界。靶场里的流量、用户、系统行为,多半是造出来的——MITRE那份报告给"造世界"的工具排了个保真度阶梯,这个阶梯本质上是本经济账,值得逐档过。

最低档是简单客户端:发个固定响应、把数据流跑通就行。成本极低,保真度也极低,用途是联通性调试——管子通不通,它说了算,别指望它演世界。

往上是模糊测试器(fuzzer),中保真中成本:遵守协议格式,遍历各种输入排列,是找边界情况的利器。但报告特意提醒:它不适合训练和演习——生成的数据语法正确、语义全无,一串合规的乱码糊弄不了要逼真世界的人。

再往上是模拟器,高保真高成本:建模真实场景里所有角色的接口、格式和意图,模型要经过领域专家反复验证,有的甚至用真实数据机器学习出来。演习和训练要的世界,只有这档给得起。代价是贵——建一个像样的模拟器,跟写一个小型软件系统的工作量相当。

最微妙的一档是回放器:把真实世界抓包的数据录下来,在靶场里原样重放。保真度毋庸置疑——它就是真实本身;但它是静态的,不会响应现场的任何输入,你戳它它不会躲。而且别被"回放"两个字骗了,以为便宜:原始捕获数据的存储、按作战速度回放的机械调度,都是实打实的开销。报告的建议是:回放器主要用来测系统和校准模拟器,别拿去练兵。

四档看完,规律就浮出来了:保真度和成本同向爬升,而每种试验只配用其中一档。调试用客户端,找茬用fuzzer,练兵用模拟器,校准用回放器——错配就是烧钱。报告还留了一句口诀:可扩展、可复用——这场试验要仿的接口和行为,下一场大概率还要仿,发生器做成通用件,复利惊人。

为什么要在一篇讲测量的文章里先讲发生器?因为测量的上限是被测世界定的:仪器精度再高,测的是个假世界,结论照样是假的。仿真学和测量学是一枚硬币的两面——一面负责把世界造得像,一面负责把发生的事情录得真。

五、真值:考场的标准答案

四条管子之外,还有第五样,简报里跟采集器并列:真值数据(truth data)采集器。这东西是整套测量学的定盘星,值得单独一节。

什么是真值?就是"客观上到底发生了什么"。红队的攻击工具记录了每次注入的确切时刻和载荷;想定控制系统记录了每个脚本动作的触发时间;注入器记录了每个测试信号的发出点。这些记录合起来,就是这场考试的标准答案。蓝队报没报、报得对不对、快不快,全部拿观测数据跟真值对照着算——没有真值,评分就是吵架,红队说进了,蓝队说没进,谁嗓门大谁赢。

这个道理朴素,但真值制度立起来的靶场少得可怜。原因是真值有个悖论:它是最敏感的数据。真值日志里记着全部攻击路径、成功时刻、绕过了哪道防线——这份东西泄露出去,等于把考卷连同标准答案一起送人。所以真值数据要享受全场最高的保护等级:单独采集、单独存储、单独过海关。墙与网那一篇讲跨域摆渡的海关,这里要补一句:测量数据本身就是跨境大户——高密级试验采的数据,分析员往往坐在低密区,每一份下山的测量数据都得过审,真值更是审中之审。

真值制度还有个组织上的讲究:真值必须由中立方掌握。红队自己报的攻击日志是单方陈述,蓝队自己报的处置记录也是单方陈述——让任何一方兼任真值官,等于让运动员兼任计时员。所以成熟的做法是把真值采集挂在白队或者靶场设施侧:想定控制系统、注入器、靶场指挥塔的日志,这些天然长在裁判手里的数据源,才是真值的正根。红蓝的记录拿来对照印证,不拿来当标准。

真值还有个工程难题:攻击动作本身不能总是真的。在分布式环境里引爆真恶意代码,风险大、复现性差。美国人的解法很巧,CTEIP旗下有个项目叫TMAL(恶意代码行为测试),专干一件事:复刻恶意代码的功能,但把载荷换成无害的假货,只留信标行为——用它安全地追踪一次利用行为在分布式试验环境里怎么扩散。这等于给真值制造了一个"安全版攻击源":行为轨迹完全可预期、可记录,测量系统拿去对照,分毫不差。为了把尺子校准,先造一根绝对直的标准件——这个思路,做计量的人都懂。

六、观测者的物理学:开销、失真与反检测

测量这行当有个物理学意义上的诅咒:观测会扰动被测对象。MITRE那份技术报告把这个诅咒拆成了几笔明账。

第一笔是开销三角。采集频率、系统开销、存储容量,三者互相打架。想看清一个只跑几毫秒的操作占了多少CPU,轮询频率就得高到显著干扰操作系统正常运转的程度——测得越细,扰动越大;扰动一大,测的就不是系统本身,是系统加探针的混合体。报告的规矩是:先保目标验证,再谈风险降低——必须采集来支撑结论的证据,一个不能少;锦上添花的状态监控,看资源余量酌情加。

第二笔是两本用途账。仪器分两类:一类伺候态势感知,高频采集、低存储,给值班员看靶场健不健康、试验顺不顺,用完就扔;另一类伺候证据捕获,中频采集、中存储,要把算指标所需的全部工件留到事后分析。两类仪器的设计参数完全不同,混着用,要么存爆,要么漏证。

存储这本账值得单独算一算,因为量级差异大得反直觉。同样一段网络,全流量抓包(pcap)一天的产出按TB计,会话流记录(flow)只有它的百分之一上下,而浓缩成日志再小一个量级。三个粒度对应三种用途:抓包用于取证级的复盘,flow用于行为画像,日志用于指标计算。全都要是理想,全抓包是灾难——存储费烧钱事小,事后分析时在TB级数据里捞一根针事大。所以分级存储的策略要事前定:哪些链路全抓、哪些只留flow、哪些只留日志,哪级数据保留多久,写进试验方案,而不是磁盘满了再临时删。

第三笔是观测分层。报告仿照OSI模型把观测分成五层:用户层(键盘鼠标的操作记录)、应用层(日志和协议交互)、操作系统层(资源占用与内核日志)、传输会话层(网卡和路由器视角的流量)、物理与链路层(硬件级信号)。每往下钻一层,开发和运行的成本就上一截,所以要按试验目标选层,不是层数越多越好。有个细节很见功力:杀毒软件从样本落地到报警的精确时长,属于应用层的一阶效应;而一个用户操作对系统资源的连带影响,是二阶效应,得换一层才看得见。想测什么阶的效应,就埋什么层的探针。

第四笔最微妙:被攻陷的系统,仪器会跟着失真。红队一旦得手,被测系统里的探针要么被掐、要么被骗、要么行为无定义——报告的原话是,红队推进得越深,仪器的准确性和可用性就越低。所以指标设计要提前把这件事算进去:要测"拒绝服务攻击是否得逞",与其在被测系统里装CPU监视器(CPU被打满时监视器自己先疯),不如从外部探测心跳——由外人问"你还活着吗",比问病人"你感觉如何"可靠得多。这个区别,是区分业余靶场和专业靶场的一道分水岭。

那有没有办法跳出这个诅咒?有半个。CTEIP旗下另一个项目CTAM(网络威胁自动化与监测)走了条聪明路:把采集器从虚拟机里搬到虚拟机外面——用XEN和QEMU的hypervisor自省技术(VMI),从宿主机层面往里看,配合智能内存获取,虚拟机里跑的恶意代码根本看不见观测者的存在,更谈不上掐掉它。被观察者不知道有人看,观测者效应就压到了最低。当然这只是半个解法:hypervisor看得见的主要是内存和CPU状态,应用语义层的观测还是得进缸里——而且这条技术路本身也在跟反虚拟化、反自省的恶意代码技术赛跑。

还有一笔账别忘了记:采集器自己也会被污染。探针跑在鱼缸里,跟被测系统一样暴露在恶意代码之下——它记录的日志可能被篡改,它自己可能被收编成眼线。所以采集设备必须纳入净化规程的覆盖范围,跟被测资源一样洗、一样验;隐蔽网的隔离强度,直接决定探针的可信度。眼睛自身不干净,看见的一切都存疑。

七、时间的暴政与日志的尊严

测量学里有两件小事,小得没人愿意写进方案,却实实在在决定数据的生死。

第一件是时间。分布式采集的头号公敌是时钟漂移:几十个采集点,各自的时钟每天漂几毫秒,一周后同一个事件在两条日志里的时间戳就能差出量级。MITRE报告在操作系统层的采集项里特意列了"可能的时钟漂移"——连漂移本身都要测量。时间轴一旦错位,因果就错位:攻击日志显示十点整注入,告警日志显示九点五十九分报警——蓝队未卜先知?不,是两块表没对上。跨站点试验更狠:两个站点各漂各的,同一条因果链在两个地方讲出两个故事。因果链分析的全部尊严,建立在时统之上。

第二件是协调员日志。报告里有个很容易被翻过去的段落,我读的时候拍了一下桌子:试验协调员的操作决策日志,是最常被忽视的数据源。一场试验里,协调员要调整时序、授权打补丁、排障、重跑失败的环节——这些决策不做带时间戳的记录,事后分析员手里那堆数据就分不清哪段有效哪段无效。系统重启过没有?那个异常是攻击造成的还是协调员刚打的补丁造成的?没有协调员日志,这些问题全是悬案。报告的建议很接地气:用带时间戳的聊天记录或者网页表单自动捕获,别让协调员额外写报告——他的带宽也是稀缺资源。仪器要测系统,也要测那个指挥试验的人。

这两件事背后是同一条规矩:端到端自动化采集。日志自动抓取、集中归档、定期备份、自动解析成人可读的格式,全都不许靠人肉——人肉环节每多一处,数据丢失的风险就多一处。还有一条更要紧:所有试验数据的schema,要在试验发生之前定好,抓取和解析的脚本按schema写好,数据进一个中央可查询的库。先定数据的形状,再开始产生数据——这个顺序跟"先定指标再买仪器"是同构的。

八、一份数据的旅程:从网卡到报告

道理讲完了,跟着一份数据走一遍,把前几节串起来。

十点整,红队的注入器发出一个载荷。想定控制系统在真值日志里记下这一刻——这是标准答案的第一笔。载荷流经网络入口节点,网络采集器在隐蔽网上留了一份流量副本。载荷落进目标主机,主机采集器记下一个陌生进程的启动;五点三秒后,应用层的防御软件报警,应用采集器记下这个延迟——五点三秒,这就是"检测耗时"指标的原料。攻击得手,数据被篡改,战术数据链采集器看见指挥控制消息的内容变了样。

十点十五分,白队协调员发现试验网一段链路异常,授权重启了一台中间件服务器——这个决策进了协调员日志,带时间戳。事后它救了整个分析组:要不是这条记录,十点十五分前后的数据断层会被误判成一次未知的攻击效果。

试验结束,各路数据按事先定好的schema自动归集进中央库。分析员把五路数据钉到同一时间轴上,拿观测对照真值:红队宣称的三个攻击动作,两个被独立证据确认,一个查无实据——吹牛当场现形。结论写成报告之前,还要过最后一道关:数据的充分性和准确性评估,覆盖不全的指标宁可标注"无法评估",不许拿残缺数据硬撑。报告定了稿,涉密的原始数据留在高密区,可发布的结论走海关下山。

一份数据从网卡到报告,过了八道手。测量学的全部功夫,就是让这八道手每一道都留痕、可对账、可复核。

九、嵌入式仪器与合同条款:测量权的法律面

技术之外还有一层,是采购和合同,这一层翻车率极高。

美国国防采办指南第8章专门有一节讲嵌入式仪器,立场鲜明:作战试验机构应把嵌入式仪器当作数据采集的第一选择——让被测系统在作战配置下自带测量能力,而不是试验时临时加装。理由很实际:临时加装的仪器改变被测配置,测出来的就不是要交付的东西了。但注意紧跟着的两句硬约束:嵌入式仪器使用前要独立认证;而且开发商在研制阶段自用的那些日志、端口、测试点——很多是没写进文档的——试验方要主动去找这些数据产品,并把使用权写进合同。

指南里有句话堪称采购界的至理名言:"如果合同里不包含某项试验条目或要求,那就别指望得到它。"仪器接口、数据格式、日志访问权,谈判桌上没写清楚的,交付时一概没有。多少靶场项目栽在这一条上:系统进缸了,发现厂商的设备黑箱一个,日志不给、端口不开,唯一的测量手段只剩外面看流量——一场精细测量就此降级成隔靴搔痒。

分布式试验还给测量带来一个红利,指南里概括成一句口号:搬数据,不搬人(move data, not people)。采集和分析的大部分工作可以在后方完成,不用把成队的采集员和分析师撒到每个试验点去。这跟远程接入那一篇讲的是一枚硬币的两面:那边讲的是把环境送过去,这边讲的是把数据收回来。

十、从数据到结论:评分这最后一跳

数据采齐了、对齐了、存好了,还差最后一跳:变成结论。这一跳最容易被低估,因为它看起来只是"写报告"。

先把两种分析分清楚,它们的混用是很多靶场的常见病。一种是实时分析,试验进行中就要跑:靶场健不健康、攻击有没有跑偏、要不要熔断——它服务的是试验的安全和进程,容忍粗糙,要求快。另一种是事后分析,试验结束后慢慢做:多源对照、统计检验、因果归因——它服务的是结论,容忍慢,要求严。两者的工具链、人员、数据口径都不一样:实时分析给导演席看大屏,事后分析给鉴定书写证据。拿实时大屏上的曲线直接写进鉴定结论,是拿体温计当裁判文书——看着都有数,法律效力天差地别。

评估环节里有个条目常被一扫而过,其实是整个评分学的良心:评估试验的充分性与准确性。数据够不够支撑结论?覆盖全了吗?精度够吗?——下结论之前,先给数据本身打分。证据不足的结论不许出,这条规矩把多少"大概齐"的报告挡在了门外。

结论的顶端还有一个台阶:任务影响定级。NCR十大经验教训的最后一条写的是:暴露的漏洞,要验证并评估其任务影响,以此排定修复优先级。注意这个排序——不是按技术严重性排序(那是漏洞扫描器的思路),是按对任务的影响排序。一个评分很高但打在无关痛痒节点上的漏洞,排在一个评分一般但打在指挥链咽喉上的漏洞后面。评分的天平上,砝码是任务。前面GCCS/M那个用例就是样板:仪器先报的是"指挥官的作战图被污染了",SQL注入只是注脚。

最后是复盘的文化:打完能回放。场景和流量要能原样重放,攻击过程要能回溯推演,让当事各方坐在同一组数据面前把仗重新打一遍。报告可以争,回放不会撒谎——靶场给各方的最大礼遇,就是一份谁都赖不掉的时间轴。

十一、照例捅刀子:测量学的四条裂缝

按系列规矩,夸完捅刀。测量学的裂缝比墙和网的更隐蔽,因为出问题时没人看得见。

第一条裂缝:观测者与反观测的军备竞赛。恶意代码检测沙箱和虚拟机早就是标配手艺,查CPU核数、查内存大小、查鼠标动不动、查有没有调试器——发现自己在鱼缸里就装死。VMI把观测者藏进hypervisor,反检测技术就再往硬件层钻。这场竞赛没有终点,意味着靶场测量的有效性要定期拿最新的反检测样本重新校验——五年前的测量体系,测不出今天的对手。

第二条裂缝:真值也会撒谎。真值采集器记录的是"注入器以为自己干了什么",注入器自己也会出错——脚本没触发、载荷没送达、时序被打乱,真值日志照记不误。替身恶意代码(TMAL那一类)的行为跟真货之间,永远隔着一层"复刻保真度"的窗户纸。裁判的哨子也会走音,所以成熟的做法是给真值也配验证:注入成功与否,要拿网络侧的独立观测回证。

第三条裂缝:数据的海,信号的荒。自动化采集把数据量堆上去容易,分析能力跟上难。一场中等规模试验采下来的原始数据以TB计,而能把多源数据关联成因果链的分析员,是每个靶场最稀缺的人力。数据越采越多,结论越出越慢——采集自动化的尽头,是分析自动化这道还没跨过去的坎。

第四条裂缝:测量数据自己就是密级难题。高密级试验采下的每一行日志都带密级,可分析人才、分析工具、协作环境大多在低密区。数据下山要过海关,周期以周计——墙内的仗三天打完了,墙外的分析做三个月。测量学最大的吞吐瓶颈,不在采集,在下山。

十二、结语:先信尺子,再信结论

这篇回答的是"靶场凭什么让人信"。答案朴素得近乎笨拙:先信尺子,再信结论。四条采集管子罩住网络、主机、应用和数据链,一张带外隐蔽网保住眼睛不被掐,真值制度给每场考试备好标准答案,时统和协调员日志兜住因果链的尊严,嵌入式仪器和合同条款把测量权提前锁死,最后由充分性评估和任务影响定级把数据熬成结论。环环都不性感,环环都省不得。

回头看,这个系列拆到这里,一个规律越来越清楚:美国人建靶场,真正肯下笨功夫的地方都不在聚光灯下——净化规程、运维值守、接入审批,再到这篇的采集、真值、时统、协调员日志。这些事情的共同点是:做好了没人夸,做砸了就全完。聚光灯下的部分是靶场的脸,这些笨功夫是靶场的信用。

对造靶场的人,这篇只有一句要紧话:测量系统要和靶场同一天开工,指标和schema要先于数据存在,仪器接口和日志权利要早于设备进场写进合同。

数字不会自己说话。它只会被记录、被对齐、被对照、被追问——然后,才轮到你信它。

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