Security engineering · AWS · AI

Cloud attacks, detected and contained automatically — no human in the loop.

A self-running security operations system. It streams logs from three AWS sources, learns what normal looks like, recognizes multi-stage attacks, writes the incident report with Claude, and shuts the threat down on its own.

security-detector — live pipeline STREAMING
[INGEST] streaming CloudTrail · VPC Flow Logs · CloudWatch [BASELINE] 30 events analyzed · 0 false alarms on normal traffic [ATTACK CHAIN] BRUTE_FORCE_TAKEOVER detected · severity 9/10 [AI ANALYST] incident report generated · MITRE ATT&CK T1110 · T1078 · T1548 [RESPONDER] ✓ IP blocked · ✓ user locked · ✓ alarm created · 5/5 actions
SCROLL TO TRACE AN ATTACK
0
AWS log sources
0
Attack chain types
0
Auto-response actions
0
False alarms · normal traffic
The pipeline

Six stages, from raw log to contained breach.

Every stage runs automatically and feeds the next. Keep scrolling — the page traces one full attack, end to end, exactly the way the system sees it.

01
Three AWS sources, streamed at once
Ingestion

An async Python engine pulls CloudTrail, VPC Flow Logs, and CloudWatch in parallel through a single event queue — a slow source never blocks the rest. Real attacks leave traces in more than one place, so the system watches all three.

Python asyncioboto33 sources · 1 queue
02
It learns what normal looks like
Behavioral baseline

An Isolation Forest model trains on real activity, then scores every new event for deviation — unusual hours, new IPs, high-risk API calls, error spikes. Normal traffic stays quiet; outliers get flagged. The same approach enterprise tools like Darktrace use.

scikit-learnIsolation Forest0 false alarms
03
Multi-step attacks, read as one story
Attack chain detection

Single events rarely tell the story. The correlation engine stitches events across sources into known chains — failed logins, then a success, then privilege escalation reads as one brute-force takeover, not three unrelated blips.

Brute force takeoverData exfiltrationDefense evasionCredential compromisecaught at 9/10
04
Claude writes the incident report
AI incident analyst

Each confirmed threat goes to Claude, which returns a full report: executive summary, technical narrative, MITRE ATT&CK mapping, affected resources, and prioritized response steps — the part that usually needs a human analyst.

Claude APIMITRE ATT&CKT1110 · T1078 · T1548
05
It contains the threat on its own
Automated response · SOAR

When severity crosses the threshold, the responder acts without waiting: it blocks the attacker IP, applies an emergency lockdown to the compromised user, raises a CloudWatch alarm, and writes a timestamped audit trail for forensics.

Block IPLock down userCreate alarmAudit log
06
Everything, in real time
Live dashboard

A Flask dashboard surfaces the whole pipeline — events analyzed, anomalies, attack chains, AI reports, and every action the system took — and the entire stack ships in a Docker container, so it runs anywhere.

FlaskDockerReal-time UI
// attack-trace — live STAGE 01 / 06

The attack is over before a human would have read the alert.

// detection → containment · under five seconds · zero clicks

The console

One screen for the whole operation.

Detection, AI analysis, and automated response — all visible as it happens. Served by Flask, shipped in Docker.

localhost:5001 — Cloud Security AI Detector SYSTEM ONLINE
30
Events
11
Anomalies
3
Attack chains
1
AI reports
5
Responses

⚠ Attack chains 1

9/10BRUTE FORCE TAKEOVER
✓ Multiple failed login attempts
✓ Successful login after failures
✓ Attempt to escalate privileges

⚡ Automated response 5

BLOCK_IP
Blocked 192.168.1.100 — brute force 9/10
DISABLE_USER
Emergency lockdown — compromised account
CREATE_ALARM
CloudWatch alarm for repeat attempts
LOG_INCIDENT
Full audit trail written
Detection → Analysis → AI Report → Automated Response — in under five seconds.
Under the hood

Built like a real security platform.

Every layer maps to something production security platforms run at enterprise scale — the same concepts, built solo.

Technology

IngestionPython · asyncio · boto3
Log sourcesCloudTrail · VPC Flow Logs · CloudWatch
Anomaly detectionscikit-learn · Isolation Forest
Attack detectionCustom correlation engine
AI analysisClaude API
Auto responseboto3 · IAM · EC2 · CloudWatch
DashboardFlask · HTML/CSS
DeploymentDocker

Concepts demonstrated

SIEM
Unified event correlation across multiple log sources
SOAR
Automated containment of confirmed threats
Behavioral analytics
ML baseline that flags deviation from normal
MITRE ATT&CK
Threat techniques mapped in every report
Defense in depth
Rules, ML, and AI layered together
Incident response
Structured reports with severity scoring
↳ SIEM correlation · SOAR playbooks · UEBA baselining — a production security stack, in miniature.
🛡
The build

Built solo, end to end.

From an empty AWS account to an autonomous detect-and-respond loop: the async ingestion engine, the ML baseline, the correlation rules, the AI analyst integration, the SOAR responder, the dashboard, and the Docker build — every layer designed, written, and debugged by hand. The code is the résumé.