<ProjectsView on GitHubโ†—

SIEM Alert Triage Engine

SIEM Alert Triage

Python-based alert enrichment and false-positive reduction system for SOC operations. Integrates with Elastic SIEM, Splunk, and Wazuh to auto-enrich alerts with threat intel and cut analyst noise by 60%.

Overview

SOC analysts drown in alerts. Most are false positives. This project automates the enrichment, correlation, and prioritisation pipeline so analysts focus only on what matters.

Stack

  • Python 3.11 โ€” Core enrichment engine
  • Elastic SIEM / Wazuh โ€” Alert source
  • VirusTotal API โ€” IOC reputation lookups
  • AbuseIPDB โ€” IP reputation scoring
  • Sigma โ€” Detection rule format
  • TheHive โ€” Case management integration

Setup

Kali Linux

# Clone the repo
git clone https://github.com/rootwithkhandal/siem-triage
cd siem-triage

# Create virtual environment
python3 -m venv venv && source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Configure API keys
cp .env.example .env
nano .env  # Add VT_API_KEY, ABUSEIPDB_KEY, ELASTIC_URL

macOS

git clone https://github.com/rootwithkhandal/siem-triage
cd siem-triage

python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt

cp .env.example .env
open -e .env  # Add your API keys

Windows

git clone https://github.com/rootwithkhandal/siem-triage
cd siem-triage

python -m venv venv
.\venv\Scripts\Activate.ps1

pip install -r requirements.txt

Copy-Item .env.example .env
notepad .env  # Add your API keys

How It Works

Elastic SIEM alert
  โ””โ”€โ–บ Enrichment engine
        โ”œโ”€โ–บ VirusTotal (hash / domain / IP lookup)
        โ”œโ”€โ–บ AbuseIPDB (IP confidence score)
        โ”œโ”€โ–บ GeoIP (location context)
        โ””โ”€โ–บ Internal asset DB (is this a known asset?)
              โ””โ”€โ–บ Scoring engine
                    โ”œโ”€โ–บ Score < 30  โ†’ Auto-close (false positive)
                    โ”œโ”€โ–บ Score 30-70 โ†’ Queue for analyst
                    โ””โ”€โ–บ Score > 70  โ†’ Auto-escalate to TheHive

Sigma Rules Written

  • Suspicious PowerShell encoded command execution
  • LSASS memory dump via procdump
  • Lateral movement via PsExec
  • Outbound connection to Tor exit nodes
  • Brute force detection with adaptive thresholds

Results

  • 60% reduction in false positive alert volume
  • Mean time to triage reduced from 18 min โ†’ 4 min
  • 3 real incidents detected that would have been missed in noise