Skip to content

chore: add Apache Camel K threat model and triage sidecar - #6634

Merged
oscerd merged 2 commits into
mainfrom
quick-fix/threat-model
May 19, 2026
Merged

oscerd merged 2 commits into
mainfrom
quick-fix/threat-model

Conversation

@oscerd

@oscerd oscerd commented May 18, 2026

Copy link
Copy Markdown
Contributor

What

Adds a threat model for Apache Camel K under docs/:

  • docs/threat-model.md — the project's implicit security contract: intended use and non-goals, the central trust boundary (RBAC to create/patch a camel.apache.org CR == arbitrary code/container execution in the target namespace), the adversary model, security properties provided vs. explicitly disclaimed, downstream (operator/deployer) responsibilities, known misuses, recurring non-findings, and a closed set of triage dispositions so an inbound report can be routed to exactly one outcome with a section citation.
  • docs/threat-model.yaml — a derived sidecar carrying the triage-relevant facts in structured form, for automated/AI-assisted triage. The prose document is canonical.

Why

Camel K has no SECURITY.md and no Camel-K-specific security page. The Apache Camel umbrella Security Model (camel.apache.org/manual/security-model.html) is published and is the Camel PMC's triage reference — but it explicitly scopes itself to "Camel … embedded in someone else's application, not a multi-tenant managed service" and does not address the Kubernetes operator / Custom Resource / cluster layer.

Camel K is precisely the layer that builds and operates Camel applications on a cluster. This document is therefore the additive Camel-K sub-project expansion of the umbrella model for the cluster/operator/CR trust boundary that model deliberately excludes — a strict superset that does not contradict it. It gives maintainers and triagers a stable reference for classifying vulnerability reports, scanner findings, and AI analyses against Camel K specifically.

Notes

  • This is not an audit, pentest, CVE list, or build-hygiene checklist — it describes the project as it is: the contract between Camel K and the clusters that run it.
  • Produced with the threat-model-producer rubric and ratified by a maintainer; every non-trivial claim carries a (documented) or (maintainer, 2026-05-18) provenance tag, and the appendix back-maps specific umbrella Camel Security Model statements to the relevant sections.
  • One item is intentionally open and non-blockingQ-meta: the publication venue and linking (where docs/threat-model.md should live — it is not currently published by the Antora docs site — and whether the Camel security pages should link to it). The substance of how it coexists with the umbrella model is settled (additive sub-project expansion for the excluded cluster layer); only the venue/linking remains a docs/PMC decision.

🤖 Generated with Claude Code

Adds docs/threat-model.md (the project's implicit security contract: scope,
trust boundaries, adversary model, properties provided/disclaimed,
downstream responsibilities, known misuses/non-findings, and a closed set
of triage dispositions) and a derived docs/threat-model.yaml sidecar for
automated/AI triage.

Produced with the threat-model-producer rubric and ratified by a
maintainer; every claim carries a (documented) or (maintainer, 2026-05-18)
provenance tag. The only open item is the non-blocking Q-meta (publication
venue / coexistence with the umbrella Apache Camel Security Model).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oscerd oscerd closed this May 18, 2026
The umbrella Apache Camel Security Model is now reachable at
camel.apache.org/manual/security-model.html. It explicitly self-scopes to
'Camel embedded in someone else's application, not a multi-tenant managed
service' and never covers the Kubernetes operator/CR/cluster layer.

- Promote the route-runtime division (§4.3, §4.9) from inferred/maintainer
  framing to (documented - Camel Security Model): route authors and
  deployment operators are fully trusted; code execution by a route author
  is by design and not a framework vulnerability; external message senders
  are Camel core's primary attacker model; DoS via resource exhaustion is
  operator responsibility.
- State the relationship explicitly: this document is the additive Camel-K
  sub-project expansion for the layer the umbrella excludes; strict
  superset, no contradiction (§4.1).
- Q-meta substance is settled (option c); only publication venue/linking
  remains a docs/PMC decision. Add a statement-level back-map to the
  umbrella model (appendix). Disambiguate the security features catalog
  (security.html) from the Security Model page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@squakez squakez left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work! LGTM, however I wonder if we can have some way to automate the changes to this as long as we change the code. In the future we're planning to change some of the design that are mentioned in the document, so this is likely to change often.

@oscerd

oscerd commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

We could work on a way of recreate this periodically

@oscerd
oscerd merged commit 035ca9b into main May 19, 2026
oscerd added a commit that referenced this pull request May 19, 2026
* chore: add AGENTS.md, CLAUDE.md and SECURITY.md

Adds repository-root AGENTS.md (AI agent guidelines), CLAUDE.md (identical
content, mirroring apache/camel's layout), and SECURITY.md (the entry point
GitHub and security tooling expect), modeled on apache/camel but adapted for
Camel K:

- Go/Make toolchain and real targets (make build/test/lint/generate/
  update-docs), not Maven.
- GitHub Issues workflow and the project's branch/commit conventions,
  not JIRA.
- Go async-testing guidance (Gomega Eventually, no time.Sleep).
- Security Model section wired to docs/threat-model.md as the additive
  Camel-K sub-project expansion of the umbrella Apache Camel Security Model;
  SECURITY.md points to it for scope and to the ASF process for private
  disclosure.

Note: SECURITY.md and AGENTS.md reference docs/threat-model.md, added by
PR #6634; those repo-relative links resolve once #6634 merges.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: address review feedback on AGENTS.md

squakez: don't hardcode the Camel K version and Go version in the agent
guidelines (they go stale). Instruct the agent to read them from the
authoritative sources instead: version from pkg/util/defaults/defaults.go
(or 'make get-version'), Go from the go directive in go.mod. Applied
identically to CLAUDE.md to keep the two files in sync.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants