
Genera topologie di rete CORE riproducibili da file di scenario XML per formazione e sperimentazione sulla cybersecurity. Fornisce Web GUI e CLI per anteprime deterministiche delle topologie, assegnazione delle vulnerabilità e generazione del traffico.
Genera topologie di rete CORE riproducibili da file XML di scenario utilizzando una ricca GUI Web o un'interfaccia a riga di comando.
Visualizza la galleria di immagini della WebUI docs/screenshots.md.
core-daemon in esecuzionepython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090 per impostazione predefinita (il target compose del reverse proxy nginx è https://localhost).coreadmin / coreadmin; cambialo subito in Profilo → Cambia password.make host-web, make host-web-nginx o make host-web PROXY=envoy. Lo script di supporto scripts/dev_gen_certs.sh genera certificati autofirmati con supporto SAN.Existing Router, Existing Switch o New Router. La scelta legacy New Switch è stata rimossa per prevenire il fan-out di switch nascosti; gli scenari salvati che la usano vengono normalizzati a durante il caricamento.python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
Opzioni principali:
--scenario NAME seleziona una voce di scenario specifica--host / --port sovrascrive l'endpoint gRPC di CORE (default 127.0.0.1:50051)--layout-density {compact|normal|spacious} regola la spaziatura della mappa--seg-include-hosts, --seg-allow-docker-ports, --nat-mode, --dnat-prob ottimizzano la segmentazione--traffic-pattern, --traffic-rate, --traffic-content sovrascrivono i default del traffico./reports/.base_nodes, additive_nodes, combined_nodes, ecc.) per garantire la fedeltà del round-trip.explicit_count, derived_count e total_planned.scenario_total_nodes riepiloga gli host, i router e i target di vulnerabilità pianificati.core_topo_gen.parsers.planning_metadata.parse_planning_metadata().existing_router, existing_switch o new_router; i valori legacy vengono forzati a così le anteprime rimangono deterministiche e le sovrapposizioni di switch non vengono sintetizzate implicitamente.r2r_mode per singolo elemento di routing supporta Exact, Uniform, NonUniform, Min, Max e le mesh legacy legate a --router-mesh-style.r2s_mode, r2s_edges, r2s_hosts_min/max opzionali) raggruppano gli host dietro switch dedicati, con “Exact=1” che aggrega tutti gli host per router in un unico switch./tmp/traffic (con i servizi associati) e rispettano le sovrascritture per pattern, rate, jitter e suggerimenti di contenuto./tmp/segmentation insieme a segmentation_summary.json; la modalità NAT, la probabilità DNAT, l'inclusione degli host e le autorizzazioni delle porte docker sono configurabili./tmp/vulns, con metadati incorporati nei nodi CORE.core_topo_gen.plugins.traffic.register() per un codice mittente/ricevente su misura../reports/scenario_report_<timestamp>.md) elencano le statistiche di topologia, i metadati di pianificazione, i risultati di segmentazione e gli artefatti di runtime. Ogni esecuzione genera anche un riepilogo JSON accanto al file Markdown (scenario_report_<timestamp>.json) più CSV di connettività per esecuzione quando sono disponibili i dati sui gradi dei router.outputs/run_history.json per la pagina Report.outputs/ quando gli scenari vengono eliminati tramite la GUI.core-python non trovato** – imposta WEBUI_PYprima dimake host-webo affidati apython3; il backend ripiega su sys.executable` se necessario.nginx/certs) – esegui scripts/dev_gen_certs.sh o make dev-certs prima di avviare nginx tramite compose.core-daemon non raggiungibile` – verifica lo stato del daemon e host/porta; la modale di esecuzione della GUI mostrerà subito i problemi di connessione.Pull request e segnalazioni di problemi sono benvenute! Prima di inviare modifiche, esegui i target pytest pertinenti (pytest -q) e mantieni aggiornata la documentazione quando il comportamento cambia.
@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}
}
Existing Routernew_switchexisting_router| Cartella | Scopo |
|---|
core_topo_gen/cli.py | Punto di ingresso della CLI; orchestra il parsing, la pianificazione, la costruzione e la generazione dei report |
core_topo_gen/parsers/ | Parser XML modulari per sezione di scenario (informazioni sui nodi, routing, traffico, servizi, vulnerabilità, segmentazione) |
core_topo_gen/builders/topology.py | Costruisce topologie star, multi-switch e segmentate usando le API gRPC di CORE |
core_topo_gen/utils/ | Allocatori di supporto, writer di report, helper per traffico/segmentazione/servizi |
webapp/ | Web UI Flask, template, streaming dei log SSE, persistenza della cronologia |
webapp/templates/partials/dock.html | Dock persistente di log/XML con toggle di follow e filtri |
tests/ | Suite pytest che copre la semantica di pianificazione, l'applicazione delle policy, la parità delle anteprime e i comportamenti della CLI |
docs/ | Risorse di documentazione aggiuntive (schermate, note) |