Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BreakEscape — 마운트 가능한 Rails 엔진으로, 24개 이상의 사이버보안 이스케이프 룸 시나리오를 제공하며, 무작위화된 비밀번호, JIT 컴파일된 NPC 대화, 게임 상태 관리를 위한 RESTful API를 포함합니다. 실습형 보안 교육을 위해 설계되었습니다. | Kitploit
도구/GitHubGitHub/cliffe/breakescape
Web SecurityCTFPenetration TestingLearning & EducationLearning Paths & CoursesLabs & Practice
GitHubcliffe/breakescape

BreakEscape

마운트 가능한 Rails 엔진으로, 24개 이상의 사이버보안 이스케이프 룸 시나리오를 제공하며, 무작위화된 비밀번호, JIT 컴파일된 NPC 대화, 게임 상태 관리를 위한 RESTful API를 포함합니다. 실습형 보안 교육을 위해 설계되었습니다.

저장소 보기
6248일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

BreakEscape Rails Engine

사이버보안 훈련용 탈출 게임으로, 마운트 가능한 Rails Engine 형태입니다.

Features

  • 24개 이상의 사이버보안 탈출 시나리오
  • 2개 테이블 스키마를 사용한 서버 측 진행 상황 추적
  • ERB를 통한 게임 인스턴스별 무작위 비밀번호 생성
  • NPC 대화를 위한 JIT Ink 스크립트 컴파일
  • 다형성 플레이어 지원 (User/DemoUser)
  • Pundit 권한 부여
  • 게임 상태 관리를 위한 RESTful API
  • 세션 기반 상태 유지

Installation

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  # 선택 사항: 시나리오로 미션 생성

Mounting in Host App

config/routes.rb에 다음을 추가하세요:

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

Usage

Standalone Mode (개발)

root@kitploit:~
export BREAK_ESCAPE_STANDALONE=true
rails server
# http://localhost:3000/break_escape/ 방문

Mounted Mode (프로덕션)

Hacktivity 또는 다른 Rails 앱에 마운트하세요. 엔진은 Devise를 통해 호스트 앱의 current_user를 사용합니다.

Configuration

root@kitploit:~
# config/initializers/break_escape.rb
BreakEscape.configure do |config|
  config.standalone_mode = false  # 개발 시 true
  config.demo_user_handle = 'demo_player'
end

Database Schema

  • break_escape_missions - 시나리오 메타데이터 (name, display_name, published, difficulty)
  • break_escape_games - 플레이어 상태 + 시나리오 스냅샷 (JSONB)
  • break_escape_demo_users - Standalone 모드 전용 (선택 사항)

API Endpoints

  • GET /games/:id/scenario - 시나리오 JSON (ERB 생성)
  • GET /games/:id/ink?npc=X - NPC 스크립트 (JIT 컴파일 .ink)
  • GET /games/:id/bootstrap - 초기 게임 데이터
  • PUT /games/:id/sync_state - 플레이어 상태 동기화
  • POST /games/:id/unlock - 잠금 해제 시도 검증
  • POST /games/:id/inventory - 인벤토리 업데이트

Architecture

ERB 시나리오 생성

시나리오는 .json.erb 템플릿으로 저장되며, 요청 시 무작위 값으로 렌더링됩니다:

  • <%= random_password %> - 게임당 고유 비밀번호 생성
  • <%= random_pin %> - 게임당 고유 4자리 PIN 생성
  • <%= random_code %> - 게임당 고유 16진수 코드 생성

JIT Ink Compilation

NPC 대화 스크립트는 첫 요청 시 컴파일됩니다 (~300ms):

  1. .json 파일이 존재하고 .ink보다 최신인지 확인
  2. 필요시 inklecate를 실행하여 컴파일
  3. 컴파일된 JSON을 캐시하여 이후 요청에 사용

State Management

플레이어 상태는 JSONB 컬럼에 저장:

  • 현재 방 및 잠금 해제된 방
  • 인벤토리 및 수집 항목
  • NPC 만남
  • 전역 변수 (클라이언트와 동기화)
  • 체력 및 미니게임 상태

Testing

CI

테스트는 GitHub Actions에서 자동으로 실행됩니다. 커밋된 Gemfile.lock은 정확한 gem 버전을 고정합니다.

Locally with network access

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

Locally without network access

엔진에는 bin/setup 스크립트가 포함되어 있으며, 형제 디렉토리인 Hacktivity 체크아웃(필요한 모든 gem이 이미 vendor에 있음)에서 번들을 부트스트랩합니다:

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만 커밋됩니다.

Documentation

통합 가이드는 HACKTIVITY_INTEGRATION.md를 참조하세요.

Acknowledgments

프로젝트에 기여해 주신 모든 분들께 감사드립니다. GitHub history를 참조하세요.

  • 이 프로젝트는 CyBOK 1.1 grant (2023-2024)를 통한 Cyber Security Body of Knowledge (CyBOK) 자원의 지원을 받았습니다.
  • 이 프로젝트는 CyBOK 1.1 grant (2024-2025)를 통한 Cyber Security Body of Knowledge (CyBOK) 자원의 지원을 받았습니다.
  • 이 프로젝트는 Security-Informed Safety grant (2025-2026)를 통한 Cyber Security Body of Knowledge (CyBOK) 자원의 지원을 받았습니다.
도구 다운로드