cella provides two complementary approaches to syscall monitoring: passive observation and active blocking.
Monitoring and enforcement are different goals. You might want to observe what a container does without interfering (profiling, compliance auditing), or you might want to block dangerous operations in real time (security hardening). cella supports both.
Activated with t. Uses bpftrace to attach to the kernel's tracepoint for syscall entry, filtered by the container's cgroup ID.
bpftrace process with a script that traces tracepoint:raw_syscalls:sys_enter| Family | Examples |
|---|---|
| file-io | read, write, open, close, stat, fstat, lstat, lseek |
| network | socket, connect, bind, listen, accept, sendto, recvfrom |
| process | fork, clone, execve, wait4, exit_group |
| memory | mmap, mprotect, munmap, brk, mremap |
| signals | rt_sigaction, rt_sigprocmask, kill, tgkill |
| ipc | pipe, futex, eventfd, epoll_ctl |
| system | ioctl, prctl, sysinfo, getrandom |
Activated with Z. Uses LXD's security.syscalls.deny config, which leverages the kernel's BPF mechanism to block specific syscalls at the container level.
security.syscalls.deny via the LXD APIEPERM for the listed syscallsThe default deny list targets high-risk syscalls: ptrace, mount, umount2, bpf, kexec_load, kexec_file_load, reboot, init_module, finit_module, delete_module.
The recommended workflow: