Jonathan-Sproule/Corvid

GitHub: Jonathan-Sproule/Corvid

Stars: 1 | Forks: 0

# Corvid Detection engineering portfolio lab. Working towards a production-style detection pipeline using Sigma-first authoring, Splunk, and Atomic Red Team for validation as well as manual validation. ## Lab Overview | Component | Role | |---|---| | Splunk Enterprise (Ubuntu VM) | SIEM - detection writing, tuning, and testing | | Windows 11 VM | Detection target + Atomic Red Team runner | | Kali Linux VM | Red team simulation - manual adversary emulation for ground-truth telemetry | | Sysmon (Olaf Hartong config) | Endpoint telemetry source | | Universal Forwarder | Ships Sysmon, PowerShell, and Security logs to Splunk | | Atomic Red Team | Adversary simulation for detection validation | | Domain Controller VM | Built, promoted - standing by for identity phase | | Raspberry Pi 5 | Planned network sensor (Suricata/Zeek) | ## Repo Structure /Detections per-attack detection folders; each contains Sigma rule, Splunk SPL, research notes, references, and variant subdirs /Templates reusable Sigma scaffold for new detections /Infrastructure /Phase-Log narrative log per phase (phase0.md, phase1.md, ...) /Atomic-Red-VM-Config Build-Notes.md VM-specific troubleshooting log /PowerShell-Profile atomicred-vm-profile.ps1 (lab helpers) /SplunkForwarder-Config-Files /Splunk-Server-VM-Config Build-Notes.md Splunk VM build and config notes /Notes SPL query scratchpad, reference material /Tools run-atomic.ps1 toggles Defender, detonates Atomic tests /hooks post-commit.py structured commit hook - auto-updates detection log and state install-hooks.sh run once after cloning to wire up git hooks ## Setup After cloning, install the git hooks: bash Tools/hooks/install-hooks.sh This wires up the post-commit hook that parses structured commit messages and maintains the local detection log and project state file automatically. ## Commit Convention (): **Detection cycle types** - `scope` is the ATT&CK technique ID: | Type | Step | Example | |---|---|---| | `research` | 1 - Research | `research(T1053.005): scheduled task persistence source analysis` | | `detonate` | 2 - Red side | `detonate(T1053.005): confirmed EID 4698 from manual detonation` | | `author` | 3 - Author | `author(T1053.005): draft Sigma rule - TaskName and image conditions` | | `validate` | 4 - Validate | `validate(T1053.005): rule fires against detonation events in Splunk` | | `evade` | 5 - Evade | `evade(T1053.005): task name mutation bypass identified` | | `tune` | 6 - Tune | `tune(T1053.005): tightened ParentImage condition after evasion test` | | `backtest` | 7 - Backtest | `backtest(T1053.005): zero false positives against 30 days historical` | | `ship` | 8 - Ship | `ship(T1053.005): scheduled task persistence detection complete` | **Structural types:** | Type | Scope | Example | |---|---|---| | `phase` | transition | `phase(2→3): identity arc begins - DC online` | | `infra` | component | `infra(splunk): added winsec index` | | `docs` | component | `docs(readme): update lab overview` | Non-structured commits are accepted without restriction - the hook ignores them silently. ## Detection Methodology Every detection follows an eight-step cycle from research through detonation, validation, evasion testing, and backtest. See [Detections/README.md](Detections/README.md) for the full lifecycle and detection philosophy. ## Phase Roadmap Phase 0 - Pipeline build ........................... COMPLETE Splunk lab: Sysmon + PowerShell telemetry, Universal Forwarder, end-to-end ingestion verified. Phase 1 - Ship ClickFix detection .................. COMPLETE Sigma-first authoring, structured research, five-layer validation. CrashFix/KongTuke rule shipped: OriginalFileName anchor, detonation confirmed across three iterations. Phase 2 - Detection-as-code + CI/CD ............... COMPLETE GitHub Actions pipeline: sigma-cli validation on every PR, gitleaks OPSEC secret scan, pySigma conversion to SPL artifact. Branch protection requires all three jobs to pass before merge to main. --- Identity detection arc --- Phase 3 - On-prem identity: AD detection Domain-join Windows VM, bring DC online. Kerberoasting, password spraying, privilege escalation, replication abuse. Phase 4 - Detection library + eval harness Golden TP/FP datasets; local LLM (Ollama) for payload analysis. Phase 5 - Cloud identity: Entra ID / Azure Sentinel + Azure. AiTM, session hijacking, illicit consent / OAuth abuse, CA tampering. --- Tooling and long tail --- Phase 6 - Python tooling Sigma→Splunk pusher, Atomic Red Team MCP server. Phase 7 - Network telemetry (Pi 5 + Suricata) Long-tail phase - added once identity arc is mature. ## Key Docs - [Phase 0 build log](Infrastructure/Phase-Log/phase0.md) - [Phase 1 build log](Infrastructure/Phase-Log/phase1.md) - [Atomic Red VM build notes](Infrastructure/Atomic-Red-VM-Config/Build-Notes.md) - [Splunk server build notes](Infrastructure/Splunk-Server-VM-Config/Build-Notes.md) - [PowerShell profile for the lab](Infrastructure/Atomic-Red-VM-Config/PowerShell-Profile/README.md)