AL2023 Endurecimento do kernel - Amazon Linux 2023

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

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

Opções de fortalecimento do kernel (independente da arquitetura)

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

Permitir que ACPI métodos sejam inseridos/substituídos em tempo de execução (CONFIG_ _ _ACPI) CUSTOM METHOD

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.

Formatos binários diversos (binfmt_misc)

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. No AL2 023, esse recurso é opcional e é construído como um módulo do kernel.

BUG() Suporte a

Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

BUG() se o kernel encontrar corrupção de dados ao verificar a validade das estruturas de memória do kernel

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.

COMPAT_BRK

Com essa opção desativada (que é como o Amazon Linux configura o kernel), a randomize_va_space sysctl configuração padrão é, o que também permite a 2 randomização de pilha sobre a randomização de mmap base, pilha e 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.

COMPAT_VDSO

Essa opção de configuração é relevante para x86-64 o aarch64. Ao definir isso comon, o kernel do Amazon Linux não torna um objeto compartilhado dinâmico virtual de 32 bits (VDSO) 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.

CONFIG_DEBUG fortalecimento fechado

As opções de configuração do kernel Linux controladas por 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 DMA para PCI dispositivos no EFI stub antes de configurar o IOMMU

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Fortalecimento para copiar memória entre o kernel e o espaço do usuário

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 o AL2 023 vem com um kernel 6.1, essa opção não é mais relevante para o 023. AL2

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 023. AL2

Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

Suporte de hibernação

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Essa opção precisa ser ativada para oferecer suporte à capacidade de hibernar sua instância sob demanda e para oferecer suporte à capacidade de hibernar instâncias spot interrompidas.

Geração de números aleatórios

O kernel AL2 023 é configurado para garantir que a entropia adequada esteja disponível para uso interno. EC2

CONFIG_INET_DIAG

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. No AL2 023, 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

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Essas opções são desativadas em AL2 023 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)

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Esta opção requer GCC 12 ou superior, enquanto AL2 023 vem com GCC 11.

Assinatura do módulo Kernel

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 Lockdown () LSM pode ser configurado para impor isso.

kexec

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Essa opção está ativada para que a funcionalidade kdump possa ser usada.

Suporte ao IOMMU

AL2023 ativa o IOMMU suporte. 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

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Suporte de pty antigo

AL2023 usa o moderno PTY interface (devpts).

Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

Módulo de segurança Linux Lockdown () LSM

AL2023 compila o lockdownLSM, 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), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Quando não estiver usando o Secure Boot, é possível ativar o bloqueio LSM e configurar conforme desejado.

Envenenamento de páginas

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Da mesma forma Zere toda a memória do alocador de páginas e placas do kernel na alocação e desalocação , isso está desativado no kernel AL2 023 devido ao possível impacto no desempenho.

Protetor de pilha

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

Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

seccomp BPF API

A ferramenta seccomp o recurso de fortalecimento é usado por softwares, como systemd 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.

tempo esgotado para panic()

O kernel AL2 023 é configurado com esse valor definido como0, 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), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. Isso é configurável por meio de sysctl, /proc/sys/kernel/panic e na linha de comando do kernel.

Modelos de segurança

AL2O 023 é ativado SELinux no modo Permissivo por padrão. Para obter mais informações, consulte Configurando modos SELinux para AL2023.

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

/proc/kcore

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Randomização do deslocamento da pilha do kernel na entrada do syscall

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. 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)

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. No momento, essa opção não está habilitada devido ao possível impacto no desempenho.

Conhecimento do programador sobre SMT núcleos (CONFIG_SCHED_CORE)

O kernel AL2 023 é construído comCONFIG_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.

Verifique se há corrupção na pilha em chamadas para schedule() (CONFIG_SCHED_STACK_END_CHECK)

O kernel AL2 023 é construído com CONFIG_SCHED_STACK_END_CHECK enabled. Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

Fortalecimento do alocador de memória

O kernel AL2 023 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.

SLUB suporte de depuração

O kernel AL2 023 é 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.

CONFIG_STATIC_USERMODEHELPER

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado. 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_RWXeCONFIG_STRICT_MODULE_RWX)

O kernel AL2 023 é configurado para marcar o texto do kernel e do módulo do kernel e rodata memória somente para leitura e memória não textual marcada como não executável. Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

TCP suporte syncookie () CONFIG_SYN_COOKIES

O kernel AL2 023 é construído com suporte para TCP syncookies. Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

Pilha virtualmente mapeada com páginas de proteção (CONFIG_VMAP_STACK)

O kernel AL2 023 é construído comCONFIG_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.

Crie com avisos do compilador como erros (CONFIG_WERROR)

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Registre a zeragem na função exit (CONFIG_ZERO_CALL_USED_REGS)

Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Endereço mínimo para alocação de espaço de usuário

Essa opção de fortalecimento pode ajudar a reduzir o impacto dos bugs do ponteiro do kernelNULL. Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

clang opções específicas de fortalecimento

O kernel AL2 023 é construído com GCC em vez de clang, portanto, a opção de CONFIG_CFI_CLANG endurecimento não pode ser ativada, o que também CONFIG_CFI_PERMISSIVE não é aplicável. Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Opções de fortalecimento de kernel específicas do x86-64

Suporte para x86-64

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.

AMDe IOMMU suporte da Intel

O kernel AL2 023 é construído com suporte para o e Intel AMD IOMMUs. Essa opção é uma das configurações recomendadas do Kernel Self Protection Project.

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), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Atualmente, a CONFIG_INTEL_IOMMU_SVM opção não está habilitada em AL2 023. Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Support para espaço de usuário de 32 bits

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 o AL2 023 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 Para mais informações.

Para oferecer suporte à execução de aplicativos de espaço de usuário de 32 bits, o AL2 023 não ativa a CONFIG_X86_VSYSCALL_EMULATION opção e ativa as opções CONFIG_IA32_EMULATIONCONFIG_COMPAT, e. CONFIG_X86_VSYSCALL_EMULATION Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

A ferramenta x32 processadores nativos de 32 bits ABI para 64 bits não estão habilitados (CONFIG_X86_X32eCONFIG_X86_X32_ABI). Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

Registro específico do modelo x86 (MSR) suporte

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), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

modify_ldt syscall

AL2O 023 não permite que programas de usuário modifiquem a tabela de descritores locais x86 (LDT) com a syscall. modify_ldt Essa chamada é necessária para executar código segmentado ou de 16 bits, e sua ausência pode interromper o softwaredosemu, como a execução de alguns programas em WINEe algumas bibliotecas de threading muito antigas. Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

Remover o mapeamento do kernel no modo de usuário

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.

Randomize seções de memória do kernel

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.

Opções de endurecimento de kernel específicas do aarch64

Opção do CONFIG AL2023/6.1/aarch64 AL2023/6,1/x86_64
CONFIG_ARM64_BTI y N/D
CONFIG_ARM64_BTI_KERNEL N/D N/D
CONFIG_ARM64_PTR_AUTH y N/D
CONFIG_ARM64_PTR_AUTH_KERNEL y N/D
CONFIG_ARM64_SW_TTBR0_PAN y N/D
CONFIG_UNMAP_KERNEL_AT_EL0 y N/D

Identificação do alvo da filial

O kernel AL2 023 permite suporte para Branch Target Identification ()CONFIG_ARM64_BTI. Essa opção é uma das Configurações recomendadas do Kernel Self Protection Project.

A CONFIG_ARM64_BTI_KERNEL opção não está habilitada no AL2 023, pois é construída com GCC, e o suporte para construir o kernel com essa opção está atualmente desabilitado no kernel upstream devido a um bug do gcc. Embora essa opção seja uma das configurações recomendadas do Kernel Self Protection Project (KSPP), o AL2 023 não define essa opção de configuração conforme o KSPP recomendado.

Autenticação de ponteiro (CONFIG_ARM64_PTR_AUTH)

O kernel AL2 023 é 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 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 kernel AL2 023 é capaz de 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.

Emule o acesso privilegiado, nunca usando a comutação TTBR0_EL1

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.

Desmapear o kernel ao executar no espaço do usuário

O kernel AL2 023 está 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.