#
#
# N.B Hardening command line parameters:
-# slub_debug=FZP
# slab_nomerge
# page_alloc.shuffle=1
# iommu=force (does it help against DMA attacks?)
-# page_poison=1 (if enabled)
-# init_on_alloc=1
-# init_on_free=1
+# slub_debug=FZ (slow)
+# init_on_alloc=1 (since v5.3)
+# init_on_free=1 (since v5.3, otherwise slub_debug=P and page_poison=1)
# loadpin.enforce=1
# debugfs=no-mount (or off if possible)
#
# Mitigations of CPU vulnerabilities:
# Аrch-independent:
-# mitigations=auto,nosmt
+# mitigations=auto,nosmt (nosmt is slow)
# X86:
# spectre_v2=on
# pti=on
# ssbd=force-on
#
# N.B. Hardening sysctls:
-# kernel.kptr_restrict=2
-# kernel.dmesg_restrict=1
+# kernel.kptr_restrict=2 (or 1?)
+# kernel.dmesg_restrict=1 (also see the kconfig option)
# kernel.perf_event_paranoid=3
# kernel.kexec_load_disabled=1
# kernel.yama.ptrace_scope=3
l += [OptCheck('self_protection', 'defconfig', 'HARDEN_BRANCH_PREDICTOR', 'y')]
# 'self_protection', 'kspp'
+ l += [OptCheck('self_protection', 'kspp', 'SECURITY_DMESG_RESTRICT', 'y')]
l += [OptCheck('self_protection', 'kspp', 'BUG_ON_DATA_CORRUPTION', 'y')]
l += [OptCheck('self_protection', 'kspp', 'DEBUG_WX', 'y')]
l += [OptCheck('self_protection', 'kspp', 'SCHED_STACK_END_CHECK', 'y')]
l += [OptCheck('self_protection', 'kspp', 'DEFAULT_MMAP_MIN_ADDR', '32768')]
# 'self_protection', 'clipos'
- l += [OptCheck('self_protection', 'clipos', 'SECURITY_DMESG_RESTRICT', 'y')]
l += [OptCheck('self_protection', 'clipos', 'DEBUG_VIRTUAL', 'y')]
l += [OptCheck('self_protection', 'clipos', 'STATIC_USERMODEHELPER', 'y')] # needs userspace support
l += [OptCheck('self_protection', 'clipos', 'EFI_DISABLE_PCI_DMA', 'y')]
l += [AND(OptCheck('self_protection', 'my', 'UBSAN_BOUNDS', 'y'),
OptCheck('self_protection', 'my', 'UBSAN_MISC', 'is not set'),
OptCheck('self_protection', 'my', 'UBSAN_TRAP', 'y'))]
- l += [OptCheck('self_protection', 'my', 'SLUB_DEBUG_ON', 'y')] # TODO: is it better to set that via kernel cmd?
l += [OptCheck('self_protection', 'my', 'RESET_ATTACK_MITIGATION', 'y')] # needs userspace support (systemd)
if arch == 'X86_64':
l += [AND(OptCheck('self_protection', 'my', 'AMD_IOMMU_V2', 'y'),