This reverse shell
never executed
eBPF tracks syscall sequences per-PID inside the kernel. When the accumulated pattern matches a reverse shell, the LSM hook denies execve() and returns EPERM. The attack never reaches userland.
Why this is different
What happens when someone tries a reverse shell
This is real output from our production server.
The shell never started. execve() returned EPERM. Without this system, that would be a live shell with full access.
Each syscall sets one bit. The check is a single bitwise AND per pattern. 8 patterns, ~10ns total. The overhead is zero.
The kernel blocks the attack in 0ms. The AI triages in ~2s. Telegram notification in ~3s. Mesh network broadcasts the block to all peer servers. Fully autonomous.
"A reverse shell must call connect(), dup2(), and execve(). There is no alternative path through the kernel. We track the sequence per-PID and block at execve. The attacker's shell never starts."
8 patterns. All tested. All blocking.
Production server, kernel 6.8, aarch64. Real attack traffic. Not a lab.
Why Falco, Tetragon, and Tracee can't do this
They detect syscalls. We detect sequences.
"Process called connect()" is not an alert. "Process opened /etc/shadow" is not an alert. Each syscall is normal in isolation. The attack is the combination.
Falco evaluates per-event rules in userspace. Tetragon can kill but not correlate. Tracee signatures run in Go with millisecond latency.
eBPF sets one bit per syscall category. At execve(), the LSM hook checks if the accumulated bits match an attack pattern. One bitwise AND per pattern.
No userspace. No latency. No database. The check runs inside the kernel's own execution path.
5 bugs we found that no unit test would catch
The technique is simple. Making it work in production is not.
Each bug was found on a live server receiving real attacks. The paper documents all fixes. The code is source-available on GitHub.
Try it on your server
Install. Enable LSM. Try to spawn a reverse shell. The kernel will block it.
curl -fsSL https://innerwarden.com/install | sudo bash