Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BreakEscape — マウント可能なRailsエンジンで、24以上のサイバーセキュリティ脱出ゲームシナリオを提供。ランダム化されたパスワード、JITコンパイルされたNPCダイアログ、ゲーム状態管理のためのRESTful APIを備えています。実践的なセキュリティトレーニング向けに設計されています。 | Kitploit
ツール/GitHubGitHub/cliffe/breakescape
ウェブセキュリティCTFペネトレーションテスト学習と教育学習パスとコースラボと実践
GitHubcliffe/breakescape

BreakEscape

マウント可能なRailsエンジンで、24以上のサイバーセキュリティ脱出ゲームシナリオを提供。ランダム化されたパスワード、JITコンパイルされたNPCダイアログ、ゲーム状態管理のためのRESTful APIを備えています。実践的なセキュリティトレーニング向けに設計されています。

リポジトリを見る
6249日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

BreakEscape Rails エンジン

マウント可能な Rails Engine として実装された、サイバーセキュリティトレーニング用の脱出ゲームです。

特徴

  • 24以上のサイバーセキュリティ脱出シナリオ
  • 2テーブルスキーマによるサーバーサイドの進捗トラッキング
  • ERBによるゲームインスタンスごとのランダムパスワード
  • NPCダイアログのためのJIT Inkスクリプトコンパイル
  • ポリモーフィックプレイヤーサポート (User/DemoUser)
  • Pundit認可
  • ゲーム状態管理のためのRESTful API
  • セッションベースの状態永続化

インストール

Gemfileに以下を追加:

root@kitploit:~
gem 'break_escape', path: 'path/to/break_escape'

次に:

root@kitploit:~
bundle install
rails break_escape:install:migrations
rails db:migrate
rails db:seed  # オプション:シナリオからミッションを作成

ホストアプリへのマウント

config/routes.rbに以下を追加:

root@kitploit:~
mount BreakEscape::Engine => "/break_escape"

使い方

スタンドアロンモード(開発)

root@kitploit:~
export BREAK_ESCAPE_STANDALONE=true
rails server
# http://localhost:3000/break_escape/ にアクセス

マウントモード(本番)

Hacktivityまたは別のRailsアプリにマウントします。エンジンは、Deviseを介してホストアプリの current_user を使用します。

設定

root@kitploit:~
# config/initializers/break_escape.rb
BreakEscape.configure do |config|
  config.standalone_mode = false  # 開発の場合はtrue
  config.demo_user_handle = 'demo_player'
end

データベーススキーマ

  • break_escape_missions - シナリオメタデータ(name, display_name, published, difficulty)
  • break_escape_games - プレイヤー状態 + シナリオスナップショット(JSONB)
  • break_escape_demo_users - スタンドアロンモードのみ(オプション)

API エンドポイント

  • GET /games/:id/scenario - シナリオJSON(ERB生成)
  • GET /games/:id/ink?npc=X - NPCスクリプト(.inkからJITコンパイル)
  • GET /games/:id/bootstrap - 初期ゲームデータ
  • PUT /games/:id/sync_state - プレイヤー状態の同期
  • POST /games/:id/unlock - アンロック試行の検証
  • POST /games/:id/inventory - インベントリの更新

アーキテクチャ

ERBシナリオ生成

シナリオは .json.erb テンプレートとして保存され、オンデマンドでランダム値を含めてレンダリングされます:

  • <%= random_password %> - ゲームごとに一意のパスワードを生成
  • <%= random_pin %> - 一意の4桁PINを生成
  • <%= random_code %> - 一意の16進コードを生成

JIT Inkコンパイル

NPCダイアログスクリプトは最初のリクエスト時にコンパイルされます(約300ms):

  1. .json が存在し、.ink よりも新しいかを確認
  2. 必要に応じて inklecate を実行してコンパイル
  3. コンパイル済みJSONをキャッシュし、後続のリクエストで使用

状態管理

プレイヤー状態はJSONBカラムに保存:

  • 現在の部屋とアンロック済みの部屋
  • インベントリと収集アイテム
  • NPCとの遭遇
  • グローバル変数(クライアントと同期)
  • 体力とミニゲームの状態

テスト

CI

テストはGitHub Actions上で自動的に実行されます。コミットされた Gemfile.lock は使用するgemの正確なバージョンを固定します。

ネットワークアクセスありのローカル環境

root@kitploit:~
bundle install
bundle exec rails db:create db:migrate RAILS_ENV=test
bundle exec rails test

ネットワークアクセスなしのローカル環境

エンジンには、同階層にあるHacktivityチェックアウトからバンドルをブートストラップする bin/setup スクリプトが同梱されています(Hacktivityには必要なgemがすべてベンダリングされています):

root@kitploit:~
# BreakEscapeのルートから — Hacktivityは ../Hacktivity にある必要があります
bin/setup
bundle exec rails test

# Hacktivityが別の場所にある場合は、HACKTIVITY_DIRを設定:
HACKTIVITY_DIR=/path/to/Hacktivity bin/setup

bin/setup は解決済みの .gem ファイルを vendor/cache/ にコピーし、bundle install --local を実行します。vendor/cache/ と vendor/bundle/ ディレクトリはgitignoreされています。コミットされるのは Gemfile.lock のみです。

ドキュメント

統合ガイドについては HACKTIVITY_INTEGRATION.md を参照してください。

謝辞

プロジェクトに貢献してくださったすべての方々に感謝します。GitHubの履歴をご参照ください。

  • このプロジェクトは、CyBOK 1.1助成金(2023-2024)に関連するCyber Security Body of Knowledge(CyBOK)リソースによって支援されています。
  • このプロジェクトは、CyBOK 1.1助成金(2024-2025)に関連するCyber Security Body of Knowledge(CyBOK)リソースによって支援されています。
  • このプロジェクトは、Security-Informed Safety助成金(2025-2026)に関連するCyber Security Body of Knowledge(CyBOK)リソースによって支援されています。
ツールをダウンロード