Syscall filtering is a security mechanism that allows applications to define which syscalls they should be allowed to execute.
- Name: Cole Robinson
- Email: firstname.lastname@example.org
- Name: Paul Moore
- Email: email@example.com
- Targeted release: Fedora 18
- Last updated: June 6 2012
- Percentage of completion: 40%
Benefit to Fedora
Improved security for applications that use syscall filtering.
- Get seccomp into upstream kernel: DONE, present in 3.5-rc1
- Package libseccomp for Fedora: IN PROGRESS (waiting on review), BZ 830992
- Get the QEMU/libseccomp patch accepted upstream: IN PROGRESS (v2 patch posted on June 13th by IBM)
- Update Fedora QEMU package to build against libseccomp: NOT DONE
How To Test
- The traditional kernel regression tests should be preformed to ensure that the kernel's seccomp functionality does not impact the expected functionality when not enabled by the application at runtime.
- The libseccomp sources contain a series of automated tests which can be used to test the library's internal seccomp filter generation. It is important to note that these automated tests are tested via a seccomp BPF simulator and not the kernel.
- A simple negative test could be developed to validate that libseccomp and the kernel perform as expected when a syscall is blocked.
- The traditional QEMU regression tests should be performed to ensure that QEMU's normal functionality is not impacted by the libseccomp patches.
Ideally this feature shouldn't be noticeable to the user, the syscall filtering should allow normal execution of the application. Intention is that only people trying to exploit security holes notice that the syscall they are trying to use is blocked :)
- Kernel updated to 3.5
- libseccomp packaged
- QEMU updated to 1.2
Any other apps that want to use this functionality need the the first two bits.
Since this is brand new functionality, if it doesn't make it in time for F18, nothing has changed. We just drop this feature page.
- https://lwn.net/Articles/494252/ (article about syscall filtering)
- http://libseccomp.sf.net/ (helper library)
- https://lists.gnu.org/archive/html/qemu-devel/2012-05/msg00623.html (initial QEMU libseccomp patch posting)