Choose where your scan data comes from — a safe built-in Simulator, an authorized live-network collector, this device, or an uploaded bundle — then start the run.
Takes a device's CPE (a standardized product name like cpe:2.3:o:siemens:simatic_s7-300) and asks the NVD database which known CVEs affect it — passively, with Redis caching and rate-limit backoff so you never hammer the API.
Decodes a CVSS vector string into plain metrics — how it's attacked (AV), how hard (AC), what access it needs (PR/UI), and what it breaks (C/I/A) — then computes the 0–10 severity score and band. Edit the vector and watch the score recalculate live.
Drives authorized active scanners. OpenVAS/Greenbone runs its full GMP lifecycle — feed check → create target → launch task → poll → fetch report → clean up — and Nuclei runs safe-only templates, parsing JSONL results and tolerating timeouts with partial output.
{"template-id":"CVE-2021-36260","name":"Hikvision RCE","severity":"critical","matched-at":"192.168.1.30:80","timestamp":"2024-01-15T10:23:11Z"}
{"template-id":"CVE-2019-13945","name":"Siemens S7-300 DoS","severity":"high","matched-at":"192.168.1.10:102","timestamp":"2024-01-15T10:23:14Z"}
{"template-id":"default-siemens-http","name":"Siemens Default Creds","severity":"medium","matched-at":"192.168.1.10:80","timestamp":"2024-01-15T10:23:18Z"}
Shows the logic for checking devices against known default credentials across HTTP, SSH, Telnet, RTSP and ONVIF — trying vendor-specific defaults first, then a generic list, and stopping on the first success.
| # | Vendor | Protocol | Username | Password | Source |
|---|---|---|---|---|---|
| 1 | Siemens | HTTP | admin | admin | vendor-default |
| 2 | Siemens | HTTP | Administrator | (blank) | vendor-default |
| 3 | Siemens | HTTP | service | service | vendor-default |
| 4 | Generic | HTTP | admin | password | common-list |
| 5 | Generic | SSH | root | root | common-list |
| 6 | Siemens | SSH | user | user | vendor-default |
Combines six signals — CVSS severity, exploit probability (EPSS), known-exploited status (CISA KEV), evidence strength, network exposure, and device role — into one ranked risk score. Click any row to see the breakdown.
Risk = severity(0.30) + EPSS(0.25) + KEV(0.20) + evidence(0.10) + exposure(0.10) + role(0.05)
| Device | CVE | Severity | EPSS | KEV | Exposure | Role | Risk Score |
|---|---|---|---|---|---|---|---|
PLC-01 192.168.1.10 |
CVE-2019-13945 | HIGH 7.5 | 0.847 | YES | External | Safety | 9.4 CRITICAL |
|
Description Unauthenticated DoS via crafted packet to S7comm port 102. Causes CPU halt.Remediation Apply Siemens Security Advisory SSA-568101. Firmware ≥ V3.X.17.EPSS Context Top 5% of all CVEs. Active exploitation reported in the wild (CISA KEV 2022-02-10). |
|||||||
HMI-02 192.168.1.20 |
CVE-2020-15782 | HIGH 8.8 | 0.623 | NO | Internal | Control | 7.8 HIGH |
|
Description Memory protection bypass in SIMATIC S7-1200/1500. Allows arbitrary code execution.Remediation Siemens SSA-434534. Firmware update required. Network segmentation as interim.EPSS Context Above-average exploitation likelihood. Not in KEV but actively researched. |
|||||||
Cam-03 192.168.1.30 |
CVE-2021-36260 | CRITICAL 9.8 | 0.921 | YES | External | Monitor | 9.7 CRITICAL |
|
Description Command injection in Hikvision camera web server. Unauthenticated RCE via /SDK/webLanguage.Remediation Upgrade to firmware V5.5.800 build 210628. Disable remote web management if not needed.EPSS Context Top 1% of all CVEs. Massively exploited in Mirai botnet variants. Immediate action required. |
|||||||
Separates candidate findings (unconfirmed) from confirmed weaknesses, shows which detection methods agree (convergence), and records each validation decision — confirm, false-positive, or risk-accept — with owner, reason and expiry.
CVE-2019-13945 @ 192.168.1.10
Shows, for every discovery method, whether it completed, was disabled, unavailable, or failed — plus its confidence and safety posture — and streams live progress events as a scan runs.
[10:23:01] PHASE-START passive-discovery
[10:23:02] NVD-CPE query: cpe:2.3:o:siemens:simatic_s7-300:*
[10:23:03] NVD-CPE → 14 CVEs found (cache HIT)
[10:23:05] KEV-MATCH CVE-2019-13945 → IN KEV (added 2022-02-10)
[10:23:07] EPSS batch query → all 14 CVEs scored
[10:23:08] PHASE-COMPLETE passive-discovery [3 critical, 4 high]
[10:23:10] PHASE-START active-scan (authorized)
[10:23:11] OpenVAS GMP → task launched (id: task-abc123)
[10:23:45] OpenVAS → 8 findings normalized
[10:23:47] Nuclei CVE templates → 192.168.1.100:102
[10:23:55] Nuclei → 2 findings, 3 TIMEOUT (partial)
[10:23:56] PHASE-COMPLETE active-scan
[10:23:57] CONVERGENCE-CHECK → 3 CVEs confirmed by 2+ methods
A natural-language guide over your scan results. Ask which devices need attention, what a CVE means in plain English, which findings are KEV, or for a summary — and get an answer grounded in this session's data.
https://mcp-auth.bwtr.ai/mcp2c1mcql8is1jv0svdivghui1h3breakwater.discovery/read- Open ChatGPT settings and enable developer mode for custom MCP connectors.
- Create a new custom connector and enter the Breakwater remote MCP server URL.
- Use the OAuth client ID if ChatGPT asks for one; leave the client secret blank.
- Open Claude Settings, then Connectors, and choose Add custom connector.
- Enter the Breakwater remote MCP server URL.
- If Advanced settings asks for a client ID, paste the Breakwater OAuth client ID; leave secret blank.
The Rules-of-Engagement and RBAC gate. It shows exactly which actions are permitted in each phase and refuses active scanning or credential checks until the run is explicitly authorized.
| Action | Phase 1 | Phase 2 | Phase 3 |
|---|---|---|---|
| Passive network observation | ✓ | ✓ | ✓ |
| Service banner grabbing | ✓ | ✓ | ✓ |
| CPE / CVE lookup | ✓ | ✓ | ✓ |
| OpenVAS active scan | ✗ | ✗ | ✓ (auth req.) |
| Nuclei templates | ✗ | ✗ | ✓ (safe only) |
| Credential testing | ✗ | ✗ | ✓ (guardrailed) |
| Exploitation | ✗ | ✗ | ✗ (never) |
A roll-up of the latest run — assets discovered, evidence collected, and your top risks at a glance.
Groups every discovered asset into a category topology — a hub-and-spoke map where the Core links out to each device class, vendor, zone or risk tier. Click a group to focus it; re-group from the selector.
Every discovered asset with its identity, role, and product fingerprint (CPE).
| IP | Hostname | Type | Vendor | OS / Firmware | CVEs | Risk |
|---|---|---|---|---|---|---|
| 192.168.1.10 | PLC-01 | PLC | Siemens | SIMATIC S7-300 v3.2.6 | 5 | 9.4 |
| 192.168.1.20 | HMI-02 | HMI | Siemens | WinCC v7.4 | 3 | 7.8 |
| 192.168.1.30 | Cam-03 | Camera | Hikvision | DS-2CD2342WD v5.3.0 | 4 | 9.7 |
| 192.168.1.1 | Gateway-01 | Router | Cisco | IOS 15.4 | 1 | 3.1 |
Maps every finding to the controls that recognized frameworks require — turning a CVE into an auditable compliance gap expressed in NIST CSF 2.0, NIST SP 800-53, IEC 62443 and MITRE ATT&CK for ICS language.
| Control | Family | Evidence in this session | Status |
|---|---|---|---|
| CM-8 Component Inventory | CM | 16 assets enumerated with CPE | Satisfied |
| RA-5 Vuln Monitoring & Scanning | RA | NVD + OpenVAS + Nuclei (multi-method) | Satisfied |
| RA-3 Risk Assessment | RA | Severity + EPSS + KEV + role scoring | Satisfied |
| CA-8 Penetration Testing | CA | Phase-3 authorized active assessment | Satisfied |
| SI-2 Flaw Remediation | SI | 14 CVEs; 2 KEV flagged for priority | Partial |
| SI-4 System Monitoring | SI | Streaming detection events | Partial |
| IA-5 Authenticator Management | IA | Default credentials present on PLC-01 | Gap |
| AC-17 Remote Access | AC | External exposure on PLC-01 & Cam-03 | Gap |
| FR | Requirement | Related finding | Target | Achieved |
|---|---|---|---|---|
| FR1 | Identification & Authentication Control | Default creds — PLC-01 | SL 2 | SL 1 |
| FR2 | Use Control | RBAC enforced | SL 2 | SL 2 |
| FR3 | System Integrity | CVE-2020-15782 memory write | SL 2 | SL 1 |
| FR4 | Data Confidentiality | TLS present on HMI | SL 1 | SL 1 |
| FR5 | Restricted Data Flow | No segmentation — external exposure | SL 2 | SL 1 |
| FR6 | Timely Response to Events | Detection adapters active | SL 1 | SL 1 |
| FR7 | Resource Availability | CVE-2019-13945 DoS | SL 2 | SL 1 |
| CVE | Device | Technique(s) | Tactic |
|---|---|---|---|
| CVE-2019-13945 | PLC-01 | T0814 Denial of Service · T0816 Device Restart/Shutdown | Inhibit Response |
| CVE-2020-15782 | HMI-02 | T0836 Modify Parameter · T0839 Module Firmware | Impair Process |
| CVE-2021-36260 | Cam-03 | T0866 Exploitation of Remote Services · T0822 External Remote Services | Initial Access |
Controls where the lab gets its threat data (inbound feeds) and where it sends findings (outbound forwarders). Today it's simulator-backed; flip a source to Live to pull from the real NVD / CISA KEV / EPSS APIs with Redis caching + rate-limit backoff, or enable a forwarder to push findings to your SIEM.
| Source | Mode | Last sync | Records | |
|---|---|---|---|---|
| NVD CVE API services.nvd.nist.gov | Cached | 2h ago | 14 | |
| CISA KEV Catalog cisa.gov/kev | Live | 1h ago | 1,180 | |
| EPSS Scores api.first.org/epss | Cached | 6h ago | all | |
| OpenVAS NVT Feed feed.community.greenbone.net | Live | 1d ago | 89,420 | |
| MITRE ATT&CK ICS attack.mitre.org (STIX 2.1) | Cached | 7d ago | 95 |
Turns confirmed findings into tracked remediation tasks on a board — To do → In progress → Done — each with a priority, owner, due date, and links back to the asset and CVE that justify it.
Manages the local collector that runs inside the network and uploads evidence — its enrollment, run authorization, health, and exactly what each run observed, method by method.
Heartbeat, version, platform, site, current task, and last run are tracked.
Collector tokens are shown once at enrollment and never returned through MCP or UI status.
Uploads must bind collector, run, site, credential, and signed policy scope.
| Collector | Health | Version | Platform | Site | Capabilities | Token |
|---|---|---|---|---|---|---|
| Light industrial lab collectorcollector-site-main-light-industrial-lab-collector | ONLINE | 0.1.0 render-only-local |
local fixture | site-main | ARP, mDNS, RTSP, HTTP, MQTT, Modbus, ONVIF | ACTIVE Secret value hidden |
| Technique / step | Status | Observed | Rejected | Duration | Devices | Detail |
|---|---|---|---|---|---|---|
| Load scope | COMPLETED | 2 | 0 | 0ms | Edge router/firewall, Core access switch | Prepare the simulated site ranges, segments, and passive hints. |
| Find active devices | COMPLETED | 2 | 0 | 0ms | Office wireless AP, Admin workstation | Reveal devices that respond inside the simulated environment. |
| Read service signals | COMPLETED | 8 | 0 | 0ms | Lobby camera, Loading dock camera, RTSP-only camera, File NAS, Office printer +3 | Use protocol, hostname, banner, and service evidence. |
| Classify inventory | COMPLETED | 2 | 0 | 0ms | Line 1 PLC, Line 1 HMI | Attach device type, vendor, owner, model, and location when evidence supports it. |
| Flag review items | COMPLETED | 2 | 0 | 0ms | Unknown unmanaged device, Legacy controller | Surface unknown, unmanaged, low-confidence, or conflicting assets. |
| Action | When | Bound to | Result |
|---|---|---|---|
| Enroll collector | 2026-05-17T14:05:00Z | site-main · token hashed at rest | signed |
| Authorize run | 2026-05-17T14:05:01Z | run-sim-small-industrial · simulator fixture scope | authorized |
| Heartbeat | every 30s · last 2s ago | collector + site-main | online |
| Upload evidence | 2026-05-17T14:05:03Z | collector + run + site + credential + policy | accepted · 33 items |
| Rotate token | on demand | collector secret | available |
Generates customer-grade discovery reports locally — executive summary, operator review, and a technical evidence appendix — each a deterministic export with source provenance, ready as HTML, PDF, JSON or CSV.
Local, discovery-only controls — appearance, default scan profile, retention, report defaults, collection mode, and secret redaction. Saved on this device; nothing here triggers a later-phase action.