Skip to content
View gurvinny's full-sized avatar
🔐
Building cool things so attackers can’t
🔐
Building cool things so attackers can’t
  • New York, USA

Highlights

  • Pro

Block or report gurvinny

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gurvinny/README.md

Gurvin Singh

Detection Engineering | Blue Team. Wazuh | Sigma | Python. I build the sensor, the detection, the case file.

LinkedIn Location

CySA+ and Security+ certified blue-team defender. I build my own SOC, then break it, investigate it, and harden it. Every step is documented in public. Open to SOC Analyst and Detection Engineering roles — NYC or remote.


👻 SPECTRE: WiFi intrusion detection, built end to end

Two ESP32-C5 boards run custom promiscuous-mode firmware and stream 802.11 frame metadata over UART into a stdlib-only FastAPI detection engine (deauth flood, evil twin, beacon/probe flood and RSSI anomaly rules), which forwards scored threats to Wazuh over RFC 5424 and drives a Next.js SOC console.

Sensor to SIEM to analyst view, every layer mine. Two of the four detections map to ATT&CK: T1557 (evil twin) and T1499 (deauth flood).

Run against my own network only, on hardware I own. The sensor forwards threats and summaries, never raw frames: the SIEM stores decisions, not a packet archive.

AGPL-3.0 Python TypeScript CodeQL CI Browser QA

→ github.com/gurvinny/spectre

SPECTRE command center: live threat feed, device inventory and spectrum view

🗺️ Where it ships to: the detection pipeline

SPECTRE is one source among several. Everything lands in a self-built SOC running on a single Proxmox node behind a pfSense perimeter, five VLAN segments, default-deny between them.

flowchart LR
    EP["Linux / Windows hosts<br/><i>Wazuh agents · FIM · auditd · SCA</i>"] --> SIEM
    FWL["pfSense<br/><i>firewall + DNS logs</i>"] --> SIEM
    RF["SPECTRE sensor<br/><i>ESP32-C5 WiFi · RFC 5424</i>"] --> SIEM

    SIEM["<b>Wazuh SIEM + XDR</b><br/>decoders · normalisation · correlation"]
    SIEM --> RULES["Detection logic<br/><i>Wazuh rulesets · MITRE ATT&amp;CK mapping</i>"]
    RULES --> SEV{"Triage"}
    SEV -->|true positive| IR["Preserve · contain · eradicate<br/><i>evidence first, then isolate</i>"]
    SEV -->|false positive| TUNE["Tune<br/><i>refine rule · allowlist</i>"]
    SEV -->|benign true positive| DOC["Document &amp; close<br/><i>so it is not re-investigated</i>"]
    TUNE --> RULES
    IR --> CASE["Case writeup<br/><i>NIST SP 800-61 · published</i>"]

    classDef src fill:#0D1117,stroke:#455A64,color:#E6EDF3
    classDef core fill:#161B22,stroke:#008F11,color:#E6EDF3
    classDef out fill:#161B22,stroke:#0077B5,color:#E6EDF3
    class EP,FWL,RF src
    class SIEM,RULES,IR,TUNE,DOC core
    class CASE out
Loading

🔬 More work: what each project proves

ProjectWhat it proves
🛡️ Security Analyst Portfolio Detection engineering: IR playbooks · NIST writeups · ATT&CK-mapped detection logic
🐍 Automated Phish Extractor Tier-1 SOC triage: .eml parsing, IOC defang, SPF/DMARC in 30s
🛸 Pelican Deepfield Theme plugin for a game-server control panel. Shipping discipline: semver releases, tagged and changelogged
🏠 Home Network Lab Defense-in-depth: VLAN segmentation · default-deny routing · centralized logging

🔧 Recent work

╔════════════════════════════════════════════════════════════╗
║ HARDENING SPECTRE supply chain + code scanning             ║
║           2026-09-12 -> 2026-09-14                         ║
╠════════════════════════════════════════════════════════════╣
║ PROBLEM   No code scanning configured at all · deps        ║
║           drifting until an advisory caught them           ║
║ FOUND     next 15.5.20 carried 10 advisories, two          ║
║           critical unauthenticated RCE:                    ║
║           GHSA-2xp9-vwfh-vxw4  image optimizer, AVIF       ║
║               WAS EXPLOITABLE · image route live until fix ║
║           CVE-2026-75604       windows-hosted server       ║
║               NOT APPLICABLE · Linux containers only       ║
║               patched anyway                               ║
║ FIXED     Bumped to 15.5.25 · used npm overrides to        ║
║           force patched versions of 4 transitive deps      ║
║           Disabled the image optimizer outright,           ║
║           dropping /_next/image from the attack surface    ║
╠════════════════════════════════════════════════════════════╣
║ CONTROLS  CodeQL: JS/TS · Python · Actions                 ║
║           Dependabot across five ecosystems                ║
║           Browser QA promoted to a required check          ║
║ STATUS    RESOLVED · 0 open advisories                     ║
╚════════════════════════════════════════════════════════════╝

PR #20


🔎 Investigation

╔════════════════════════════════════════════════════════════╗
║ OUTAGE    Wazuh SIEM full pipeline failure                 ║
║           2026-04-24                                       ║
╠════════════════════════════════════════════════════════════╣
║ PROBLEM   0 dashboard entries · all services active        ║
║ CAUSE     Admin hash mismatch · missing OpenSearch role    ║
║           Dashboard keystore overriding yml config         ║
║ FIXED     Auth chain repaired · roles created              ║
║           Keystore updated · auditd conflicts resolved     ║
╠════════════════════════════════════════════════════════════╣
║ RESULT    Log pipeline restored · alerting end to end      ║
║ HARDENED  CIS Ubuntu 24.04 L1    83.0% -> 88.9%            ║
║           USG Level 2 Server           90.98%              ║
║             435 of 471 rules · 36 open (34 med, 2 high)    ║
║ STATUS    RESOLVED                                         ║
╚════════════════════════════════════════════════════════════╝

Full case study


🎖️ Credentials & tooling

B.S. Cybersecurity & Information Assurance · Western Governors University · expected 02/2027

CySA+ Security+ Network+ A+ Linux Essentials ITIL 4 Foundation

THM101 THMrooms CIS USG

USG = Ubuntu Security Guide, Level 2 Server profile. CIS = Center for Internet Security benchmark. Both scores are from audits run against my own hosts.


Detection & response Wazuh Splunk (learning) Sigma MITRE Wireshark

Network & systems pfSense VLAN Proxmox Linux Docker

Build Python FastAPI TypeScript Next.js


🎧 Beyond security

Slo-Fi is a real-time audio engine that runs entirely in your browser. Nothing ever leaves the machine: no upload, no account, no server to breach. Cloudflare Workers serves static assets only; there is no server-side code.

Held to the same bar as the security work. 550+ assertions across five test layers, each layer floored independently in CI so a collapse in one cannot hide behind another's volume.

TypeScript Playwright Cloudflare Workers

slofi.live · source


Security concerns: see the security policy. Issues are disabled on this repository.

Pinned Loading

  1. security-analyst-portfolio security-analyst-portfolio Public

    Hands-on SOC analyst training portfolio covering threat detection, incident response, log analysis, and blue team lab investigations.

    1

  2. home-network-lab home-network-lab Public

    Enterprise-style home lab implementing VLAN segmentation, firewall isolation, and secure network architecture using pfSense.

  3. Automated-Phish-Extractor Automated-Phish-Extractor Public

    An automated triage tool for SOC analysts. Parses raw .eml files, extracts and defangs IOCs, analyzes SPF/DMARC headers, and generates standardized threat reports.

    Python 2 3

  4. Slo-Fi Slo-Fi Public

    Slo-Fi turns your browser into a late-night studio. Experience your favorite tracks in a new dimension with professional-grade slowing and deep, ethereal reverb. No downloads, no lag just pure atmo…

    TypeScript

  5. spectre spectre Public

    WiFi intrusion-detection sensor: ESP32-C5 sniffer to FastAPI detection to Next.js SOC console with Wazuh forwarding

    TypeScript 1 1