feat(matrix): PlcSps as a composite device target (SBOM/CVE/DAST/pentest) [#164] #168

Merged
sharang merged 1 commits from feat/plc-composite-matrix into main 2026-07-16 10:56:36 +00:00
Owner

Implements #164 (part of the CODESYS-on-Yocto tracker #167).

A PLC/SPS device is a composite: the control application and the device
it runs on (firmware/OS + reachable runtime services). Previously PlcSps offered
only PlcControlLogic, so a CODESYS-on-Yocto device's firmware and network attack
surface was invisible to onboarding.

Changes

  • scan_matrix: PlcSps now offers FirmwareStatic + Sbom + Cve (require a
    firmware image) and Dast (require a running endpoint, e.g. WebVisu), and
    supports_pentest(PlcSps) is now true.
    • PlcControlLogic stays default-on; the device-level scans are offered but
      opt-in
      (default-off). Firmware-image SBOM/CVE execution is shared with the
      firmware families and still landing (#151/#128), so they must not silently
      auto-run — declaring them keeps the wizard honest without phantom no-ops.
  • orchestrator: the PLC branch no longer early-returns; a PLC device with a
    reachable endpoint now also runs DAST (the already-wired path) after the
    control-logic scan.

Tests

  • New: plc_composite_lights_up_device_scans_with_firmware_and_url,
    plc_control_logic_is_default_on_and_device_scans_block_without_artifacts.
  • Updated pentest_support_matches_reachable_families (PlcSps + Yocto).
  • Full compliance-core + compliance-agent lib suites green; fmt + clippy
    (agent/mcp) clean.

Follow-ups (tracked, not in this PR)

  • Firmware-image SBOM/CVE execution for device targets → #151 / #128.
  • ICS DAST/pentest depth (11740 / OPC UA / Modbus, soft-PLC harness) → #148 / #149.

🤖 Generated with Claude Code

Implements **#164** (part of the CODESYS-on-Yocto tracker **#167**). A PLC/SPS device is a composite: the **control application** *and* the **device** it runs on (firmware/OS + reachable runtime services). Previously `PlcSps` offered only `PlcControlLogic`, so a CODESYS-on-Yocto device's firmware and network attack surface was invisible to onboarding. ## Changes - **`scan_matrix`**: `PlcSps` now offers `FirmwareStatic` + `Sbom` + `Cve` (require a firmware image) and `Dast` (require a running endpoint, e.g. WebVisu), and `supports_pentest(PlcSps)` is now `true`. - `PlcControlLogic` stays **default-on**; the device-level scans are **offered but opt-in** (default-off). Firmware-image SBOM/CVE *execution* is shared with the firmware families and still landing (#151/#128), so they must not silently auto-run — declaring them keeps the wizard honest without phantom no-ops. - **`orchestrator`**: the PLC branch no longer early-returns; a PLC device with a reachable endpoint now also runs **DAST** (the already-wired path) after the control-logic scan. ## Tests - New: `plc_composite_lights_up_device_scans_with_firmware_and_url`, `plc_control_logic_is_default_on_and_device_scans_block_without_artifacts`. - Updated `pentest_support_matches_reachable_families` (PlcSps + Yocto). - Full `compliance-core` + `compliance-agent` lib suites green; fmt + clippy (agent/mcp) clean. ## Follow-ups (tracked, not in this PR) - Firmware-**image** SBOM/CVE execution for device targets → #151 / #128. - ICS DAST/pentest depth (11740 / OPC UA / Modbus, soft-PLC harness) → #148 / #149. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
sharang added 1 commit 2026-07-16 10:50:39 +00:00
feat(matrix): PlcSps as a composite device target (SBOM/CVE/DAST/pentest)
CI / Check (pull_request) Successful in 5m34s
CI / Detect Changes (pull_request) Has been skipped
CI / Deploy Agent (pull_request) Has been skipped
CI / Deploy Dashboard (pull_request) Has been skipped
CI / Deploy Docs (pull_request) Has been skipped
CI / Deploy MCP (pull_request) Has been skipped
78cf3237d5
A PLC/SPS device is two layers — the control application and the device it
runs on (firmware/OS + reachable runtime services). Previously PlcSps offered
only PlcControlLogic, so a CODESYS-on-Yocto device's firmware and network
attack surface was invisible.

- scan_matrix: PlcSps now offers FirmwareStatic + Sbom + Cve (require a firmware
  image) and Dast (require a running endpoint, e.g. WebVisu), and
  supports_pentest(PlcSps) is now true. Control-logic stays default-on; the
  device-level scans are offered but opt-in (default-off) — firmware-image
  SBOM/CVE execution is shared with the firmware families and still landing
  (#151/#128), so they must not silently auto-run.
- orchestrator: the PLC branch no longer early-returns, so a PLC device with a
  reachable endpoint also runs DAST (the wired path) after the control-logic scan.

Part of the CODESYS-on-Yocto coverage tracker (#167). Closes #164.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sharang merged commit 3a53a1d7f2 into main 2026-07-16 10:56:36 +00:00
sharang deleted branch feat/plc-composite-matrix 2026-07-16 10:56:37 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sharang/compliance-scanner-agent#168