Skip to main content
The Tabletop Framework is a desktop application that enables security teams to create and conduct cybersecurity tabletop exercises. Built on CISA’s Cybersecurity Tabletop Exercise Package (CTEP) standards, it provides structured scenario-driven incident response practice for organizations.

Why Run Tabletop Exercises?

Tabletop exercises are discussion-based sessions where team members walk through simulated security incidents. They help you:
  • Test incident response procedures without real-world consequences
  • Identify gaps in processes and communication
  • Train staff on roles and responsibilities during incidents
  • Meet compliance requirements for security awareness
  • Build muscle memory for high-pressure situations
CISA recommends organizations conduct tabletop exercises at least annually, with more frequent exercises for critical infrastructure sectors.

Key Features

Scenario Authoring

Create custom exercises with modules, timed injections, and discussion questions.

Exercise Runner

Real-time facilitation with pause, advance, and timing controls.

Participant Portal

Asynchronous participation support with response collection.

Scenario Library

8 pre-built scenarios covering common attack types.

Pre-Built Scenarios

The framework includes ready-to-use scenarios across different attack types and difficulty levels:
ScenarioAttack TypeDifficulty
Ransomware ResponseRansomwareBeginner
Phishing CampaignPhishingBeginner
Supply Chain CompromiseSupply ChainIntermediate
Social Engineering AttackSocial EngineeringIntermediate
Data Breach InvestigationData BreachAdvanced
Insider ThreatInsider ThreatAdvanced
Business Email CompromiseBECIntermediate
Cloud Infrastructure AttackCloud SecurityAdvanced

Installation

Prerequisites

  • Node.js 18 or later
  • npm package manager

Quick Start

git clone https://github.com/AlchemicalChef/Tabletop-Framework.git
cd Tabletop-Framework
npm install
npm run dev

Production Build

To create a distributable application:
npm run build
npm run package
This generates platform-specific installers in the dist folder.

Creating an Exercise

1

Start a New Scenario

Open the application and select “Create New Scenario” from the dashboard. Enter a title, description, and learning objectives.
2

Add Modules

Break your exercise into modules representing incident phases (e.g., Detection, Containment, Eradication, Recovery). Each module can have its own timing and objectives.
3

Create Injections

Add timed injection events that introduce new information during the exercise. These prompt decision-making and simulate real incident evolution.
4

Add Discussion Questions

For each module, create discussion questions with facilitator guidance notes. These drive the conversation during the exercise.
5

Set Difficulty and Time

Configure the overall difficulty level and estimated duration. This helps participants prepare appropriately.

Running an Exercise

As a Facilitator

  1. Load your scenario file (.ctep.json)
  2. Brief participants on the scenario background
  3. Use the runner controls to start the exercise
  4. Advance through modules and trigger injections as needed
  5. Guide discussions using the facilitator notes
  6. Track elapsed time and participant engagement
Pause the exercise timer during lengthy discussions to keep the overall timing accurate.

As a Participant

For asynchronous participation:
  1. Receive the participant package (.ctep-participant.json) from your facilitator
  2. Open the file in the Participant Portal
  3. Review the scenario and answer discussion questions
  4. Export your responses (.ctep-response.json)
  5. Send the response file back to the facilitator

File Formats

The framework uses three file types with checksum verification:
ExtensionPurposeContains
.ctep.jsonComplete scenarioAll content including facilitator notes
.ctep-participant.jsonParticipant versionSanitized content without facilitator answers
.ctep-response.jsonParticipant responsesSubmitted answers for facilitator review

Technical Stack

  • Framework: Electron for cross-platform desktop support
  • Frontend: React 19 with TypeScript
  • State Management: Zustand with persistence
  • Build Tool: Vite with electron-vite configuration

Next Steps

After setting up the framework:
  • Run a pilot exercise with a small group to test your setup
  • Customize pre-built scenarios for your organization’s context
  • Document lessons learned and update procedures based on findings
  • Schedule regular exercises on your security calendar