We watch from the shadows --- our eyes never close.
AI summary
DaemonEye is a silent observability and hunt layer for sensitive,
restricted, and air-gapped environments. It transforms endpoints into
stealth honeypots, offering passive observation by default, surgically
traceable on-demand capabilities, and cryptographically auditable
forensics. Telemetry remains under customer control, with a proxy tree
architecture ensuring scalability and reliability. The system focuses on
silently tracing process lineages and network interactions when a
heuristic triggers, allowing analysts to reconstruct attack paths
without alerting adversaries. Key principles include customer
sovereignty over data, silent observation, auditable forensics, air-gap
friendliness, privacy defaults, and extensible integration. The workflow
involves passive baseline collection, heuristic triggers, silent trace
commands, focused capture of events, cross-host stitching, analyst
review, and manual action.
1. Overview / Elevator Pitch#
DaemonEye is a silent observability and hunt layer for sensitive,
restricted, and air-gapped environments. It turns endpoints into stealth
honeypots: passive by default, surgically traceable on demand, and
cryptographically auditable. Telemetry never leaves customer control
unless explicitly exported by an operator. Proxy tree architecture
(Fanout-style) provides scale and store-and-forward reliability without
exposing data outwards.
One-line: DaemonEye silently observes endpoints and, when a
heuristic triggers, places a focused, tamper-evident trace on that
process lineage and its network interactions so analysts can reconstruct
the attacker's path without tipping them off.
2. Core Principles & Telemetry Commitment#
- Customer sovereignty: All telemetry is owned and controlled by the
customer. DaemonEye provides software, not custody. Agents and proxies
use mTLS to the customer Security Center; no automatic egress to
external cloud services. - Silent observation: Default mode is passive. Rules and traces are
operator-visible only; they generate no host-visible artifacts that
could alert an adversary. - Auditable forensics: All trace start/stop and trace events are
cryptographically signed (Ed25519) and recorded in a write-only audit
ledger to preserve chain of custody. - Air-gap friendly: Fully functional offline; rule packs and updates
can be delivered via signed bundles and sneaker-net updates. - Privacy & safety defaults: Mask command args by default, RBAC for
who can start traces, rate limits and resource caps to avoid host
disruption. - Extensible integration: Security Center can export (explicitly
configured) one-way sinks (Splunk, Elastic, Kafka) ---
operator-initiated only and explicitly permissioned.
3. Core Concept & Workflow (Analyst POV)#
- Passive baseline: procmond collects lightweight process
metadata, parent/child relationships, and connection tuples into the
local store (redb). - Heuristic trigger: A rule (e.g., Apache -> bash spawn) fires in
Security Center or agent evaluator. - Silent trace command: SC issues a TraceCommand to the agent via
the proxy tree; the agent starts focused tracing of the root PID and
descendants. - Focused capture: procmond captures fork/exec, cmdline snapshots,
file-open metadata, socket opens/closes, and small memory artifacts
as configured. All events are signed and stored locally. - Cross-host stitching: If a traced process connects to remote
host running DaemonEye, SC can fan-out a trace to the remote host,
linking events via a shared trace_id. - Analyst review: UI presents lineage graphs, replayable timeline,
filtered SQL queries, and exportable signed forensic packages. - Action (manual): Analysts decide containment or continued
surveillance --- DaemonEye avoids automated enforcement by default.
4. Proxy Tree Architecture (Fanout-style)#
Topology: One Security Center (SC) per logical enclave and a tree
of Proxies (PX) for scale. Agents (AG) connect up to a PX; PXs forward
to upstream PX or SC. No cycles.
Roles:
- Agent (AG): procmond + daemoneye-agent. Collects events, obeys
trace commands, connects only to assigned PX list. - Proxy (PX): store-and-forward node. WAL (redb), batching,
compression, flow control, QoS, command routing. - Security Center (SC): fleet registry, rule execution, correlation,
UI, audit ledger, export configuration (none by default).
Data plane & Control plane: Events flow up (AG->PX->...->SC). Control
messages (TraceCommand) flow down (SC->PX->...->AG). All mTLS
authenticated.
PX features: WAL, ingress/egress queues, compression (zstd),
priority lanes (trace, alert, bulk), disk watermarks, failover &
fallback lists for agents, per-link flow control, health metrics visible
inside the enclave only.
5. Message & Trace Model (Example shapes)#
TraceCommand (ControlMsg payload)
message TraceCommand {
string trace_id = 1;
string target_agent = 2; // agent_id or tag
uint32 target_pid = 3;
uint32 depth = 4; // max child depth
bool collect_cmdlines = 5;
bool collect_network = 6;
bool collect_file_meta = 7;
uint32 max_duration_secs = 8;
string initiated_by = 9; // operator id
int64 timestamp = 10;
bytes signature = 11; // operator signature
}
EventBatch (Agent->Proxy)
message EventBatch {
string agent_id = 1;
uint64 seq = 2; // per-agent monotonic
int64 ts_start = 3;
int64 ts_end = 4;
repeated Event events = 5;
bytes batch_sig = 6;
}
TraceChunk (trace events stored with signature)
{
"trace_id": "T-20251013-001",
"seq": 42,
"type": "execve",
"ts": 1697212345000,
"payload": {
"pid": 1234,
"ppid": 1220,
"name": "bash",
"cmdline": ["/bin/bash", "-c", "rm -rf /tmp/*"],
"exe_hash": "blake3:..."
},
"sig": "ed25519:..."
}
6. What gets captured (Focused trace)#
- Process events: fork/clone, execve, exit, uid/gid, ppid, tty,
start_time - Command lines & env snapshots (privacy masked by default)
- File activity: open/create/rename/unlink (metadata + optional
small artifact hashes) - Network events: socket create, connect, accept, local/remote
ip, associated pid - Binary hashes: blake3/sha256 of executed binaries
- Optional memory snippets: small header regions for quick artifact
triage (policy controlled) - Timestamps & sequence numbers: for robust timeline stitching
- All events cryptographically signed and stored to the audit ledger
7. OS Implementation Guidance (stealth vs coverage)#
Linux: prefer eBPF (aya / bpftrace / ebpf) for stealthy exec/connect
tracing; fallback to /proc polling if needed.
Windows: ETW for process/network events; avoid noisy hooks. Signed
installers and SLSA provenance for enterprise.
macOS: EndpointSecurity framework for process events; proc info
fallback.
Legacy / constrained devices: tiny procmond polling with minimal
footprint and configurable sampling.
8. UI & Hunt Workflows (key features)#
- Timeline player: step through events; search & filter; jump to
specific event types - Lineage graph: interactive root->children->network hops with
click-to-snapshot - Mark & Watch: flag process/command to start an extended trace or
build a watch rule - Hypothesis sandbox: run ad-hoc SQL queries against stored trace
data (read-only) - Replay & export: produce signed forensic packages (trace +
artifacts + audit chain) - RBAC & approvals: trace start requires role/approval depending on
policy; all actions logged and signed
9. Telemetry & Privacy Controls#
- Default mask: commandline args masked; explicit operator action to
reveal (with justification) - Retention controls: operator sets per-site retention window; SC
enforces purge policies - Rate & resource limits: max events/sec per agent, max trace
duration, max total bytes per trace - Operator consent & audit: who started trace, why, and when ---
immutably recorded - Export gates: explicit export sinks must be configured and
approved (signed export packages)
10. MVP Backlog (priority)#
Goal: demonstrate Apache->bash->ssh scenario with cross-host trace and
signed forensic export
- Passive collector PoC (Linux): lightweight exec/connect events ->
redb store - SC rule evaluator (SQL) + minimal UI to view rule hits
- TraceCommand implementation (agent side) + focused trace capture &
signing - Proxy (PX) MVP: agent->px WAL, px->sc batching, acks & replay
- Cross-host link event & manual follow feature in SC
- Forensic export: signed trace package (trace_events + metadata)
- Tests: performance (10k processes simulated), stealth verification,
resource caps
11. Risks & Mitigations#
- Legal/privacy exposure: require operator policy, mask PII by
default, RBAC for tracing. - Host impact / availability: resource caps, sampling fallbacks,
graceful degrade on memory pressure. - Attacker detection of tracing: no host-visible artifacts; use
kernel-level stealth sources where possible; avoid creating new files
or processes. - Data growth: retention policies, compression, PX buffering, tiered
storage. - False positives / analyst fatigue: tuned rule packs,
analyst-friendly UI, dedupe & contextual enrichment.
12. Operational & Security Notes#
- Customer-owned PKI: customer generates root CA; node certs
short-lived; SC distributes CRLs via PX. - No cloud keys by default: SLSA provenance and cosign signatures
provided for releases; verification possible offline. - Signed rule packs: packs signed by EvilBit Labs (or customer) then
verified by SC before activation. - Airgap update kit: signed tarball or container images, verifiable
with local tools.
13. Example configs (snippets)#
Agent (minimal):
agent:
proxy_hint: px-us-east-1a.local:7443
site_tag: us-east-1a
tls:
cert: /etc/daemoneye/agent.crt
key: /etc/daemoneye/agent.key
ca: /etc/daemoneye/ca.pem
stream:
batch_max_events: 2000
batch_max_ms: 250
trace:
default_depth: 6
privacy_mask_args: true
Proxy (minimal):
proxy:
listen: 0.0.0.0:7443
upstream: px-region-1.local:7443
wal_path: /var/lib/daemoneye/proxy/wal
fsync_interval_ms: 100
flow:
priorities: [trace, alert, bulk]
compression: zstd
14. Taglines & Messaging (workshopping)#
- "We watch from the shadows --- and our eyes never close." *(your
seed)* - "Silent eyes. Relentless recall."
- "Observe. Correlate. Reveal --- without warning the adversary."
- "Every endpoint is a honeypot. Every action is preserved."
15. Next steps (concrete)#
- Accept this canvas and convert to one-page PRD and sprint
backlog. - Skirmish: Implement Agent PoC (Linux eBPF or /proc fallback) and PX
MVP (WAL + batching). - Run 2-week red team exercise (apache->bash->ssh) to validate stealth,
latency, and cross-proxy tracing. - Draft legal & privacy policies and RBAC approval flows for
enterprise buyers. - Build UI mockups for timeline & lineage and iterate with target
users (SOC analysts).
Prepared for: Ken / EvilBit Labs --- DaemonEye Shadow-Hunt design