Add draft threat model + SECURITY.md/AGENTS.md discoverability#6709
Conversation
|
Thanks for the fast turnaround. If you have a public skill to create the model, it would be great if you could share it (sure we can run, steer it and so on). I will check the output soon, however, my immediate thought is that we must forbid license headers in AGENTS.md. They are pure waste of tokens. AGENTS.md loads in every session, so the files must contain only the bare minimum. Sure license header is a pure waste when it comes to AGENTS.md and any other reference files the model consumes. PS. I consider using https://github.com/microsoft/apm for managing agent configurations and sharing skills, however, it is orthogonal to the PR. |
IN Airlfow we are using SPDX headers for all agentic skills for that very reason. If you want I can change ti this way in your PR as well, not sure if you are checking licences but this seemed to be result of the discussion we had on this subject in https://lists.apache.org/thread/j1tn63r2lf13v3d1tnnqff8fkcl4nx53 - while we do not have formal legal policy on that , seems that we can interpret the existing poliicy this way. |
|
I am absolutely happy to update the PR :) |
|
Done — stripped the Apache license headers from |
|
Ad the SKILL is linked above in the PR description |
milamberspace
left a comment
There was a problem hiding this comment.
PMC review of the draft threat model (v0) — 6 inline comments below addressing the open questions in §14, one identified gap (HTTPS recording proxy), and a correction on the Security Manager forward story for JDK 24+.
|
On ASF license headers in AI agent-facing files Following up on @vlsi's comment about token waste in Why license headers should be omitted from AI-facing files: Files such as
Recommendation for future files of this type: any file whose primary consumer is an AI agent (not a human reader or a build tool) should be added to The current PR's approach — removing the headers and updating Broader suggestion: an ASF-level discussion on AI-facing files This raises a question that goes beyond JMeter alone. As AI tooling becomes standard in open source development, it would be worth opening a discussion within the ASF (e.g. via the The current full license header is clearly overkill for these files. A reasonable middle ground could be a lightweight attribution line — something like: This would:
A shared ASF convention on this point would benefit all projects adopting |
@milamberspace - of course - I 100% agree with it. Chiming in in https://lists.apache.org/thread/j1tn63r2lf13v3d1tnnqff8fkcl4nx53 and stating your position in the thread might be a good first start - as well as anyone else who thinks like it. This is in the camp of legal now to clarify it - and we need people like you to take the lead and drive it to policy change. I am 100% happy to support you! |
|
Generally - the more people we have stating their poistion in those discussions - the better! Please do so. |
|
Pushed a v1 folding in your review — thanks @vlsi @milamberspace. What changed:
On the broader "AI-facing files" point (@milamberspace): strongly agree it's worth an ASF-level convention. Happy to help take it to the relevant list. |
|
Q5 (hostile SUT) — confirmed out of model Agreed — no in-model carve-out needed. The trust boundary is clear: an operator tests only systems they own or are authorised to test. Parser robustness against a hostile SUT (XXE on XPath Extractor, ReDoS on regex patterns, unbounded response sizes) is desirable hardening, but classifying it as a claimed security property would essentially mean saying "JMeter is safe to point at attacker-controlled infrastructure" — which is not the intended use case and would be an untenable claim. Classification: VALID-HARDENING (internal audit track, not an in-model threat). §9 "safe response handling — UNSPECIFIED / best-effort" is the right framing. The current v1 wording works well. §14 wave 2 can be fully marked answered. |
milamberspace
left a comment
There was a problem hiding this comment.
One additional suggestion on §2 scope — see inline comment below.
|
Thanks @milamberspace and @vlsi — pushed a revision addressing the review:
Two items I left as §14 questions rather than guess: the exact XStream allowlist mechanism (a static |
|
Note for reviewers: the only failing matrix cell is |
|
Thanks @milamberspace and @vlsi — your full review is already folded into the v1 model; resolving the threads now. Confirmed in-model: the HTTPS recording-proxy ( Applied @vlsi's AGENTS.md suggestion — trimmed to the bare Tracked follow-ups (engineering, not model blockers): the XStream allowlist (closes the CVE-2013-7285 TODO), the |
|
LGTM @vlsi |
Add SECURITY.md pointing to the ASF security process, and a draft THREAT_MODEL.md that records what JMeter treats as in and out of scope, its adversary model, the security properties it provides, and how findings are triaged. The threat model builds on the existing security.html policy rather than replacing it. Add AGENTS.md as a one-line pointer so scanners and AI assistants discover the security model. Exclude the three headerless docs from RAT in .ratignore. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
4ea3c42 to
868856f
Compare
|
Many thanks to @potiuk for extremely fast turnaround and pushing this forward. |
|
Thank you for being so responsive :) |
What this is
A draft threat model for Apache JMeter, proposed by the ASF Security team for the JMeter PMC to review, correct, or reject — drafted by the Security team's threat-model tooling from JMeter's public docs and
security.html, following the ASF Security threat-model rubric.It is built on the existing
security.html: that page's "Security Model" statements are lifted in verbatim as the documented core, and this document adds the surrounding threat-model structure (adversary model, in/out scope, properties, known non-findings, triage dispositions). It is a strict superset — nothing insecurity.htmlis weakened; that page stays the canonical reporting/policy page and should link here for the expanded model.This PR:
THREAT_MODEL.md— the draft model;SECURITY.md— a short security policy linking the threat model (andsecurity.html);AGENTS.mdwith a## Securitysection, so the chainAGENTS.md → SECURITY.md → THREAT_MODEL.mdis mechanically discoverable by automated security scanners.How to read it
Every claim is provenance-tagged: (documented) (from JMeter's docs/
security.html/repo), (inferred) (reasoned from architecture, not yet confirmed), (maintainer) (confirmed by the PMC). This v0 is ~10 documented / ~26 inferred. The §14 Open questions section collects the inferred claims into waves for the PMC to confirm or correct. The model leads with the documentedBY-DESIGNcore — JMeter executes the (trusted) test plan it is given, and isolating untrusted.jmxis the user's responsibility — and then focuses the in-model boundaries on:jmeter-server) and its RMI-over-SSL + Security-Manager defaults (wave 1);.jmxfiles (wave 2);Nothing here is a requirement — the model is for the PMC to own. Comment inline, edit the branch, or reply on the email thread.