Scenario
Vandalay Industries (a simulated enterprise) is under multi-vector attack. As the acting SOC analyst I ingested web server logs, Nessus scan results, and Windows event logs into Splunk, then built detection queries and dashboards to identify active threats in real time.
All data is from a controlled lab dataset. No production systems were involved.
Threats Identified
| Attack | Sourcetype | Indicator | Severity |
|---|---|---|---|
| DDoS โ HTTP Flood | access_log |
500+ req/min from single IP | HIGH |
| SSH Brute Force | WinEventLog |
Event ID 4625 spike > 50/min | HIGH |
| Nessus Vuln Scan | nessus |
Critical/High findings on port 80 | MED |
| Recon โ Port Scan | access_log |
Sequential port probes, short TTW | LOW |
Search Queries
DDoS detection โ high request rate from single IP:
index=main sourcetype=access_log | stats count by clientip, uri_path | where count > 500 | sort - count | rename clientip as "Source IP", count as "Requests"
SSH brute force โ failed logins from Windows event log:
index=main sourcetype=WinEventLog EventCode=4625 | stats count by src_ip, user, _time | eval time_bucket=strftime(_time, "%Y-%m-%d %H:%M") | stats sum(count) as total_failures by src_ip, time_bucket | where total_failures > 50 | sort - total_failures
Nessus โ critical and high vulnerabilities correlated with web log activity:
index=nessus severity IN ("Critical","High") | join host [ search index=main sourcetype=access_log | stats count by host ] | table host, plugin_name, severity, description, count | sort - severity, - count
What I Built
Alert Configuration
- 1DDoS Alert โ scheduled every 5 min; triggers when any single IP exceeds 500 requests to
/. Action: email + Splunk notable event. - 2Brute Force Alert โ real-time; EventCode=4625 count > 50 in 5-min window. Action: Splunk notable + suppress for 30 min after first fire per source IP.
- 3Critical Vuln Alert โ daily; any new Nessus Critical finding on externally reachable hosts. Action: email to security team distribution list.
- 4Recon Alert โ hourly; sequential port probe pattern (> 20 distinct ports in 60 s from one IP). Action: notable event with MITRE T1046 tag.
What I Learned
- โSPL โ joins, subsearches, timechart, stats, eval functions. Moved from basic keyword search to multi-source correlation queries
- โAlert fatigue management โ importance of suppression windows and threshold tuning to reduce false positives
- โNessus integration โ importing scan data as a Splunk source, correlating with live traffic to prioritise by exposure
- โDashboard design for SOC โ layout choices that support quick triage rather than just data display