Gymnasium과 유사한 표준 API와 참조 환경을 제공하는 멀티 에이전트 강화학습 연구용 Python 라이브러리입니다.
microsoft/CyberBattleSim
OpenAI Gym 인터페이스를 통해 시뮬레이션된 기업 네트워크에서 자동화된 공격자 및 방어자 에이전트의 상호작용을 연구하는 플랫폼입니다.
- 스타
- 1,804
- 포크
- 283
- 열린 이슈
- 22
- 마지막 커밋
- 9일 전
어떤 프로젝트인가요?
CyberBattleSim은 추상화된 시뮬레이션 기업 네트워크에서 자동화 에이전트의 행동을 연구하는 플랫폼입니다. 네트워크는 고정된 토폴로지와 노드에 심어 둔 취약점 집합으로 정의됩니다. 공격자 에이전트는 네트워크 내에서 측면 이동을 하고 취약점을 악용해 네트워크 일부를 장악하려 하며, 기본 확률적 방어자는 공격을 탐지하고 감염된 노드를 다시 이미지화해 피해를 완화합니다.
환경은 Python OpenAI Gym 인터페이스를 제공하므로 강화학습 알고리즘을 학습시킬 수 있습니다. 에이전트는 목표에 도달하는 데 필요한 시뮬레이션 단계 수와 학습 에포크 전반의 누적 보상을 기준으로 비교합니다. 저장소에는 기준 에이전트, CTF 형태의 장난감 환경과 체인 토폴로지 같은 샘플 네트워크, 대화형 탐색 및 벤치마크를 위한 Jupyter 노트북이 포함되어 있습니다.
이 시뮬레이션은 의도적으로 단순화되어 있습니다. 측면 이동에 초점을 맞추고 실제 네트워크 트래픽은 모델링하지 않으므로 추상적인 환경을 유지하며 실제 시스템에 직접 사용하는 용도로는 적합하지 않습니다.
핵심 기능
- 01추상적인 기업 네트워크에서 측면 이동과 취약점 악용을 시뮬레이션합니다.
- 02강화학습 에이전트를 학습시키기 위한 OpenAI Gym 인터페이스를 제공합니다.
- 03침해된 노드를 탐지하고 다시 이미지화하는 확률적 방어자가 포함되어 있습니다.
- 04기준 에이전트, 샘플 토폴로지 및 벤치마크 노트북을 제공합니다.
- 05목표까지 걸리는 단계 수와 누적 보상을 기준으로 에이전트를 비교합니다.
활용 사례
- 네트워크 토폴로지와 구성이 측면 이동 공격에 미치는 영향을 연구합니다.
- 규모가 큰 이산 행동 공간에서 강화학습 알고리즘을 벤치마킹합니다.
- 안전한 추상 환경에서 공격자 및 방어자 에이전트의 상호작용을 연구합니다.
- 대화형 노트북으로 학생들에게 자동화된 사이버 보안 개념을 가르칩니다.
빠른 시작
- 1
저장소를 클론합니다
git clone https://github.com/microsoft/CyberBattleSim.git - 2
uv 패키지 관리자를 설치합니다(이미 설치되어 있으면 건너뜁니다)
bash install-uv.sh - 3
초기화 스크립트를 실행해 가상 환경을 만듭니다
bash init.sh - 4
기준 RL 에이전트로 짧은 시뮬레이션을 실행합니다
python -m cyberbattle.agents.baseline.run --training_episode_count 5 --eval_episode_count 3 --iteration_count 100 --rewardplot_width 80 --chain_size=4 --ownership_goal 0.2
사용 전 알아둘 점
- 이 시뮬레이션은 매우 추상화된 연구 모델이며, 실제 네트워크를 위한 도구가 아닙니다.
- 지원 환경은 Linux 또는 WSL입니다. Windows에서 직접 실행하는 것은 지원되지 않습니다.
- 미리 빌드된 Docker 이미지는 비공개이므로 Dockerfile에서 직접 다시 빌드해야 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- CyberBattleSim은(는) 무엇인가요?
- OpenAI Gym 인터페이스를 통해 시뮬레이션된 기업 네트워크에서 자동화된 공격자 및 방어자 에이전트의 상호작용을 연구하는 플랫폼입니다. CyberBattleSim은 추상화된 시뮬레이션 기업 네트워크에서 자동화 에이전트의 행동을 연구하는 플랫폼입니다. 네트워크는 고정된 토폴로지와 노드에 심어 둔 취약점 집합으로 정의됩니다. 공격자 에이전트는 네트워크 내에서 측면 이동을 하고 취약점을 악용해 네트워크 일부를 장악하려 하며, 기본 확률적 방어자는 공격을 탐지하고 감염된 노드를 다시 이미지화해 피해를 완화합니다.
- CyberBattleSim은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- CyberBattleSim은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- CyberBattleSim은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. CyberBattleSim의 마지막 커밋은 2026년 10월 30일입니다.
- CyberBattleSim은(는) 어디에 사용할 수 있나요?
- 네트워크 토폴로지와 구성이 측면 이동 공격에 미치는 영향을 연구합니다. 규모가 큰 이산 행동 공간에서 강화학습 알고리즘을 벤치마킹합니다. 안전한 추상 환경에서 공격자 및 방어자 에이전트의 상호작용을 연구합니다. 대화형 노트북으로 학생들에게 자동화된 사이버 보안 개념을 가르칩니다.
- CyberBattleSim는 어떻게 설치하나요?
- 저장소를 클론합니다: git clone https://github.com/microsoft/CyberBattleSim.git uv 패키지 관리자를 설치합니다(이미 설치되어 있으면 건너뜁니다): bash install-uv.sh 초기화 스크립트를 실행해 가상 환경을 만듭니다: bash init.sh 기준 RL 에이전트로 짧은 시뮬레이션을 실행합니다: python -m cyberbattle.agents.baseline.run --training_episode_count 5 --eval_episode_count 3 --iteration_count 100 --rewardplot_width 80 --chain_size=4 --ownership_goal 0.2
- CyberBattleSim은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/microsoft/CyberBattleSim
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
단일 에이전트 강화 학습 환경을 위한 표준 Python API와 참조 환경 모음으로, OpenAI Gym에서 포크되었습니다.
자율주행 및 의사결정 에이전트의 학습과 테스트를 위한 Gymnasium 호환 시뮬레이션 주행 환경 모음입니다.
센서 시뮬레이션과 Gymnasium 스타일 환경을 제공하는 강화 학습 및 자율주행 연구용 경량 Python 주행 시뮬레이터입니다.
에이전트 간 소통, 협력, 경쟁 연구를 위한 PettingZoo 스타일의 다중 에이전트 입자 환경 모음입니다.
쿼드콥터용 단일·멀티 에이전트 강화학습 컨트롤러를 훈련하는 PyBullet 기반 Gymnasium 환경입니다.