ARTEMIS-6077 document threat model#6468
Conversation
| Security researchers, operators deploying Artemis in production, and application developers integrating with the broker should consult this model to understand the security contract. | ||
|
|
||
| Findings should be reported per link:https://artemis.apache.org/security-advisories[Artemis' security disclosure process]. | ||
| Findings that that fall under <<security-properties-provided, claimed properties>> will be accepted. |
There was a problem hiding this comment.
Double that
| Findings that that fall under <<security-properties-provided, claimed properties>> will be accepted. | |
| Findings that fall under <<security-properties-provided, claimed properties>> will be accepted. |
|
|
||
| Security researchers, operators deploying Artemis in production, and application developers integrating with the broker should consult this model to understand the security contract. | ||
|
|
||
| Findings should be reported per link:https://artemis.apache.org/security-advisories[Artemis' security disclosure process]. |
There was a problem hiding this comment.
Optional
| Findings should be reported per link:https://artemis.apache.org/security-advisories[Artemis' security disclosure process]. | |
| Findings should be reported according to the link:https://artemis.apache.org/security-advisories[Artemis' security disclosure process]. |
|
|
||
| Findings should be reported per link:https://artemis.apache.org/security-advisories[Artemis' security disclosure process]. | ||
| Findings that that fall under <<security-properties-provided, claimed properties>> will be accepted. | ||
| Findings that are <<out-of-scope,out of the scope>> or involve security properties <<security-properties-not-provided,explicitly not provided>> will be closed citing this document. |
There was a problem hiding this comment.
The findings are rendered without new lines. Are those findings a list?
There was a problem hiding this comment.
It's not a list. It's just a paragraph.
| === Trust transitions | ||
|
|
||
| . *Messaging Client → Broker Core:* Messages from network clients (untrusted or authenticated) are parsed by protocol adapters and routed to the broker core. | ||
| Authentication happens at connection establishment; authorization happens per operation (send, consume, create queue, etc.). |
There was a problem hiding this comment.
consume is a bit different: an authorized consumer can consume also after revoking the consume permissions: once the ServerConsumer object is created, no further authorization checks occur during message delivery and the consumer can continue consuming until it disconnects
|
|
||
| === Reachability preconditions per component | ||
|
|
||
| * *Protocol Adapters:* A finding is in-model only if reachable from network input on the corresponding protocol port without requiring authenticated management credentials. |
There was a problem hiding this comment.
Does this exclude findings that lead to privilege escalations?
There was a problem hiding this comment.
No. It's just saying that if you have authenticated management credentials you are trusted and not considered adversarial.
|
|
||
| === Filesystem assumptions | ||
|
|
||
| * The broker assumes it has exclusive write access to its data directory (journal, paging, bindings). |
There was a problem hiding this comment.
Showuld we also assume a restricted access to the etc directory?
I started this document using this skill which was recommended by Apache security. I heavily modified the output to simplify and clarify the result.
This model is relatively high-level. We can add more details as necessary over time to cover any gaps. The main priority here is to cover all the bases and provide researchers (and AI tools) a reference to avoid a glut of false positives.