- templates/sniffer/decnet_logging.py: add logging configuration for sniffer integration - templates/ssh/decnet_logging.py: add SSH service logging template - development/DEVELOPMENT.md: document new MySQL backend, p0f, profiler, config API features - pyproject.toml: update dependencies for MySQL, p0f, profiler functionality
143 lines
8.1 KiB
Markdown
143 lines
8.1 KiB
Markdown
# DECNET Development Roadmap
|
|
|
|
## 🛠️ Service Realism & Interaction (First Release Path)
|
|
*Goal: Ensure every service is interactive enough to feel real during manual exploration.*
|
|
|
|
### Remote Access & Shells
|
|
- [ ] **SSH (Cowrie)** — Custom filesystem, realistic user database, and command execution.
|
|
- [ ] **Telnet (Cowrie)** — Realistic banner and command emulation.
|
|
- [ ] **RDP** — Realistic NLA authentication and screen capture (where possible).
|
|
- [ ] **VNC** — Realistic RFB protocol handshake and authentication.
|
|
- [x] **Real SSH** — High-interaction sshd with shell logging.
|
|
|
|
### Databases
|
|
- [ ] **MySQL** — Support for common SQL queries and realistic schema.
|
|
- [ ] **Postgres** — Realistic version strings and basic query support.
|
|
- [ ] **MSSQL** — Realistic TDS protocol handshake.
|
|
- [ ] **MongoDB** — Support for common Mongo wire protocol commands.
|
|
- [x] **Redis** — Support for basic GET/SET/INFO commands.
|
|
- [ ] **Elasticsearch** — Realistic REST API responses for `/_cluster/health` etc.
|
|
|
|
### Web & APIs
|
|
- [x] **HTTP** — Flexible templates (WordPress, phpMyAdmin, etc.) with logging.
|
|
- [ ] **Docker API** — Realistic responses for `docker version` and `docker ps`.
|
|
- [ ] **Kubernetes (K8s)** — Mocked kubectl responses and basic API exploration.
|
|
- [x] **LLMNR** — Realistic local name resolution responses via responder-style emulation.
|
|
|
|
### File Transfer & Storage
|
|
- [ ] **SMB** — Realistic share discovery and basic file browsing.
|
|
- [x] **FTP** — Support for common FTP commands and directory listing.
|
|
- [ ] **TFTP** — Basic block-based file transfer emulation.
|
|
|
|
### Directory & Mail
|
|
- [ ] **LDAP** — Basic directory search and authentication responses.
|
|
- [x] **SMTP** — Mail server banners and basic EHLO/MAIL FROM support.
|
|
- [x] **IMAP** — Realistic mail folder structure and auth.
|
|
- [x] **POP3** — Basic mail retrieval protocol emulation.
|
|
|
|
### Industrial & IoT (ICS)
|
|
- [x] **MQTT** — Basic topic subscription and publishing support.
|
|
- [x] **SNMP** — Realistic MIB responses for common OIDs.
|
|
- [ ] **SIP** — Basic VoIP protocol handshake and registration.
|
|
- [x] **Conpot** — SCADA/ICS protocol emulation (Modbus, etc.).
|
|
|
|
---
|
|
|
|
## Core / Hardening
|
|
|
|
- [~] **Attacker fingerprinting** — HTTP User-Agent, VNC client version stored as `fingerprint` bounties. JA3/JA3S in progress (sniffer container). HASSH, JA4+, TCP stack, JARM planned (see Attacker Intelligence section).
|
|
- [ ] **Canary tokens** — Embed fake AWS keys and honeydocs into decky filesystems.
|
|
- [ ] **Tarpit mode** — Slow down attackers by drip-feeding bytes or delaying responses.
|
|
- [x] **Dynamic decky mutation** — Rotate exposed services or OS fingerprints over time.
|
|
- [x] **Credential harvesting DB** — Centralized database for all username/password attempts.
|
|
- [ ] **Session recording** — Full capture for SSH/Telnet sessions.
|
|
- [ ] **Payload capture** — Store and hash files uploaded by attackers.
|
|
|
|
## Detection & Intelligence
|
|
|
|
- [ ] **Real-time alerting** — Webhook/Slack/Telegram notifications for first-hits.
|
|
- [ ] **Threat intel enrichment** — Auto-lookup IPs against AbuseIPDB, Shodan, and GreyNoise.
|
|
- [ ] **Attack campaign clustering** — Group sessions by signatures and timing patterns.
|
|
- [ ] **GeoIP mapping** — Visualize attacker origin and ASN data on a map.
|
|
- [ ] **TTPs tagging** — Map observed behaviors to MITRE ATT&CK techniques.
|
|
|
|
## Dashboard & Visibility
|
|
|
|
- [x] **Web dashboard** — Real-time React SPA + FastAPI backend for logs and fleet status.
|
|
- [x] **Decky Inventory** — Dedicated "Decoy Fleet" page showing all deployed assets.
|
|
- [ ] **Pre-built Kibana/Grafana dashboards** — Ship JSON exports for ELK/Grafana.
|
|
- [~] **CLI live feed** — `decnet watch` — WON'T IMPLEMENT: redundant with `tail -f` on the existing log file; adds bloat without meaningful value.
|
|
- [x] **Traversal graph export** — Export attacker movement as JSON (via CLI).
|
|
|
|
## Deployment & Infrastructure
|
|
|
|
- [ ] **SWARM / multihost mode** — Ansible-based orchestration for multi-node deployments.
|
|
- [ ] **Terraform/Pulumi provider** — Cloud-hosted decky deployment.
|
|
- [ ] **Kubernetes deployment mode** — Run deckies as K8s pods.
|
|
- [x] **Lifecycle Management** — Automatic API process termination on `teardown`.
|
|
- [x] **Health monitoring** — Active vs. Deployed decky tracking in the dashboard.
|
|
|
|
## Services & Realism
|
|
|
|
- [ ] **HTTPS/TLS support** — Honeypots with SSL certificates.
|
|
- [ ] **Fake Active Directory** — Convincing AD/LDAP emulation.
|
|
- [ ] **Realistic web apps** — Fake WordPress, Grafana, and phpMyAdmin templates.
|
|
- [ ] **OT/ICS profiles** — Expanded Modbus, DNP3, and BACnet support.
|
|
|
|
## Attacker Intelligence Collection
|
|
*Goal: Build the richest possible attacker profile from passive observation across all 26 services.*
|
|
|
|
### TLS/SSL Fingerprinting (via sniffer container)
|
|
- [x] **JA3/JA3S** — TLS ClientHello/ServerHello fingerprint hashes
|
|
- [x] **JA4+ family** — JA4, JA4S, JA4H, JA4L (latency/geo estimation via RTT)
|
|
- [x] **JARM** — Active server fingerprint; identifies C2 framework from TLS server behavior
|
|
- [~] **CYU** — Citrix-specific TLS fingerprint: WILL NOT implement pre-v1. Don't have that kind of data.
|
|
- [x] **TLS session resumption behavior** — Identifies tooling by how it handles session tickets
|
|
- [x] **Certificate details** — CN, SANs, issuer, validity period, self-signed flag (attacker-run servers)
|
|
|
|
### Timing & Behavioral
|
|
- [ ] **Inter-packet arrival times** — OS TCP stack fingerprint + beaconing interval detection
|
|
- [ ] **TTL values** — Rough OS / hop-distance inference
|
|
- [ ] **TCP window size & scaling** — p0f-style OS fingerprinting
|
|
- [ ] **Retransmission patterns** — Identify lossy paths / throttled connections
|
|
- [ ] **Beacon jitter variance** — Attribute tooling: Cobalt Strike vs. Sliver vs. Havoc have distinct profiles
|
|
- [ ] **C2 check-in cadence** — Detect beaconing vs. interactive sessions
|
|
- [ ] **Data exfil timing** — Behavioral sequencing relative to recon phase
|
|
|
|
### Protocol Fingerprinting
|
|
- [ ] **TCP/IP stack** — ISN patterns, DF bit, ToS/DSCP, IP ID sequence (random/incremental/zero)
|
|
- [ ] **HASSH / HASSHServer** — SSH KEX algo, cipher, MAC order → tool fingerprint
|
|
- [ ] **HTTP/2 fingerprint** — GREASE values, settings frame order, header pseudo-field ordering
|
|
- [ ] **QUIC fingerprint** — Connection ID length, transport parameters order
|
|
- [ ] **DNS behavior** — Query patterns, recursion flags, EDNS0 options, resolver fingerprint
|
|
- [ ] **HTTP header ordering** — Tool-specific capitalization and ordering quirks
|
|
|
|
### Network Topology Leakage
|
|
- [ ] **X-Forwarded-For mismatches** — Detect VPN/proxy slip vs. actual source IP
|
|
- [ ] **ICMP error messages** — Internal IP leakage from misconfigured attacker infra
|
|
- [ ] **IPv6 link-local leakage** — IPv6 addrs leaked even over IPv4 VPN (common opsec fail)
|
|
- [ ] **mDNS/LLMNR leakage** — Attacker hostname/device info from misconfigured systems
|
|
|
|
### Geolocation & Infrastructure
|
|
- [ ] **ASN lookup** — Source IP autonomous system number and org name
|
|
- [ ] **BGP prefix / RPKI validity** — Route origin legitimacy
|
|
- [ ] **PTR records** — rDNS for attacker IPs (catches infra with forgotten reverse DNS)
|
|
- [ ] **Latency triangulation** — JA4L RTT estimates for rough geolocation
|
|
|
|
### Service-Level Behavioral Profiling
|
|
- [ ] **Commands executed** — Full command log per session (SSH, Telnet, FTP, Redis, DB services)
|
|
- [ ] **Services actively interacted with** — Distinguish port scans from live exploitation attempts
|
|
- [ ] **Tooling attribution** — Byte-sequence signatures from known C2 frameworks in handshakes
|
|
- [ ] **Credential reuse patterns** — Same username/password tried across multiple deckies/services
|
|
- [ ] **Payload signatures** — Hash and classify uploaded files, shellcode, exploit payloads
|
|
|
|
---
|
|
|
|
## Developer Experience
|
|
|
|
- [x] **API Fuzzing** — Property-based testing for all web endpoints.
|
|
- [x] **CI/CD pipeline** — Automated testing and linting via Gitea Actions.
|
|
- [x] **Strict Typing** — Project-wide enforcement of PEP 484 type hints.
|
|
- [ ] **Plugin SDK docs** — Documentation for adding custom services.
|
|
- [ ] **Config generator wizard** — `decnet wizard` for interactive setup.
|