Objective: Disrupt Application or Exfiltrate Sensitive Data {CRITICAL NODE}
+-------------------------------------------------+
| Disrupt Application or Exfiltrate Sensitive Data | {CRITICAL NODE}
+-------------------------------------------------+
|
+--------------------------------+--------------------------------+--------------------------------+
| | | |
+------+------+ +------+------+ +------+------+
| DoS via | [HIGH RISK] | Message | [HIGH RISK] | NSQLookupd| [HIGH RISK]
| NSQ | | Tampering | | Exploit |
+------+------+ +------+------+ +------+------+
| | |
| | |
+------+------+ +------+------+ +------+------+
| Resource | [HIGH RISK] | Modify | [HIGH RISK] | Spoof | [HIGH RISK]
| Exhaustion| | Messages | | Lookupd |
+------+------+ +------+------+ +------+------+
| | |
+------+------+ +------+------+ +------+------+
| Flood | [HIGH RISK] | Inject | [HIGH RISK] | Return | [HIGH RISK]
| Topics | | Malicious| | Fake |
+------+------+ | Payloads | | NSQD |
| | | Addresses|
+------+------+ +------+------+ +------+------+
| |
+------+------+
| Flood | [HIGH RISK]
| Channels |
+------+------+
|
+------+------+
| Slow | [HIGH RISK]
| Consumers|
+------+------+
|
+------+------+
| Flood with | [HIGH RISK]
| Large Msgs|
+------+------+
Attack Tree Path: 1. DoS via NSQ [HIGH RISK]
- Goal: Render the application unavailable by overwhelming the NSQ infrastructure.
- Sub-Goal: Resource Exhaustion [HIGH RISK]
- Attack Vector: Flood Topics [HIGH RISK]
- Description: Create an excessive number of topics, exceeding the system's or application's capacity to handle them. NSQ does not enforce limits on topic creation by default.
- Likelihood: Medium
- Impact: High
- Effort: Low
- Skill Level: Novice
- Detection Difficulty: Medium
- Mitigation: Implement application-level limits on topic creation. Monitor topic counts.
- Attack Vector: Flood Channels [HIGH RISK]
- Description: Create an excessive number of channels within topics, similar to topic flooding. NSQ does not enforce limits on channel creation by default.
- Likelihood: Medium
- Impact: High
- Effort: Low
- Skill Level: Novice
- Detection Difficulty: Medium
- Mitigation: Implement application-level limits on channel creation. Monitor channel counts.
- Attack Vector: Slow Consumers [HIGH RISK]
- Description: Intentionally slow down message consumption, causing a backlog of messages in NSQD and potentially leading to resource exhaustion (memory, disk).
- Likelihood: Medium
- Impact: High
- Effort: Medium
- Skill Level: Intermediate
- Detection Difficulty: Medium
- Mitigation: Monitor consumer lag. Implement timeouts and error handling for slow consumers. Use
nsqadmin
. Consider auto-scaling.
- Attack Vector: Flood with Large Messages [HIGH RISK]
- Description: Send messages that are excessively large, consuming network bandwidth and memory on
nsqd
instances. - Likelihood: Medium (if no size limits) / Low (if size limits are enforced)
- Impact: High
- Effort: Low
- Skill Level: Novice
- Detection Difficulty: Medium
- Mitigation: Enforce maximum message size limits using the
--max-msg-size
flag onnsqd
.
- Description: Send messages that are excessively large, consuming network bandwidth and memory on
- Attack Vector: Flood Topics [HIGH RISK]
Attack Tree Path: 2. Message Tampering [HIGH RISK]
- Goal: Modify or inject messages to disrupt application logic or exfiltrate data.
- Sub-Goal: Modify Messages [HIGH RISK]
- Attack Vector: Intercept and alter the content of messages in transit. Highly effective if TLS is not used.
- Likelihood: Low (with TLS) / High (without TLS)
- Impact: Very High
- Effort: Low (without TLS) / High (with TLS)
- Skill Level: Intermediate (without TLS) / Expert (with TLS)
- Detection Difficulty: Hard (without TLS or message signing) / Very Hard (with TLS and message signing)
- Mitigation: Always use TLS encryption for all NSQ connections.
- Sub-Goal: Inject Malicious Payloads [HIGH RISK]
- Attack Vector: Send messages with crafted content designed to exploit vulnerabilities in the consumer application (e.g., SQL injection, command injection).
- Likelihood: Medium
- Impact: Very High
- Effort: Medium to High
- Skill Level: Intermediate to Advanced
- Detection Difficulty: Hard
- Mitigation: Thoroughly validate and sanitize all message data in the consumer application. Treat message content as untrusted input.
Attack Tree Path: 3. NSQLookupd Exploit
- Goal: Compromise
nsqlookupd
to disrupt service discovery or redirect clients. - Sub-Goal: Spoof Lookupd [HIGH RISK]
- Attack Vector: Run a rogue
nsqlookupd
instance that provides incorrect information (e.g., addresses of maliciousnsqd
nodes) to clients. - Likelihood: Medium
- Impact: High
- Effort: Low
- Skill Level: Intermediate
- Detection Difficulty: Medium
- Mitigation: Use TLS. Configure clients to connect to specific, trusted
nsqlookupd
instances.
- Attack Vector: Run a rogue
- Sub-Goal: Return Fake NSQD Addresses [HIGH RISK]
- Attack Vector: Compromise a legitimate
nsqlookupd
instance to return the addresses of maliciousnsqd
nodes. - Likelihood: Low
- Impact: Very High
- Effort: High
- Skill Level: Advanced
- Detection Difficulty: Hard
- Mitigation: Use TLS. Restrict network access to
nsqlookupd
. Monitor logs.
- Attack Vector: Compromise a legitimate