
Генерирует воспроизводимые сетевые топологии 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/ при удалении сценариев через графический интерфейс.| Папка | Назначение |
|---|---|
core_topo_gen/cli.py | Точка входа CLI; управляет разбором, планированием, построением и генерацией отчётов |
core_topo_gen/parsers/ | Модульные XML-парсеры для каждого раздела сценария (информация об узлах, маршрутизация, трафик, сервисы, уязвимости, сегментация) |
core_topo_gen/builders/topology.py | Строит звездообразные, мультикоммутаторные и сегментированные топологии с использованием gRPC API CORE |
core_topo_gen/utils/ | Вспомогательные распределители, генераторы отчётов, помощники для трафика/сегментации/сервисов |
webapp/ | Веб-интерфейс Flask, шаблоны, потоковая передача журналов SSE, сохранение истории |
webapp/templates/partials/dock.html | Постоянная панель журналов/XML с переключателем автопрокрутки и фильтрами |
tests/ | Набор pytest, покрывающий семантику планирования, применение политик, соответствие предпросмотра и поведение CLI |
docs/ | Дополнительные материалы документации (скриншоты, заметки) |
core-python не найден** – задайте WEBUI_PYпередmake host-webили положитесь наpython3; при необходимости бэкенд использует sys.executable`.nginx/certs) – запустите scripts/dev_gen_certs.sh или make dev-certs перед запуском nginx через compose.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}
}