Syscall Auditing at Scale
As the kind-of-sort-of maintainer of Linux's syscall infrastructure on x86, I have a public service announcement: the syscall auditing infrastructure is awful.<p>It is inherently buggy in numerous ways.  It hardcodes the number of arguments a syscall has incorrectly.  It screws up compat handling.  It  doesn't robustly match entries to returns.  It has an utterly broken approach to handling x32 syscalls.  It has terrifying code that does bizarre things involving path names (!).  It doesn't handle containerization sensibly at all.  I wouldn't be at all surprised if it contains major root holes.  And last, but certainly not least, it's eminently clear that no one stress tests it.<p>If you really want to use it for production, invest the effort to fix it, please.  (And cc me.)  Otherwise do yourself a favor and stay away from it.  Use the syscall tracing infrastructure instead.