Cross-platform endpoint telemetry and response agent for the Tamandua EDR platform. Written in Rust for Windows, Linux, and macOS.
The agent collects process, file, network, DNS, and registry telemetry, performs local analysis (hashing, entropy, signature verification), and executes response commands (kill, quarantine, isolate) issued by the Tamandua server over an authenticated WebSocket channel.
- Collectors (
src/collectors/) — emitTelemetryEvents vianext_event(). Platform-native sources: Windows ETW, Linux eBPF (CO-RE/BTF viaaya, with an auditd fallback on kernels < 5.7), macOS EndpointSecurity-equivalents. - Transport (
src/transport/) — WebSocket client with mTLS + JWT auth. - Response (
src/response/) — command execution (kill / quarantine / isolate). - Analyzers (
src/analyzers/) — local hash and entropy analysis. - Deception (
src/deception/) — honeyfile monitoring.
Requires a stable Rust toolchain (rustup, edition 2021).
cargo build --release # native build
cargo build # debug buildCross-compilation targets (musl static + ARM) are exercised in CI; see
.github/workflows/ci.yml.
Windows note: the
windowscrate features must match your installed Windows SDK.
yara— enables YARA scanning (requireslibclangfor theyaracrate bindings).
cargo test
cargo test collectors::process # a single module
cargo clippy --all-targets # lint
cargo fmt --check # formattingRUST_LOG=debug cargo run -- --server wss://localhost:4000/socket/agentEnvironment variables:
| Variable | Purpose |
|---|---|
TAMANDUA_SERVER_URL |
e.g. wss://localhost:4000/socket/agent |
TAMANDUA_AGENT_ID |
auto-generated UUID if unset |
TAMANDUA_TOKEN |
JWT used for agent authentication |
In production, mTLS is required and the certificate CN must match the agent ID.
See CONTRIBUTING.md. Please run cargo fmt, cargo clippy,
and cargo test before opening a PR.
Licensed under the Apache License, Version 2.0.