Skip to content

Proposal: OWASP-maintained inventory management tooling (discussion draft) - #41

Open
m-khan-97 wants to merge 2 commits into
OWASP:mainfrom
m-khan-97:proposal-inventory-tooling
Open

Proposal: OWASP-maintained inventory management tooling (discussion draft)#41
m-khan-97 wants to merge 2 commits into
OWASP:mainfrom
m-khan-97:proposal-inventory-tooling

Conversation

@m-khan-97

@m-khan-97 m-khan-97 commented Aug 17, 2026

Copy link
Copy Markdown

Raised following Roy's comment on #33 - that the project should build and
maintain real tools with a proper contributor model (inventory management,
PQ-readiness software), rather than the tooling directory mostly hosting
individually-contributed proofs of concept.

This is a discussion draft to give that idea something concrete to react to,
not a claim that scope or direction is decided. Second commit expands it from
the initial sketch into a full scoping document.

Why OWASP should build this: two regulatory clocks (EU end-2026 inventory
requirement, NCSC 2028 discovery milestone) make the inventory the first
artefact every migration programme must produce, and QS04 calls its absence
the most common blocker to migration. Organisations currently choose between
commercial platforms and spreadsheets; a vendor-neutral open tool producing
exactly the artefact the deadlines demand is squarely OWASP territory.

Prior art, verified against the projects themselves: pq-audit does
discovery; CBOMkit (originated at IBM Research, now donated to the Linux
Foundation) does CBOM generation, visualisation, and compliance checks;
CycloneDX CBOM is the format. What none provide is the organisational
register layer
QS04 explicitly requires beyond algorithm and key length -
named owner, custody, rotation cadence, migration status, tracked over time
and reportable against the deadlines. That layer is the proposed scope.

What the document now contains:

  • A concrete per-asset register schema - each field tied to the QS entry or
    assessment rule that motivates it, including a "no migration path" status so
    the QS07 hardware case is representable rather than hidden
  • Workflow (ingest from existing scanners -> normalise -> enrich -> track ->
    report) and the reports that justify the tool: deadline gap report, Mosca
    view, Unknowns-as-findings, and Readiness Assessment Domain C answered from
    the register directly
  • Three build options honestly stated - standalone OWASP tool, contribute
    the register layer upstream to CBOMkit, or an OWASP-defined register
    profile (schema + deadline mapping as a CycloneDX property convention)
    with a thin reference CLI. No recommendation baked in: the upstream option
    meaning less code would still be a fine outcome for the project.
  • Non-goals (not a scanner, not a CMDB, not a key manager, not a
    certification), a phased MVP where each phase stands alone, maintenance
    model (two-maintainer minimum), and the code-license gate already flagged
    on Add tooling directory for community-built tools, per Slack discussion #33

Open questions for the leads are at the end - including whether "PQ-ready
software" from Roy's message is this tool or a sibling, and who joins scoping
(pq-audit's maintainer; anyone with CBOMkit contacts).

Happy to adjust or drop any part in favour of what the leads actually have in
mind - the point is a specific starting shape to react to.

Following Roy's suggestion on OWASP#33 that the project build and maintain
real tools with a proper contributor model rather than mostly hosting
individually-contributed proofs of concept. Sketches what "inventory
management tooling" could concretely mean: not another discovery
scanner (pq-audit already does that), but the tracking layer QS04 asks
for beyond algorithm and key length - owner, custody, rotation status,
migration progress per asset.

Explicitly not a commitment to build; raises the open question of
whether "PQ-ready software" (also named in Roy's message) is the same
tool or a distinct one, and asks who else should be pulled into scoping
it before any of this gets built.
…ptions

Adds the substance the first draft deferred:

- Prior-art survey verified against the projects themselves: pq-audit
  (discovery), CBOMkit (CBOM generation/visualisation/compliance, now a
  Linux Foundation project), CycloneDX CBOM (format). Sharpens the gap
  claim: what none of them provide is the organisational register layer
  QS04 requires - owner, custody, rotation, migration status over time.
- A concrete per-asset register schema, each field tied to the QS entry
  or assessment rule that motivates it, including a "no migration path"
  status so the QS07 hardware case is representable rather than hidden.
- Reporting as the payoff: deadline gap report against EU end-2026 /
  NCSC 2028, Unknowns-as-findings mirroring the assessment scoring rule,
  and Domain C answerable from the register directly.
- Three build options honestly stated - standalone, upstream to CBOMkit,
  or an OWASP-defined register profile with a thin CLI - with no
  recommendation baked in, since option B/C meaning less code would
  still be a fine outcome for the project.
- Non-goals, phased MVP where each phase stands alone, maintenance and
  licensing gates, and named risks.
@aige-git

Copy link
Copy Markdown

This matches something I've worked with directly. I have a sample CBOM generated by a passive network-scanning tool (CycloneDX 1.4-cbom-1.0, the IBM/OWASP crypto-asset extension) — it captures live TLS/SSH handshakes and outputs a valid, versioned BOM.

aige-git added a commit to aige-git/quantum-security-project that referenced this pull request Aug 17, 2026
…ed CBOM cross-referencing against vulnerability advisories.

Adds a question testing whether the CBOM is actively cross-referenced against known-vulnerable algorithms/libraries, vs. a static export reviewed manually. Follows from the discussion on PR OWASP#41.
@leprecha1

Copy link
Copy Markdown

Really interesting proposal. I think this organisational register could fill an important gap between cryptographic discovery and actual PQC migration governance.

One additional aspect I would consider is evidence provenance and trustworthiness.

The current schema already includes Evidence source and last-verified date, but for an operational inventory it may be useful to make the evidence itself traceable. For example, each discovered cryptographic asset could retain information such as:

  • discovery source, scanner identity and version
  • rule or detection method that produced the finding
  • timestamp and asset/environment context
  • reference to the originating CBOM or scan artifact
  • integrity hash or signature of the evidence artifact
  • confidence or verification state

This could help distinguish between "we have an entry in the register" and "we can demonstrate where this entry came from and whether the supporting evidence is still trustworthy."

I think this becomes particularly relevant when multiple discovery tools disagree, when assets change over time, or when the register itself is later used as evidence for migration governance, compliance, or audit.

It could also provide a useful foundation for detecting cryptographic drift as inventories are continuously updated.

Do you think evidence provenance should be part of the core register model, or would you keep this outside the MVP and only maintain a reference to the original evidence artifact?

@m-khan-97

Copy link
Copy Markdown
Author

That's exactly the kind of artifact this needs and I don't have one to test against yet. Would you be open to sharing a sanitized version once there's a Phase 1 ingest path to point it at? Even just field names and structure, redacted of anything identifying, would be a genuinely useful reference for making sure the register schema actually matches what real scanners produce rather than what I assumed they produce.

@m-khan-97

Copy link
Copy Markdown
Author

Good question, and I'd lean toward keeping it out of core MVP, but designing the schema so it's not a breaking change to add later. Phase 1's "evidence source + last-verified date" is the minimal trust signal - enough to know an entry isn't stale. The richer provenance model you're describing earns its cost once there's real multi-source ingestion and disagreement between scanners is an actual problem rather than a hypothetical one, which is more of a Phase 3 concern in the doc's phasing.

That's my instinct, not a decision - if you think provenance needs to be load-bearing from day one rather than bolted on later, I'd want to hear why before settling it.

@leprecha1

Copy link
Copy Markdown

I think your instinct makes sense. I wouldn’t make full provenance load-bearing in the MVP either, especially before multi-source ingestion and scanner disagreement become real operational problems.

My main concern would be making sure Phase 1 preserves enough identity around the evidence so richer provenance can be added later without changing the semantics of existing records.

So rather than full provenance, I’d probably keep the MVP minimal with something like:

  • evidence_source
  • last_verified
  • a stable reference/ID to the originating evidence artifact
  • optionally the scanner/tool identity and version, when available

Then a later phase could extend that model with hashes/signatures, confidence levels, detection rules, multiple evidence sources, and disagreement handling.

In other words, I’d treat provenance as architecturally anticipated, but not operationally required in Phase 1. That seems like a good balance between avoiding premature complexity and not having to retrofit evidence identity later.

Regarding the sanitized scanner output, unfortunately I don’t have a real-world artifact that I can share right now. But I agree that validating the schema against actual scanner output would be much more useful than designing around assumptions. If I come across something suitable and shareable as the ingest path evolves, I’ll bring it into the discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants