Fortalecimiento del kernel de AL2023 - Amazon Linux 2023

Fortalecimiento del kernel de AL2023

El kernel 6.1 de Linux de AL2023 está configurado y creado con varias opciones y características de fortalecimiento.

Opciones de fortalecimiento del kernel (independientes de la arquitectura).

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

Permita que los métodos ACPI se inserten o reemplacen en tiempo de ejecución (CONFIG_ACPI_CUSTOM_METHOD)

Amazon Linux deshabilita esta opción porque permite a los usuarios rootescribir en una memoria del kernel arbitraria.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Varios formatos binarios (binfmt_misc)

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. En AL2023, esta característica es opcional y está diseñada como un módulo del kernel.

BUG()Compatibilidad con

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

BUG() si el kernel detecta daños en los datos al comprobar la validez de las estructuras de memoria del kernel

Algunas partes del kernel de Linux comprueban la coherencia interna de las estructuras de datos y pueden emitir BUG() cuando detecten daños en los datos.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

COMPAT_BRK

Si esta opción está deshabilitada (que es la forma en que Amazon Linux configura el kernel), la configuración randomize_va_space sysctl tiene el valor predeterminado 2, lo que también permite la asignación al azar del montón además de la asignación al azar de la base mmap, la pila y las páginas del VDSO.

Esta opción existe en kernel para proporcionar compatibilidad con algunos binarios libc.so.5 antiguos de 1996 y anteriores.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

COMPAT_VDSO

Esta opción de configuración es relevante para x86-64 y no para aarch64. Al configurar en n, el kernel de Amazon Linux no hace visible un objeto compartido dinámico virtual (VDSO) de 32 bits en una dirección predecible. La opción glibc más reciente de la que se tiene constancia al establecer esta opción en n es la opción glibc 2.3.3, del 2004.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

CONFIG_DEBUG fortalecimiento restringido

Las opciones de configuración del kernel de Linux restringida por CONFIG_DEBUG están diseñadas normalmente para su uso en códigos kernel creados para solucionar problemas de depuración, y aspectos como el rendimiento no son prioritarios. AL2023 habilita la opción de endurecimiento de CONFIG_DEBUG_LIST.

Deshabilite el DMA para los dispositivos PCI en el código auxiliar EFI antes de configurar el IOMMU

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Fortalecimiento para copiar memoria entre el kernel y el espacio de usuario.

Cuando el kernel necesita copiar memoria hacia o desde el espacio de usuario, esta opción habilita varias comprobaciones que pueden evitar algunos tipos de problemas de desbordamiento de pila.

La opción CONFIG_HARDENED_USERCOPY_FALLBACK existía en los códigos kernel del 4.16 al 5.15 como ayuda para los desarrolladores del kernel para detectar cualquier entrada de la lista de permitidos que faltara a través de WARN(). Dado que AL2023 incluye kernel 6.1, esta opción ya no es relevante para AL2023.

La opción CONFIG_HARDENED_USERCOPY_PAGESPAN existía en los kernel principalmente como una opción de depuración para los desarrolladores y ya no se aplica al kernel 6.1 en AL2023.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Soporte para hibernación

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esta opción debe estar habilitada para permitir la hibernación de la instancia bajo demanda y para permitir la hibernación de las instancias de spot interrumpidas

Generación de números aleatorios

El kernel de AL2023 está configurado para garantizar que esté disponible la entropía adecuada para su uso en EC2.

CONFIG_INET_DIAG

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. En AL2023, esta característica es opcional y está diseñada como un módulo del kernel.

Poner a cero todas las páginas del kernel y la memoria del asignador de bloques durante la asignación y la anulación de asignaciones.

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Estas opciones están deshabilitadas en AL2023 debido al posible impacto en el rendimiento que tendría la habilitación de esta funcionalidad de forma predeterminada. El comportamiento de CONFIG_INIT_ON_ALLOC_DEFAULT_ON se puede habilitar agregándolo init_on_alloc=1 a la línea de comandos del kernel, y el comportamiento de CONFIG_INIT_ON_FREE_DEFAULT_ON se puede habilitar agregando init_on_free=1.

Inicializar todas las variables de la pila como cero (CONFIG_INIT_STACK_ALL_ZERO)

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esta opción requiere GCC 12 o más, mientras que AL2023 viene con GCC 11.

Firma del módulo del kernel

AL2023 firma y valida las firmas de los módulos del kernel. La opción CONFIG_MODULE_SIG_FORCE, que requeriría que los módulos tuvieran una firma válida, no está habilitada para preservar la compatibilidad para los usuarios que crean módulos de terceros. Para los usuarios que deseen asegurarse de que todos los módulos del kernel estén firmados, Módulo de seguridad Linux (LSM) de bloqueo pueden configurarlos para que así lo exijan.

kexec

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esta opción está habilitada para poder utilizar la funcionalidad kdump.

Compatibilidad con IOMMU

AL2023 permite la compatibilidad con IOMMU. La opción CONFIG_IOMMU_DEFAULT_DMA_STRICT no está habilitada de forma predeterminada, pero esta funcionalidad se puede configurar añadiéndola iommu.passthrough=0 iommu.strict=1 a la línea de comandos del kernel.

kfence

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Soporte para pty heredado

AL2023 utiliza la interfaz moderna de PTY (devpts).

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Módulo de seguridad Linux (LSM) de bloqueo

AL2023 crea el LSM lockdown, que bloquea automáticamente el kernel cuando se utiliza el arranque seguro.

La opción CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY ahora no está habilitada. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Cuando no se utiliza el arranque seguro, es posible activar el LSM de bloqueo y configurarlo como se desee.

Envenenamiento de página

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Del mismo modo que Poner a cero todas las páginas del kernel y la memoria del asignador de bloques durante la asignación y la anulación de asignaciones. , esta opción está deshabilitada en kernel de AL2023 debido al posible impacto en el rendimiento.

Protector de pila

El kernel de AL2023 está diseñado con la característica protección de pila de GCC habilitada con la opción -fstack-protector-strong.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

API seccomp BPF

La característica seccomp de fortalecimiento se utiliza en programas como systemd y en los tiempos de ejecución de contenedores para reforzar las aplicaciones del espacio de usuario.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

panic() timeout

El kernel de AL2023 está configurado con este valor establecido en 0, lo que significa que el kernel no se reiniciará cuando entre en modo de pánico. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esto se puede configurar mediante sysctl, /proc/sys/kernel/panic y en la línea de comandos del kernel.

Modelos de seguridad

AL2023 habilita SELinux en modo permisivo de forma predeterminada. Para obtener más información, consulte Configuración de los modos de SELinux para AL2023.

Los módulos Módulo de seguridad Linux (LSM) de bloqueo y yama también están habilitados.

/proc/kcore

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

La pila del kernel realiza una asignación al azar las entradas al syscall

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esto se puede habilitar configurando randomize_kstack_offset=on en la línea de comandos del kernel.

Comprobaciones de recuento de referencias (CONFIG_REFCOUNT_FULL)

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esta opción no está habilitada actualmente debido a su posible impacto en el rendimiento.

Conocimiento de los núcleos SMT por parte del programador (CONFIG_SCHED_CORE)

El kernel de AL2023 está diseñado con CONFIG_SCHED_CORE, lo que permite el uso de aplicaciones del espacio de usuario prctl(PR_SCHED_CORE). Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Comprobar si la pila está dañada en las llamadas a schedule() (CONFIG_SCHED_STACK_END_CHECK)

El kernel de AL2023 se creó con CONFIG_SCHED_STACK_END_CHECK habilitado. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Fortalecimiento del asignador de memoria

El kernel de AL2023 permite el fortalecimiento del asignador de memoria del kernel con las opciones CONFIG_SHUFFLE_PAGE_ALLOCATOR, CONFIG_SLAB_FREELIST_HARDENED y CONFIG_SLAB_FREELIST_RANDOM. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Soporte de depuración SLUB

El kernel de AL2023 habilita CONFIG_SLUB_DEBUG, ya que esta opción habilita características de depuración opcionales para el asignador, que se pueden habilitar en la línea de comandos del kernel. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

CONFIG_STATIC_USERMODEHELPER

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP. Esto se debe a que CONFIG_STATIC_USERMODEHELPER requiere un soporte especial por parte de la distribución, que actualmente no está presente en Amazon Linux.

Texto del código en kernel de solo lectura y rodata (CONFIG_STRICT_KERNEL_RWX y CONFIG_STRICT_MODULE_RWX)

El kernel de AL2023 está configurado para marcar el texto y el módulo del kernel y los datos de la memoria rodata como de solo lectura, y la memoria sin texto marcada como no ejecutable. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Soporte de TCP syncookie (CONFIG_SYN_COOKIES)

El kernel de AL2023 está diseñado con soporte para TCP syncookies. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Pila virtualmente mapeada con páginas de protección (CONFIG_VMAP_STACK)

El kernel de AL2023 está diseñado con páginas de protección CONFIG_VMAP_STACK, lo que permite crear pilas en kernel virtualmente mapeadas. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Compilar con las advertencias del compilador como errores (CONFIG_WERROR)

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Registrar la puesta a cero en la función exit (CONFIG_ZERO_CALL_USED_REGS)

Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Dirección mínima para la asignación del espacio de usuario

Esta opción de fortalecimiento puede ayudar a reducir el impacto de los errores del puntero NULL del kernel. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Opciones de fortalecimiento clang específicas

El kernel de AL2023 se construye con GCC en lugar de clang, por lo que la opción CONFIG_CFI_CLANG de fortalecimiento no se puede habilitar, lo que también hace que CONFIG_CFI_PERMISSIVE no sea aplicable. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Opciones de fortalecimiento del kernel específicas para x86-64

CONFIGOpción de AL2023/6.1/aarch64 AL2023/6.1/x86_64 AL2023/6.12/aarch64 AL2023/6.12/x86_64
CONFIG_AMD_IOMMU N/A y N/A y
CONFIG_AMD_IOMMU_V2 N/A y N/A N/A
CONFIG_IA32_EMULATION N/A y N/A y
CONFIG_INTEL_IOMMU N/A y N/A y
CONFIG_INTEL_IOMMU_DEFAULT_ON N/A n N/A n
CONFIG_INTEL_IOMMU_SVM N/A n N/A n
CONFIG_LEGACY_VSYSCALL_NONE N/A n N/A n
CONFIG_MODIFY_LDT_SYSCALL N/A n N/A n
CONFIG_PAGE_TABLE_ISOLATION N/A y N/A N/A
CONFIG_RANDOMIZE_MEMORY N/A y N/A y
CONFIG_X86_64 N/A y N/A y
CONFIG_X86_MSR N/A y N/A y
CONFIG_X86_VSYSCALL_EMULATION N/A y N/A y
CONFIG_X86_X32 N/A N/A N/A N/A
CONFIG_X86_X32_ABI N/A n N/A n

Compatibilidad con x86-64

La compatibilidad básica con x86-64 incluye la extensión de direcciones físicas (PAE) y la compatibilidad con bits sin ejecución (NX). Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Compatibilidad con AMD e Intel IOMMU

El kernel de AL2023 se construye con soporte para AMD e Intel IOMMUs. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

La opción CONFIG_INTEL_IOMMU_DEFAULT_ON no está configurada, pero se puede activar pasando intel_iommu=on a la línea de comandos del kernel. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

La opción CONFIG_INTEL_IOMMU_SVM no está habilitada actualmente en AL2023. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Compatibilidad con el espacio de usuario de 32 bits

importante

La compatibilidad con el espacio de usuario x86 de 32 bits está en desuso y es posible que se elimine la compatibilidad con la ejecución de binarios del espacio de usuario de 32 bits en una futura versión principal de Amazon Linux.

nota

Si bien AL2023 ya no incluye ningún paquete de 32 bits, el kernel seguirá admitiendo la ejecución de un espacio de usuario de 32 bits. Para obtener más información, consulte Paquetes x86 (i686) de 32 bits.

Para permitir la ejecución de aplicaciones de espacio de usuario de 32 bits, AL2023 no habilita la opción CONFIG_X86_VSYSCALL_EMULATION y habilita las opciones CONFIG_IA32_EMULATION, CONFIG_COMPAT y CONFIG_X86_VSYSCALL_EMULATION. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

La ABI nativa de 32 bits x32 para procesadores de 64 bits no está habilitada (CONFIG_X86_X32 y CONFIG_X86_X32_ABI). Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Compatibilidad con registro específico de modelo x86 (MSR)

La opción CONFIG_X86_MSR está habilitada para admitir turbostat. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

modify_ldt syscall

AL2023 no permite que los programas de usuario modifiquen la tabla de descriptores locales (LDT) x86 con modify_ldt syscall. Esta llamada es necesaria para ejecutar código segmentado o de 16 bits, y su ausencia podría interrumpir el software, por ejemplo dosemu, si se ejecutan algunos programas en WINE y en bibliotecas de subprocesos muy antiguas. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Eliminar el mapeo del kernel en modo de usuario

AL2023 configura el kernel para que la mayoría de las direcciones del kernel no se asignen al espacio de usuario. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Asignación al azar de las secciones de memoria del kernel

AL2023 configura el kernel para realizar una asignación al azar de las direcciones virtuales base de las secciones de memoria del kernel. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Opciones de refuerzo del kernel específicas de aarch64

CONFIGOpción de AL2023/6.1/aarch64 AL2023/6.1/x86_64 AL2023/6.12/aarch64 AL2023/6.12/x86_64
CONFIG_ARM64_BTI y N/A y N/A
CONFIG_ARM64_BTI_KERNEL N/A N/A N/A N/A
CONFIG_ARM64_PTR_AUTH y N/A y N/A
CONFIG_ARM64_PTR_AUTH_KERNEL y N/A y N/A
CONFIG_ARM64_SW_TTBR0_PAN y N/A y N/A
CONFIG_UNMAP_KERNEL_AT_EL0 y N/A y N/A

Identificación del objetivo de ramificaciones

El kernel de AL2023 admite la identificación de objetivos de ramificaciones (CONFIG_ARM64_BTI). Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Esta opción CONFIG_ARM64_BTI_KERNEL no está habilitada en AL2023, ya que está construida con GCC, y la compatibilidad para compilar el kernel con esta opción está actualmente deshabilitada en el upstream del kernel debido a un error de gcc. Si bien esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel (KSPP), AL2023 no establece esta opción de configuración según las recomendaciones de KSPP.

Pointer Authentication (CONFIG_ARM64_PTR_AUTH)

El kernel de AL2023 está diseñado con soporte para la extensión Pointer Authentication (que forma parte de las extensiones ARMv8.3), que se puede utilizar para ayudar a mitigar las técnicas de programación orientada al retorno (ROP). El soporte de hardware necesario para Pointer Authentication en Graviton se introdujo con Graviton 3.

La opción CONFIG_ARM64_PTR_AUTH está habilitada y admite Pointer Authentication en el espacio de usuario. Como la opción CONFIG_ARM64_PTR_AUTH_KERNEL también está habilitada, el kernel de AL2023 puede utilizar la protección del remitente por sí mismo.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Emular acceso privilegiado sin utilizar nunca la conmutación TTBR0_EL1

Esta opción impide que el kernel acceda directamente a la memoria del espacio de usuario, ya que las rutinas de acceso de los usuarios solo establecen temporalmente TTBR0_EL1 en un valor válido.

Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.

Anular la asignación del kernel cuando se ejecute en el espacio de usuario

El kernel de AL2023 está configurado para anular la asignación del kernel cuando se ejecuta en el espacio de usuario (CONFIG_UNMAP_KERNEL_AT_EL0). Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del kernel.