引子
在现代网络安全运营中,攻击面管理(ASM)的核心挑战不在于单纯的“扫描”,而在于如何从海量的、碎片化的互联网数据中,构建出一套准确、动态且具备长周期观测能力的资产清单。
传统的漏洞扫描往往是基于“快照”的,而成熟的 ASM 系统架构必须是基于“时间流”的。本文将提出一种基于有限状态机的 ASM 测绘架构设计。
该设计将资产测绘抽象为 5 个明确的生命周期节点,通过严格的状态流转逻辑,确保资产从发现到监控的全流程数据质量,实现对资产变化的精准感知。
一、 时间驱动的资产状态机
本架构设计的核心思想是时间驱动。任何互联网资产都不是静止的,它们随时间产生、存活、变更或消亡。为了系统化地管理这一过程,我们将资产的生命周期抽象为一个包含 5 个状态的闭环系统。
每个状态不仅代表了资产当前的处理阶段,更核心的是为了回答一个明确的战术问题:
DISCOVERED:这个资产存在吗?
VERIFIED:这个资产现在能否连通?
CHARACTERIZED:这个资产是什么?
CANONICAL:这个资产是否具备唯一性?
OBSERVED:这个资产发生了什么变化?
二、 五阶状态测绘流转
1. 阶段一:DISCOVERED(已发现)
核心任务:全量收集
这是系统的入口层,遵循“宁滥勿缺”的原则。在此阶段,系统接入各类数据源(如子域名爆破、证书透明度日志 CT Log、IP 段扩展、Whois 反查等)。
架构设计:
将所有捕获到的潜在标识(域名、IP、URL)作为“候选资产”入库。
保持容错,此阶段允许高噪声(假阳性),不进行清洗,只负责“发现”。
状态输出:资产进入待验证队列。
2. 阶段二:VERIFIED(已验证)
核心任务:去伪存真
这是系统的过滤器。目的是确认资产在物理网络层面的可达性,剔除沉没资产或无效记录。
架构设计:
执行轻量级存活探测:DNS 解析验证、ICMP/TCP 可达性测试、端口扫描。
异常处理:若资产不可达,将其标记为“暂时失效”或回退状态,避免进入后续高资源消耗的分析流程。
状态输出:仅通过存活验证的资产流转至下一层。
3. 阶段三:CHARACTERIZED(已识别)
核心任务:资产定性
在此阶段,系统对活跃资产进行深度扫描,提取指纹信息,完成“我是谁”的画像构建。
架构设计:
协议识别:区分 HTTP/HTTPS、SSH、RDP 等业务协议。
服务指纹:识别 Web 容器(Nginx/Apache)、开发框架(Spring/Django)、WAF 等。
元数据提取:抓取 TLS 证书详情、HTTP Header、Banner 信息。
状态输出:资产具备了丰富的基础属性,标记为“已知类型”。
4. 阶段四:CANONICAL(已归一)
核心任务:消除歧义与唯一ID分配
这是架构设计中最关键的“收敛”步骤。网络资产往往存在多对一的关系(例如多个子域名指向同一个 IP 上的同一个 Web 服务)。
架构设计:
实体合并:基于指纹和解析关系,将通过不同路径发现的同一实体合并。
ID 分配:分配系统内唯一的 Canonical Asset ID。
核心价值:确立了资产的“法律身份”,后续所有的历史记录、漏洞关联、风险评分都将绑定在这个唯一的 ID 上,而非不稳定的 IP 或域名。
5. 阶段五:OBSERVED(已观测)
核心任务:时间线监控
资产进入稳定态,系统开启长周期监控模式。这是 ASM 与单次扫描的本质区别。
架构设计:
周期性轮询:基于策略(如每日/每周)对 Asset ID 进行重新验证。
Diff 分析:对比当前状态快照与历史快照。
变更捕捉:记录新开放的端口、证书更新、服务组件版本变化等。
状态循环:一旦触发变更或完成一轮周期,资产将根据情况重新进入 VERIFIED 或 CHARACTERIZED 状态,确保持续的准确性。
三、 状态流转规则与系统稳定性
为了保证系统运行的逻辑严密性,必须严格遵守以下流转约束:
1. 线性推进原则
资产数据的处理流水线必须严格遵循:
DISCOVERED -> VERIFIED -> CHARACTERIZED -> CANONICAL -> OBSERVED
每一个后置状态都强依赖于前置状态的数据产出。例如,没有完成归一化(CANONICAL)的资产,无法进行有效的历史变更对比(OBSERVED)。
2. 闭环反馈机制
系统不是单向的管道,而是一个闭环:
OBSERVED -> VERIFIED:在监控周期到达时,资产自动回流至验证阶段,重新确认存活。
异常回退:如果在 OBSERVED 阶段发现资产连续不可达,资产状态需降级回退至 DISCOVERED 或失效池,等待下一次被唤醒。
四、 总结
采用基于状态机的 ASM 架构设计,不仅仅是为了通过技术手段扫描端口,而是为了构建一个动态演化、持续更新的资产模型。
该架构的优势在于:
清晰的边界:每个状态只回答一个问题,降低了单一模块的耦合度。
数据一致性:通过归一化节点,解决了资产重复计算和身份漂移的问题。
变化感知能力:将“扫描”升级为“观测”,使安全团队能够捕捉到攻击面随时间产生的细微漂移,从而做出更快速的响应。
声明:本文来自先进攻防,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。