<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Syscall on Le Site de François</title><link>https://lesitedefrancois.be/en/tags/syscall/</link><description>Recent content in Syscall on Le Site de François</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 François</copyright><atom:link href="https://lesitedefrancois.be/en/tags/syscall/index.xml" rel="self" type="application/rss+xml"/><item><title>seccomp (Secure Computing Mode)</title><link>https://lesitedefrancois.be/en/security/seccomp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://lesitedefrancois.be/en/security/seccomp/</guid><description>&lt;p&gt;&lt;strong&gt;seccomp (Secure Computing Mode)&lt;/strong&gt; is a Linux kernel facility, activated by the &lt;code&gt;seccomp(2)&lt;/code&gt; syscall, that restricts which system calls a process may subsequently invoke. In its original &lt;code&gt;SECCOMP_SET_MODE_STRICT&lt;/code&gt; form (2005) it was a blunt instrument: the process could call only &lt;code&gt;read&lt;/code&gt;, &lt;code&gt;write&lt;/code&gt;, &lt;code&gt;_exit&lt;/code&gt;, and &lt;code&gt;sigreturn&lt;/code&gt;. The operationally useful form is &lt;code&gt;SECCOMP_SET_MODE_FILTER&lt;/code&gt;, introduced in kernel 3.5 (2012), which accepts a &lt;strong&gt;BPF&lt;/strong&gt; (classic BPF, predating eBPF) filter program that receives each syscall&amp;rsquo;s number and arguments and returns one of several verdicts: &lt;code&gt;ALLOW&lt;/code&gt; (continue normally), &lt;code&gt;ERRNO&lt;/code&gt; (return a specified error to the process), &lt;code&gt;KILL_PROCESS&lt;/code&gt; or &lt;code&gt;KILL_THREAD&lt;/code&gt; (terminate immediately without giving the process a chance to handle signals), &lt;code&gt;TRAP&lt;/code&gt; (deliver &lt;code&gt;SIGSYS&lt;/code&gt;), or &lt;code&gt;TRACE&lt;/code&gt; (notify a ptracer). Once installed, a seccomp filter cannot be removed, and child processes created by &lt;code&gt;fork()&lt;/code&gt; or threads created by &lt;code&gt;clone()&lt;/code&gt; inherit it. Filters may only add restrictions, never loosen them — so a chain of filters is the intersection of all their allowlists. The filter runs entirely in the kernel, in BPF bytecode verified for safety, before the syscall implementation is entered, making it extremely low-overhead relative to the security it provides.&lt;/p&gt;</description></item></channel></rss>