使用丰富的 Web GUI 或命令行界面,从场景 XML 文件生成可复现的 CORE 网络拓扑。
查看 WebUI 图片库 docs/screenshots.md。
core-daemonpython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090(反向代理 nginx compose 目标为 https://localhost)。coreadmin / coreadmin 账户;请立即在 个人资料 → 更改密码 下更改它。make host-web、make host-web-nginx 或 make host-web PROXY=envoy 配置 TLS 反向代理。辅助脚本 scripts/dev_gen_certs.sh 会签发支持 SAN 的自签名证书。Existing Router、Existing Switch 或 New Router。旧版 New Switch 选项已被移除,以防止隐藏的交换机扇出;使用该选项保存的场景在加载时会规范化为 Existing Router。python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
常用选项:
--scenario NAME 选择特定的场景条目--host / --port 覆盖 CORE gRPC 端点(默认为 127.0.0.1:50051)--layout-density {compact|normal|spacious} 调整地图间距--seg-include-hosts、--seg-allow-docker-ports、--nat-mode、--dnat-prob 微调分段--traffic-pattern、--traffic-rate、--traffic-content 覆盖流量默认值./reports/。base_nodes、additive_nodes、combined_nodes 等),以保证往返保真度。explicit_count、derived_count 和 total_planned 记录派生数量与显式数量。scenario_total_nodes 汇总了计划的主机、路由器和漏洞目标。core_topo_gen.parsers.planning_metadata.parse_planning_metadata()。existing_router、existing_switch 或 new_router;旧版 new_switch 值会被强制转换为 existing_router,以便预览保持确定性,并且不会隐式合成交换机叠加。r2r_mode 支持 Exact、Uniform、NonUniform、Min、Max 以及与 --router-mesh-style 关联的旧版网格。r2s_mode、r2s_edges、可选 r2s_hosts_min/max)将主机重新分组到专用交换机后面,其中“Exact=1”会将每个路由器的所有主机聚合到单个交换机中。/tmp/traffic(附带配套服务),并遵循对模式、速率、抖动和内容提示的覆盖。/tmp/segmentation,旁边有 segmentation_summary.json;NAT 模式、DNAT 概率、主机包含和 docker 端口许可均可配置。/tmp/vulns 中附加每个节点的 docker-compose 文件,并将元数据嵌入 CORE 节点。core_topo_gen.plugins.traffic.register() 注册,以使用定制的发送方/接收方代码。./reports/scenario_report_<timestamp>.md)列举拓扑统计信息、规划元数据、分段结果和运行时产物。每次运行还会在 Markdown 文件旁边生成 JSON 摘要(scenario_report_<timestamp>.json),并在存在路由器度数数据时生成每次运行的连接性 CSV。outputs/run_history.json 中,供报告页面使用。outputs/ 下的相关输出。core-python 未找到** – 在 make host-web之前设置WEBUI_PY,或依赖 python3;如有需要,后端会回退到 sys.executable`。nginx/certs) – 在通过 compose 启动 nginx 之前运行 scripts/dev_gen_certs.sh 或 make dev-certs。core-daemon 无法访问` – 验证守护进程状态及主机/端口;GUI 运行模态框会立即显示连接问题。欢迎提交拉取请求和问题报告!请在提交更改之前运行相关的 pytest 目标(pytest -q),并在行为发生变化时保持文档更新。
@article{rodriguez2025agentcyte,
title={AgentCyTE: Leveraging Agentic AI to Generate Cybersecurity Training & Experimentation Scenarios},
author={Rodriguez, Ana M and Acosta, Jaime and Kotal, Anantaa and Piplai, Aritran},
journal={Annual Computer Security Applications Conference Workshop (ACSACW)},
year={2025}
}
| 文件夹 | 用途 |
|---|
core_topo_gen/cli.py | CLI 入口点;协调解析、规划、构建和报告生成 |
core_topo_gen/parsers/ | 按场景部分划分的模块化 XML 解析器(节点信息、路由、流量、服务、漏洞、分段) |
core_topo_gen/builders/topology.py | 使用 CORE gRPC API 构建星型、多交换机和分段拓扑 |
core_topo_gen/utils/ | 辅助分配器、报告写入器、流量/分段/服务辅助函数 |
webapp/ | Flask Web UI、模板、SSE 日志流式传输、历史持久化 |
webapp/templates/partials/dock.html | 带跟随切换和过滤器的持久化日志/XML 日志坞 |
tests/ | 覆盖规划语义、策略执行、预览一致性和 CLI 行为的 Pytest 测试套件 |
docs/ | 附加文档资源(截图、说明) |