Add a new feature --generate
[kconfig-hardened-check.git] / kconfig_hardened_check / checks.py
index ba29e2db76751649477c11124621e900ce7c6f8a..9052aaa4f1fa03a616d4360f3dec6c898acec3e2 100644 (file)
@@ -1,9 +1,7 @@
 #!/usr/bin/python3
 
 """
-This tool helps me to check Linux kernel options against
-my security hardening preferences for X86_64, ARM64, X86_32, and ARM.
-Let the computers do their job!
+This tool is for checking the security hardening options of the Linux kernel.
 
 Author: Alexander Popov <alex.popov@linux.com>
 
@@ -48,6 +46,7 @@ This module contains knowledge for checks.
 #    intel_iommu=on
 #    amd_iommu=on
 #    efi=disable_early_pci_dma
+#    cfi=
 
 # pylint: disable=missing-function-docstring,line-too-long,invalid-name
 # pylint: disable=too-many-branches,too-many-statements
@@ -489,7 +488,7 @@ def add_cmdline_checks(l, arch):
                  AND(KconfigCheck('self_protection', 'defconfig', 'RODATA_FULL_DEFAULT_ENABLED', 'y'),
                      CmdlineCheck('self_protection', 'defconfig', 'rodata', 'is not set')))]
     else:
-        l += [OR(CmdlineCheck('self_protection', 'defconfig', 'rodata', '1'),
+        l += [OR(CmdlineCheck('self_protection', 'defconfig', 'rodata', 'on'),
                  CmdlineCheck('self_protection', 'defconfig', 'rodata', 'is not set'))]
 
     # 'self_protection', 'kspp'
@@ -587,6 +586,13 @@ no_kstrtobool_options = [
     'srbds', # See srbds_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
     'mmio_stale_data', # See mmio_stale_data_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
     'retbleed', # See retbleed_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
+    'rodata', # See set_debug_rodata() in init/main.c
+    'ssbd', # See parse_spectre_v4_param() in arch/arm64/kernel/proton-pack.c
+    'slub_debug', # See setup_slub_debug() in mm/slub.c
+    'iommu', # See iommu_setup() in arch/x86/kernel/pci-dma.c
+    'vsyscall', # See vsyscall_setup() in arch/x86/entry/vsyscall/vsyscall_64.c
+    'vdso32', # See vdso32_setup() in arch/x86/entry/vdso/vdso32-setup.c
+    'vdso', # See vdso32_setup() in arch/x86/entry/vdso/vdso32-setup.c
     'tsx' # See tsx_init() in arch/x86/kernel/cpu/tsx.c
 ]