Projects
Production systems and research projects — focused on AI security, detection engineering, and DFIR automation.
Distributed AI Malware Analysis Engine
Secure code-analysis service for untrusted software. LLMs are not the primary detection mechanism.
- FastAPI + Docker + gVisor isolation for untrusted payloads
- Deterministic detection via Semgrep and YARA
- LLMs restricted to contextual enrichment, not code execution or verdict authority
Autonomous Phishing & Local VLM Triage
End-to-end phishing analysis: headless browser detonation, email header forensics, and locally hosted Vision-Language Model verdicts — sensitive telemetry never leaves the environment.
- Stealth browser automation (
playwright-stealth) to defeat basic cloaking - Multimodal analysis: screenshot + headers + body → structured verdict
- Sub-60-second triage loop, fully local via Ollama
OWASP LLM Lab — The Adversarial Analyst
Hands-on labs and forensic case studies covering the OWASP Top 10 for LLM Applications — prompt injection (LLM01), insecure output handling (LLM05), and trust-boundary failures in AI-integrated applications.
- Reproducible Python applications with exploit demonstrations
- Companion log analysis scripts and mock SOC evidence (server logs, telemetry)
- Video walkthroughs on The Adversarial Analyst — data flow forensics, attack chains, and root cause analysis
Plaso DFIR Framework — Open Source
Forensic parsers for Jira and Confluence Data Center application logs, upstreamed to the Plaso timeline analysis framework.
LLM Investigation MCP (Wrike)
Least-privilege Model Context Protocol server connecting Rapid7 InsightIDR and Surface Command to LLM-driven security investigations.
- Trust boundaries for untrusted telemetry (User-Agent, cmdline, headers)
- Recursive prompt-injection scanner with human-gated closure
- Preserves raw forensic data while labeling adversarial content for the model
Legacy / Early Projects
Earlier Python security tooling (password analysis, email header forensics, Telegram bot automation) remains in the archives but is not representative of current work.