
XML 시나리오 파일에서 재현 가능한 CORE 네트워크 토폴로지를 생성하여 사이버보안 훈련 및 실험에 활용할 수 있습니다. 결정론적 토폴로지 미리보기, 취약점 할당, 트래픽 생성을 위한 Web GUI 및 CLI를 제공합니다.
풍부한 Web GUI 또는 명령줄 인터페이스를 사용하여 시나리오 XML 파일에서 재현 가능한 CORE 네트워크 토폴로지를 생성합니다.
WebUI 이미지 갤러리 docs/screenshots.md를 확인하세요.
core-daemon 실행 중python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
http://127.0.0.1:9090에 접속합니다 (역방향 프록시 nginx compose 대상은 https://localhost).coreadmin / coreadmin 계정이 생성됩니다. 즉시 Profile → Change Password에서 변경하세요.make host-web, make host-web-nginx 또는 make host-web PROXY=envoy로 TLS 역방향 프록시를 구성합니다. 도우미 스크립트 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 CORE gRPC 엔드포인트 재정의 (기본값 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 및 --router-mesh-style에 연결된 레거시 메시를 지원합니다.r2s_mode, r2s_edges, 선택적 r2s_hosts_min/max)은 호스트를 전용 스위치 뒤에 재그룹화하며, “Exact=1”은 라우터별 모든 호스트를 단일 스위치로 집계합니다./tmp/traffic에 생성되며(동반 서비스 포함) 패턴, 속도, 지터 및 콘텐츠 힌트에 대한 재정의를 따릅니다.segmentation_summary.json과 함께 /tmp/segmentation에 생성됩니다. NAT 모드, DNAT 확률, 호스트 포함 및 docker 포트 허용은 구성 가능합니다./tmp/vulns에 첨부합니다.core_topo_gen.plugins.traffic.register()를 통해 등록하여 고유한 송신자/수신자 코드를 사용할 수 있습니다../reports/scenario_report_<timestamp>.md)는 토폴로지 통계, 계획 메타데이터, 분할 결과 및 런타임 산출물을 열거합니다. 각 실행은 Markdown 파일과 함께 JSON 요약(scenario_report_<timestamp>.json)을 생성하며, 라우터 차수 데이터가 있는 경우 실행별 연결 CSV도 생성합니다.outputs/run_history.json에 저장됩니다.outputs/ 아래의 관련 출력을 정리하면서 보고서는 유지합니다.core-python 찾을 수 없음** – make host-web전에WEBUI_PY를 설정하거나 python3에 의존하세요. 백엔드는 필요한 경우 sys.executable`로 폴백합니다.nginx/certs) – nginx를 구성하기 전에 scripts/dev_gen_certs.sh 또는 make dev-certs를 실행하세요.core-daemon 연결 불가` – 데몬 상태와 호스트/포트를 확인하세요. GUI 실행 모달이 연결 문제를 즉시 표시합니다.Pull request 및 이슈 보고를 환영합니다! 변경 사항을 제출하기 전에 관련 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}
}
| 폴더 | 용도 |
|---|
core_topo_gen/cli.py | CLI 진입점; 파싱, 계획, 구축 및 보고서 생성을 조율합니다 |
core_topo_gen/parsers/ | 시나리오 섹션별 모듈식 XML 파서 (노드 정보, 라우팅, 트래픽, 서비스, 취약점, 분할) |
core_topo_gen/builders/topology.py | CORE gRPC API를 사용하여 스타, 멀티스위치 및 분할 토폴로지를 구축합니다 |
core_topo_gen/utils/ | 지원 할당자, 보고서 작성기, 트래픽/분할/서비스 헬퍼 |
webapp/ | Flask Web UI, 템플릿, SSE 로그 스트리밍, 기록 영속화 |
webapp/templates/partials/dock.html | 팔로우 토글 및 필터가 있는 영구 로그/XML 독 |
tests/ | 계획 의미론, 정책 시행, 미리보기 패리티 및 CLI 동작을 다루는 Pytest 스위트 |
docs/ | 추가 문서 자산 (스크린샷, 메모) |