Safeguard
Security Guides•

Which scenario should your first dependency compromise tabletop use?

A decision guide for choosing a first dependency compromise tabletop scenario, matched to your biggest worry, team size and how much inventory you have.

Safeguard Security Team
4 min read

Pick the scenario that matches your biggest worry and your current readiness. For a first run, a hijacked popular package that is already in your lockfiles is a good default, because it tests inventory, blocking and communication together without exotic detail. Save harder scenarios for later rounds.

Match scenario to situation

If your main worry isStart withWhat it tests
"We cannot say what we use"Known bad version in a widely used packageInventory and search
Secrets in CICompromised build or test toolCredential scope and rotation
Internal packagesA public package with an internal nameRegistry routing
Shipped softwareBad version in a released productRelease mapping and customer communication
AI assisted codingAgent adds a lookalike packageReview, tokens, allowlists
Slow decisionsUnconfirmed report with no advisoryTriage and decision rights

Several of these have scripts: internal package name, dev dependency and AI agent.

Three questions to choose

  1. How good is your inventory? If you cannot search lockfiles in one place, pick the first row. Everything else depends on it.
  2. Who will be in the room? A small engineering group can run a technical scenario. Mixed groups with executives do better with one that forces a communication decision.
  3. What happened recently? A real near miss or a public incident makes the scenario feel relevant. Adapt it, and keep real names out of the script.

Use real incidents as inspiration, not scripts

Public incident reports are useful for shape: how long a bad version stayed live, what the first signals looked like, what response steps people took. Use what a reputable source states, and change the names and dates in your version. CISA's tabletop packages offer templates for objectives, scenarios and discussion questions that you can adapt for your own topic.

Keep the first one simple

Avoid layering multiple failures in round one. Complexity hides the lessons.

Plan the second and third rounds

Rotate the scenario each time and keep the scoring dimensions fixed so results compare. A simple progression:

RoundScenario
1Hijacked popular package in lockfiles
2Compromised build tool with CI secrets
3Shipped release contains the bad version
4Unconfirmed report and fast triage

Adjust the order to your risks.

Signs you picked wrong

If everyone knows the answers, the scenario is too easy. If the group spends the hour on one missing capability, it is too hard for now, so fix the capability and rerun. Either way, record what you learned and choose the next one with that evidence.

Quick check

Should the first scenario involve a named real incident?

Use real incidents for inspiration, but change names and details. It avoids arguments about what actually happened.

How many injects are right for a first run?

Four or five. More than that and the discussion cannot keep up.

Safeguard can help with the inventory side of this work. SBOM and dependency scanning show where a package and version appear across your projects, and policies and gates can stop a flagged version at the pull request. You can try a free scan at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.