Skip to main content

Talus โ€” eBPF Endpoint Security Agent

eBPF endpoint security agent for Linux โ€” detect ransomware behaviour, respond at the kernel edge. Kernel-side tracepoint programs, per-CPU perf buffers, sliding-window heuristic, automated SIGKILL response, FrankenTUI.

What It Doesโ€‹

Talus hooks into the Linux kernel at the tracepoint level โ€” capturing every execve, openat, connect, accept, sendto and recvfrom without polling, without /proc parsing, without library dependencies. Events stream through lock-free per-CPU perf buffers into a userspace detection engine that visualizes process trees, network connections, and file operations in real time, automatically terminating offending processes.

Key Featuresโ€‹

๐Ÿ”ฌ Kernel-Level Telemetryโ€‹

eBPF tracepoint programs capture execve and openat at the syscall boundary. No polling, no /proc parsing, no library version dependencies. Works on any Linux 5.8+ kernel.

๐Ÿ“Š Per-CPU Perf Buffersโ€‹

Lock-free per-CPU event streaming ensures zero contention between cores. Events are batched and flushed to userspace with minimal overhead โ€” the kernel does the heavy lifting.

๐Ÿ›ก๏ธ Ransomware Detectionโ€‹

Sliding-window heuristic monitors file rename velocity and entropy changes. When a process exhibits ransomware-like behavior (mass opens + high entropy), Talus flags it in real time and sends SIGKILL with full process tree context.

๐Ÿ–ฅ๏ธ FrankenTUI Dashboardโ€‹

7-panel cyberpunk terminal UI โ€” events, process tree, network connections, top files, extensions, alerts, heatmap. Keyboard-driven, zero mouse dependency.

โšก Zero Dependenciesโ€‹

No userspace eBPF library required โ€” the kernel does everything. Talus loads the compiled eBPF object directly via aya::Ebpf::load_file. The userspace side is pure Rust stable.

๐Ÿ”’ Security-Firstโ€‹

Designed for production security monitoring. Input validation, rate limiting, and graceful degradation under load. No data leaves the machine.

Architectureโ€‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Linux Kernel โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ execve tracepoint โ”‚ โ”‚ openat tracepoint โ”‚ โ”‚
โ”‚ โ”‚ (process create) โ”‚ โ”‚ (file open/creat) โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ–ผ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ EVENTS map โ”‚ (PerfEventArray, per-CPU) โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚ lock-free
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Userspace โ”‚
โ”‚ perf reader โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ–ผ โ–ผ โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Process โ”‚ โ”‚ File Op โ”‚ โ”‚ Ransom โ”‚
โ”‚ Tracker โ”‚ โ”‚ History โ”‚ โ”‚ Heuristicโ”‚
โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜
โ”‚ โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ FrankenTUI โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tech Stackโ€‹

ComponentTechnology
Kernel programsRust #![no_std], aya-ebpf
Build (kernel)Rust nightly, -Z build-std
UserspaceRust stable, aya
TUIFrankenTUI (ftui)
Perf readeraya-ebpf perf buffer API
TargetLinux 5.8+ (eBPF + tracepoint support)

Requirementsโ€‹

  • Linux kernel 5.8+ (eBPF + tracepoint support)
  • root (CAP_BPF / CAP_SYS_ADMIN) to load eBPF programs
  • Rust nightly + rust-src for the eBPF crate
  • Rust stable for the userspace TUI

See also: Architecture ยท eBPF Program ยท Userspace ยท Performance