Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
El núcleo 6.1 de Linux de la versión AL2 023 está configurado y construido con varias opciones y funciones de refuerzo.
Opciones de fortalecimiento del código kernel (independientes de la arquitectura).
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 root
escribir en una memoria de kernel arbitraria.
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Varios formatos binarios (binfmt_misc
)
Si bien esta opción es una de las opciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), el 023 no establece esta opción de configuración con los valores recomendados por KSPP
Compatibilidad con BUG()
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
BUG()
si el código kernel detecta daños en los datos al comprobar la validez de las estructuras de memoria del código kernel
Algunas partes del código 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 código kernel
COMPAT_BRK
Si esta opción está deshabilitada (que es la forma en que Amazon Linux configura el código 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 código kernel
COMPAT_VDSO
Esta opción de configuración es relevante para x86-64
y no para aarch64
. Al configurar en n
, el código 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 código kernel
CONFIG_DEBUG
fortalecimiento restringido
Las opciones de configuración del núcleo de Linux controladas por ellas CONFIG_DEBUG
suelen estar diseñadas para usarse en núcleos creados para solucionar problemas de depuración, y aspectos como el rendimiento no son prioritarios. AL2023 habilita la opción de endurecimientoCONFIG_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 opciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), AL2 023 no establece esta opción de configuración con los valores recomendados
Fortalecimiento para copiar memoria entre el código kernel y el espacio de usuario.
Cuando el código 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 de kernel para detectar cualquier entrada de la lista de permitidos que faltara a través de WARN()
. Como el AL2 023 incluye un núcleo 6.1, esta opción ya no es relevante para el 023. AL2
La CONFIG_HARDENED_USERCOPY_PAGESPAN
opción existía en los núcleos principalmente como una opción de depuración para los desarrolladores y, en la versión 023, ya no se aplica al núcleo 6.1. AL2
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Soporte para hibernación
Si bien esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Generación de números aleatorios
El núcleo AL2 023 está configurado para garantizar la disponibilidad de la entropía adecuada para su uso interno. EC2
CONFIG_INET_DIAG
Si bien esta opción es una de las configuraciones recomendadas por el KSPP (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Poner a cero todas las páginas del código 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 núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendadosCONFIG_INIT_ON_ALLOC_DEFAULT_ON
se puede habilitar agregándolo init_on_alloc=1
a la línea de comandos del código 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 núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Firma del módulo del código kernel
AL2023 firma y valida las firmas de los módulos del núcleo. 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 de kernel estén firmados, Módulo de seguridad Linux (LSM) de bloqueo pueden configurarlos para que así lo exijan.
kexec
Aunque esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendadoskdump
.
Compatibilidad con IOMMU
AL2La 023 habilita 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 código kernel.
kfence
Aunque esta opción es una de las opciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Soporte para pty
heredado
AL2El 023 usa la versión moderna PTY interfaz (devpts
).
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Módulo de seguridad Linux (LSM) de bloqueo
AL2023 crea el lockdown
LSM, que bloquea automáticamente el núcleo cuando se utiliza Secure Boot.
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 KSPP (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Envenenamiento de página
Aunque esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), AL2 023 no establece esta opción de configuración
Protector de pila
El núcleo AL2 023 está construido con la función de protección de pilas de GCC activado con la opción. -fstack-protector-strong
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
seccomp BPF API
La seccomp El software, como systemd
los tiempos de ejecución de contenedores, utiliza la función de endurecimiento para reforzar las aplicaciones del espacio de usuario.
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
panic()
timeout
El núcleo AL2 023 está configurado con este valor establecido en0
, lo que significa que el núcleo no se reiniciará cuando entre en pánico. Si bien esta opción es una de las configuraciones recomendadas por el KSPP (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendadossysctl
, /proc/sys/kernel/panic
y en la línea de comandos del código kernel.
Modelos de seguridad
AL2023 se activa SELinux en modo permisivo de forma predeterminada. Para obtener más información, consulte SELinux Modos de configuración para AL2 023.
Los módulos Módulo de seguridad Linux (LSM) de bloqueo y yama
también están habilitados.
/proc/kcore
Aunque esta opción es una de las opciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
La pila de kernel realiza una asignación al azar las entradas al syscall
Aunque esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), AL2 023 no establece esta opción de configuraciónrandomize_kstack_offset=on
en la línea de comandos del código kernel.
Comprobaciones de recuento de referencias (CONFIG_REFCOUNT_FULL
)
Aunque esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), AL2 023 no establece esta opción de configuración
El programador sabe lo siguiente: SMT núcleos () CONFIG_SCHED_CORE
El núcleo AL2 023 está construido conCONFIG_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 código kernel
Comprobar si la pila está dañada en las llamadas a schedule()
(CONFIG_SCHED_STACK_END_CHECK
)
El núcleo AL2 023 se creó con Enabled. CONFIG_SCHED_STACK_END_CHECK
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Fortalecimiento del asignador de memoria
El núcleo AL2 023 permite reforzar el asignador de memoria del núcleo con las CONFIG_SHUFFLE_PAGE_ALLOCATOR
opciones, y. CONFIG_SLAB_FREELIST_HARDENED
CONFIG_SLAB_FREELIST_RANDOM
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
SLUB soporte de depuración
El núcleo AL2 023 se habilita, CONFIG_SLUB_DEBUG
ya que esta opción habilita funciones de depuración opcionales para el asignador, que se pueden habilitar en la línea de comandos del núcleo. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
CONFIG_STATIC_USERMODEHELPER
Si bien esta opción es una de las configuraciones recomendadas por el KSPP (KSPP), el AL2 023 no establece esta opción de configuración según lo recomendadoCONFIG_STATIC_USERMODEHELPER
requiere un soporte especial por parte de la distribución, que actualmente no está presente en Amazon Linux.
Texto del núcleo de solo lectura y rodata (y) CONFIG_STRICT_KERNEL_RWX
CONFIG_STRICT_MODULE_RWX
El núcleo AL2 023 está configurado para marcar el texto del núcleo y del módulo del núcleo y rodata la memoria es de solo lectura y la memoria que no es de texto está marcada como no ejecutable. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
TCP syncookie support () CONFIG_SYN_COOKIES
El núcleo AL2 023 está construido con soporte para cookies de sincronización TCP. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Pila virtualmente mapeada con páginas de protección (CONFIG_VMAP_STACK
)
El núcleo AL2 023 está diseñado conCONFIG_VMAP_STACK
, lo que permite crear pilas de núcleos mapeadas virtualmente con páginas de protección. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Compilar con las advertencias del compilador como errores (CONFIG_WERROR
)
Si bien esta opción es una de las configuraciones recomendadas por el KSPP (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Registrar la puesta a cero en la función exit (CONFIG_ZERO_CALL_USED_REGS
)
Aunque esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), AL2 023 no establece esta opción de configuración
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 de kernel. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Opciones de fortalecimiento clang
específicas
El AL2 núcleo 023 está construido con GCC en lugar de clang, por lo que la opción de CONFIG_CFI_CLANG
endurecimiento 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 núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
Opciones de fortalecimiento del código kernel específicas para x86-64
Opción de CONFIG |
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 código kernel
Compatibilidad con AMD e Intel IOMMU
El kernel AL2 023 se compila con soporte para AMD e Intel IOMMUs. Esta opción es una de las configuraciones recomendadas por el Kernel Self Protection Project
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 código kernel. Aunque esta opción es una de las configuraciones recomendadas por el Proyecto de autoprotección del núcleo (KSPP), el AL2 023 no establece esta opción de configuración con los valores recomendados
La CONFIG_INTEL_IOMMU_SVM
opción no está habilitada actualmente en la versión 023. AL2 Si bien esta opción es una de las configuraciones recomendadas por el Kernel Self Protection Project (KSPP), AL2 023 no establece esta opción de configuración con los valores recomendados
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 AL2 023 ya no incluye ningún paquete de 32 bits, el núcleo seguirá admitiendo el funcionamiento 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, AL2 023 no habilita la CONFIG_X86_VSYSCALL_EMULATION
opción y habilita las opciones, y. CONFIG_IA32_EMULATION
CONFIG_COMPAT
CONFIG_X86_VSYSCALL_EMULATION
Si bien esta opción es una de las configuraciones recomendadas por el Kernel Self Protection Project (KSPP), AL2 023 no establece esta opción de configuración con los valores recomendados
La x32 La ABI nativa de 32 bits para procesadores de 64 bits no está habilitada (y). CONFIG_X86_X32
CONFIG_X86_X32_ABI
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Registro específico del modelo x86 (MSR) soporte
La opción CONFIG_X86_MSR
está habilitada para admitir turbostat
. Si bien esta opción es una de las configuraciones recomendadas por el Kernel Self Protection Project (KSPP), AL2 023 no establece esta opción de configuración con los valores recomendados
modify_ldt
syscall
AL2023 no permite que los programas de usuario modifiquen la tabla de descriptores locales (LDT) x86 con la llamada al sistema. modify_ldt
Esta llamada es necesaria para ejecutar código segmentado o de 16 bits, y su ausencia puede interrumpir el software, por ejemplo, si se ejecutan algunos programas en dosemu
WINE, y algunas bibliotecas de subprocesos muy antiguas. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Eliminar el mapeo de kernel en modo de usuario
AL2023 configura el núcleo para que la mayoría de las direcciones del núcleo no se asignen al espacio de usuario. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Asignación al azar de las secciones de memoria de kernel
AL2023 configura el núcleo para distribuir aleatoriamente las direcciones virtuales base de las secciones de memoria del núcleo. Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Opciones de refuerzo de kernel específicas de aarch64
Opción de CONFIG |
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 núcleo AL2 023 permite la compatibilidad con Branch Target Identification (). CONFIG_ARM64_BTI
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
La CONFIG_ARM64_BTI_KERNEL
opción no está habilitada en AL2 023 porque está construida con GCC, y la compatibilidad para compilar el núcleo con esta opción está deshabilitada actualmente en el núcleo original
Pointer Authentication (CONFIG_ARM64_PTR_AUTH
)
El núcleo AL2 023 está diseñado con soporte para la extensión Pointer Authentication (que forma parte de las extensiones ARMv8 .3), que se puede utilizar para mitigar las técnicas de programación orientada al retorno (ROP). El soporte de hardware necesario para Pointer Authentication en Graviton
La opción CONFIG_ARM64_PTR_AUTH
está habilitada y admite Pointer Authentication en el espacio de usuario. Como la CONFIG_ARM64_PTR_AUTH_KERNEL
opción también está habilitada, el núcleo AL2 023 puede utilizar la protección de direcciones de devolución por sí mismo.
Esta opción es una de las configuraciones recomendadas por el proyecto de autoprotección del código kernel
Emular acceso privilegiado sin utilizar nunca la conmutación TTBR0_EL1
Esta opción impide que el código kernel acceda directamente a la memoria del espacio de usuario, ya que las rutinas de acceso de los usuarios sólo 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 código kernel
Anular la asignación del código kernel cuando se ejecute en el espacio de usuario
El núcleo AL2 023 está configurado para desmapear el núcleo 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 código kernel