A suite of security-automation tools spanning endpoint (Microsoft Defender), CASB / SWG (Netskope),
and SIEM (Microsoft Sentinel) — each designed, built, and operated end-to-end. Every
investigative tool is read-only by construction; the one
write-capable tool is deliberately sandboxed. Separation of privilege is the through-line.
Defender Analysis Engine
Autonomous SOC analyst for Microsoft Defender for Endpoint
An autonomous-but-advisory SOC analyst that automates the full alert lifecycle — pulling alerts, grouping them into incidents, running multi-query KQL investigations, correlating behaviour across the MITRE ATT&CK kill chain, and emitting prioritized verdicts with the evidence behind them. It doesn't just suggest a query — it runs it, so a verdict can say “three other devices show this same indicator” instead of “you should go check.”
Resolves any identifier — hostname, device ID, user email, serial, or IOC — to a device and answers six core investigation questions in ~15–20 seconds.
Dual-mode analyst brain: verdicts come from a deterministic rule engine or from LLM reasoning over a structured evidence package, so it runs with or without an AI budget.
Runs unattended in the cloud — containerized on AWS ECS Fargate, triggered every six hours, posting incident reports to Slack for roughly $5–8 a month.
PythonDefender for Endpoint (KQL)Azure AD / GraphAnthropic Claude APIAWS FargateDocker
~18,900 LOC · 75 modules · cloud-deployed
MDE Fleet Remediation Toolkit
Guardrailed endpoint remediation at fleet scale
Write sandbox · allowlist + dry-run
Endpoint remediation · Live Response automation · Windows security
Detection is only half the job — risky software (bandwidth-resale proxyware, consumer VPNs, unauthorized AI code editors) has to actually be removed from live endpoints, safely and at scale. This write-capable toolkit does exactly that through Defender Live Response, deliberately isolated into its own sandbox so an automation bug can never reach the read-only production tooling.
Two load-bearing safety invariants on every write: a hard allowlist (a device not on the list is refused) and dry-run-by-default (nothing dispatches without explicit confirmation).
CLM-safe PowerShell removers written cmdlet-only so they survive WDAC / Constrained Language Mode, which breaks naïve remediation scripts.
KQL-driven targeting separates “installed” from “actively relaying” using live network telemetry; every campaign leaves a timestamped, per-device audit trail.
PythonPowerShellDefender Live ResponseMicrosoft Graph / IntuneAzure CLI
~6,300 LOC + 13 PowerShell payloads · hundreds of devices per campaign
Netskope Investigation Agent
Read-only CASB / SWG / DLP investigation over the live tenant
Read-only by construction
CASB · Secure Web Gateway · DLP · shadow-IT discovery
Netskope's telemetry is rich but sprawling — hundreds of API paths. This agent distills it into nine focused investigation lenses over the live tenant (or offline exports), normalizing everything to a common schema so a SOC question like “what did this user touch” or “hunt this IP everywhere” is one command away. Read-only by construction — the API client exposes no write, patch, or delete methods at all.
Nine lenses: summary, traffic, DLP, threats, shadow-IT, steering, hunt, user, and device.
Shadow-IT / CASB discovery with cloud-app risk scoring and personal-instance detection; a cross-dimension hunt pivots one indicator across every event stream.
Curated read-only endpoint reference hand-distilled from a 781-path OpenAPI spec, surfaced as conversational slash-command skills.
PythonNetskope REST API v2Claude Code skills
~800 LOC · live tenant
Netskope Client Log Analyzer
Offline connectivity root-cause engine
Offline-first · zero-credential
Endpoint diagnostics · SSE client troubleshooting
When the Netskope client breaks a user's network, triage means reading thousands of lines of debug log and knowing every failure mode by heart. This offline engine does it instead: point it at a device's log bundle and it extracts client state, matches the logs against a knowledge base of failure signatures, and returns a ranked root-cause verdict plus a reviewable fix — each finding backed by the exact quoted log lines. No tenant credentials needed.
~13 platform-scoped failure signatures — tunnel down, fail-close blocking, cert-pinning break, captive portal, WFP driver failure, macOS system-extension not approved, CLAT over hotspot, and more.
Encodes hard-won SSE operational knowledge as reusable, testable rules instead of tribal knowledge; tuned against real captured bundles to kill false positives.
Single-device and fleet modes, plus a browser-timing sub-tool that reads Chrome net-export logs for per-request DNS / TCP / TLS / TTFB percentiles.
Python (stdlib)log & zip parsing
~740 LOC · offline · zero credentials
Insider-Threat Investigation Agent
Data-exfiltration triage over Microsoft Sentinel
Read-only · evidence-grade
SIEM · insider risk · DLP · incident response
Insider-threat cases are the most context-heavy a SOC handles — a single subject's activity is scattered across the SIEM, EDR, CASB, identity, DLP, and email. This agent assembles it into a defensible narrative: Microsoft Sentinel is the correlation hub, and it fans out to endpoint, CASB, identity, and mail systems to build a data-movement timeline, scope the exfiltration channel, and produce an evidence-grade report with an exfil score and a verdict recommendation.
Hub-and-spoke design with cross-domain identity resolution — reconciling a person across multiple corporate identity domains, the hardest part of any real case, is treated as a first-class problem.
Baseline-aware exfil scoring discounts sanctioned destinations so the score reflects genuinely anomalous movement; motive-triad reasoning frames each case as malicious, compromised, or negligent.
Every report is read-only and ends “awaiting analyst approval,” with a JSONL audit log for every run.
PythonMicrosoft Sentinel (KQL)Defender for EndpointNetskopeEntra IDPurview
~1,800 LOC · 13 modules · live SIEM
note — these tools operate against a live corporate
environment, so specifics are kept capability-focused and genericized. Happy to talk through the
engineering in more depth — get in touch.