
Генерирует воспроизводимые сетевые топологии CORE из XML-файлов сценариев для обучения и экспериментов в области кибербезопасности. Предоставляет Web GUI и CLI для детерминированного просмотра топологий, назначения уязвимостей и генерации трафика.
Создавайте воспроизводимые сетевые топологии CORE из XML-файлов сценариев с помощью многофункционального веб-интерфейса или интерфейса командной строки.
Просмотрите галерею изображений веб-интерфейса 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 нацелен на https://localhost).coreadmin / coreadmin; немедленно смените её в разделе Profile → Change Password.make host-web, make host-web-nginx или make host-web PROXY=envoy. Вспомогательный скрипт 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 – переопределение конечной точки gRPC CORE (по умолчанию 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 и устаревшие mesh-сети, связанные с --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, а метаданные внедряются в узлы CORE.core_topo_gen.plugins.traffic.register() для создания собственного кода отправителя/получателя../reports/scenario_report_<timestamp>.md) перечисляют статистику топологии, метаданные планирования, результаты сегментации и артефакты выполнения. Каждый запуск также создаёт сводку JSON рядом с файлом Markdown (scenario_report_<timestamp>.json), а также CSV-файлы связности для каждого запуска, когда доступны данные о степенях маршрутизаторов.outputs/run_history.json для страницы Reports.outputs/ при удалении сценариев через графический интерфейс.