This week we look at some new Linux kernel security features including the
Landlock LSM and Core Scheduling plus we cover security updates for
RabbitMQ, Ceph, Thunderbird and more.
Show Notes
Overview
This week we look at some new Linux kernel security features including the
Landlock LSM and Core Scheduling plus we cover security updates for
RabbitMQ, Ceph, Thunderbird and more.
Allows unprivileged processes to sandbox themselves - currently only
supports file paths - so can specify read/write of files/dirs etc
Took 34 revisions of the patch set and it evolved significantly over
time - was originally based on attaching BPF programs to LSM hooks but
given how fraught unprivileged BPF has been this was NACKd and instead
went with a new approach based on a custom API with brand new system
calls to support it
API is quite low-level compared to say how AppArmor policy is specified
so will be interesting to see if there becomes a liblandlock in the
future to make this kind of thing easier (cf. libseccomp for doing
seccomp BPF programs etc)
SMT siblings share lots of microarchitectural state like L1D cache etc -
various micro-arch attacks could only be mitigated across different SMT
cores - so processes which shared the same core could snoop on each other
(eg. L1TF - in the context of virtualisation, a malicious guest VM could
snoop on the L1D contents of another VM on the same SMT core) - so the
only option was to disable SMT which brings a big performance hit
Solution is core scheduling - ie. make the schedular aware of and respect
SMT threads on the same core
Tag processes via cgroups - this defines the trust boundaries - processes
in the same tagged cgroup share a trust boundary and can be scheduled on
sibling SMT cores - and by default all processes are in the same group
Uses prctl() to allow setting / copying these - and can only set these on
processes which you can ptrace