
Generiert reproduzierbare CORE-Netzwerktopologien aus XML-Szenariodateien für Cybersicherheitstraining und -experimente. Bietet Web-GUI und CLI für deterministische Topologievorschauen, Schwachstellenzuweisung und Trafficgenerierung.
Erzeugen Sie reproduzierbare CORE-Netzwerktopologien aus Szenario-XML-Dateien über eine umfangreiche Web-GUI oder eine Befehlszeilenschnittstelle.
Die Bildergalerie der WebUI finden Sie unter 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 erreichbar (Reverse-Proxy-nginx-Compose-Targets https://localhost).coreadmin / coreadmin angelegt; ändern Sie es sofort unter Profil → Passwort ändern.make host-web, make host-web-nginx oder make host-web PROXY=envoy. Das Hilfsskript scripts/dev_gen_certs.sh erstellt selbstsignierte Zertifikate mit SAN-Unterstützung.Existing Router, Existing Switch oder New Router an. Die alte Option New Switch wurde entfernt, um verstecktes Switch-Fan-out zu verhindern; gespeicherte Szenarien, die diese verwenden, werden beim Laden zu normalisiert.python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
Beliebte Optionen:
--scenario NAME – einen bestimmten Szenario-Eintrag auswählen--host / --port – den CORE-gRPC-Endpunkt überschreiben (Standard: 127.0.0.1:50051)--layout-density {compact|normal|spacious} – den Kartenabstand anpassen--seg-include-hosts, --seg-allow-docker-ports, --nat-mode, --dnat-prob – Segmentierung feinjustieren--traffic-pattern, --traffic-rate, --traffic-content – Datenverkehrsstandards überschreiben./reports/.base_nodes, additive_nodes, combined_nodes, usw.).explicit_count, derived_count und total_planned.scenario_total_nodes geplante Hosts, Router und Schwachstellenziele zusammen.core_topo_gen.parsers.planning_metadata.parse_planning_metadata().existing_router, existing_switch oder new_router normalisiert; alte -Werte werden zu umgewandelt, sodass Vorschauen deterministisch bleiben und Switch-Overlays nicht implizit synthetisiert werden.r2r_mode pro Routing-Element unterstützt Exact, Uniform, NonUniform, Min, Max sowie ältere Vermaschungen, die an --router-mesh-style gebunden sind.r2s_mode, r2s_edges, optional r2s_hosts_min/max) gruppieren Hosts hinter dedizierten Switches neu, wobei „Exact=1“ alle Hosts pro Router zu einem einzigen Switch aggregiert./tmp/traffic abgelegt (mit begleitenden Diensten) und respektieren Überschreibungen für Muster, Rate, Jitter und Inhaltshinweise./tmp/segmentation zusammen mit einer segmentation_summary.json abgelegt; NAT-Modus, DNAT-Wahrscheinlichkeit, Host-Einbeziehung und Docker-Port-Freigaben sind konfigurierbar./tmp/vulns an, wobei Metadaten in CORE-Knoten eingebettet werden.core_topo_gen.plugins.traffic.register() für maßgeschneiderten Sender-/Empfänger-Code registrieren../reports/scenario_report_<timestamp>.md) listen Topologiestatistiken, Planungsmetadaten, Segmentierungsergebnisse und Laufzeitartefakte auf. Jeder Lauf erzeugt zusätzlich eine JSON-Zusammenfassung neben der Markdown-Datei (scenario_report_<timestamp>.json) sowie pro Lauf Konnektivitäts-CSVs, wenn Router-Grad-Daten verfügbar sind.outputs/run_history.json gespeichert.outputs/ bereinigt werden, wenn Szenarien über die GUI entfernt werden.core-python not found – setzen Sie WEBUI_PY vor make host-web oder verlassen Sie sich auf python3; das Backend fällt bei Bedarf auf sys.executable zurück.nginx/certs) – führen Sie scripts/dev_gen_certs.sh oder make dev-certs aus, bevor Sie nginx komponieren.core-daemon nicht erreichbar – überprüfen Sie Daemon-Status und Host/Port; das GUI-Ausführungsmodal zeigt Verbindungsprobleme sofort an.Pull Requests und Fehlerberichte sind willkommen! Bitte führen Sie vor dem Einreichen von Änderungen die relevanten pytest-Ziele (pytest -q) aus und halten Sie die Dokumentation aktuell, wenn sich das Verhalten ändert.
@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| Ordner | Zweck |
|---|
core_topo_gen/cli.py | CLI-Einstiegspunkt; orchestriert Parsen, Planung, Erstellung und Berichterstellung |
core_topo_gen/parsers/ | Modulare XML-Parser pro Szenarioabschnitt (Knoteninfo, Routing, Verkehr, Dienste, Schwachstellen, Segmentierung) |
core_topo_gen/builders/topology.py | Erstellt Stern-, Multi-Switch- und segmentierte Topologien mithilfe der CORE-gRPC-APIs |
core_topo_gen/utils/ | Unterstützende Allokatoren, Berichtsschreiber, Verkehrs-/Segmentierungs-/Dienst-Helfer |
webapp/ | Flask-Web-UI, Vorlagen, SSE-Protokollstreaming, Verlaufspersistenz |
webapp/templates/partials/dock.html | Persistentes Protokoll-/XML-Dock mit Follow-Umschalter und Filtern |
tests/ | Pytest-Suite, die Planungssemantik, Richtliniendurchsetzung, Vorschau-Parität und CLI-Verhalten abdeckt |
docs/ | Zusätzliche Dokumentationsressourcen (Screenshots, Notizen) |