

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AL2023 Endurecimento do kernel
<a name="kernel-hardening"></a>

 O kernel Linux 6.1 AL2023 é configurado e construído com várias opções e recursos de fortalecimento. 

## Opções de fortalecimento do kernel (independente da arquitetura)
<a name="kernel-hardening-common"></a>


| Opção do `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\_64 | AL2023/6.12/aarch64 | AL2023/6.12/x86\_64 | AL2023/6.18/aarch64 | AL2023/6.18/x86\_64 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ACPI_CUSTOM_METHOD`](#CONFIG_ACPI_CUSTOM_METHOD)  |  n  |  n  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_BINFMT_MISC`](#CONFIG_BINFMT_MISC)  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_BUG`](#CONFIG_BUG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_BUG_ON_DATA_CORRUPTION`](#CONFIG_BUG_ON_DATA_CORRUPTION)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_CFI_CLANG`](#CONFIG_CFI_CLANG)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_CFI_PERMISSIVE`](#CONFIG_CFI_PERMISSIVE)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_COMPAT`](#CONFIG_COMPAT)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_COMPAT_BRK`](#CONFIG_COMPAT_BRK)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_COMPAT_VDSO`](#CONFIG_COMPAT_VDSO)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_DEBUG_CREDENTIALS`](#CONFIG_DEBUG_CREDENTIALS)  |  n  |  n  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_DEBUG_LIST`](#CONFIG_DEBUG_LIST)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_DEBUG_NOTIFIERS`](#CONFIG_DEBUG_NOTIFIERS)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEBUG_SG`](#CONFIG_DEBUG_SG)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEBUG_VIRTUAL`](#CONFIG_DEBUG_VIRTUAL)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEBUG_WX`](#CONFIG_DEBUG_WX)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_DEFAULT_MMAP_MIN_ADDR`](#CONFIG_DEFAULT_MMAP_MIN_ADDR)  |  65536  |  65536  |  65536  |  65536  |  65536  |  65536  | 
|  [`CONFIG_DEVKMEM`](compare-with-al2-kernel.md#CONFIG_DEVKMEM)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_DEVMEM`](compare-with-al2-kernel.md#CONFIG_DEVMEM)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_EFI_DISABLE_PCI_DMA`](#CONFIG_EFI_DISABLE_PCI_DMA)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_FORTIFY_SOURCE`](compare-with-al2-kernel.md#CONFIG_FORTIFY_SOURCE)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HARDENED_USERCOPY`](#CONFIG_HARDENED_USERCOPY)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HARDENED_USERCOPY_FALLBACK`](#CONFIG_HARDENED_USERCOPY_FALLBACK)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_HARDENED_USERCOPY_PAGESPAN`](#CONFIG_HARDENED_USERCOPY_PAGESPAN)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_HIBERNATION`](#CONFIG_HIBERNATION)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HW_RANDOM_TPM`](#CONFIG_HW_RANDOM_TPM)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_INET_DIAG`](#CONFIG_INET_DIAG)  |  m  |  m  |  m  |  m  |  m  |  m  | 
|  [`CONFIG_INIT_ON_ALLOC_DEFAULT_ON`](#CONFIG_INIT_ON_ALLOC_DEFAULT_ON)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_INIT_ON_FREE_DEFAULT_ON`](#CONFIG_INIT_ON_FREE_DEFAULT_ON)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_INIT_STACK_ALL_ZERO`](#CONFIG_INIT_STACK_ALL_ZERO)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_IOMMU_DEFAULT_DMA_STRICT`](#CONFIG_IOMMU_DEFAULT_DMA_STRICT)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_IOMMU_SUPPORT`](#CONFIG_IOMMU_SUPPORT)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_IO_STRICT_DEVMEM`](compare-with-al2-kernel.md#CONFIG_IO_STRICT_DEVMEM)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_KEXEC`](#CONFIG_KEXEC)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_KFENCE`](#CONFIG_KFENCE)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LDISC_AUTOLOAD`](compare-with-al2-kernel.md#CONFIG_LDISC_AUTOLOAD)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LEGACY_PTYS`](#CONFIG_LEGACY_PTYS)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY`](#CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_MODULES`](#CONFIG_MODULES)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_MODULE_SIG`](#CONFIG_MODULE_SIG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_MODULE_SIG_ALL`](#CONFIG_MODULE_SIG_ALL)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_MODULE_SIG_FORCE`](#CONFIG_MODULE_SIG_FORCE)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_MODULE_SIG_HASH`](#CONFIG_MODULE_SIG_HASH)  |  sha512  |  sha512  |  sha512  |  sha512  |  sha512  |  sha512  | 
|  [`CONFIG_MODULE_SIG_KEY`](#CONFIG_MODULE_SIG_KEY)  |  certs/signing\_key.pem  |  certs/signing\_key.pem  |  certs/signing\_key.pem  |  certs/signing\_key.pem  |  certs/signing\_key.pem  |  certs/signing\_key.pem  | 
|  [`CONFIG_MODULE_SIG_SHA512`](#CONFIG_MODULE_SIG_SHA512)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_PAGE_POISONING`](#CONFIG_PAGE_POISONING)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_PAGE_POISONING_NO_SANITY`](#CONFIG_PAGE_POISONING_NO_SANITY)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_PAGE_POISONING_ZERO`](#CONFIG_PAGE_POISONING_ZERO)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_PANIC_ON_OOPS`](compare-with-al2-kernel.md#CONFIG_PANIC_ON_OOPS)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_PANIC_TIMEOUT`](#CONFIG_PANIC_TIMEOUT)  |  0  |  0  |  0  |  0  |  0  |  0  | 
|  [`CONFIG_PROC_KCORE`](#CONFIG_PROC_KCORE)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT`](#CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_RANDOM_TRUST_BOOTLOADER`](#CONFIG_RANDOM_TRUST_BOOTLOADER)  |  y  |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_RANDOM_TRUST_CPU`](#CONFIG_RANDOM_TRUST_CPU)  |  y  |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_REFCOUNT_FULL`](#CONFIG_REFCOUNT_FULL)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_SCHED_CORE`](#CONFIG_SCHED_CORE)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_SCHED_STACK_END_CHECK`](#CONFIG_SCHED_STACK_END_CHECK)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECCOMP`](#CONFIG_SECCOMP)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECCOMP_FILTER`](#CONFIG_SECCOMP_FILTER)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY`](#CONFIG_SECURITY)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_DMESG_RESTRICT`](compare-with-al2-kernel.md#CONFIG_SECURITY_DMESG_RESTRICT)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_LANDLOCK`](#CONFIG_SECURITY_LANDLOCK)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_LOCKDOWN_LSM`](#CONFIG_SECURITY_LOCKDOWN_LSM)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_LOCKDOWN_LSM_EARLY`](#CONFIG_SECURITY_LOCKDOWN_LSM_EARLY)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_BOOTPARAM`](#CONFIG_SECURITY_SELINUX_BOOTPARAM)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_DEVELOP`](#CONFIG_SECURITY_SELINUX_DEVELOP)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SECURITY_SELINUX_DISABLE`](compare-with-al2-kernel.md#CONFIG_SECURITY_SELINUX_DISABLE)  |  n  |  n  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_SECURITY_WRITABLE_HOOKS`](#CONFIG_SECURITY_WRITABLE_HOOKS)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_SECURITY_YAMA`](#CONFIG_SECURITY_YAMA)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SHUFFLE_PAGE_ALLOCATOR`](#CONFIG_SHUFFLE_PAGE_ALLOCATOR)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLAB_FREELIST_HARDENED`](#CONFIG_SLAB_FREELIST_HARDENED)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLAB_FREELIST_RANDOM`](#CONFIG_SLAB_FREELIST_RANDOM)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SLUB_DEBUG`](#CONFIG_SLUB_DEBUG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STACKPROTECTOR`](#CONFIG_STACKPROTECTOR)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STACKPROTECTOR_STRONG`](#CONFIG_STACKPROTECTOR_STRONG)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STATIC_USERMODEHELPER`](#CONFIG_STATIC_USERMODEHELPER)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_STRICT_DEVMEM`](compare-with-al2-kernel.md#CONFIG_STRICT_DEVMEM)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_STRICT_KERNEL_RWX`](#CONFIG_STRICT_KERNEL_RWX)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_STRICT_MODULE_RWX`](#CONFIG_STRICT_MODULE_RWX)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_SYN_COOKIES`](#CONFIG_SYN_COOKIES)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_VMAP_STACK`](#CONFIG_VMAP_STACK)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_WERROR`](#CONFIG_WERROR)  |  n  |  n  |  n  |  n  |  n  |  n  | 
|  [`CONFIG_ZERO_CALL_USED_REGS`](#CONFIG_ZERO_CALL_USED_REGS)  |  n  |  n  |  n  |  n  |  n  |  n  | 

### Permitir que os métodos ACPI estejam inserted/replaced em tempo de execução (CONFIG\_ACPI\_CUSTOM\_METHOD)
<a name="CONFIG_ACPI_CUSTOM_METHOD"></a>

O Amazon Linux desativa essa opção, pois permite que os usuários `root` gravem na memória arbitrária do kernel.

Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings).

### Formatos binários diversos (`binfmt_misc`)
<a name="CONFIG_BINFMT_MISC"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Em AL2023, esse recurso é opcional e é construído como um módulo do kernel. 

### Suporte a `BUG()`
<a name="CONFIG_BUG"></a>

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `BUG()` se o kernel encontrar corrupção de dados ao verificar a validade das estruturas de memória do kernel
<a name="CONFIG_BUG_ON_DATA_CORRUPTION"></a>

 Algumas partes do kernel Linux verificarão a consistência interna das estruturas de dados e podem `BUG()` quando detectarem dados corrompidos. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `COMPAT_BRK`
<a name="CONFIG_COMPAT_BRK"></a>

 Com essa opção desativada (que é como o Amazon Linux configura o kernel), a configuração de `randomize_va_space` `sysctl` é retornada para `2`, o que também permite a randomização de heap sobre o topo da base `mmap`, pilha e randomização da página VDSO. 

 Essa opção existe no kernel para fornecer compatibilidade com alguns binários `libc.so.5` antigos de 1996 e anteriores. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `COMPAT_VDSO`
<a name="CONFIG_COMPAT_VDSO"></a>

 Essa opção de configuração é relevante para `x86-64` o `aarch64`. Ao definir isso como `n`, o kernel do Amazon Linux não torna um objeto compartilhado dinâmico (VDSO) virtual de 32 bits visível em um endereço previsível. A mais recente `glibc` conhecida por ser quebrada por essa opção sendo definida por `n` é `glibc` 2.3.3, de 2004. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `CONFIG_DEBUG`endurecimento fechado
<a name="CONFIG_DEBUG_KERNEL"></a>

 As opções de configuração do kernel Linux gated by `CONFIG_DEBUG` são normalmente projetadas para uso em kernels criados para problemas de depuração, e coisas como desempenho não são uma prioridade. AL2023 ativa a opção de `CONFIG_DEBUG_LIST` endurecimento. 

### Desative o DMA para dispositivos PCI no stub EFI antes de configurar o IOMMU
<a name="CONFIG_EFI_DISABLE_PCI_DMA"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Fortalecimento para copiar memória entre o kernel e o espaço do usuário
<a name="CONFIG_HARDENED_USERCOPY"></a>

 Quando o kernel precisa copiar a memória para ou do espaço do usuário, essa opção ativa algumas verificações que podem proteger contra algumas classes de problemas de estouro de pilha. 

 A opção `CONFIG_HARDENED_USERCOPY_FALLBACK` existia nos kernels 4.16 a 5.15 para ajudar os desenvolvedores do kernel a descobrir quaisquer entradas ausentes da lista de permissões por meio de uma `WARN()`. Como AL2023 vem com um kernel 6.1, essa opção não é mais relevante para o. AL2023 

 A `CONFIG_HARDENED_USERCOPY_PAGESPAN` opção existia nos kernels principalmente como uma opção de depuração para desenvolvedores e não se aplica mais ao kernel 6.1 em. AL2023 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Suporte de hibernação
<a name="CONFIG_HIBERNATION"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Essa opção precisa ser ativada para oferecer suporte à capacidade de [hibernar sua instância sob demanda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) e para oferecer suporte à capacidade de [hibernar instâncias spot interrompidas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernate-spot-instances.html). 

### Geração de números aleatórios
<a name="kernel-rng"></a>

 O kernel do AL2023 é configurado para garantir que a entropia adequada esteja disponível para uso no EC2. 

### `CONFIG_INET_DIAG`
<a name="CONFIG_INET_DIAG"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Em AL2023, esse recurso é opcional e é construído como um módulo do kernel. 

### Zere toda a memória do alocador de páginas e placas do kernel na alocação e desalocação
<a name="kernel-init-on-alloc-free"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Essas opções estão desativadas AL2023 devido ao possível impacto no desempenho da ativação dessa funcionalidade por padrão. O comportamento `CONFIG_INIT_ON_ALLOC_DEFAULT_ON` pode ser ativado adicionando `init_on_alloc=1` à linha de comando do kernel e o comportamento `CONFIG_INIT_ON_FREE_DEFAULT_ON` pode ser ativado adicionando `init_on_free=1`. 

### Inicialize todas as variáveis da pilha como zero (`CONFIG_INIT_STACK_ALL_ZERO`)
<a name="CONFIG_INIT_STACK_ALL_ZERO"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Esta opção requer GCC 12 ou mais, embora seja AL2023 fornecida com o GCC 11. 

### Assinatura do módulo Kernel
<a name="kernel-config-modules"></a>

 AL2023 assina e valida as assinaturas dos módulos do kernel. A opção `CONFIG_MODULE_SIG_FORCE`, que exigiria que os módulos tivessem uma assinatura válida, não está habilitada para preservar a compatibilidade dos usuários que criam módulos de terceiros. Para usuários que desejam garantir que todos os módulos do kernel sejam assinados, [Módulo de segurança Linux (LSM) Lockdown](#CONFIG_SECURITY_LOCKDOWN_LSM) pode ser configurado para impor isso. 

### `kexec`
<a name="CONFIG_KEXEC"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Essa opção está ativada para que a funcionalidade `kdump` possa ser usada. 

### `IOMMU`Support
<a name="CONFIG_IOMMU_SUPPORT"></a>

 AL2023 ativa o suporte ao IOMMU. A opção `CONFIG_IOMMU_DEFAULT_DMA_STRICT` não está habilitada por padrão, mas essa funcionalidade pode ser configurada adicionando `iommu.passthrough=0 iommu.strict=1` à linha de comando do kernel. 

### `kfence`
<a name="CONFIG_KFENCE"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Suporte de `pty` antigo
<a name="CONFIG_LEGACY_PTYS"></a>

 AL2023 usa a PTY interface moderna (`devpts`). 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Módulo de segurança Linux (LSM) Lockdown
<a name="CONFIG_SECURITY_LOCKDOWN_LSM"></a>

 AL2023 constrói o `lockdown` LSM, que bloqueará automaticamente o kernel ao usar o Secure Boot. 

 A opção `CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY` não está ativada. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Quando não estiver usando o Secure Boot, é possível habilitar o LSM de bloqueio e configurá-lo conforme desejado. 

### Envenenamento de páginas
<a name="CONFIG_PAGE_POISONING"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Da mesma forma[Zere toda a memória do alocador de páginas e placas do kernel na alocação e desalocação](#kernel-init-on-alloc-free), isso está desativado no AL2023 kernel devido ao possível impacto no desempenho. 

### Protetor de pilha
<a name="CONFIG_STACKPROTECTOR"></a>

 O AL2023 kernel é construído com o recurso de proteção de pilha GCC ativado com a opção. `-fstack-protector-strong` 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### seccomp BPFAPI
<a name="CONFIG_SECCOMP"></a>

 O recurso de fortalecimento de seccomp é usado por softwares, como `systemd` e tempos de execução de contêineres, para fortalecer os aplicativos do espaço do usuário. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### tempo esgotado para `panic()`
<a name="CONFIG_PANIC_TIMEOUT"></a>

 O AL2023 kernel é configurado com esse valor definido como`0`, o que significa que o kernel não será reinicializado após entrar em pânico. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Isso é configurável por meio de `sysctl`, `/proc/sys/kernel/panic` e na linha de comando do kernel. 

### Modelos de segurança
<a name="CONFIG_SECURITY"></a>

 AL2023 ativa SELinux no modo Permissivo por padrão. Para obter mais informações, consulte [Configurando modos do SELinux para o AL2023](selinux-modes.md). 

 Os módulos [Módulo de segurança Linux (LSM) Lockdown](#CONFIG_SECURITY_LOCKDOWN_LSM) e `yama` também estão habilitados. 

### `/proc/kcore`
<a name="CONFIG_PROC_KCORE"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Randomização do deslocamento da pilha do kernel na entrada do syscall
<a name="CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Isso pode ser ativado configurando `randomize_kstack_offset=on` na linha de comando do kernel. 

### Verificações de contagem de referência (`CONFIG_REFCOUNT_FULL`)
<a name="CONFIG_REFCOUNT_FULL"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. No momento, essa opção não está habilitada devido ao possível impacto no desempenho. 

### Conhecimento do núcleos SMT pelo programador (`CONFIG_SCHED_CORE`)
<a name="CONFIG_SCHED_CORE"></a>

 O AL2023 kernel é construído com`CONFIG_SCHED_CORE`, o que permite o uso de aplicativos de espaço de usuário. `prctl(PR_SCHED_CORE)` Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Verifique se há corrupção na pilha em chamadas para `schedule()` (`CONFIG_SCHED_STACK_END_CHECK`)
<a name="CONFIG_SCHED_STACK_END_CHECK"></a>

 O AL2023 kernel é construído com `CONFIG_SCHED_STACK_END_CHECK` enabled. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Fortalecimento do alocador de memória
<a name="kernel-allocator-hardening"></a>

 O AL2023 kernel permite o fortalecimento do alocador de memória do kernel com as opções, e. `CONFIG_SHUFFLE_PAGE_ALLOCATOR` `CONFIG_SLAB_FREELIST_HARDENED` `CONFIG_SLAB_FREELIST_RANDOM` Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### suporte de depuração SLUB
<a name="CONFIG_SLUB_DEBUG"></a>

 O AL2023 kernel é ativado`CONFIG_SLUB_DEBUG`, pois essa opção ativa recursos opcionais de depuração para o alocador que podem ser ativados na linha de comando do kernel. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### CONFIG\_STATIC\_USERMODEHELPER
<a name="CONFIG_STATIC_USERMODEHELPER"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. Isso ocorre porque `CONFIG_STATIC_USERMODEHELPER` requer suporte especial da distribuição que atualmente não está presente no Amazon Linux. 

### Texto do kernel somente para leitura e rodata (`CONFIG_STRICT_KERNEL_RWX` e `CONFIG_STRICT_MODULE_RWX`)
<a name="CONFIG_STRICT_KERNEL_RWX"></a>

 O AL2023 kernel é configurado para marcar o texto e a memória do kernel e do módulo do kernel como somente leitura, e a rodata memória não textual marcada como não executável. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### TCP suporte syncookie (`CONFIG_SYN_COOKIES`)
<a name="CONFIG_SYN_COOKIES"></a>

 O AL2023 kernel é construído com suporte para cookies de sincronização TCP. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Pilha virtualmente mapeada com páginas de proteção (`CONFIG_VMAP_STACK`)
<a name="CONFIG_VMAP_STACK"></a>

 O AL2023 kernel é construído com`CONFIG_VMAP_STACK`, permitindo pilhas de kernel mapeadas virtualmente com páginas de proteção. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Crie com avisos do compilador como erros (`CONFIG_WERROR`)
<a name="CONFIG_WERROR"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Registre a zeragem na função exit (`CONFIG_ZERO_CALL_USED_REGS`)
<a name="CONFIG_ZERO_CALL_USED_REGS"></a>

 Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Endereço mínimo para alocação de espaço de usuário
<a name="CONFIG_DEFAULT_MMAP_MIN_ADDR"></a>

 Essa opção de fortalecimento pode ajudar a reduzir o impacto dos bugs do ponteiro NULL do kernel. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `clang`opções específicas de endurecimento
<a name="kernel-hardening-clang"></a>

 O AL2023 kernel é construído com GCC em vez declang, portanto, a opção de `CONFIG_CFI_CLANG` fortalecimento não pode ser ativada, o que também torna `CONFIG_CFI_PERMISSIVE` inaplicável. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

## Opções de fortalecimento de kernel específicas do x86-64
<a name="kernel-hardening-x86-64"></a>


| Opção do `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\_64 | AL2023/6.12/aarch64 | AL2023/6.12/x86\_64 | AL2023/6.18/aarch64 | AL2023/6.18/x86\_64 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_AMD_IOMMU`](#CONFIG_AMD_IOMMU)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_AMD_IOMMU_V2`](#CONFIG_AMD_IOMMU_V2)  | N/D |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_IA32_EMULATION`](#CONFIG_IA32_EMULATION)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_INTEL_IOMMU`](#CONFIG_INTEL_IOMMU)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_INTEL_IOMMU_DEFAULT_ON`](#CONFIG_INTEL_IOMMU_DEFAULT_ON)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_INTEL_IOMMU_SVM`](#CONFIG_INTEL_IOMMU_SVM)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_LEGACY_VSYSCALL_NONE`](#CONFIG_LEGACY_VSYSCALL_NONE)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_MODIFY_LDT_SYSCALL`](#CONFIG_MODIFY_LDT_SYSCALL)  | N/D |  n  | N/D |  n  | N/D |  n  | 
|  [`CONFIG_PAGE_TABLE_ISOLATION`](#CONFIG_PAGE_TABLE_ISOLATION)  | N/D |  y  | N/D | N/D | N/D | N/D | 
|  [`CONFIG_RANDOMIZE_MEMORY`](#CONFIG_RANDOMIZE_MEMORY)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_64`](#CONFIG_X86_64)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_MSR`](#CONFIG_X86_MSR)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_VSYSCALL_EMULATION`](#CONFIG_X86_VSYSCALL_EMULATION)  | N/D |  y  | N/D |  y  | N/D |  y  | 
|  [`CONFIG_X86_X32`](#CONFIG_X86_X32)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_X86_X32_ABI`](#CONFIG_X86_X32_ABI)  | N/D |  n  | N/D |  n  | N/D |  n  | 

### Suporte para x86-64
<a name="CONFIG_X86_64"></a>

 O suporte básico para x86-64 inclui o suporte a bits Physical Address Extension (PAE) e no-execute (NX). Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Suporte para AMD e Intel IOMMU
<a name="kernel-x86-64-iommu"></a>

 O AL2023 kernel é construído com suporte para AMD e Intel. IOMMUs Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

 A opção `CONFIG_INTEL_IOMMU_DEFAULT_ON` não está definida, mas pode ser ativada passando `intel_iommu=on` para a linha de comando do kernel. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

 A `CONFIG_INTEL_IOMMU_SVM` opção não está habilitada no momento em AL2023. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Support para espaço de usuário de 32 bits
<a name="kernel-hardening-32bit-support"></a>

**Importante**  
 O suporte para espaço de usuário x86 de 32 bits está obsoleto e o suporte para execução de binários de espaço de usuário de 32 bits pode ser removido em uma futura versão principal do Amazon Linux. 

**nota**  
 Embora AL2023 não inclua mais pacotes de 32 bits, o kernel ainda suportará a execução de espaço de usuário de 32 bits. Consulte [Pacotes x86 (i686) de 32 bits](compare-with-al2.md#i686) para obter mais informações. 

 Para oferecer suporte à execução de aplicativos de espaço de usuário de 32 bits, AL2023 não ativa a `CONFIG_X86_VSYSCALL_EMULATION` opção e ativa as opções `CONFIG_IA32_EMULATION``CONFIG_COMPAT`, e. `CONFIG_X86_VSYSCALL_EMULATION` Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

 A ABI x32 nativa de 32 bits para processadores de 64 bits não está habilitada (`CONFIG_X86_X32` e `CONFIG_X86_X32_ABI`). Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Suporte ao registro específico do modelo x86 (MSR)
<a name="CONFIG_X86_MSR"></a>

 A opção `CONFIG_X86_MSR` está ativada para oferecer suporte `turbostat`. Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### `modify_ldt` syscall
<a name="CONFIG_MODIFY_LDT_SYSCALL"></a>

 AL2023 não permite que programas de usuário modifiquem a Tabela Descritora Local (LDT) x86 com o syscall. `modify_ldt` Essa chamada é necessária para executar código segmentado ou de 16 bits e sua ausência pode interromper softwares `dosemu`, como a execução de alguns programas em WINE e algumas bibliotecas de threading muito antigas. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Remover o mapeamento do kernel no modo de usuário
<a name="CONFIG_PAGE_TABLE_ISOLATION"></a>

 AL2023 configura o kernel para que a maioria dos endereços do kernel não seja mapeada no espaço do usuário. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Randomize seções de memória do kernel
<a name="CONFIG_RANDOMIZE_MEMORY"></a>

 AL2023 configura o kernel para randomizar os endereços virtuais básicos das seções de memória do kernel. Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

## Opções de endurecimento de kernel específicas do aarch64
<a name="kernel-hardening-aarch64"></a>


| Opção do `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\_64 | AL2023/6.12/aarch64 | AL2023/6.12/x86\_64 | AL2023/6.18/aarch64 | AL2023/6.18/x86\_64 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ARM64_BTI`](#CONFIG_ARM64_BTI)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_ARM64_BTI_KERNEL`](#CONFIG_ARM64_BTI_KERNEL)  | N/D | N/D | N/D | N/D | N/D | N/D | 
|  [`CONFIG_ARM64_PTR_AUTH`](#CONFIG_ARM64_PTR_AUTH)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_ARM64_PTR_AUTH_KERNEL`](#CONFIG_ARM64_PTR_AUTH_KERNEL)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_ARM64_SW_TTBR0_PAN`](#CONFIG_ARM64_SW_TTBR0_PAN)  |  y  | N/D |  y  | N/D |  y  | N/D | 
|  [`CONFIG_UNMAP_KERNEL_AT_EL0`](#CONFIG_UNMAP_KERNEL_AT_EL0)  |  y  | N/D |  y  | N/D |  y  | N/D | 

### Identificação do alvo da filial
<a name="CONFIG_ARM64_BTI"></a>

 O AL2023 kernel habilita o suporte para Branch Target Identification (`CONFIG_ARM64_BTI`). Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

 [A `CONFIG_ARM64_BTI_KERNEL` opção não está habilitada porque é construída comGCC, e o suporte para compilar o kernel com essa opção está [atualmente desabilitado no kernel upstream devido a](https://github.com/torvalds/linux/commit/c0a454b9044fdc99486853aa424e5b3be2107078) um bug do gcc. AL2023 ](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671) Embora essa opção seja uma das [configurações recomendadas do Kernel Self Protection Project (KSPP), AL2023 não define essa opção de configuração conforme recomendado](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) pelo KSPP. 

### Autenticação de ponteiro (`CONFIG_ARM64_PTR_AUTH`)
<a name="CONFIG_ARM64_PTR_AUTH"></a>

 O AL2023 kernel é construído com suporte para a extensão Pointer Authentication (parte das extensões ARMv8 .3), que pode ser usada para ajudar a mitigar as técnicas de Programação Orientada ao Retorno (ROP). O suporte de hardware necessário para autenticação de ponteiro no [Graviton](https://aws.amazon.com/ec2/graviton) foi introduzido com o Graviton 3. 

 A opção `CONFIG_ARM64_PTR_AUTH` está habilitada e comporta autenticação de ponteiro no espaço do usuário. Como a `CONFIG_ARM64_PTR_AUTH_KERNEL` opção também está ativada, o AL2023 kernel pode usar a proteção do endereço de retorno para si mesmo. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Emule o acesso privilegiado, nunca usando a comutação `TTBR0_EL1`
<a name="CONFIG_ARM64_SW_TTBR0_PAN"></a>

 Essa opção impede que o kernel acesse diretamente a memória do espaço do usuário, com `TTBR0_EL1` sendo definido apenas temporariamente como um valor válido pelas rotinas de acesso do usuário. 

 Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Desmapear o kernel ao executar no espaço do usuário
<a name="CONFIG_UNMAP_KERNEL_AT_EL0"></a>

 O AL2023 kernel é configurado para desmapear o kernel ao ser executado em userspace (). `CONFIG_UNMAP_KERNEL_AT_EL0` Essa opção é uma das [Configurações recomendadas do Kernel Self Protection Project](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 