elastic / elastic/detection-rules

[Rule Tuning] RDP (Remote Desktop Protocol) from the Internet (8c1bdde8-4204-45c0-9e0c-c85ca3902488)

Open
#5,507 12 comments 0 reactions 2 assignees Claimed by @Samirbous View on GitHub
genai-tradecraft
Dominant language
Python
Stars
2.7k
Forks
696
Avg merge
4d 17h
Merged PRs (30d)
87

Description

## Rule Tuning Analysis

**Rule ID:** `8c1bdde8-4204-45c0-9e0c-c85ca3902488`
**Rule Name:** RDP (Remote Desktop Protocol) from the Internet
**Rule Type:** query

---

### Classification

| Metric | Value |
|--------|-------|
| **Category** | NOISY_PERFORMANT |
| **Priority** | MEDIUM |
| **Tuning Score** | 48.1 |
| **Version Status** | ✅ Established (24 release cycles) |

---

### Alert Telemetry

| Metric | Value |
|--------|-------|
| Total Alerts (3d) | 105,421 |
| Unique Clusters | 22 |
| Cluster Coverage | 0.9% |
| Daily Average | 35140 |
| Days Active | 3 |
| Coefficient of Variation | 0.54 (MODERATE) |

---

### Analysis Flags

- 🔴 Noisy on Latest Version: ✅ Yes
- 🔴 Widespread False Positive: ❌ No
- ⚠️ Version Regression: ❌ No
- ⚠️ Stale and Noisy: ❌ No
- ⚠️ Low Version / High Volume: ❌ No
- ℹ️ Low Activity: ❌ No

---

### Recommendation

**Action:** Exclude PAN-OS denied/dropped traffic and narrow dataset selection to reduce scan noise while keeping real exposed/allowed RDP connections.

**Rationale:** The rule correctly identifies inbound RDP from the Internet to private addresses but is overly broad for PAN-OS logs, alerting on massive volumes of firewall-denied/dropped attempts. Sample events show panw.panos records with event.type=denied/event.action=flow_dropped/outcome=failure driving noise. Tightening the query to exclude PAN-OS denies/drops and narrowing to specific datasets will significantly reduce noise while preserving detections of actual exposed/allowed RDP connections.

#### Query Modifications

**PAN-OS denied/dropped Internet scans inflate alert volume.** *(Impact: both)*

**Current:**
```sql
… and (destination.port:3389 or event.dataset:zeek.rdp) and …
```

**Modify →**
```sql
… and (destination.port:3389 or event.dataset:zeek.rdp) and not (event.dataset: panw.panos and (event.type: denied or event.outcome: failure or event.action: (flow_dropped or deny))) …
```

> Events 3–4 show panw.panos with event.type: denied / action: flow_dropped / outcome: failure. Excluding these suppresses high-volume scan noise while preserving actual exposed/allowed RDP connections (e.g., Events 1–2, 5).

**Broad dataset predicate uses event.category which can pull non-relevant docs and adds cost.** *(Impact: performance)*

**Current:**
```sql
(event.dataset: network_traffic.flow or (event.category: (network or network_traffic)))
```

**Modify →**
```sql
(event.dataset: (network_traffic.flow or panw.panos or zeek.rdp))
```

> Restricts matching to the intended network flow sources and PAN-OS/Zeek RDP telemetry, avoiding generic event.category matches and improving precision and query efficiency.

#### Exception Recommendations

**Add exception:** `event.type` is `"denied"` *(Confidence: HIGH)*

> Events 3–4 are panw.panos with event.type: denied to dst.port 3389; these are firewall blocks, not successful exposure. Across customers, PAN-OS produces large volumes of denied RDP probes from Internet scans.

**Modify →**
```sql
and event.type is "denied"
```

**Add exception:** `event.action` is `"flow_dropped"` *(Confidence: HIGH)*

> Events 3–4 show event.action: flow_dropped for inbound 3389 attempts; dropping these is benign and high-volume. Removing them prevents scan noise from triggering alerts.

**Modify →**
```sql
and event.action is "flow_dropped"
```

**Add exception:** `event.outcome` is `"failure"` *(Confidence: HIGH)*

> Blocked/failed attempts (event.outcome: failure) dominate scan noise in PAN-OS logs as seen in Events 3–4. Excluding failures focuses alerts on allowed/established connections indicative of exposure.

**Modify →**
```sql
and event.outcome is "failure"
```

#### Field-Level Recommendations

| Field | Value | Alert % | Cluster % | Confidence | Type |
|-------|-------|---------|-----------|------------|------|
| `event.type` | `denied` | 0.0% | 60.0% | HIGH | EXCEPTION |
| `event.action` | `flow_dropped` | 0.0% | 55.0% | HIGH | EXCEPTION |
| `event.outcome` | `failure` | 0.0% | 50.0% | HIGH | EXCEPTION |

---

*This issue was generated by the GenAI Tradecraft Rule Tuning Advisor.*
*Analysis timestamp: 2025-12-21T06:08:33.356243*

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.