altamishpirzada

Portfolio of my cybersecurity projects

View on GitHub

Wazuh (SIEM)

I built a SIEM pipeline from scratch and proved it end to end: an nmap scan I launched from a Kali box travelled through the firewall, across syslog, and landed as a correlated alert in the dashboard. Wazuh, an open-source SIEM, is the centre of this lab. It’s the single place I watch the environment from, pulling host and network signals together so I can practise the actual work of a SOC: generate activity, triage what comes back, and tell real signals from noise.

What it pulls together:

How I built it

  1. Wazuh server: deployed all-in-one (indexer, manager, dashboard) on an Ubuntu server. One box to manage, with a static reservation on OPNsense so its address never moves.
  2. Windows endpoint: installed the Wazuh agent and pointed it at the manager.
  3. Process telemetry: added Sysmon with the SwiftOnSecurity config, so I get process creation, full command lines, and parent-and-child relationships instead of thin default logs.
  4. Firewall logs: forwarded OPNsense logs over syslog.
  5. IDS: added Suricata on OPNsense.

Wazuh agents list showing the Windows endpoint and OPNsense connected and active Both the Windows endpoint and OPNsense onboarded and reporting in.

Proving it end to end

Standing a SIEM up is one thing; knowing it catches something is another. So I built a controlled test to watch a detection travel the whole pipeline:

It landed as “Multiple firewall block events from same source”, with Wazuh correlating the individual blocks into one alert, a detection I’d map to MITRE ATT&CK T1046 (Network Service Discovery). Seeing a scan I’d generated get caught and correlated through a pipeline I’d built from scratch was the moment it clicked.

Firewall alert to Wazuh

I performed two more tests:

Failed logins

To see this end to end, I traced the failed logins from the Windows host through to Wazuh. On the endpoint, each failure lands in the Windows Event Viewer under Security event ID 4625 (an account that failed to log on). This PowerShell lists those events in a table:

Get-WinEvent -FilterHashtable @{LogName = 'Security'; Id = 4625}

The same events then surface as alerts in Wazuh, matched on event ID 4625.

Failed Windows Logons Event ID 4625 alert

What’s next