Overview
Sundew is a passive honeypot. It serves fabricated data, logs inbound requests, and never executes attacker-supplied code. The system has four layers:- Trap surfaces receive incoming requests (MCP, REST API, AI discovery endpoints)
- Fingerprinter analyzes each request across 5 behavioral signals
- Classifier maps composite scores to attack categories
- Storage persists events to SQLite and streaming JSONL logs
Request flow
Classification
The fingerprinter produces a composite score from 0.0 to 1.0. The classifier maps this to four categories:| Score range | Classification | Description |
|---|---|---|
| < 0.3 | human | Normal browser traffic |
| 0.3 – 0.6 | automated | Scripted scanners, bots |
| 0.6 – 0.8 | ai_assisted | Human using AI tools |
| > 0.8 | ai_agent | Fully autonomous AI agent |
Data storage
Events are persisted in two formats:- SQLite (
./data/sundew.db) -structured storage for queries, sessions, and aggregated fingerprints - JSONL (
./data/events.jsonl) -append-only streaming log for real-time processing and export
sundew query) or the MCP server (sundew mcp-client).