
Génère des topologies réseau CORE reproductibles à partir de fichiers de scénarios XML pour la formation et l'expérimentation en cybersécurité. Fournit une interface Web (GUI) et une interface en ligne de commande (CLI) pour des aperçus déterministes de topologie, l'affectation de vulnérabilités et la génération de trafic.
Générez des topologies réseau CORE reproductibles à partir de fichiers XML de scénario en utilisant une interface Web riche ou une interface en ligne de commande.
Consultez la galerie d'images de l'interface Web docs/screenshots.md
core-daemon en cours d'exécutionpython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090 (le proxy inverse nginx cible https://localhost via docker-compose).coreadmin / coreadmin ; changez-le immédiatement sous Profil → Changer le mot de passe.make host-web, make host-web-nginx ou make host-web PROXY=envoy. Le script d'aide scripts/dev_gen_certs.sh délivre des certificats auto-signés avec support SAN.Routeur existant, Commutateur existant ou Nouveau routeur. L'ancien choix Nouveau commutateur a été supprimé pour éviter l'extension cachée des commutateurs ; les scénarios sauvegardés qui l'utilisent sont normalisés en Routeur existant lors du chargement.python -m core_topo_gen.cli --xml path/to/scenario.xml --seed 42 --verbose
Options courantes :
--scenario NAME choisir une entrée de scénario spécifique--host / --port remplacer le point de terminaison gRPC CORE (par défaut 127.0.0.1:50051)--layout-density {compact|normal|spacious} ajuster l'espacement de la carte--seg-include-hosts, --seg-allow-docker-ports, --nat-mode, --dnat-prob affiner la segmentation--traffic-pattern, --traffic-rate, --traffic-content remplacer les valeurs par défaut du trafic./reports/.base_nodes, additive_nodes, combined_nodes, etc.) pour une fidélité aller-retour.explicit_count, derived_count et total_planned.scenario_total_nodes résume les hôtes, routeurs et cibles de vulnérabilité planifiés.core_topo_gen.parsers.planning_metadata.parse_planning_metadata().existing_router, existing_switch ou new_router ; les anciennes valeurs new_switch sont converties en existing_router afin que les aperçus restent déterministes et que les superpositions de commutateurs ne soient pas synthétisées implicitement.r2r_mode prend en charge Exact, Uniform, NonUniform, Min, Max et les maillages hérités liés à --router-mesh-style.r2s_mode, r2s_edges, optionnel r2s_hosts_min/max) regroupent les hôtes derrière des commutateurs dédiés, avec « Exact=1 » agrégeant tous les hôtes par routeur en un seul commutateur./tmp/traffic (avec des services compagnons) et respectent les surcharges pour les indices de motif, débit, gigue et contenu./tmp/segmentation accompagnés d'un segmentation_summary.json ; le mode NAT, la probabilité DNAT, l'inclusion des hôtes et les autorisations de ports Docker sont configurables./tmp/vulns, avec des métadonnées intégrées dans les nœuds CORE.core_topo_gen.plugins.traffic.register() pour du code émetteur/récepteur sur mesure.