⚡ One command. Two hours. A real SOC investigation.

Talk to your SIEM.
Hunt with AI.
See what's possible.

Deploy a real SIEM on AWS with one command. Talk to it in plain English. Run simulated attacks and investigate them with an AI senior analyst walking you through every step. Never touched Terraform, Wazuh, MCP servers, or AI tooling before? That's the point.

1 command to deploy
~2 hours end to end
~$0.25 AWS compute
wazuh-ai-soc-lab — what one command gets you
$ ./scripts/bootstrap.sh
[0:01] Validating prerequisites...
✓ aws cli configured (us-east-1)
✓ terraform v1.7 installed
✓ EC2 key pair found
[0:02] Provisioning S3 state + DynamoDB lock...
[0:04] terraform apply — VPC, EC2, security groups...
[0:08] Wazuh manager booting (this takes ~15 min)
[0:18] MCP server install + token fetch
[0:21] Writing .mcp.json
✓ Wazuh manager: https://3.84.x.x
✓ MCP: http://3.84.x.x:3000
✓ 3 agents reporting

# Now launch Claude Code:
$ claude
▸ Mateo activated. Welcome to CloudVault.

Plain English. A real SIEM behind it. An AI senior analyst on your shoulder.

You type what you want to know. Mateo translates it into the right query, hits the SIEM through MCP, brings back the data, and tells you what's interesting — while showing his work so you can verify every step yourself. This is what SOC work looks like when AI is genuinely useful.

You
Show me unusual logins on dev-server-01 in the last hour.
Mateo
Pulled authentication_success + authentication_failed on agent dev-server-01, last 60 min.

Three things stand out:
1. 14 failed logins for backup over 4 min from 198.51.100.42 — not in CloudVault's known IP allowlist.
2. Successful login for backup at 14:32:11 right after the failures. Brute-force pattern.
3. After the success: sudo escalation, then chmod +x on a script in /tmp/.

This matches "Network listener / unauthorized account" from your IR persistence list. Want me to pull the full process tree and open a hunt log?
You
Yes — and check if the IP shows up on any other agent.
Mateo
Running... Pulling process tree from dev-server-01, sweeping 198.51.100.42 across all three agents...

The whole lab feels like this.

You're not running tutorials. You're running an investigation — Dana (the CISO) needs evidence the breach is actually contained, SOC 2 collection starts in weeks, and Mateo is the senior analyst Dana brought in to help you get there.

Every prompt translates to real Wazuh queries. Every result is real data from the lab infrastructure you deployed. Every claim Mateo makes, you can verify by clicking into the Wazuh dashboard yourself.

  • You see exactly what MCP tools Mateo called and what they returned
  • You learn by doing, not by watching slides
  • The output is a real artifact: SOC 2 evidence + a hunt log you can show in an interview

"But I've never used any of this stuff."

That's the point. The lab is built so the tools teach you while you use them. You're not expected to bring expertise — you're expected to bring two hours and curiosity. Mateo handles the rest.

Never used Terraform?
One bootstrap script handles every Terraform command. You won't touch terraform apply by hand unless you want to.
Never used Wazuh?
Mateo gives you a tour of the dashboard, runs the first queries, and explains what the alerts mean as you go.
Never heard of MCP?
Phase 3 walks you through what MCP is, how it works, and where it can break — with you doing the threat-modeling alongside Mateo.
New to SOC work?
Mateo is written as a senior SOC analyst peer — he explains hypotheses, frames hunts, and shows you what experienced analysts look at and why.
Worried about AWS cost?
Full run is about a quarter. terraform destroy nukes everything when you're done. We set up budget alerts in the prerequisites.
No local install allowed?
GitHub Codespaces path — runs in a browser tab, no laptop install required. School + work-laptop friendly.

One continuous session. Each phase ships a real deliverable.

By Phase 6 you've stood up a SIEM, hunted for backdoors, written a custom detection rule, and produced the SOC 2 evidence package the CISO actually needs.

1
🛡️ Stand up the SIEM
Bootstrap deploys everything in the background. Mateo briefs the case, walks Wazuh architecture, previews the MCP. You log in, tour the dashboard, run your first query.
2
🎯 Baseline the environment
Generate four MITRE TTPs on dev-server-01 matching the IR report's pattern classes. Investigate the chain manually. Confirm SIEM coverage before you start hunting.
3
🔗 Threat-model the MCP
Three concrete failure modes + mitigations (stolen JWT, prompt injection, supply chain). Re-run the baseline through plain English. AI-drafted CISO update, human-verified.
4
🎯 The backdoor hunt
Four structured hunts against the three persistence categories (account, listener, scheduler) plus an AI-verification drill. The hunt log is SOC 2 evidence.
5
⚡ Tripwires and response
Write custom rule 100001 — the CloudVault client-data tripwire Dana asked for. Validate with wazuh-logtest. Deploy, trigger, verify. Take an automatic active response.
6
🧹 Close the case
End-to-end IR on a fresh alert. Evidence package for Dana and the SOC 2 audit (CC7.1 / CC7.2). A real personal artifact for interviews. terraform destroy with verification.

The core lab is two hours. The rest is there for when you want more.

Core lab

Deploy + investigate

  • terraform/Wazuh manager + 3 CloudVault agents on AWS, deploys in ~20 min
  • scripts/One-command bootstrap, health-check, start/stop helpers
  • docs/Architecture, costs, MCP setup, detection rules, troubleshooting
  • lab-guide/Step-by-step walkthrough independent of the AI co-pilot
  • The Mateo skill1,200+ line Claude Code skill — the AI senior-analyst persona that auto-loads
The scenario

The CloudVault world

  • data/cloudvault-financial/The breach narrative + CloudTrail, GuardDuty, SOC 2 tracker, remediation-review files, full attack chain
  • notebooklm-sources/Drop into NotebookLM for a queryable "CloudVault security brain" alongside the lab — SOC 2 criteria, IR framework, vendor guide, full security profile
Going deeper

Practice corpora

  • wazuh-mcp/sandbox/Single-node Wazuh on Docker — MCP dev + testing without AWS
  • wazuh-mcp/abuse-harness/6-pattern adversarial test suite for any MCP server
  • optional-labs/detection-engineering/5,000-event labeled Sysmon corpus for Sigma rule practice with measured false-positive rate
  • optional-labs/incident-investigator/30k CloudTrail events with a planted IAM compromise + 3 prompt-injection payloads in the data
  • optional-labs/runbook-search/10 AWS-IR runbooks for building a RAG-with-citations skill (with a planted-stale runbook for freshness testing)

About a coffee.

Lab runs on a single t3.large manager + three t3.micro agents. Always terraform destroy when you're done. Budget alert at $10 covers a forgotten weekend.

$0.13 per hour
$0.25 full 2-hr session
$6 forgotten weekend

Five steps. The first one is the only one you'll think about.

Full prerequisites checklist is in the README — AWS account + CLI configured, Terraform ≥ 1.5, an EC2 key pair, Claude Code CLI.

# 1. Clone the repo
git clone https://github.com/joshbotz/wazuh-ai-soc-lab.git
cd wazuh-ai-soc-lab

# 2. Configure (your IP + your EC2 key name)
cp terraform/terraform.tfvars.example terraform/terraform.tfvars
$EDITOR terraform/terraform.tfvars

# 3. Deploy. One command. ~20 min, mostly hands-off.
./scripts/bootstrap.sh

# 4. Launch Claude Code in the lab directory
claude

# 5. Tell Mateo you're starting
> Start the lab

Mateo takes it from there. While Terraform applies and Wazuh boots, Mateo briefs you on the case, walks the architecture, and gets you ready. No dead time.

Why I built this.

Josh Botz — cloud security + AI agent security practitioner. Background in FedRAMP / ConMon, Fortune 500 + IC work.

I built this lab because I wanted to know what AI actually changes about a SOC investigation when you wire it into the tools you'd really use. Not a demo, not a sandbox — a real SIEM, real Terraform, real costs, real alerts. The Mateo persona was the answer to "what would it feel like to have a senior SOC analyst at your shoulder while you work?"

Turns out the answer is: it's a really different way of working, and it's accessible to anyone who's willing to spend two hours and run a script. That's why this lab exists.

If you run it and it lands for you — or it doesn't — I'd genuinely like to hear about it. Connect on LinkedIn.

Ready to see what AI in a SOC actually feels like?

One command. About a coffee in AWS spend. Two hours of your time. Mateo handles the rest.