B.18 kernel.*
Every field the catalogue defines under kernel, in path order. Each entry gives the field's definition and, under Carried by, every event type that writes it.
B.18.1 kernel.build.disabled #
- Type:
str[] - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The security-relevant kernel build options this kernel was built without,
by CONFIG_ name. They matter as much as those enabled: an option that
should be off — a second packet-filtering framework, a mandatory access
control module Peios does not use — would be a second, unratified policy
surface, and a kernel built with it on is otherwise indistinguishable
from one built correctly.
Carried by:
No event carries this field yet.
B.18.2 kernel.build.enabled #
- Type:
str[] - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The security-relevant kernel build options this kernel was built with,
by CONFIG_ name, such as CONFIG_MODULE_SIG_FORCE and
CONFIG_STRICT_DEVMEM. Only the options that bear on security are
listed, not the whole configuration.
Carried by:
No event carries this field yet.
B.18.3 kernel.divergence.checks #
- Type:
str[] - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The checks stock Linux makes that this kernel does not, one name per
check. Peios removes or replaces several upstream checks — the
capability-based ptrace gate, the credential tests in signal delivery,
the switch to real credentials in faccessat — because KACS makes those
decisions instead. An investigator reasoning from Linux semantics will be
wrong about each one, and this is where to find out which. Nothing emits
the field yet, so the names it will carry are not yet fixed.
Carried by:
No event carries this field yet.
B.18.4 kernel.divergence.reports #
- Type:
str[] - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The values this kernel reports differently from stock Linux, one name per
divergence. Where kernel.divergence.checks lists checks not made, this
lists answers that differ: getuid and getgid reading the task's real
credentials, SO_PEERCRED and the filesystem identity carrying the IDs
KACS projects, the capability sets in /proc and from capget
rewritten. Correlating Linux uids across sources fails silently without
it, because a peer credential and a /proc entry can disagree in ways
stock Linux never produces. Nothing emits the field yet, so the names it
will carry are not yet fixed.
Carried by:
No event carries this field yet.
B.18.5 kernel.lockdown #
- Type:
str.enum - Values:
none·integrity·confidentiality - Set: closed
- Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The kernel lockdown level in force. A Peios kernel is built to force
integrity, which refuses the paths that write to the running kernel —
/dev/mem, kexec, hibernation, raw MSR writes, unsigned BPF — to every
principal however privileged; KACS has no say in it and no privilege lifts
it. Any other value means the machine is not running a kernel built as
Peios builds it.
Carried by:
No event carries this field yet.
B.18.6 kernel.lsms #
- Type:
str[] - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The Linux security modules active, in the order the kernel calls them; a
Peios kernel runs landlock, lockdown, integrity and pkm. The list
is fixed and checked when the kernel is built but stated nowhere at
runtime, so without this field a machine booted on a kernel built some
other way cannot be told apart from one that was not.
Carried by:
No event carries this field yet.
B.18.7 kernel.securityfs-node #
- Type:
str - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The securityfs node an initialisation concerned, as its path beneath the
securityfs root (/sys/kernel/security), such as kacs/sessions. A node
that fails to be created makes every tool that reads it fail with
ENOENT, and this is where the cause is recorded. KACS creates its nodes
all or nothing, so one failure leaves the whole kacs directory absent.
Carried by:
No event carries this field yet.
B.18.8 kernel.version #
- Type:
str - Asserted: no
- Carried in: the payload
- Defined in:
kmes.evman
The Linux kernel release actually running, as uname -r reports it.
Peios pins the upstream version it builds on and checks it at build time,
but nothing else states it at runtime.
Carried by:
No event carries this field yet.
Generated from kmes.evman by pkm/tools/gen-events-book.py. Edit the fragment, not this page.