A cybersecurity project focused on SSH authentication analysis using Splunk dashboards.
This lab demonstrates how to visualize successful and failed logins, detect possible brute-force attacks, and map attacker origins geographically.
To create an interactive Splunk dashboard that analyzes SSH logs and provides visibility into authentication activity and potential brute-force attempts.
- Tool: Splunk Enterprise
- Dataset:
ssh_logs.json,ssh_logs_new.json - Host:
kali - Sourcetype:
_json
- Click on Add Input
- Select Time → click on the pencil icon
- Set Label to
Time Rangeand Token totime_range - Add another input → Select Submit
💡 Note: For all future panels, set the time to time_range for consistency.
Goal: Give a quick summary of SSH activity.
source="ssh_logs.json" host="kali" sourcetype="_json"
| stats count AS "Total SSH Events"
source="ssh_logs.json" host="kali" sourcetype="_json" event_type="Successful SSH Login"
| stats count AS "Successful Logins"
source="ssh_logs.json" host="kali" sourcetype="_json" event_type="Failed SSH Login"
| stats count AS "Failed Logins"
index=auth "sshd" "invalid user"
| stats count AS "Invalid User Attempts"
Goal: Visualize login behavior over time and detect spikes.
source="ssh_logs_new.json" host="kali" sourcetype="_json" event_type="Failed SSH Login"
| top username
source="ssh_logs_new.json" host="kali" sourcetype="_json" event_type="Multiple Failed Authentication Attempts"
| top id.orig_h
source="ssh_logs_new.json" host="kali" sourcetype="_json" event_type="Multiple Failed Authentication Attempts"
| table id.orig_h
| iplocation id.orig_h
| stats count by Country
| geom geo_countries featureIdField="Country"
Here’s how the final dashboard looks 👇
Creating this dashboard really made me happy — I couldn’t stop smiling after seeing everything come together! 😄
Building each panel from scratch gave me a deeper appreciation for Splunk’s flexibility (especially after using Wazuh dashboards).
Special thanks to Rajneesh Gupta for guidance and support throughout this project.
This project helped me understand how to:
- Parse and visualize SSH logs in Splunk
- Detect failed and suspicious login patterns
- Create dynamic dashboards using shared time filters
#Splunk #CyberSecurity #SIEM #SSH #SOC #LearningByDoing