Linux 6.7-rc7
[linux-modified.git] / kernel / configs / hardening.config
1 # Help: Basic kernel hardening options
2 #
3 # These are considered the basic kernel hardening, self-protection, and
4 # attack surface reduction options. They are expected to have low (or
5 # no) performance impact on most workloads, and have a reasonable level
6 # of legacy API removals.
7
8 # Make sure reporting of various hardening actions is possible.
9 CONFIG_BUG=y
10
11 # Basic kernel memory permission enforcement.
12 CONFIG_STRICT_KERNEL_RWX=y
13 CONFIG_STRICT_MODULE_RWX=y
14 CONFIG_VMAP_STACK=y
15
16 # Kernel image and memory ASLR.
17 CONFIG_RANDOMIZE_BASE=y
18 CONFIG_RANDOMIZE_MEMORY=y
19
20 # Randomize allocator freelists, harden metadata.
21 CONFIG_SLAB_FREELIST_RANDOM=y
22 CONFIG_SLAB_FREELIST_HARDENED=y
23 CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
24 CONFIG_RANDOM_KMALLOC_CACHES=y
25
26 # Randomize kernel stack offset on syscall entry.
27 CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
28
29 # Basic stack frame overflow protection.
30 CONFIG_STACKPROTECTOR=y
31 CONFIG_STACKPROTECTOR_STRONG=y
32
33 # Basic buffer length bounds checking.
34 CONFIG_HARDENED_USERCOPY=y
35 CONFIG_FORTIFY_SOURCE=y
36
37 # Basic array index bounds checking.
38 CONFIG_UBSAN=y
39 CONFIG_UBSAN_TRAP=y
40 CONFIG_UBSAN_BOUNDS=y
41 # CONFIG_UBSAN_SHIFT is not set
42 # CONFIG_UBSAN_DIV_ZERO
43 # CONFIG_UBSAN_UNREACHABLE
44 # CONFIG_UBSAN_BOOL
45 # CONFIG_UBSAN_ENUM
46 # CONFIG_UBSAN_ALIGNMENT
47 CONFIG_UBSAN_SANITIZE_ALL=y
48
49 # Linked list integrity checking.
50 CONFIG_LIST_HARDENED=y
51
52 # Initialize all heap variables to zero on allocation.
53 CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
54
55 # Initialize all stack variables to zero on function entry.
56 CONFIG_INIT_STACK_ALL_ZERO=y
57
58 # Wipe RAM at reboot via EFI. For more details, see:
59 # https://trustedcomputinggroup.org/resource/pc-client-work-group-platform-reset-attack-mitigation-specification/
60 # https://bugzilla.redhat.com/show_bug.cgi?id=1532058
61 CONFIG_RESET_ATTACK_MITIGATION=y
62
63 # Disable DMA between EFI hand-off and the kernel's IOMMU setup.
64 CONFIG_EFI_DISABLE_PCI_DMA=y
65
66 # Force IOMMU TLB invalidation so devices will never be able to access stale
67 # data content.
68 CONFIG_IOMMU_SUPPORT=y
69 CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
70
71 # Do not allow direct physical memory access to non-device memory.
72 CONFIG_STRICT_DEVMEM=y
73 CONFIG_IO_STRICT_DEVMEM=y
74
75 # Provide userspace with seccomp BPF API for syscall attack surface reduction.
76 CONFIG_SECCOMP=y
77 CONFIG_SECCOMP_FILTER=y
78
79 # Provides some protections against SYN flooding.
80 CONFIG_SYN_COOKIES=y
81
82 # Attack surface reduction: do not autoload TTY line disciplines.
83 # CONFIG_LDISC_AUTOLOAD is not set
84
85 # Dangerous; enabling this disables userspace brk ASLR.
86 # CONFIG_COMPAT_BRK is not set
87
88 # Dangerous; exposes kernel text image layout.
89 # CONFIG_PROC_KCORE is not set
90
91 # Dangerous; enabling this disables userspace VDSO ASLR.
92 # CONFIG_COMPAT_VDSO is not set
93
94 # Attack surface reduction: Use the modern PTY interface (devpts) only.
95 # CONFIG_LEGACY_PTYS is not set
96
97 # Attack surface reduction: Use only modesetting video drivers.
98 # CONFIG_DRM_LEGACY is not set