1Start here — what's a "scenario" and why do we have them?
You're running a demo, not a production deployment. In a real CSX environment, vulnerabilities arrive on their own schedule — a Microsoft Patch Tuesday on the second Tuesday of the month, a vendor advisory whenever Cisco or Siemens decides to publish one, a CISA KEV uplift whenever an exploit goes wild.
You can't wait for that schedule in a demo. So we built scenarios — buttons that simulate a real-world security event happening right now, so you can show the platform reacting to it on screen.
How the "simulate" mechanism works under the hood
- You click "Run" on a scenario card in Command Center.
- The simulator persists an Advisory — a database row that represents the vendor's security bulletin (Microsoft Security Update Guide entry, Cisco PSIRT advisory, Siemens ProductCERT advisory, etc.).
- The simulator picks affected assets from your inventory — by vendor + product match. For example, if the advisory is "Siemens RUGGEDCOM RX1500 SSH bypass," it queries all assets with vendor="Siemens" and product="RUGGEDCOM RX1500".
- For each affected asset, a Finding (Vulnerability row) is created with the CVE, the asset reference, the source scanner that "saw" it, and a starting status of
DISCOVERED. - The Supervisor agent drives each Finding through the 12-agent pipeline: Threat Intel enriches, Patch Hunter resolves vendor URL, Impact Analyst joins CMDB, Change Risk scores, Safety Officer reviews for OT, Remediation Planner builds the plan, Policy gate routes to approval queue or auto-apply.
- You see the result on screen as new plans appear in
/plansand as agent messages stream in/activity.
2Glossary — the words you'll see
CVE-2023-20198) assigned to each vulnerability when it's catalogued. MITRE Corporation maintains the list. Every CVE has a record at nvd.nist.gov/vuln/detail/CVE-XXXX-XXXXX.source, vendor, product, version_range, fix_version, references. When you "Run" a scenario, the first thing it does is create one of these rows.PLANNED → AWAITING_APPROVAL → APPROVED → EXECUTING → VERIFIED → CLOSED._persist_advisory in the code or hear "the simulator persists the advisory," it just means we wrote it to the Advisory table so the rest of the platform can find it.3About Qualys and "QIDs vs CVEs" — you asked about this
You're right that Qualys doesn't speak CVE directly in their internal data model. They use QIDs (Qualys Identifiers). Here's the relationship:
| Layer | Identifier | Example |
|---|---|---|
| Universal | CVE | CVE-2023-20198 |
| Qualys | QID | QID 92121 |
| Tenable | Plugin ID | plugin 182168 |
| Rapid7 | vulnerability ID | cisco-ios-xe-cve-2023-20198 |
| Microsoft | KB number | KB4013389 |
| Microsoft bulletin | MS-prefix | MS17-010 |
| Cisco PSIRT | cisco-sa- prefix | cisco-sa-iosxe-webui-privesc-j22SaA4z |
| Siemens ProductCERT | SSA- prefix | SSA-573348 |
Every QID in Qualys is mapped to one or more CVEs in the QID metadata. Mythal's Scanner Liaison agent reads the QID + CVE list from Qualys, normalizes everything to the CVE-level so the rest of the platform speaks one canonical language, and stores the QID alongside as a back-reference so we can round-trip back to Qualys if needed.
What this means for the demo
4Scenario A — Patch Tuesday at 06:00
What it simulates
The second Tuesday of every month, Microsoft (and others) release their security patches. Sixty (or more) new CVEs land in your scanner overnight. Your security team walks in Tuesday morning to a wall of red findings.
What happens in code when you click Run
- The simulator generates 60 advisories — real CVE IDs drawn from a pool of well-known CISA KEV entries (CVE-2024-21412, CVE-2023-29336, CVE-2021-44228, etc.), biased 65% to Microsoft + 35% to Cisco/Palo Alto/Red Hat/Siemens.
- Each advisory gets persisted (saved to the Advisory table).
- For each advisory, the simulator picks an affected asset matching the vendor — Windows hosts for Microsoft, Linux for Red Hat, Cisco switches for Cisco, etc.
- A Finding is created linking the asset to the CVE.
- Supervisor drives each through the agent loop — enrichment, patch lookup, planning.
- Patch Hunter resolves the real vendor advisory URL (msrc.microsoft.com, sec.cloudapps.cisco.com, security.paloaltonetworks.com).
- Each plan gets routed by the policy gate to auto-apply / single approval / dual approval based on asset criticality and patch reliability.
Where to point on screen — exact URLs
5Scenario B — Cisco IOS-XE Web UI vulnerability
What it simulates
In October 2023, Cisco disclosed an authentication-bypass vulnerability in the IOS-XE Web UI. Within days, researchers had identified tens of thousands of compromised Cisco devices on the internet. The patch was available the day of disclosure — but operators who couldn't apply it fast enough got compromised. This is a real, named, well-documented event.
What happens in code when you click Run
- The simulator persists the real Cisco PSIRT advisory
cisco-sa-iosxe-webui-privesc-j22SaA4zwith CVECVE-2023-20198, severity Critical, fix version17.9.4a. - Queries the asset inventory for Cisco IOS-XE switches — finds 17 in the MCR estate (mcr-net-ios-xe-0001 through 0017).
- Creates 17 findings — same CVE, 17 different switches.
- Each finding driven through agents.
- Patch Hunter resolves the real Cisco PSIRT advisory URL:
https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-iosxe-webui-privesc-j22SaA4z
Where to point on screen
6Scenario C — Siemens RTU at Substation 14 (the OT veto)
What it simulates
A real Siemens ProductCERT advisory for an industrial control system class vulnerability. This is the kind of finding that would normally cause a CSX OT engineer's blood to chill — a vulnerability on equipment that affects substation operations, where you cannot reboot during operations.
What happens in code when you click Run
- Simulator persists the real Siemens advisory
SSA-573348with CVECVE-2022-41358. - Queries inventory for Siemens RUGGEDCOM assets — typically finds 8 in the substation zone.
- Creates findings flagged as OT zone and CCS (Critical Cyber System).
- Drives findings through agents — but the Safety Officer agent vetoes direct patching because of the OT/CCS flags.
- Remediation Planner builds plans with compensating controls (firewall ACL tightening, IPS signature push, monitored isolation) INSTEAD of direct firmware patching.
- The firmware update gets scheduled for the next planned maintenance window with dual approval required.
Where to point on screen
7Scenario D — Ransomware actor adopts a CVE
What it simulates
CISA just added an existing CVE in your environment to the Known Exploited Vulnerabilities (KEV) catalog with ransomware-actor association. Yesterday it was a routine medium finding. Today it's actively being weaponized in the wild. The threat landscape changed without you doing anything.
What happens in code when you click Run
- Mythal picks an existing open finding from the database (any non-KEV one).
- Flips its
kevflag totrue. - Flips its
ransomware_associatedflag totrue. - Threat Intel agent records the uplift narrative in the reasoning trace.
- Supervisor re-drives the finding through the policy gate — now in the priority lane.
Where to point on screen
8Scenario E — Audit week (TSA evidence package)
What it simulates
A TSA inspector or your internal audit team is asking for your evidence package. Today. Without Mythal, the security team spends days assembling tickets, email approvals, and spreadsheets. With Mythal, you click Export.
What happens in code when you click Run
- The Compliance Reporter agent queries the
compliance_evidencetable for all evidence units tagged to TSA SD 1580-21-01. - For each closed plan, it pulls the CVE, asset, approvals, executions, verification result, and reasoning trace excerpt.
- Renders all of that into a multi-page auditor-grade PDF (cover, executive summary, control mapping, per-finding detail, methodology, integrity signature).
- Returns the byte size in the scenario response.
Where to point on screen
9The narrative arc — run them in this order for maximum impact
| Order | Scenario | What it proves | Time |
|---|---|---|---|
| 1st | B — Cisco IOS-XE | "Real CVEs · real vendor URLs · we resolve them" | ~1 min |
| 2nd | A — Patch Tuesday | "Volume — 60 findings handled with policy routing" | ~1 min |
| 3rd | C — Siemens OT | "We DON'T touch your sensitive systems — Safety Officer veto" | ~2 min |
| 4th | D — KEV uplift | "We adapt when the threat changes — automatic reprioritization" | ~30s |
| 5th | E — Audit PDF | "Audit is a side-effect, not a project" | ~30s |
Five clicks. Five minutes total. Five proof points. That's your demo.
10What if a scenario shows "0 targets processed"?
If this happens during your demo, recover with this line:
Or just click a different scenario. Scenario A always lands fresh findings because it generates 60 new advisory IDs each time.
11The one-pager — print this for your phone
Show: /activity (live), /plans (60 new), click one to see the trace.
Show: /plans search "Cisco", click one, click the cisco URL in front of them.
Show: /plans → OT tab, click a plan, scroll to Safety Officer veto.
Show: /findings filter KEV, click into the newly uplifted one, see the trace.
Show: /compliance → TSA → Export → open the PDF in front of them.
Open the deck: /presentation/client-deck.html · Script: /presentation/demo-script.html