What You'll Learn
- Understand why a single detection source is never enough to tell the full story of an attack
- Correlate Suricata network alerts with Wazuh endpoint alerts by timestamp, IP address, and hostname
- Build a unified kill-chain timeline from multi-source detection data
- Identify the unique evidence each source provides — what network sees that the endpoint misses, and vice versa
- Apply cross-tool correlation techniques to real attack scenarios
- Prioritize and escalate incidents using correlated evidence from multiple detection sources
One Attack, Two Perspectives
An attacker launches a SQL injection campaign against a web application running on linux-web-01. The attack is real, the tools are real, and both your network sensor and endpoint agent fire alerts. But each tool tells a fundamentally different part of the story.
What Suricata sees on the wire:
- HTTP requests with a
sqlmapUser-Agent string hitting the web server - Suspicious URI patterns containing
UNION SELECT, encoded payloads, and error-based injection strings - Minutes later, an outbound connection from the web server to an external IP on a non-standard port — C2 beaconing at regular intervals
- DNS queries to
exfil.badactor.comwith unusually long subdomain labels — encoded data being tunneled out
What Wazuh sees on the host:
- Apache error logs spiking with 500 status codes and SQL syntax errors
- A new file appearing in
/var/www/html/uploads/— a web shell sudocommands executed by thewww-datauser, which should never have elevated privileges- A new systemd service registered, pointing to a binary in
/tmp/ - File integrity monitoring (FIM) alerts for modified
/etc/passwd
Neither tool alone tells the complete story. Suricata knows the attack came from the network and data left via DNS tunneling, but it has no idea a web shell was dropped or that privilege escalation occurred on the host. Wazuh knows the host was compromised and a persistence mechanism was installed, but it cannot see the C2 beacon timing or the DNS exfiltration payload content.
Network detection tells you WHAT crossed the wire. Endpoint detection tells you WHAT HAPPENED on the host. Correlation tells you the FULL STORY.
Together, these two perspectives build the complete kill chain: initial access via SQL injection (Suricata), web shell deployment (Wazuh), privilege escalation (Wazuh), C2 establishment (Suricata), lateral movement (both), and data exfiltration (Suricata). That unified picture changes everything — the severity, the scope, and the urgency of the response.
What Each Source Uniquely Provides
Every detection source has blind spots. Understanding what each tool can and cannot see is the foundation of effective correlation. The following table maps common attack evidence to the detection source best positioned to capture it.
| Evidence Type | Network (Suricata) | Endpoint (Wazuh) | Both |
|---|---|---|---|
| SQL injection attempt | HTTP URI patterns + User-Agent | Web server error logs | Attacker source IP |
| C2 communication | Destination IP, beacon interval, JA3 hash | Process making the outbound connection | Timestamp |
| Lateral movement | SMB/RDP traffic between internal hosts | Service creation, RDP logon events | Source and destination hosts |
| DNS tunneling | Full DNS query content, subdomain encoding | DNS client process name | Domain name |
| Data exfiltration | Bytes transferred, protocol, destination | File access, compression commands | Timeframe |
| Privilege escalation | (not visible on the wire) | sudo events, new admin accounts | — |
| Web shell activity | HTTP request with cmd parameter | New file in web directory (FIM) | Target server |
| Malware installation | Download traffic, payload hash | File creation, service registration | Timestamp |
Notice that privilege escalation is completely invisible to network detection — it happens entirely on the host. There is no packet on the wire when a user runs sudo su. Conversely, C2 beacon timing patterns and JA3 fingerprints are invisible to endpoint agents that only see "process X made a connection." This is precisely why defense in depth requires both network and endpoint visibility. Neither alone is sufficient.
Correlation Keys — How to Link Events Across Tools
Suricata alerts live in EveBox. Wazuh alerts live in the Wazuh dashboard. They are separate systems with separate schemas, separate timestamps, and separate naming conventions. To link events across these tools, you need correlation keys — shared data points that appear in both systems and let you connect the dots.
Timestamp
The most fundamental correlation key. Events from the same attack cluster within a tight time window — typically minutes, not hours. If Suricata records a SQL injection attempt at 14:32:15 and Wazuh records a web server error at 14:32:18, those three seconds of difference strongly suggest the same event.
Time synchronization matters enormously here. Both Suricata and Wazuh should be synced to the same NTP source. In the CyberBlueSOC lab environment, all containers share the host clock, so timestamps align. In production environments, clock drift between sensors can make correlation significantly harder.
IP Address
The source IP in a Suricata alert matches the attacker's IP. The agent IP in a Wazuh alert identifies the target host. When Suricata shows SQL injection from 10.99.99.1 targeting 10.0.0.10, and Wazuh shows web server errors on the agent at 10.0.0.10, you have connected network and endpoint events for the same attack.
Hostname
IP addresses are numbers. Hostnames give context. The IP 10.0.0.10 becomes meaningful when you know it maps to linux-web-01. Mapping IPs to hostnames lets you connect Suricata network events (which reference IPs) to Wazuh agent events (which reference hostnames). Maintain a mapping table or use DNS reverse lookups to bridge the gap.
User Context
After correlating at the host level, the endpoint data reveals which user account was involved. Was it the www-data service account? A named administrator? A compromised user? User context is almost exclusively available from the endpoint — Suricata cannot tell you who was logged in when the connection was made.
ATT&CK Technique
Both Suricata rules and Wazuh rules can reference MITRE ATT&CK technique IDs. When a Suricata alert maps to T1190 (Exploit Public-Facing Application) and a Wazuh alert on the same host at the same time maps to T1059 (Command and Scripting Interpreter), those two technique IDs tell you the attacker has progressed from initial access to execution — even though the raw alert data looks completely different.
Start with timestamp + IP as your primary correlation keys. If Suricata shows SQL injection from 10.99.99.1 at 14:32 and Wazuh shows web server errors on linux-web-01 (IP 10.0.0.10) at 14:32, you have connected the attack across tools. From there, layer on hostname, user, and ATT&CK technique to build the full picture.
Building a Unified Timeline
The real power of correlation is the unified timeline — a single chronological view that weaves network and endpoint events into a coherent attack narrative. Here is the Operation Wire Tap scenario mapped across both detection sources:
| Time | Source | Event | ATT&CK |
|---|---|---|---|
| T+0 | Suricata | Port scan from 10.99.99.1 — Nmap User-Agent detected, SYN packets to multiple ports | Reconnaissance (T1046) |
| T+3 min | Suricata | SQL injection attempts targeting 10.0.0.10 — sqlmap User-Agent, UNION SELECT in URI | Initial Access (T1190) |
| T+5 min | Wazuh | New file detected in /var/www/html/uploads/ on linux-web-01 — web shell (FIM alert) | Persistence (T1505.003) |
| T+6 min | Suricata | HTTP requests to web shell with cmd parameter — command execution over HTTP | Execution (T1059) |
| T+8 min | Suricata + Wazuh | Outbound reverse shell connection from 10.0.0.10 to external IP (Suricata) + sudo commands by www-data user (Wazuh) | C2 (T1071) + Privilege Escalation (T1548) |
| T+12 min | Suricata | SMB connections from 10.0.0.10 to 10.0.0.20, 10.0.0.30 — lateral movement between internal hosts | Lateral Movement (T1021) |
| T+15 min | Suricata | DNS queries to exfil.badactor.com with long encoded subdomains — DNS tunneling | Exfiltration (T1048) |
| T+18 min | Suricata | Outbound connection to known Tor relay 185.220.101.42 from internal host | Defense Evasion / Policy Violation |
Without correlation, these alerts look like separate incidents. The port scan at T+0 might be dismissed as routine internet noise. The web shell FIM alert at T+5 might be investigated in isolation without knowing SQL injection preceded it. The DNS tunneling at T+15 might not be connected to the compromised web server at all. Only when you overlay the network timeline onto the endpoint timeline does the full kill chain emerge — and that changes the severity from "investigate when you can" to "escalate immediately."
The Correlation Workflow in Practice
Correlation is a structured process, not an intuition. Follow these steps every time you investigate a multi-source alert cluster:
Step 1 — Start with the highest-severity alert. Open EveBox or the Wazuh dashboard and find the alert with the highest severity or the most specific signature. A C2 beacon detection is a better starting point than a generic port scan.
Step 2 — Extract the correlation keys. From that alert, note the source IP, destination IP, timestamp, and any ATT&CK technique references. These are your search terms for the next step.
Step 3 — Search the other tool. If you started with a Suricata alert in EveBox, now search Wazuh for events from the same target host in the same time window (expand to +/- 15 minutes to account for clock differences and attack progression). If you started with Wazuh, search EveBox for network events involving the same IP.
Step 4 — Map matching events to ATT&CK techniques. For each correlated event, identify the ATT&CK tactic and technique. This transforms raw log data into a structured attack narrative.
Step 5 — Build the timeline in chronological order. Arrange all correlated events by timestamp, regardless of which tool generated them. The chronological sequence reveals the kill chain progression.
Step 6 — Identify gaps. Are there any kill chain stages missing from your timeline? If you see initial access and C2 but no exploitation or installation events, that does not mean those stages did not happen — it means your detection missed them. Note the gaps explicitly; they inform where detection coverage needs improvement.
Step 7 — Write the correlation summary for escalation. Document the unified timeline, the confidence level (how many correlation keys matched), the scope (which hosts are affected), and a recommended response action. This summary is what the L2 or L3 analyst and the incident commander will use to make decisions.
Correlation is a skill that takes practice. Your first attempts will be slow and messy — you will struggle with different timestamp formats, miss obvious connections, and get lost switching between tools. That is normal and expected. Lab 3.4 gives you hands-on practice with exactly this workflow. The same Operation Wire Tap attack generates alerts in both Suricata (EveBox) and Wazuh, and your job is to correlate them into a unified timeline.
When Correlation Changes the Verdict
Single-source alerts are inherently ambiguous. Correlation eliminates that ambiguity by adding context from a second independent source. Here are three examples of how correlation transforms an analyst's assessment:
Example 1: Failed SSH Login
- Single source (Wazuh): A failed SSH login from an external IP on
linux-web-01. Verdict: Low priority, probably an automated bot. Thousands of these appear daily on internet-facing servers. - Correlated: The same external IP also triggered a port scan alert in Suricata 5 minutes earlier. Then a successful SSH login appears in Wazuh 2 minutes after the failed one. Then Wazuh reports a new service created on the host. Correlated verdict: Critical — active compromise in progress. Escalate immediately.
Example 2: DNS Query to Suspicious Domain
- Single source (Suricata): DNS query to a newly registered domain with high entropy in the name. Verdict: Possibly malicious, but could be a CDN subdomain or legitimate service. Medium priority.
- Correlated: Wazuh shows that the process making the DNS query is
/tmp/.hidden/beacon, running under thewww-datauser on a web server that was flagged for a FIM alert 30 minutes ago. Correlated verdict: Confirmed C2 communication from a compromised host. Escalate with full timeline.
Example 3: Large Outbound Transfer
- Single source (Suricata): 500 MB transferred from an internal host to an external cloud storage IP over HTTPS. Verdict: Could be a legitimate backup or file upload.
- Correlated: Wazuh shows
tarandgzipcommands run on that host 10 minutes before the transfer, compressing/var/lib/postgresql/data/. The user waswww-data, not an administrator. Correlated verdict: Data exfiltration of the production database. Critical escalation with forensic hold.
In each case, the single-source alert could reasonably be deprioritized or investigated at normal speed. The correlated evidence transforms the verdict from ambiguous to definitive, and the response from "when you get to it" to "drop everything."
Key Takeaways
- No single detection source tells the complete story — network sensors and endpoint agents each have blind spots that the other covers
- Timestamp + IP address are the primary correlation keys for linking Suricata network alerts to Wazuh endpoint alerts
- Privilege escalation is invisible to network detection; C2 beacon timing is invisible to endpoint agents — defense in depth requires both
- A unified timeline arranges all correlated events chronologically, revealing the full kill chain regardless of which tool generated each alert
- The correlation workflow follows a structured seven-step process: start with the highest-severity alert, extract keys, search the other tool, map to ATT&CK, build the timeline, identify gaps, and write the escalation summary
- Correlation transforms ambiguous single-source alerts into definitive multi-source verdicts — changing "investigate when you can" to "escalate immediately"
- Gaps in the timeline are as important as the events you find — missing stages indicate detection blind spots, not missing attack stages
What's Next
You now have the complete network detection toolkit: what NIDS captures and why it matters (Lesson 3.1), how Suricata rules work and how to read them (Lesson 3.2), protocol-level analysis for HTTP, DNS, and TLS (Lesson 3.3), DNS-specific threats and tunneling detection (Lesson 3.4), and cross-tool correlation that turns isolated alerts into a unified attack narrative (this lesson).
It is time to put it all into practice. In Lab 3.1 — Network Alert Triage, you will open EveBox and face 49 alert groups from the Operation Wire Tap attack. Categorize them by severity, find the false positives hiding among real threats, and escalate the critical ones. Then in Labs 3.2 through 3.4, you will read and interpret Suricata rules, hunt for DNS anomalies in live traffic, and build a unified timeline from both network and endpoint data — correlating exactly the way you learned in this lesson.
The wire is waiting.
Knowledge Check: Network + SIEM Correlation
10 questions · 70% to pass
Why is a single detection source insufficient for understanding the full scope of an attack?
Which type of attack evidence is completely invisible to network detection tools like Suricata?
What are the two PRIMARY correlation keys for linking Suricata alerts to Wazuh alerts?
In the correlation workflow, what should be the analyst's FIRST step when investigating a multi-source alert cluster?
An analyst sees a port scan from an external IP in Suricata, followed by a successful SSH login from the same IP in Wazuh, followed by a new service creation on the target host. How does correlation change the verdict compared to each alert viewed individually?
When building a unified timeline, the analyst notices that exploitation and installation events are missing between the initial access and C2 stages. What does this gap indicate?
What unique evidence does network detection (Suricata) provide for C2 communication that endpoint detection (Wazuh) cannot?
In Lab 3.4, you correlate the Operation Wire Tap attack across Suricata and Wazuh. When Suricata shows SQL injection from 10.99.99.1 targeting 10.0.0.10 at 14:32, and Wazuh shows Apache error logs spiking on linux-web-01 at 14:32, what correlation keys link these two events?
In the Operation Wire Tap unified timeline, the port scan at T+0 is followed by SQL injection at T+3, web shell at T+5, C2 at T+8, lateral movement at T+12, and DNS exfiltration at T+15. If an analyst only had the Suricata port scan alert (T+0) without correlation, what would the likely verdict be?
In Lab 3.4, you build a unified timeline correlating Suricata and Wazuh events from Operation Wire Tap. Which step in the correlation workflow helps identify where your detection coverage needs improvement?
0/10 answered