CyberTabletop CLI — GitHub Copilot을 테이블탑 연습 진행자로 바꿨습니다

발행: (2026년 2월 13일 오전 10:21 GMT+9)
7 분 소요
원문: Dev.to

Source: Dev.to

(번역할 텍스트를 제공해 주시면 한국어로 번역해 드리겠습니다.)

Overview

대부분의 보안 팀은 사고 대응을 실제로 연습하지 않습니다. 전통적인 테이블탑 연습은 사전 준비, 진행자, 그리고 찾기 어려운 일정 시간이 필요합니다. CyberTabletop CLI는 다음과 같은 장벽을 없애줍니다:

  • 랜섬웨어 시나리오를 선택하고 바로 시작할 수 있습니다.
  • 매 턴마다 상황 업데이트와 함께 3~4개의 실행 가능한 선택지를 제공합니다.
  • 위험 점수, 자산 상태, 그리고 게임 내 시계를 자동으로 업데이트합니다.
  • AI가 생성한 브리핑 또는 전체 마크다운 전사본을 제공하여 연습 후 검토에 활용할 수 있습니다.

Source:

시작하기

python main.py start
  1. 시나리오 선택 – Copilot은 세 가지 랜섬웨어 변형(예: 피싱, 공급망 침해, 내부 위협)을 생성합니다.
  2. 회사 부트스트랩 – 자산, 보안 도구, 기본 위험 수준을 포함한 전체 회사 프로필이 생성됩니다.
  3. 게임플레이 루프 – 각 턴마다 업데이트를 읽고 옵션(A/B/C/D) 중 하나를 선택하면 게임이 시계를 진행합니다(턴당 5–20 분). 진행하면서 운영, 데이터 및 법적 위험 점수(0–100)가 조정됩니다.

인‑게임 명령

명령어설명
/status현재 위험 점수와 자산 상태를 표시합니다.
/json원시 게임 상태(JSON)를 확인합니다.
/help사용 가능한 명령어 목록을 보여줍니다.
/debrief세션에 대한 AI 작성 디브리핑을 생성합니다.
/export전체 대화를 마크다운 형식으로 내보냅니다.
/exit저장하고 게임을 종료합니다.

기술 스택

  • 언어: Python
  • CLI 프레임워크: Typer
  • 터미널 UI: Rich for colors and layout
  • AI 백엔드: GitHub Copilot CLI (copilot -p "")

게임에는 하드코딩된 시나리오 트리가 포함되어 있지 않습니다. 매 턴마다 copilot -p 호출이 발생하여 다음 상태를 설명하는 JSON을 반환합니다.

Prompt Engineering & JSON Handling

Prompt Structure

각 상호작용 유형(시작 메뉴, 부트스트랩, 턴, 디브리핑)은 프롬프트에 삽입된 전용 JSON 스키마를 사용합니다. 시스템 프롬프트(FACILITATOR_RULES)는 다음을 강제합니다:

  • JSON‑only 출력 – 마크다운, 백틱, 주석 금지.
  • 랜섬웨어 초점 – 선택된 시나리오 유형에만 제한.
  • 턴당 3–4개의 선택지 – 일관된 의사결정 공간 제공.

Parsing Robustness

Copilot이 때때로 JSON을 마크다운 펜스 안에 감싸거나 불필요한 주석을 추가합니다. 파서는 방어적 전략을 따릅니다:

  1. 원시 출력에 대해 json.loads() 시도.
  2. 실패하면 첫 번째 {…} 블록을 추출하는 정규식으로 대체.
  3. Windows 환경에서는 가끔 나타나는 PowerShell 객체 표기(@{}, @())를 유효한 JSON으로 변환.

State Management

게임 상태는 매 턴마다 Copilot에게 전달되는 단일 딕셔너리입니다. Copilot은 상태 패치를 반환하며, 여기에는 다음이 포함됩니다:

  • 위험 차감값(운영, 데이터, 법적)
  • 자산 상태 업데이트
  • 새로운 신호 또는 플래그

엔진은 패치를 적용해 게임을 결정론적으로 유지하고, Copilot이 호출 간 메모리를 유지할 필요가 없도록 합니다. 토큰 사용량을 제한하기 위해 마지막 여섯 개의 플레이어 행동만 다시 전송하고, 상태에는 다음 의사결정에 필요한 필드만 포함됩니다.

직면한 과제

  • 일관된 JSON 출력 – 엄격한 스키마와 대체 파서가 필요했습니다.
  • 크로스‑플랫폼 특이점 – Windows의 PowerShell‑스타일 객체를 변환해야 했습니다.
  • 프롬프트 취약성 – Copilot이 시스템 지시를 처리하는 방식의 변화가 파싱을 깨뜨릴 수 있으며, 향후 버전에서는 재시도 로직 및 스키마 검증을 추가할 수 있습니다.

향후 방향

  • 랜섬웨어를 넘어 피싱, DDoS, 공급망 공격 등으로 확대.
  • 추가 산업(예: 금융, 에너지) 지원 추가.
  • 보다 탄력적인 AI 상호작용을 위한 풍부한 재시도 및 검증 메커니즘 구현.
  • AI 생성 콘텐츠를 편집하거나 승인할 수 있는 “인간‑인‑루프” 모드 옵션 제공.

Conclusion

CyberTabletop CLI는 GitHub Copilot CLI의 새로운 활용 방식을 보여줍니다: 단순히 개발 도우미가 아니라 실시간 구조화된 게임 엔진으로서입니다. 그 결과는 수동으로 시나리오를 작성할 필요가 없는 매력적이고 반복 가능한 테이블탑 연습이 되며, 최소한의 오버헤드로 사고 대응을 연습하려는 팀에 완벽합니다.

0 조회
Back to Blog

관련 글

더 보기 »

웹 3

이 댓글을 숨기시겠습니까? 게시물에서는 숨겨지지만 댓글의 퍼머링크를 통해 여전히 볼 수 있습니다. 자식 댓글도 숨기기…