aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/configs
diff options
context:
space:
mode:
authorGravatar Kees Cook <keescook@chromium.org> 2023-08-24 21:25:55 -0700
committerGravatar Kees Cook <keescook@chromium.org> 2023-09-22 09:50:55 -0700
commit215199e3d9f3dc01a6d10b8229891e6f7f1085e7 (patch)
treec9556972bf81693b8ddc2596c703e5cdeed3b032 /arch/x86/configs
parentLinux 6.6-rc2 (diff)
downloadlinux-215199e3d9f3dc01a6d10b8229891e6f7f1085e7.tar.gz
linux-215199e3d9f3dc01a6d10b8229891e6f7f1085e7.tar.bz2
linux-215199e3d9f3dc01a6d10b8229891e6f7f1085e7.zip
hardening: Provide Kconfig fragments for basic options
Inspired by Salvatore Mesoraca's earlier[1] efforts to provide some in-tree guidance for kernel hardening Kconfig options, add a new fragment named "hardening-basic.config" (along with some arch-specific fragments) that enable a basic set of kernel hardening options that have the least (or no) performance impact and remove a reasonable set of legacy APIs. Using this fragment is as simple as running "make hardening.config". More extreme fragments can be added[2] in the future to cover all the recognized hardening options, and more per-architecture files can be added too. For now, document the fragments directly via comments. Perhaps .rst documentation can be generated from them in the future (rather than the other way around). [1] https://lore.kernel.org/kernel-hardening/1536516257-30871-1-git-send-email-s.mesoraca16@gmail.com/ [2] https://github.com/KSPP/linux/issues/14 Cc: Salvatore Mesoraca <s.mesoraca16@gmail.com> Cc: x86@kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: linux-kbuild@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'arch/x86/configs')
-rw-r--r--arch/x86/configs/hardening.config15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/x86/configs/hardening.config b/arch/x86/configs/hardening.config
new file mode 100644
index 000000000000..19bb0c7a7669
--- /dev/null
+++ b/arch/x86/configs/hardening.config
@@ -0,0 +1,15 @@
+# Basic kernel hardening options (specific to x86)
+
+# Modern libc no longer needs a fixed-position mapping in userspace, remove
+# it as a possible target.
+CONFIG_LEGACY_VSYSCALL_NONE=y
+
+# Enable chip-specific IOMMU support.
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_SVM=y
+CONFIG_AMD_IOMMU=y
+CONFIG_AMD_IOMMU_V2=y
+
+# Enable CET Shadow Stack for userspace.
+CONFIG_X86_USER_SHADOW_STACK=y