flowchart LR
A1["IntelligenceAgent
情报分析智能体"] A2["EnvironmentAgent
环境构建智能体"] A3["PoCAgent
攻击生成智能体"] A4["VerifyCaptureAgent
验证采集智能体"] A1 -->|漏洞语义模型| A2 A2 -->|实验环境描述 EDL| A3 A3 -->|PoC 执行结果| A4 A4 -->|验证成功| OUT["攻击流量 / 标签 / 报告"] A4 -->|验证失败反馈| A2
情报分析智能体"] A2["EnvironmentAgent
环境构建智能体"] A3["PoCAgent
攻击生成智能体"] A4["VerifyCaptureAgent
验证采集智能体"] A1 -->|漏洞语义模型| A2 A2 -->|实验环境描述 EDL| A3 A3 -->|PoC 执行结果| A4 A4 -->|验证成功| OUT["攻击流量 / 标签 / 报告"] A4 -->|验证失败反馈| A2
flowchart LR
SEM["VulnSemanticModel"]
R["角色规划
RolePlan"] N["网络规划
NetworkPlan"] C["逐节点配置生成
ConfigPlan"] E["EnvironmentPlan"] D["EnvironmentDescription / EDL"] SEM --> R --> N --> C --> E --> D
RolePlan"] N["网络规划
NetworkPlan"] C["逐节点配置生成
ConfigPlan"] E["EnvironmentPlan"] D["EnvironmentDescription / EDL"] SEM --> R --> N --> C --> E --> D
图 2:IntelligenceAgent 内部逻辑
flowchart TB
I1["输入
CVE 编号 / 漏洞描述 / PoC 片段"] I2["漏洞语义抽取
LLM structured call"] I3["识别核心要素
漏洞类型 / DNS角色 / 受影响版本"] I4["提取触发信息
触发条件 / 关键记录 / 前置条件"] I5["提取验证信息
观测指标 / 阈值 / 不变量"] I6["输出
VulnSemanticModel"] I1 --> I2 --> I3 --> I4 --> I5 --> I6
CVE 编号 / 漏洞描述 / PoC 片段"] I2["漏洞语义抽取
LLM structured call"] I3["识别核心要素
漏洞类型 / DNS角色 / 受影响版本"] I4["提取触发信息
触发条件 / 关键记录 / 前置条件"] I5["提取验证信息
观测指标 / 阈值 / 不变量"] I6["输出
VulnSemanticModel"] I1 --> I2 --> I3 --> I4 --> I5 --> I6
图 3:EnvironmentAgent 内部逻辑
flowchart TB
E1["输入
VulnSemanticModel
失败反馈 feedback 可选"] E2["角色规划
RolePlan
确定 recursive / authoritative / attacker 等节点"] E3["网络规划
NetworkPlan
分配 IP / 子网 / 连通关系"] E4["配置规划
ConfigPlan
逐节点生成配置 / zones / records / runtime options"] E5["环境计划汇总
EnvironmentPlan"] E6["转换为 EDL
EnvironmentDescription"] E7["输出
可部署实验环境"] E1 --> E2 --> E3 --> E4 --> E5 --> E6 --> E7
VulnSemanticModel
失败反馈 feedback 可选"] E2["角色规划
RolePlan
确定 recursive / authoritative / attacker 等节点"] E3["网络规划
NetworkPlan
分配 IP / 子网 / 连通关系"] E4["配置规划
ConfigPlan
逐节点生成配置 / zones / records / runtime options"] E5["环境计划汇总
EnvironmentPlan"] E6["转换为 EDL
EnvironmentDescription"] E7["输出
可部署实验环境"] E1 --> E2 --> E3 --> E4 --> E5 --> E6 --> E7
图 4:PoCAgent 内部逻辑
flowchart TB
P1["输入
VulnSemanticModel + EDL"] P2["读取环境信息
resolver / trigger_qname / qtype / 节点配置"] P3["ReAct 工具循环
Reason - Act - Observe"] P4["调用工具
measure_window / dns_query / capture_traffic / observe_state / flush_cache"] P5["记录工具轨迹
trace"] P6["归纳攻击结果
是否触发 / 放大倍数 / 攻击摘要"] P7["输出
PoCResult"] P1 --> P2 --> P3 --> P4 --> P5 --> P6 --> P7
图 5:VerifyCaptureAgent 内部逻辑VulnSemanticModel + EDL"] P2["读取环境信息
resolver / trigger_qname / qtype / 节点配置"] P3["ReAct 工具循环
Reason - Act - Observe"] P4["调用工具
measure_window / dns_query / capture_traffic / observe_state / flush_cache"] P5["记录工具轨迹
trace"] P6["归纳攻击结果
是否触发 / 放大倍数 / 攻击摘要"] P7["输出
PoCResult"] P1 --> P2 --> P3 --> P4 --> P5 --> P6 --> P7
flowchart TB
V1["输入
VulnSemanticModel + EDL + PoCResult"] V2["确定漏洞族
从 EDL invariants 或 vuln_type 获取"] V3["选择验证策略
metric / threshold / target_node"] V4["抓包与观测
capture_traffic + 对应观测工具"] V5["触发判定
比较观测结果与阈值"] V6["生成证据
evidence / pcap / failure_category"] V7["输出
VerificationReport"] V8["成功
生成 label"] V9["失败
生成反馈给 EnvironmentAgent"] V1 --> V2 --> V3 --> V4 --> V5 --> V6 --> V7 V7 --> V8 V7 --> V9
VulnSemanticModel + EDL + PoCResult"] V2["确定漏洞族
从 EDL invariants 或 vuln_type 获取"] V3["选择验证策略
metric / threshold / target_node"] V4["抓包与观测
capture_traffic + 对应观测工具"] V5["触发判定
比较观测结果与阈值"] V6["生成证据
evidence / pcap / failure_category"] V7["输出
VerificationReport"] V8["成功
生成 label"] V9["失败
生成反馈给 EnvironmentAgent"] V1 --> V2 --> V3 --> V4 --> V5 --> V6 --> V7 V7 --> V8 V7 --> V9
flowchart TB
subgraph EA["EnvironmentAgent"]
IN1["VulnSemanticModel"]
IN2["失败反馈 feedback"]
IN3["角色模板 role_template"]
M1["角色规划"]
M2["网络规划"]
M3["配置规划"]
M4["EDL 转换"]
O1["RolePlan"]
O2["NetworkPlan"]
O3["ConfigPlan"]
O4["EnvironmentDescription / EDL"]
IN1 --> M1
IN1 --> M2
IN1 --> M3
IN2 --> M1
IN2 --> M3
IN3 --> M3
M1 --> O1
M2 --> O2
M3 --> O3
O1 --> M4
O2 --> M4
O3 --> M4
M4 --> O4
end
flowchart TB
subgraph VA["验证采集智能体"]
IN1["VulnSemanticModel"]
IN2["EDL 环境"]
IN3["PoCResult"]
IN4["ToolRegistry"]
M1["漏洞族识别"]
M2["验证策略选择"]
M3["抓包与观测"]
M4["触发判定"]
M5["结果生成"]
T1["capture_traffic"]
T2["measure_window"]
T3["cache_integrity"]
T4["DNSSEC check"]
T5["AXFR check"]
T6["process_health"]
O1["evidence"]
O2["pcap"]
O3["label"]
O4["failure_category"]
OUT["VerificationReport"]
IN1 --> M1
IN2 --> M1
M1 --> M2
IN1 --> M2
M2 --> M3
IN4 --> M3
M3 --> T1
M3 --> T2
M3 --> T3
M3 --> T4
M3 --> T5
M3 --> T6
T1 --> O2
T2 --> M4
T3 --> M4
T4 --> M4
T5 --> M4
T6 --> M4
IN3 --> M4
M4 --> O1
M4 --> O3
M4 --> O4
O1 --> M5
O2 --> M5
O3 --> M5
O4 --> M5
M5 --> OUT
end
flowchart LR
subgraph VA["VerifyCaptureAgent"]
IN1["漏洞语义模型
VulnSemanticModel"] IN2["实验环境
EDL"] IN3["攻击执行结果
PoCResult"] M1["验证目标确定
漏洞族 / 观测指标 / 阈值"] M2["证据采集
抓包 / DNS观测 / 状态检查"] M3["触发判定
是否满足漏洞触发条件"] M4["失败归因
环境问题 / PoC问题 / 未知问题"] M5["标签生成
攻击类型 / CWE / 触发深度"] OUT1["成功输出
pcap + label + evidence"] OUT2["失败输出
failure_category + feedback"] OUT3["VerificationReport"] IN1 --> M1 IN2 --> M1 IN3 --> M3 M1 --> M2 M2 --> M3 M3 -->|触发成功| M5 M3 -->|触发失败| M4 M5 --> OUT1 M4 --> OUT2 OUT1 --> OUT3 OUT2 --> OUT3 end
VulnSemanticModel"] IN2["实验环境
EDL"] IN3["攻击执行结果
PoCResult"] M1["验证目标确定
漏洞族 / 观测指标 / 阈值"] M2["证据采集
抓包 / DNS观测 / 状态检查"] M3["触发判定
是否满足漏洞触发条件"] M4["失败归因
环境问题 / PoC问题 / 未知问题"] M5["标签生成
攻击类型 / CWE / 触发深度"] OUT1["成功输出
pcap + label + evidence"] OUT2["失败输出
failure_category + feedback"] OUT3["VerificationReport"] IN1 --> M1 IN2 --> M1 IN3 --> M3 M1 --> M2 M2 --> M3 M3 -->|触发成功| M5 M3 -->|触发失败| M4 M5 --> OUT1 M4 --> OUT2 OUT1 --> OUT3 OUT2 --> OUT3 end
flowchart LR
subgraph IA["IntelligenceAgent 情报分析智能体"]
IN1["CVE 编号"]
IN2["漏洞描述 / 公告"]
IN3["PoC 片段"]
M["漏洞语义抽取
LLM structured call"] O1["漏洞类型
vuln_type"] O2["必要 DNS 角色
required_roles"] O3["受影响软件版本
affected_versions"] O4["触发条件
trigger_conditions"] O5["关键 DNS 记录
key_records"] O6["前置条件
preconditions"] O7["触发查询
trigger_specs"] O8["观测指标
observables"] O9["不可变约束
invariants"] OUT["VulnSemanticModel
漏洞语义模型"] IN1 --> M IN2 --> M IN3 --> M M --> O1 M --> O2 M --> O3 M --> O4 M --> O5 M --> O6 M --> O7 M --> O8 M --> O9 O1 --> OUT O2 --> OUT O3 --> OUT O4 --> OUT O5 --> OUT O6 --> OUT O7 --> OUT O8 --> OUT O9 --> OUT end
LLM structured call"] O1["漏洞类型
vuln_type"] O2["必要 DNS 角色
required_roles"] O3["受影响软件版本
affected_versions"] O4["触发条件
trigger_conditions"] O5["关键 DNS 记录
key_records"] O6["前置条件
preconditions"] O7["触发查询
trigger_specs"] O8["观测指标
observables"] O9["不可变约束
invariants"] OUT["VulnSemanticModel
漏洞语义模型"] IN1 --> M IN2 --> M IN3 --> M M --> O1 M --> O2 M --> O3 M --> O4 M --> O5 M --> O6 M --> O7 M --> O8 M --> O9 O1 --> OUT O2 --> OUT O3 --> OUT O4 --> OUT O5 --> OUT O6 --> OUT O7 --> OUT O8 --> OUT O9 --> OUT end
更简洁一点的论文版:
flowchart LR
subgraph IA["IntelligenceAgent"]
IN["输入材料
CVE 编号 / 漏洞描述 / PoC 片段"] M["漏洞语义抽取"] A["漏洞对象
vuln_type / affected_versions"] B["环境需求
required_roles / preconditions / key_records"] C["触发语义
trigger_conditions / trigger_specs"] D["验证语义
observables / invariants"] OUT["VulnSemanticModel"] IN --> M M --> A M --> B M --> C M --> D A --> OUT B --> OUT C --> OUT D --> OUT end
CVE 编号 / 漏洞描述 / PoC 片段"] M["漏洞语义抽取"] A["漏洞对象
vuln_type / affected_versions"] B["环境需求
required_roles / preconditions / key_records"] C["触发语义
trigger_conditions / trigger_specs"] D["验证语义
observables / invariants"] OUT["VulnSemanticModel"] IN --> M M --> A M --> B M --> C M --> D A --> OUT B --> OUT C --> OUT D --> OUT end
flowchart LR
subgraph EA["EnvironmentAgent"]
IN["输入
VulnSemanticModel + feedback"] A["角色规划
RolePlan"] B["网络规划
NetworkPlan"] C["配置规划
ConfigPlan"] D["一致性汇聚
节点 / 连边 / Zone / 记录 / 不变量"] OUT["EDL
EnvironmentDescription"] IN --> A IN --> B IN --> C A --> D B --> D C --> D D --> OUT end
Reply by EmailVulnSemanticModel + feedback"] A["角色规划
RolePlan"] B["网络规划
NetworkPlan"] C["配置规划
ConfigPlan"] D["一致性汇聚
节点 / 连边 / Zone / 记录 / 不变量"] OUT["EDL
EnvironmentDescription"] IN --> A IN --> B IN --> C A --> D B --> D C --> D D --> OUT end
