Gymnasiumと同様の標準APIと参照環境を提供する、マルチエージェント強化学習研究向けのPythonライブラリです。
microsoft/CyberBattleSim
OpenAI Gymインターフェースを備えた、シミュレーション上の企業ネットワークで自動攻撃エージェントと防御エージェントの相互作用を研究するためのプラットフォーム。
- スター
- 1,804
- フォーク
- 283
- 未解決の Issue
- 22
- 最終コミット
- 8 日前
これは何?
CyberBattleSimは、抽象化されたシミュレーション上の企業ネットワークで自動エージェントがどのように振る舞うかを研究するためのプラットフォームです。ネットワークは固定トポロジと、各ノードに仕込まれた一連の脆弱性によって定義されます。攻撃エージェントは、ネットワーク内を横方向に移動して脆弱性を悪用し、一部のノードの支配権を得ようとします。一方、基本的な確率的防御エージェントは攻撃を検知し、感染したノードを再イメージ化して対処します。
環境はPythonのOpenAI Gymインターフェースを備えているため、強化学習アルゴリズムの訓練に利用できます。エージェントは目標達成までに必要なシミュレーションステップ数と、訓練エポックを通じた累積報酬で比較されます。リポジトリにはベースラインエージェント、キャプチャー・ザ・フラッグ形式の簡易環境やチェーントポロジなどのサンプルネットワーク、対話的な探索やベンチマーク用のJupyter Notebookが含まれています。
このシミュレーションは意図的に簡略化されています。横方向の移動に焦点を当て、実際のネットワークトラフィックはモデル化していないため、抽象的な環境にとどまり、実システムに対する直接的な利用には適していません。
主な機能
- 01抽象化された企業ネットワーク内での横方向の移動と脆弱性の悪用をシミュレーションします。
- 02強化学習エージェントの訓練に使えるOpenAI Gymインターフェースを提供します。
- 03侵害されたノードを検知して再イメージ化する、確率的な防御エージェントを備えています。
- 04ベースラインエージェント、サンプルトポロジ、ベンチマーク用Notebookが含まれています。
- 05目標達成までのステップ数と累積報酬でエージェントを比較します。
ユースケース
- ネットワークのトポロジや構成が横方向の移動を伴う攻撃に与える影響を研究する。
- 大規模な離散アクション空間で強化学習アルゴリズムのベンチマークを行う。
- 安全で抽象化された環境で、攻撃エージェントと防御エージェントの相互作用を研究する。
- 対話的なNotebookを通じて、自動化されたサイバーセキュリティの概念を学生に教える。
クイックスタート
- 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 は何に使えますか?
- ネットワークのトポロジや構成が横方向の移動を伴う攻撃に与える影響を研究する。 大規模な離散アクション空間で強化学習アルゴリズムのベンチマークを行う。 安全で抽象化された環境で、攻撃エージェントと防御エージェントの相互作用を研究する。 対話的なNotebookを通じて、自動化されたサイバーセキュリティの概念を学生に教える。
- 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環境で、クアッドコプター向けの単一・マルチエージェント強化学習コントローラーを訓練できます。