

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.

# Seguridad y conformidad en Amazon Linux 2023
<a name="security"></a>

**importante**  
 Si desea denunciar una vulnerabilidad o tiene algún problema de seguridad relacionado con los servicios en la AWS nube o los proyectos de código abierto, póngase en contacto con el departamento de AWS seguridad a través de la [página de informes de vulnerabilidades](https://aws.amazon.com/security/vulnerability-reporting/) 

La seguridad en la nube AWS es la máxima prioridad. Como AWS cliente, usted se beneficia de una arquitectura de centro de datos y red diseñada para cumplir con los requisitos de las organizaciones más sensibles a la seguridad.

La seguridad es una responsabilidad compartida entre usted AWS y usted. El [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/) la describe como seguridad *de* la nube y seguridad *en* la nube:
+ **Seguridad de la nube**: AWS es responsable de proteger la infraestructura que ejecuta AWS los servicios en la AWS nube. AWS también le proporciona servicios que puede utilizar de forma segura. Los auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad como parte de los [AWS programas](https://aws.amazon.com/compliance/programs/) de de . Para obtener más información sobre los programas de cumplimiento aplicables AL2023, consulte [AWS Servicios incluidos en el ámbito de aplicación por programa de conformidad y AWS servicios incluidos](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Seguridad en la nube**: su responsabilidad viene determinada por el servicio de AWS que utilice. También es responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa y la legislación y los reglamentos vigentes. 

**Topics**
+ [Avisos de seguridad de Amazon Linux para AL2023](alas.md)
+ [Lista de avisos aplicables](listing-applicable-advisories.md)
+ [Aplicación de actualizaciones de seguridad in situ](security-inplace-update.md)
+ [Configuración de los modos de SELinux para AL2023](selinux-modes.md)
+ [Habilitar el modo FIPS en AL2023](fips-mode.md)
+ [Habilitación del modo FIPS en un contenedor de AL2023](fips-mode-container.md)
+ [Intercambio de los proveedores de FIPS de OpenSSL en AL2023](fips-openssl-swap-provider.md)
+ [AL2023 Endurecimiento del núcleo](kernel-hardening.md)
+ [Inicio de sesión de metadatos del repositorio AL2023](repo-metadata-signing.md)
+ [UEFI Secure Boot está activado AL2023](uefi-secure-boot.md)

# Avisos de seguridad de Amazon Linux para AL2023
<a name="alas"></a>

 Aunque nos esforzamos por garantizar la seguridad de Amazon Linux, en ocasiones aparecerán problemas de seguridad que deberán solucionarse. Se emite un *aviso* cuando hay una solución disponible. El lugar principal donde publicamos los avisos es el Centro de seguridad de Amazon Linux (ALAS). Para obtener más información, consulte [ Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2023.html). 

**importante**  
 Si desea informar sobre una vulnerabilidad o tiene algún problema de seguridad relacionado con los servicios en la AWS nube o los proyectos de código abierto, póngase en contacto con el departamento de AWS seguridad a través de la página de informes de [vulnerabilidades](https://aws.amazon.com/security/vulnerability-reporting/) 

 El equipo de Amazon Linux publica información sobre AL2023 los problemas y las actualizaciones relevantes que los afectan en varios lugares. Es habitual que las herramientas de seguridad obtengan información de estos orígenes principales y le presenten los resultados. Por lo tanto, es posible que usted no interactúe directamente con los orígenes principales que publica Amazon Linux, sino con la interfaz proporcionada por su herramienta preferida, como [Amazon Inspector](https://docs.aws.amazon.com/inspector/latest/user/what-is-inspector.html). 

## Anuncios en el Centro de seguridad de Amazon Linux
<a name="alas-announcements"></a>

 Los *anuncios* de Amazon Linux se refieren a elementos que no se pueden incluir en un aviso. Esta sección contiene anuncios sobre el propio ALAS, junto con información que no se puede incluir en un aviso. Para obtener más información, consulte [Anuncios del Centro de seguridad de Amazon Linux (ALAS)](https://alas.aws.amazon.com/announcements.html). 

 Por ejemplo, el [anuncio del hotpatch de Amazon Linux para Apache Log4j - 2021-001](https://alas.aws.amazon.com/announcements/2021-001.html) se ajustaba más a un anuncio que a un aviso. En este anuncio, Amazon Linux añadió un paquete para ayudar a los clientes a mitigar un problema de seguridad en un software que no formaba parte de Amazon Linux. 

 El [Explorador de CVE del Centro de seguridad de Amazon Linux](https://explore.alas.aws.amazon.com/) también se anunció en los anuncios del ALAS. Para obtener más información, consulte el [nuevo sitio web de CVEs](https://alas.aws.amazon.com/announcements/2023-001.html). 

## Preguntas frecuentes sobre el Centro de seguridad de Amazon Linux
<a name="alas-faqs"></a>

 Para obtener respuestas a algunas preguntas frecuentes sobre ALAS y sobre cómo evalúa Amazon Linux CVEs, consulte las [Preguntas frecuentes sobre Amazon Linux Security Center (ALAS) (FAQs)](https://alas.aws.amazon.com/faqs.html). 

## Avisos de ALAS
<a name="alas-advisories"></a>

 Un aviso de Amazon Linux contiene información importante relevante para los usuarios de Amazon Linux, normalmente información sobre actualizaciones de seguridad. El [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2023.html) es el lugar donde se pueden ver los avisos en la web. La información de los avisos también forma parte de los metadatos del repositorio de paquetes RPM. 

## Avisos y repositorios de RPM
<a name="advisory-and-repos"></a>

 Un repositorio de paquetes de Amazon Linux 2023 puede contener metadatos que describan cero o más actualizaciones. El comando `dnf updateinfo` recibe su nombre del nombre del archivo de metadatos del repositorio que contiene esta información, `updateinfo.xml`. Aunque el comando se llama `updateinfo` y el archivo de metadatos hace referencia a un `update`, todos ellos se refieren a actualizaciones de paquetes que forman parte de un aviso. 

 Los avisos de Amazon Linux se publican en el sitio web del [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2023.html), junto con la información que se encuentra en los metadatos del repositorio de RPM a los que hace referencia el administrador de paquetes `dnf`. Con el tiempo, los metadatos del sitio web y del repositorio son consistentes, y es posible que haya inconsistencias en la información del sitio web y en los metadatos del repositorio. Esto suele ocurrir cuando se AL2023 está publicando una nueva versión de, si se ha producido una actualización de un aviso después de la AL2023 publicación más reciente. 

 Aunque lo habitual es que se publique un nuevo aviso junto con la actualización del paquete que soluciona el problema, no siempre es así. Se puede crear un aviso para un nuevo problema que se aborda en paquetes ya publicados. Un aviso existente también puede actualizarse con otros nuevos CVEs que se aborden en la actualización existente. 

 La [Actualizaciones deterministas mediante repositorios versionados en AL2023](deterministic-upgrades.md) función de Amazon Linux 2023 significa que el repositorio RPM de una AL2023 versión concreta contiene una instantánea de los metadatos del repositorio RPM de esa versión. Esto *incluye* los metadatos que describen las actualizaciones de seguridad. El repositorio RPM de una AL2023 versión determinada *no se actualiza* después de la publicación. Los avisos de seguridad nuevos o actualizados *no estarán visibles al consultar una versión anterior de los repositorios AL2023 RPM.* Consulta la [Lista de avisos aplicables](listing-applicable-advisories.md) sección sobre cómo usar el administrador de `dnf` paquetes para ver la versión del `latest` repositorio o una versión específica AL2023 . 

## Asesoramiento IDs
<a name="advisory-ids"></a>

 Cada aviso tiene su propio `id`. Actualmente, es una peculiaridad de Amazon Linux, donde el sitio web del [Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) incluirá un aviso como [ALAS-2024-581](https://alas.aws.amazon.com/AL2023/ALAS-2024-581.html), mientras que el administrador de `dnf` paquetes [incluirá ese aviso con el identificador -2024-581. ALAS2023](listing-applicable-advisories.md) Cuando ocurre [Aplicación de actualizaciones de seguridad in situ](security-inplace-update.md), es necesario usar el ID del administrador de paquetes si se refiere a un aviso específico. 

 En Amazon Linux, cada versión principal del sistema operativo tiene su propio espacio de nombres, Advisory. IDs No se deben hacer suposiciones en cuanto al formato del aviso de Amazon Linux IDs. Históricamente, Amazon Linux Advisory IDs ha seguido el patrón de`NAMESPACE-YEAR-NUMBER`. El rango completo de valores posibles para `NAMESPACE` no está definido, pero incluye `ALAS`, `ALASCORRETTO8`, `ALAS2023`, `ALAS2`, `ALASPYTHON3.8` y `ALASUNBOUND-1.17`. `YEAR` ha sido el año en que se creó el aviso y `NUMBER` es un entero único dentro del espacio de nombres. 

 Si bien las IDs recomendaciones *suelen* ser secuenciales y se muestran en el orden en que se publican las actualizaciones, hay muchas razones por las que no puede ser así, por lo que no se debe dar por sentado. 

 Trate el ID de aviso como una cadena opaca que es única para cada versión principal de Amazon Linux. 

 En Amazon Linux 2, cada Extra estaba en un repositorio de RPM independiente y los metadatos de los avisos se encuentran únicamente en el repositorio para el que son relevantes. Un aviso de un repositorio *no se aplica* a otro repositorio. En el sitio web del [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2.html), actualmente hay una lista de avisos para cada versión principal de Amazon Linux y no está separada en listas por repositorio. 

 Como AL2023 no utiliza el mecanismo Extras para empaquetar versiones alternativas de paquetes, actualmente solo hay dos repositorios RPM, cada uno de los cuales tiene Advisories: el `core` repositorio y el repositorio. `livepatch` El repositorio `livepatch` es para [Aplicación de parches activos del kernel en AL2023](live-patching.md). 

## Fecha de publicación del aviso y fecha de actualización del aviso
<a name="advisory-dates"></a>

 La fecha de publicación de los avisos de Amazon Linux indica cuándo se publicó por primera vez la actualización de seguridad en el repositorio de RPM. Los avisos se publican en el sitio web del [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2023.html) inmediatamente después de que las correcciones estén disponibles para su instalación a través del repositorio de RPM. 

 La fecha de actualización del aviso indica cuándo se ha añadido nueva información a un aviso después de su publicación previa. 

 No se debe hacer ninguna suposición entre el número de AL2023 versión (p. ej., 2023.6.20241031) y la fecha de publicación del aviso de publicación de los avisos publicados junto con esa versión. 

## Tipos de avisos
<a name="advisory-types"></a>

 Los metadatos del repositorio de RPM admiten avisos de diferentes tipos. Aunque Amazon Linux casi siempre ha publicado únicamente avisos que son actualizaciones de seguridad, no se debe dar esto por sentado. Es posible que se publiquen avisos sobre eventos tales como correcciones de errores, mejoras y nuevos paquetes, y que el aviso se marque como contenedor de ese tipo de actualización. 

## Gravedad de los avisos
<a name="advisory-severities"></a>

 Cada aviso tiene su propia gravedad, ya que cada problema se evalúa por separado. Se CVEs pueden abordar varias en una sola advertencia y cada CVE puede tener una evaluación diferente, pero la propia advertencia tiene un nivel de gravedad único. Puede haber varios avisos que hagan referencia a una única actualización de paquete, por lo que puede haber varias gravedades para una actualización de paquete concreta (una por cada aviso). 

 Por orden decreciente de gravedad, Amazon Linux ha utilizado los niveles “Crítica”, “Importante”, “Moderada” y “Baja” para indicar la gravedad de un aviso. Es posible que los avisos de Amazon Linux tampoco *tengan un nivel de gravedad*, aunque esto es muy poco frecuente. 

 Amazon Linux es una de las distribuciones de Linux basadas en RPM que utiliza el término “Moderada”, mientras que otras distribuciones de Linux basadas en RPM utilizan el término equivalente “Media”. El administrador de paquetes de Amazon Linux trata ambos términos como equivalentes y los repositorios de paquetes de terceros pueden usar el término “Media”. 

 Los avisos de Amazon Linux pueden *cambiar de gravedad* con el tiempo a medida que se obtenga más información sobre los problemas relevantes abordados en el aviso. 

 *Por lo general, la gravedad de un aviso registrará* la puntuación CVSS más alta evaluada por Amazon Linux para la puntuación a la que CVEs hace referencia el aviso. Puede haber casos en los que esto no sea así. Un ejemplo sería cuando se aborda un problema al que no se le ha asignado un CVE. 

 Consulte las [preguntas frecuentes de ALAS](https://alas.aws.amazon.com/faqs.html) para obtener más información sobre cómo Amazon Linux utiliza los índices de gravedad de los avisos. 

## Avisos y paquetes
<a name="advisory-packages"></a>

 Puede haber muchos avisos para un solo paquete, y no todos los paquetes tendrán un aviso publicado. Se puede hacer referencia a una versión de paquete concreta en varios avisos, cada uno con su propia gravedad y. CVEs 

 Es posible que se publiquen varios avisos para la misma actualización de paquete simultáneamente en una nueva AL2023 versión o en rápida sucesión. 

 Al igual que otras distribuciones de Linux, puede haber uno o varios paquetes binarios diferentes compilados a partir del mismo paquete de origen. Por ejemplo, [ALAS-2024-698](https://alas.aws.amazon.com/AL2023/ALAS-2024-698.html) es un aviso que aparece en la sección [AL2023 del sitio web de Amazon Linux Security Center](https://alas.aws.amazon.com/alas2023.html) como aplicable al paquete. `mariadb105` Este es el nombre del paquete *de origen*, y el propio aviso hace referencia a los paquetes *binarios* que aparecen junto con el paquete fuente. En este caso, se crean más de una docena de paquetes binarios a partir de un único paquete `mariadb105` de origen. Aunque es muy habitual que haya un paquete binario con el mismo nombre que el paquete de origen, esto no es universal. 

 Aunque las advertencias de Amazon Linux suelen incluir todos los paquetes binarios creados a partir del paquete de origen actualizado, no se debe dar esto por sentado. El formato de metadatos del administrador de paquetes y del repositorio de RPM permite incluir avisos que enumeran un subconjunto de los paquetes binarios actualizados. 

 Una advertencia concreta también puede aplicarse únicamente a una arquitectura de CPU concreta. Puede haber paquetes que no estén compilados para todas las arquitecturas, o problemas que no afecten a todas las arquitecturas. En el caso de que un paquete esté disponible en todas las arquitecturas, pero un problema solo afecte a una de ellas, Amazon Linux no suele publicar un aviso en el que solo se haga referencia a la arquitectura afectada, aunque esto no debe darse por sentado. 

 Debido a la naturaleza de las dependencias entre paquetes, es habitual que una notificación haga referencia a un paquete, pero la instalación de esa actualización requiera otras actualizaciones de paquetes, incluidos paquetes que no figuran en la notificación. El administrador de paquetes `dnf` se encargará de instalar las dependencias necesarias. 

## Avisos y CVEs
<a name="advisory-cves"></a>

 Un aviso puede abordar cero o más CVEs, y puede haber varios avisos que hagan referencia al mismo CVE. 

 Un ejemplo en el que un aviso puede hacer referencia a cero CVEs es cuando un CVE aún no está asignado (o nunca) a la emisión. 

 Un ejemplo en el que varios avisos pueden hacer referencia al mismo CVE cuando (por ejemplo) el CVE es aplicable a varios paquetes. Por ejemplo, [CVE-2024-21208](https://alas.aws.amazon.com/cve/html/CVE-2024-21208.html) se aplica a Corretto 8, 11, 17 y 21. [https://alas.aws.amazon.com/AL2023/ALAS-2024-752.html](https://alas.aws.amazon.com/AL2023/ALAS-2024-752.html) Si bien todos estos lanzamientos de Corretto tienen la misma lista de CVEs, esto no debe asumirse. 

 Un CVE concreto puede evaluarse de forma diferente para distintos paquetes. Por ejemplo, si se hace referencia a un CVE concreto en un aviso con un nivel de gravedad “Importante”, es posible que se publique otro aviso que haga referencia al mismo CVE con un nivel de gravedad diferente. 

 Los metadatos del repositorio de RPM permiten obtener una lista de referencias para cada aviso. Si bien Amazon Linux normalmente solo hace referencia CVEs, el formato de metadatos permite otros tipos de referencia. 

 Solo se hará referencia a los metadatos del repositorio de paquetes RPM CVEs cuando haya una corrección disponible. La [sección Explore del sitio web de Amazon Linux Security Center](https://explore.alas.aws.amazon.com) contiene información sobre CVEs lo que Amazon Linux ha evaluado. Esta evaluación puede dar como resultado una puntuación base CVSS, un nivel de gravedad y un estado para varias versiones y paquetes de Amazon Linux. El estado de un CVE para una versión o paquete concreto de Amazon Linux puede ser “No afectado”, “Pendiente de corrección” o “Sin corrección prevista”. El estado y la evaluación de CVEs pueden cambiar muchas veces y de *cualquier manera* antes de que se emita un aviso. Esto incluye la reevaluación de la aplicabilidad de un CVE a Amazon Linux. 

 La lista de CVEs referencias de una Asesoría puede cambiar después de la publicación inicial de esa Asesoría. 

## Texto de aviso
<a name="advisory-text"></a>

 Un aviso también contendrá un texto que describa el problema o los problemas que motivaron su creación. Es habitual que este texto sea el texto del CVE sin modificaciones. Este texto puede hacer referencia a los números de versión anteriores en los que hay una corrección disponible y que son diferentes de la versión del paquete a la que Amazon Linux ha aplicado una corrección. Es habitual que Amazon Linux transfiera las correcciones de las versiones anteriores más recientes. En el caso de que el texto del aviso mencione una versión anterior diferente a la versión incluida en una versión de Amazon Linux, las versiones del paquete de Amazon Linux del aviso serán las correctas para Amazon Linux. 

 Es posible que el texto de advertencia en los metadatos del repositorio RPM sea un texto de marcador de posición que simplemente remita al sitio web del [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2023.html) para obtener más detalles. 

## Avisos de parches activos del kernel
<a name="livepatch-advisories"></a>

 Los avisos de los parches activos son únicos en el sentido de que se refieren a un paquete diferente (el kernel de Linux) del paquete en el que se basa el aviso (por ejemplo, `kernel-livepatch-6.1.15-28.43`). 

 Un aviso para un [parche activo del núcleo](live-patching.md) hará referencia a los problemas (por ejemplo CVEs) que el paquete de parches activos concreto puede solucionar en relación con la versión *específica* del núcleo a la que se aplica el paquete de parches activos. 

 Cada parche activo es para una versión *específica* del kernel. Para aplicar un parche activo a un CVE, es necesario instalar el paquete de parches activos adecuado para la versión del kernel y aplicar el parche activo. 

 Por ejemplo, el [CVE-2023-6111](https://alas.aws.amazon.com/cve/html/CVE-2023-6111.html) puede ser parcheado en tiempo real para AL2023 las versiones del núcleo, y. `6.1.56-82.125` `6.1.59-84.139` `6.1.61-85.141` También se ha lanzado una nueva versión del kernel con una corrección para este CVE, que cuenta con un [aviso independiente](https://alas.aws.amazon.com/AL2023/ALAS-2023-461.html). Para corregir el error [CVE-2023-6111](https://alas.aws.amazon.com/cve/html/CVE-2023-6111.html), se debe ejecutar una versión del núcleo igual o posterior a la especificada por [ALAS2023-2023-461](https://alas.aws.amazon.com/AL2023/ALAS-2023-461.html), o AL2023 bien una de las versiones del núcleo con un parche activo para este CVE debe estar *ejecutándose* con el parche activo correspondiente. 

 Cuando hay nuevos parches activos disponibles para una versión específica del kernel que ya tiene un parche activo disponible, se publica una nueva versión del paquete `kernel-livepatch-KERNEL_VERSION`. Por ejemplo, el [https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-003.html](https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-003.html)aviso se publicó con un `kernel-livepatch-6.1.15-28.43-1.0-1.amzn2023` paquete que contenía tres parches activos para el núcleo. `6.1.15-28.43` CVEs Más tarde, se publicó el [https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-009.html](https://alas.aws.amazon.com/AL2023/ALASLIVEPATCH-2023-009.html)aviso junto con el `kernel-livepatch-6.1.15-28.43-1.0-2.amzn2023` paquete, una actualización del anterior paquete de parches activos para el `6.1.15-28.43` núcleo, que contenía parches activos para otros tres CVEs. También hubo otros problemas con los avisos de parches activos para otras versiones del kernel, con paquetes que contenían parches activos para esas versiones específicas del kernel. 

 Para obtener más información sobre la aplicación de parches activos, consulte [Aplicación de parches activos del kernel en AL2023](live-patching.md). 

 Para cualquier persona que esté desarrollando herramientas en torno a los avisos de seguridad, también se recomienda consultar la sección [Esquema XML para avisos y `updateinfo.xml`](#advisory-schema) para obtener más información. 

## Esquema XML para avisos y `updateinfo.xml`
<a name="advisory-schema"></a>

 El archivo `updateinfo.xml` forma parte del formato del repositorio de paquetes. Son los metadatos que el administrador de paquetes `dnf` analiza para implementar funciones como [Lista de avisos aplicables](listing-applicable-advisories.md) y [Aplicación de actualizaciones de seguridad in situ](security-inplace-update.md). 

 Recomendamos utilizar la API del administrador de paquetes `dnf` en lugar de escribir código personalizado para analizar los formatos de metadatos del repositorio. La versión de `dnf` in AL2023 puede analizar tanto el formato como el del AL2 repositorio AL2023 y, por lo tanto, la API se puede utilizar para examinar la información de asesoramiento de cualquier versión del sistema operativo. 

 El proyecto [RPM Software Management](https://github.com/rpm-software-management/) documenta los formatos de metadatos RPM del repositorio [rpm-metadata](https://github.com/rpm-software-management/rpm-metadata) en. GitHub 

 Para aquellos que están desarrollando herramientas para analizar directamente los metadatos de `updateinfo.xml`, se recomienda encarecidamente prestar mucha atención a la [documentación sobre los metadatos de RPM](https://github.com/rpm-software-management/rpm-metadata). La documentación cubre lo que se ha observado en la práctica, lo que incluye muchas excepciones a lo que se podría interpretar razonablemente como una regla para el formato de metadatos. 

 También hay un conjunto cada vez mayor de ejemplos de `updateinfo.xml` archivos del mundo real en el repositorio [raw-historical-rpm-repository-examples](https://github.com/rpm-software-management/raw-historical-rpm-repository-examples) on. GitHub 

 En caso de que algo no quede claro en la documentación, puedes abrir una edición en el GitHub proyecto para que podamos responder a la pregunta y actualizar la documentación adecuadamente. Al tratarse de proyectos de código abierto, también se aceptan solicitudes de incorporación de cambios para actualizar la documentación. 

# Lista de avisos aplicables
<a name="listing-applicable-advisories"></a>

 El administrador de paquetes `dnf` tiene acceso a los metadatos que describen qué avisos están fijos en qué versiones del paquete. De este modo, puede enumerar qué avisos son aplicables a una imagen de instancia o contenedor. 

**nota**  
 Herramientas como [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/) pueden usar esta funcionalidad para mostrar qué actualizaciones son relevantes para una flota, en lugar de solo una instancia. 

 Al enumerar las actualizaciones, puedes indicar a `dnf` que consulte los metadatos de una versión de AL2023 concreta o los metadatos de la última versión. 

**nota**  
 Una vez que se publica una versión de AL2023, no se modifica. Por lo tanto, los avisos nuevos o actualizados del [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/alas2023.html) solo se añaden a los metadatos de las *nuevas* versiones de AL2023. 

 A continuación, analizaremos algunos ejemplos de las recomendaciones que se aplican a algunas imágenes de contenedores de AL2023. Todos estos comandos funcionan en entornos no contenerizados, como las instancias de EC2. 

------
#### [ Listing advisories in a specific version ]

 En este ejemplo, analizaremos qué avisos están disponibles en la versión [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) si lanzamos un contenedor de la versión [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

**nota**  
 En este ejemplo se utilizan las versiones [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) y [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html), y estas *no* son las versiones más recientes de AL2023. Consulte las [notas de la versión de AL2023](https://docs.aws.amazon.com/linux/al2023/release-notes/) para ver las versiones más recientes, que contienen las actualizaciones de seguridad más recientes. 

 En este ejemplo, comenzaremos con una imagen de contenedor para la versión [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html). 

 En primer lugar, obtenemos esta imagen del contenedor del registro del contenedor. `.0` al final indica la versión de la imagen para una versión concreta; esta versión de imagen suele ser cero. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  2023.0.20230315.0: Pulling from amazonlinux/amazonlinux
b76f3b09316a: Pull complete
Digest: sha256:94e7183b0739140dbd5b639fb7600f0a2299cec5df8780c26d9cb409da5315a9
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
```

 Ahora podemos generar un intérprete de comandos dentro del contenedor, desde el que pediremos a `dnf` que indique qué avisos son relevantes para los paquetes instalados en el contenedor. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.0.20230315.0
	  bash-5.2#
```

 El comando `dnf updateinfo` ahora se usa para mostrar un resumen de los avisos de la versión [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html) que son relevantes para nuestros paquetes instalados. 

```
$ dnf updateinfo --releasever=2023.1.20230628
Amazon Linux 2023 repository                     42 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:02 ago on Mon Jul 22 20:24:24 2024.
Updates Information Summary: available
    8 Security notice(s)
        1 Important Security notice(s)
        5 Medium Security notice(s)
        2 Low Security notice(s)
```

 Para obtener una lista de los avisos, se puede utilizar la opción `--list` con `dnf updateinfo`. 

```
$ dnf updateinfo --releasever=2023.1.20230628 --list
Last metadata expiration check: 0:01:22 ago on Mon Jul 22 20:24:24 2024.
ALAS2023-2023-193 Medium/Sec.    curl-minimal-8.0.1-1.amzn2023.x86_64
ALAS2023-2023-225 Medium/Sec.    glib2-2.74.7-688.amzn2023.0.1.x86_64
ALAS2023-2023-195 Low/Sec.       libcap-2.48-2.amzn2023.0.3.x86_64
ALAS2023-2023-193 Medium/Sec.    libcurl-minimal-8.0.1-1.amzn2023.x86_64
ALAS2023-2023-145 Low/Sec.       libgcc-11.3.1-4.amzn2023.0.3.x86_64
ALAS2023-2023-145 Low/Sec.       libgomp-11.3.1-4.amzn2023.0.3.x86_64
ALAS2023-2023-145 Low/Sec.       libstdc++-11.3.1-4.amzn2023.0.3.x86_64
ALAS2023-2023-163 Medium/Sec.    libxml2-2.10.4-1.amzn2023.0.1.x86_64
ALAS2023-2023-220 Important/Sec. ncurses-base-6.2-4.20200222.amzn2023.0.4.noarch
ALAS2023-2023-220 Important/Sec. ncurses-libs-6.2-4.20200222.amzn2023.0.4.x86_64
ALAS2023-2023-181 Medium/Sec.    openssl-libs-1:3.0.8-1.amzn2023.0.2.x86_64
ALAS2023-2023-222 Medium/Sec.    openssl-libs-1:3.0.8-1.amzn2023.0.3.x86_64
```

------
#### [ Listing advisories in the latest version ]

 En este ejemplo vamos a ver qué actualizaciones están disponibles en la versión `latest` de AL2023 si lanzamos un contenedor de la versión [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). En el momento de escribir este artículo, la versión `latest` es la [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), por lo que las actualizaciones que se muestran en este ejemplo son las correspondientes a esa versión. 

**nota**  
 En este ejemplo, se utilizan las versiones [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html) y [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html), siendo esta última la versión más reciente *en el momento de redactar este artículo.* Para obtener más información sobre las versiones más recientes, consulte las [notas de la versión de AL2023](https://docs.aws.amazon.com/linux/al2023/release-notes/). 

 En este ejemplo, comenzaremos con una imagen de contenedor para la versión [2023.4.20240319](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.4.20240319.html). 

 En primer lugar, obtenemos esta imagen del contenedor del registro del contenedor. `.1` al final indica la versión de la imagen para una versión concreta. Aunque la versión de la imagen suele ser cero, este ejemplo utiliza una versión en la que la versión de la imagen es uno. 

```
$ docker pull public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  2023.4.20240319.1: Pulling from amazonlinux/amazonlinux
6de065fda9a2: Pull complete
Digest: sha256:b4838c4cc9211d966b6ea158dacc9eda7433a16ba94436508c2d9f01f7658b4e
Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
```

 Ahora podemos generar un intérprete de comandos dentro del contenedor, desde el que comprobaremos si hay actualizaciones. 

```
$ docker run -it public.ecr.aws/amazonlinux/amazonlinux:2023.4.20240319.1
	  bash-5.2#
```

 El comando `dnf updateinfo` ahora se usa para mostrar un resumen de los avisos de la última versión que son relevantes para nuestros paquetes instalados. En el momento de escribir este artículo, la versión más reciente era la [2023.1.20230628](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.1.20230628.html). 

```
$ dnf --releasever=latest updateinfo
Amazon Linux 2023 repository                     76 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 20:59:54 2024.
Updates Information Summary: available
    9 Security notice(s)
        4 Important Security notice(s)
        4 Medium Security notice(s)
        1 Low Security notice(s)
```

 Para obtener una lista de los avisos, se puede utilizar la opción `--list` con `dnf updateinfo`. 

```
$ dnf updateinfo --releasever=latest --list
Last metadata expiration check: 0:00:58 ago on Mon Jul 22 20:59:54 2024.
ALAS2023-2024-581 Low/Sec.       curl-minimal-8.5.0-1.amzn2023.0.3.x86_64
ALAS2023-2024-596 Medium/Sec.    curl-minimal-8.5.0-1.amzn2023.0.4.x86_64
ALAS2023-2024-576 Important/Sec. expat-2.5.0-1.amzn2023.0.4.x86_64
ALAS2023-2024-589 Important/Sec. glibc-2.34-52.amzn2023.0.10.x86_64
ALAS2023-2024-589 Important/Sec. glibc-common-2.34-52.amzn2023.0.10.x86_64
ALAS2023-2024-589 Important/Sec. glibc-minimal-langpack-2.34-52.amzn2023.0.10.x86_64
ALAS2023-2024-586 Medium/Sec.    krb5-libs-1.21-3.amzn2023.0.4.x86_64
ALAS2023-2024-581 Low/Sec.       libcurl-minimal-8.5.0-1.amzn2023.0.3.x86_64
ALAS2023-2024-596 Medium/Sec.    libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64
ALAS2023-2024-592 Important/Sec. libnghttp2-1.59.0-3.amzn2023.0.1.x86_64
ALAS2023-2024-640 Medium/Sec.    openssl-libs-1:3.0.8-1.amzn2023.0.12.x86_64
ALAS2023-2024-605 Medium/Sec.    python3-3.9.16-1.amzn2023.0.7.x86_64
ALAS2023-2024-616 Important/Sec. python3-3.9.16-1.amzn2023.0.8.x86_64
ALAS2023-2024-605 Medium/Sec.    python3-libs-3.9.16-1.amzn2023.0.7.x86_64
ALAS2023-2024-616 Important/Sec. python3-libs-3.9.16-1.amzn2023.0.8.x86_64
```

------

# Aplicación de actualizaciones de seguridad in situ
<a name="security-inplace-update"></a>

 Para obtener información general sobre la aplicación de actualizaciones, consulte [Aplicación de actualizaciones de seguridad mediante DNF y las versiones de repositorio](managing-repos-os-updates.md#apply-security-updates). La opción `--security` para `dnf upgrade` restringirá las actualizaciones de los paquetes solo a aquellos que tengan un aviso. En el resto de esta sección se explicará cómo instalar únicamente actualizaciones de seguridad específicas. 

**nota**  
 Se recomienda aplicar *todas* las actualizaciones disponibles en una nueva versión de AL2023. Elegir solo actualizaciones de seguridad o solo actualizaciones específicas debería ser la excepción y no la regla. 

## Aplicación de las actualizaciones mencionadas en un aviso
<a name="applying-advisory-updates"></a>

 Los identificadores de los avisos de la primera columna del resultado de `dnf upgradeinfo` se pueden utilizar para aplicar actualizaciones a los paquetes mencionados en el aviso. Se le puede dar instrucciones al administrador de paquetes `dnf` para que actualice los paquetes del aviso a la última versión disponible o solo a las versiones mencionadas en el aviso. Si las actualizaciones ya están instaladas, el comando de actualización no tiene ningún efecto. 

 Para aplicar las actualizaciones a los paquetes afectados *únicamente hasta la versión mencionada en el aviso*, utilice el comando `dnf upgrade-minimal` y utilice la opción `--advisory` para especificar el aviso. En el siguiente ejemplo se ejecuta `dnf upgrade-minimal` en un contenedor de la versión [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) de AL2023. 

```
$ dnf upgrade-minimal -y --releasever=2023.1.20230628 --advisory ALAS2023-2023-193
Amazon Linux 2023 repository                     46 MB/s |  15 MB     00:00
Last metadata expiration check: 0:00:03 ago on Mon Jul 22 20:36:13 2024.
Dependencies resolved.
================================================================================
 Package              Arch        Version                Repository        Size
================================================================================
Upgrading:
 curl-minimal         x86_64      8.0.1-1.amzn2023       amazonlinux      150 k
 libcurl-minimal      x86_64      8.0.1-1.amzn2023       amazonlinux      249 k

Transaction Summary
================================================================================
Upgrade  2 Packages

Total download size: 399 k
Downloading Packages:
(1/2): curl-minimal-8.0.1-1.amzn2023.x86_64.rpm 2.7 MB/s | 150 kB     00:00
(2/2): libcurl-minimal-8.0.1-1.amzn2023.x86_64. 3.8 MB/s | 249 kB     00:00
--------------------------------------------------------------------------------
Total                                           2.5 MB/s | 399 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Upgrading        : libcurl-minimal-8.0.1-1.amzn2023.x86_64                1/4
  Upgrading        : curl-minimal-8.0.1-1.amzn2023.x86_64                   2/4
  Cleanup          : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              3/4
  Cleanup          : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           4/4
  Running scriptlet: libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           4/4
  Verifying        : libcurl-minimal-8.0.1-1.amzn2023.x86_64                1/4
  Verifying        : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           2/4
  Verifying        : curl-minimal-8.0.1-1.amzn2023.x86_64                   3/4
  Verifying        : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              4/4

Upgraded:
  curl-minimal-8.0.1-1.amzn2023.x86_64  libcurl-minimal-8.0.1-1.amzn2023.x86_64

Complete!
```

 Las mismas versiones del paquete se actualizan incluso si se utiliza `--releasever=latest`, ya que la solicitud es que `dnf` realice la *actualización mínima necesaria* para abordar el aviso. 

 El uso del comando habitual `dnf upgrade` con la opción `--advisory` actualizará los paquetes pertinentes mencionados en el aviso a la *última* versión disponible, que puede ser más reciente que la versión mencionada en el aviso. 

**nota**  
 A menos que se actualice el paquete `system-release`, la versión de los repositorios de AL2023 a la que está vinculado `dnf` *no cambia*. 

**aviso**  
 Al instalar actualizaciones de una versión diferente de AL2023 sin cambiar la versión del repositorio a la que está vinculado `dnf`, se *debe* tener cuidado con cualquier operación `dnf` de mutación posterior. Por ejemplo, al instalar o actualizar paquetes, dado que las dependencias de los paquetes pueden haber cambiado en la versión más reciente, es posible que la versión anterior en la que permanezca no pueda satisfacer estas nuevas dependencias. 

 El siguiente ejemplo se ejecuta en un contenedor de la versión [2023.0.20230315](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.0.20230315.html) de AL2023 en referencia a la última versión de AL2023, que en el momento de redactar este documento era [2023.5.20240708](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html). Tenga en cuenta que tanto la versión de `curl` a la que se actualiza como la versión a la que se actualiza `update-minimal` son más recientes, pero que esta versión más reciente introduce nuevas dependencias. 

```
$ dnf upgrade -y --releasever=latest --advisory ALAS2023-2023-193
Amazon Linux 2023 repository                     80 MB/s |  25 MB     00:00
Last metadata expiration check: 0:00:04 ago on Mon Jul 22 20:48:38 2024.
Dependencies resolved.
================================================================================
 Package                   Arch     Version                 Repository     Size
================================================================================
Upgrading:
 curl-minimal              x86_64   8.5.0-1.amzn2023.0.4    amazonlinux   160 k
 libcurl-minimal           x86_64   8.5.0-1.amzn2023.0.4    amazonlinux   275 k
 libnghttp2                x86_64   1.59.0-3.amzn2023.0.1   amazonlinux    79 k
Installing dependencies:
 libpsl                    x86_64   0.21.1-3.amzn2023.0.2   amazonlinux    61 k
 publicsuffix-list-dafsa   noarch   20240212-61.amzn2023    amazonlinux    59 k

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  3 Packages

Total download size: 634 k
Downloading Packages:
(1/5): publicsuffix-list-dafsa-20240212-61.amzn 1.1 MB/s |  59 kB     00:00
(2/5): curl-minimal-8.5.0-1.amzn2023.0.4.x86_64 2.6 MB/s | 160 kB     00:00
(3/5): libpsl-0.21.1-3.amzn2023.0.2.x86_64.rpm  949 kB/s |  61 kB     00:00
(4/5): libnghttp2-1.59.0-3.amzn2023.0.1.x86_64. 3.7 MB/s |  79 kB     00:00
(5/5): libcurl-minimal-8.5.0-1.amzn2023.0.4.x86 6.7 MB/s | 275 kB     00:00
--------------------------------------------------------------------------------
Total                                           3.5 MB/s | 634 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Upgrading        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64                1/8
  Installing       : publicsuffix-list-dafsa-20240212-61.amzn2023.noarch    2/8
  Installing       : libpsl-0.21.1-3.amzn2023.0.2.x86_64                    3/8
  Upgrading        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64            4/8
  Upgrading        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64               5/8
  Cleanup          : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              6/8
  Cleanup          : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           7/8
  Cleanup          : libnghttp2-1.51.0-1.amzn2023.x86_64                    8/8
  Running scriptlet: libnghttp2-1.51.0-1.amzn2023.x86_64                    8/8
  Verifying        : libpsl-0.21.1-3.amzn2023.0.2.x86_64                    1/8
  Verifying        : publicsuffix-list-dafsa-20240212-61.amzn2023.noarch    2/8
  Verifying        : curl-minimal-8.5.0-1.amzn2023.0.4.x86_64               3/8
  Verifying        : curl-minimal-7.88.1-1.amzn2023.0.1.x86_64              4/8
  Verifying        : libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64            5/8
  Verifying        : libcurl-minimal-7.88.1-1.amzn2023.0.1.x86_64           6/8
  Verifying        : libnghttp2-1.59.0-3.amzn2023.0.1.x86_64                7/8
  Verifying        : libnghttp2-1.51.0-1.amzn2023.x86_64                    8/8

Upgraded:
  curl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  libcurl-minimal-8.5.0-1.amzn2023.0.4.x86_64
  libnghttp2-1.59.0-3.amzn2023.0.1.x86_64
Installed:
  libpsl-0.21.1-3.amzn2023.0.2.x86_64
  publicsuffix-list-dafsa-20240212-61.amzn2023.noarch

Complete!
```

# Configuración de los modos de SELinux para AL2023
<a name="selinux-modes"></a>

Para AL2023, Security Enhanced Linux (SELinux) de forma predeterminada está `enabled` y está configurado en modo `permissive`. En el modo permisivo, las denegaciones de permisos se registran pero no se aplican. SELinux es un conjunto de características y utilidades del kernel que proporcionan una arquitectura de control de acceso (MAC) sólida, flexible y obligatoria a los principales subsistemas del kernel. 

SELinux proporciona un mecanismo mejorado para hacer cumplir la separación de la información en función de los requisitos de confidencialidad e integridad. Esta separación de la información reduce las amenazas de manipulación y elusión de los mecanismos de seguridad de las aplicaciones. También limita los daños que pueden causar las aplicaciones malintencionadas o defectuosas. 

SELinux incluye un conjunto de ejemplos de archivos de configuración de políticas de seguridad diseñados para cumplir con los objetivos de seguridad diarios.

Para obtener más información sobre las características y funcionalidades de SELinux, consulte el [cuaderno de SELinux](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/toc.md) y la [política de lenguajes](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/policy_languages.md). 

**Topics**
+ [Estado y modos predeterminados de SELinux para AL2023](default-SELinux-modes-states.md)
+ [Cambiar al modo `enforcing`](enforcing-mode.md)
+ [Opción para deshabilitar SELinux para AL2023](disable-option-selinux.md)

# Estado y modos predeterminados de SELinux para AL2023
<a name="default-SELinux-modes-states"></a>

Para AL2023, SELinux está configurado de forma predeterminada como `enabled` y en modo `permissive`. En el modo `permissive`, las denegaciones de permisos se registran pero no se aplican.

Los comandos **getenforce** o **sestatus** indican el estado, la política y el modo actuales de SELinux. 

Con el estado predeterminado establecido en `enabled` y `permissive`, el comando **getenforce** vuelve a `permissive`. 

El **sestatus** comando devuelve el estado de SELinux y la política de SELinux actual, como se muestra en el siguiente ejemplo: 

```
$ sestatus
SELinux status:                 enabled
  SELinuxfs mount:                /sys/fs/selinux
  SELinux root directory:         /etc/selinux
  Loaded policy name:             targeted
  Current mode:                   permissive
  Mode from config file:          permissive
  Policy MLS status:              enabled
  Policy deny_unknown status:     allowed
  Memory protection checking:     actual (secure)
  Max kernel policy version:      33
```

Al ejecutar SELinux en modo `permissive`, los usuarios a veces pueden etiquetar los archivos de forma incorrecta. Cuando se ejecuta SELinux en ese estado `disabled`, los archivos no se etiquetan. Tanto los archivos incorrectos como los que no están etiquetados pueden causar problemas al cambiar al modo `enforcing`.

SELinux reetiqueta automáticamente los archivos para evitar este problema. SELinux evita problemas de etiquetado con el reetiquetado automático al cambiar el estado a `enabled`.

# Cambiar al modo `enforcing`
<a name="enforcing-mode"></a>

Cuando se ejecuta SELinux en modo `enforcing`, la utilidad SELinux `enforcing` la política configurada. SELinux regula las capacidades de determinadas aplicaciones al permitir o denegar el acceso según las reglas de la política.

Para encontrar el modo SELinux actual, ejecute el comando `getenforce`.

```
getenforce
Permissive
```

## Edite el archivo de configuración para habilitar el modo `enforcing`
<a name="config-file-enforcing"></a>

Para cambiar el modo a `enforcing`, siga los pasos que se indican a continuación.

1. Edite el archivo `/etc/selinux/config` para cambiar al modo `enforcing`. El ajuste `SELINUX` debe ser similar a la siguiente especificación de ejemplo:

   ```
   SELINUX=enforcing
   ```

1. Reinicie el sistema para completar el cambio al modo `enforcing`.

   ```
   $ sudo reboot
   ```

En el siguiente arranque, SELinux vuelve a etiquetar todos los archivos y directorios del sistema. SELinux también añade el contexto de SELinux para los archivos y directorios que se crearon cuando SELinux estaba `disabled`.

Después de cambiar al modo `enforcing`, SELinux podría denegar algunas acciones debido a reglas de política de SELinux faltantes o incorrectas. Para ver las acciones que SELinux niega, use el comando siguiente.

```
$ sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
```

## Use cloud-init para habilitar el modo `enforcing`
<a name="cloud-init-enforcing"></a>

Como alternativa, cuando lance la instancia, pasa el siguiente `cloud-config` como datos de usuario para habilitar el modo `enforcing`. 

```
#cloud-config
selinux: 
  mode: enforcing
```

De forma predeterminada, esta opción hace que la instancia se reinicie. Para una mayor estabilidad, le recomendamos que reinicie la instancia. No obstante, si lo prefiere, puede omitir el reinicio. Para ello, proporcione el siguiente `cloud-config`.

```
#cloud-config
selinux:
  mode: enforcing
  selinux_no_reboot: 1
```

# Opción para deshabilitar SELinux para AL2023
<a name="disable-option-selinux"></a>

Al deshabilitar SELinux, la política de SELinux no se carga ni se aplica y los mensajes AVC no se registran. Pierde todos los beneficios para ejecutar SELinux. 

En lugar de deshabilitar SELinux, recomendamos usar el modo `permissive`. Ejecutarlo en modo `permissive` cuesta solo un poco más que deshabilitar SELinux por completo. La transición del modo `permissive` al modo `enforcing` requiere muchos menos ajustes de configuración que volver a un modo `enforcing` después de deshabilitar SELinux. Puede etiquetar los archivos y el sistema puede rastrear y registrar las acciones que la política activa podría haber denegado. 

## Cambiar del modo SELinux al modo `permissive`
<a name="change-to-permissive"></a>

Cuando se ejecuta SELinux en modo `permissive`, la política de SELinux no se aplica. En el modo `permissive`, SELinux registra los mensajes AVC pero no deniega las operaciones. Puede usar estos mensajes AVC para solucionar problemas, depurar y mejorar las políticas de SELinux. 

Para cambiar SELinux al modo permisivo, siga estos pasos.

1. Edite el archivo `/etc/selinux/config` para cambiar al modo `permissive`. El valor `SELINUX` debería ser similar al siguiente ejemplo.

   ```
   SELINUX=permissive
   ```

1. Reinicie el sistema para completar el cambio al modo `permissive`.

   ```
   sudo reboot
   ```

## Deshabilitar SELinux
<a name="disable-selinux"></a>

Al deshabilitar SELinux, la política de SELinux no se carga ni se aplica y los mensajes AVC no se registran. Pierde todos los beneficios para ejecutar SELinux.

Para deshabilitar SELinux, siga estos pasos:

1. Asegúrese de que el paquete `grubby` esté instalado.

   ```
   rpm -q grubby
   grubby-version
   ```

1. Configure su cargador de arranque para añadir `selinux=0` a la línea de comandos del kernel.

   ```
   sudo grubby --update-kernel ALL --args selinux=0
   ```

1. Reinicie el sistema.

   ```
   sudo reboot
   ```

1. Ejecute el comando `getenforce ` para confirmar que SELinux está `Disabled`.

   ```
   $ getenforce
   Disabled
   ```

Para obtener más información sobre SELinux, consulte [Cuaderno SELinux](https://github.com/SELinuxProject/selinux-notebook/blob/main/src/toc.md) y [Configuración de SELinux](http://selinuxproject.org/page/Guide/Mode#SELinux_Config).

# Habilitar el modo FIPS en AL2023
<a name="fips-mode"></a>

En esta sección se explica cómo habilitar los estándares federales de procesamiento de información (FIPS) en AL2023. Para obtener más información sobre FIPS, consulte:
+ [Estándar Federal de Procesamiento de la Información (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Preguntas frecuentes sobre conformidad: Estándar Federal de Procesamiento de la Información](https://www.nist.gov/standardsgov/compliance-faqs-federal-information-processing-standards-fips)

**nota**  
En esta sección se explica cómo activar el modo FIPS en AL2023, pero no se trata del estado de certificación de los módulos criptográficos de AL2023.

**Requisitos previos**
+ Una instancia de Amazon EC2 AL2023 (AL2023.2 o superior) existente con acceso a Internet para descargar los paquetes necesarios. Para obtener más información sobre cómo lanzar una instancia de AL2023 en Amazon EC2, consulte [Lanzamiento de AL2023 con la consola de Amazon EC2](ec2.md#launch-from-ec2-console).
+ Debe conectarse a la instancia de Amazon EC2 mediante SSH o AWS Systems Manager. Para obtener más información, consulte [Conexión a instancias AL2023](connecting-to-instances.md).

**importante**  
Las claves de usuario SSH ED25519 no se admiten en el modo FIPS. Si lanzó su instancia de Amazon EC2 con un par de claves SSH ED25519, debe generar nuevas claves mediante otro algoritmo (como RSA) o podría perder el acceso a la instancia después de habilitar el modo FIPS. Para obtener más información, consulte [Creación de pares de clave](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html) en la *Guía del usuario de Amazon EC2*.

**Habilitar el modo FIPS**

1. Conéctese a la instancia de AL2023 mediante SSH o AWS Systems Manager.

1. Asegúrese de que el sistema esté actualizado. Para obtener más información, consulte [Gestione las actualizaciones de paquetes y sistemas operativos en AL2023](managing-repos-os-updates.md).

1. Asegúrese de que las utilidades `crypto-policies` estén instaladas y actualizadas.

   ```
   sudo dnf -y install crypto-policies crypto-policies-scripts
   ```

1. Habilite el modo FIPS ejecutando el siguiente comando. Esto habilitará el modo FIPS en todo el sistema para los módulos enumerados en las [preguntas frecuentes de AL2023](https://aws.amazon.com/linux/amazon-linux-2023/faqs/) 

   ```
   sudo fips-mode-setup --enable
   ```

1. Ejecute el siguiente comando para volver a arrancar la instancia.

   ```
   sudo reboot
   ```

1. Para verificar que el modo FIPS está habilitado, vuelva a conectarse a la instancia y ejecute el siguiente comando.

   ```
   sudo fips-mode-setup --check
   ```

   En la siguiente salida de ejemplo se muestra que el modo FIPS está activado:

   ```
   FIPS mode is enabled.
   ```

# Habilitación del modo FIPS en un contenedor de AL2023
<a name="fips-mode-container"></a>

En esta sección se explica cómo habilitar los estándares federales de procesamiento de información (FIPS) en un contenedor de AL2023. Para obtener más información sobre FIPS, consulte:
+ [Estándar Federal de Procesamiento de la Información (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Preguntas frecuentes sobre conformidad: Estándar Federal de Procesamiento de la Información](https://www.nist.gov/standardsgov/compliance-faqs-federal-information-processing-standards-fips)

**nota**  
Esta sección documenta cómo habilitar el modo FIPS en un contenedor de AL2023. No cubre el estado de certificación de los módulos criptográficos de AL2023.

**Requisitos previos**
+ Una instancia de Amazon EC2 AL2023 (AL2023.2 o superior) existente con acceso a Internet para descargar los paquetes necesarios. Para obtener más información sobre cómo lanzar una instancia de AL2023 en Amazon EC2, consulte [Lanzamiento de AL2023 con la consola de Amazon EC2](ec2.md#launch-from-ec2-console).
+ Debe conectarse a la instancia de Amazon EC2 mediante SSH o AWS Systems Manager. Para obtener más información, consulte [Conexión a instancias AL2023](connecting-to-instances.md).

**importante**  
El comando `fips-mode-setup` no funcionará correctamente desde el contenedor. Lea los pasos que se indican a continuación para configurar correctamente el modo FIPS en un contenedor de AL2023.

**Habilitación del modo FIPS en un contenedor de AL2023**

1. El modo FIPS debe habilitarse primero en el host del contenedor de AL2023. Siga las instrucciones que aparecen en [Habilitar el modo FIPS en AL2023](fips-mode.md) para habilitar el modo FIPS en el host.

1. Conéctese a su instancia de host del contenedor de AL2023 con SSH o AWS Systems Manager.

1. El modo FIPS se habilitará automáticamente en un contenedor de AL2023 si el host de AL2023 está en modo FIPS y se puede acceder a `/proc/sys/crypto/fips_enabled` desde dentro del contenedor. Si el contenido de `/proc/sys/crypto/fips_enabled` es `0`, FIPS no está habilitado y un valor de `1` indica que el modo FIPS está habilitado.

   Puede verificar que FIPS está habilitado ejecutando el siguiente comando tanto en el host como en el contenedor de AL2023:

   ```
   cat /proc/sys/crypto/fips_enabled
   ```

1. A continuación, habilite las crypto-policies de FIPS en el contenedor. Existen varias formas de lograrlo, que se describen en las siguientes opciones. Seleccione la opción que sea mejor para su entorno.

   1. Habilite las crypto-policies de FIPS manualmente en el contenedor mediante el comando `update-crypto-policies`:

      ```
      # Run these commands inside the container
      dnf install -y crypto-policies-scripts
      update-crypto-policies --set FIPS
      ```

   1. Cree montajes de `bind` dentro del contenedor de AL2023 (esto es similar a cómo funciona `podman` en otras distribuciones):

      ```
      # Run these commands inside the container
      mount --bind /usr/share/crypto-policies/back-ends/FIPS /etc/crypto-policies/back-ends
      echo "FIPS" > /usr/share/crypto-policies/default-fips-config
      mount --bind /usr/share/crypto-policies/default-fips-config /etc/crypto-policies/config
      ```

   1. También es posible crear un montaje de unión para que el contenedor de AL2023 coincida con las crypto-policies del anfitrión de AL2023. Puede ver un ejemplo en el siguiente comando: Esta configuración podría causar problemas si hay diferencias incompatibles en las crypto-policies y las versiones de los paquetes entre el contenedor y el host:

      ```
      sudo docker pull amazonlinux:2023
      sudo docker run --mount type=bind,readonly,src=/etc/crypto-policies,dst=/etc/crypto-policies -it amazonlinux:2023
      ```

1. Tras realizar los pasos anteriores, puede volver a comprobar que FIPS esté habilitado en el contenedor con los siguientes comandos:

   ```
   $ cat /etc/crypto-policies/config
   FIPS
   
   $ cat /proc/sys/crypto/fips_enabled
   1
   ```

# Intercambio de los proveedores de FIPS de OpenSSL en AL2023
<a name="fips-openssl-swap-provider"></a>

En esta sección se explica cómo cambiar entre los proveedores de FIPS de OpenSSL `latest` y `certified` en AL2023.

Para obtener más información sobre FIPS, consulte:
+ [Estándar Federal de Procesamiento de la Información (FIPS)](https://aws.amazon.com/compliance/fips/)
+ [Preguntas frecuentes sobre conformidad: Estándar Federal de Procesamiento de la Información](https://www.nist.gov/standardsgov/compliance-faqs-federal-information-processing-standards-fips)
+ [Política de FedRAMP para la selección y el uso de módulos criptográficos](https://www.fedramp.gov/rev5/fips/)

**importante**  
En AL2023.7 y versiones posteriores, el proveedor de FIPS de OpenSSL predeterminado es el paquete `openssl-fips-provider-latest`, que recibe correcciones de errores y actualizaciones de seguridad periódicas.  
Las instrucciones que aparecen a continuación son únicamente para los clientes que desean fijar un pin al paquete `openssl-fips-provider-certified`. Esta versión del proveedor de FIPS coincidirá con la suma de verificación del certificado NIST y es posible que no tenga las actualizaciones más recientes.  
Consulte las [preguntas frecuentes de AL2023](https://aws.amazon.com/linux/amazon-linux-2023/faqs/) para obtener más información sobre los módulos y las versiones de paquetes con certificación FIPS.

**Requisitos previos**
+ Una instancia de Amazon EC2 AL2023 (AL2023.7 o superior) existente con acceso a Internet para descargar los paquetes necesarios. Para obtener más información sobre cómo lanzar una instancia de AL2023 en Amazon EC2, consulte [Lanzamiento de AL2023 con la consola de Amazon EC2](ec2.md#launch-from-ec2-console).
+ Debe conectarse a la instancia de Amazon EC2 mediante SSH o AWS Systems Manager. Para obtener más información, consulte [Conexión a instancias AL2023](connecting-to-instances.md).
+ Para activar el modo FIPS en AL2023, siga las instrucciones que se indican en [Habilitar el modo FIPS en AL2023](fips-mode.md).

**Cambie entre `openssl-fips-provider-latest` y `openssl-fips-provider-certified`.**

1. Se utiliza `dnf` para cambiar el proveedor de FIPS de OpenSSL:

   ```
   sudo dnf -y swap openssl-fips-provider-latest openssl-fips-provider-certified
   ```

1. Compruebe que utiliza el proveedor de FIPS de OpenSSL certificado. Con AL2023 en modo FIPS, ejecute el siguiente comando:

   ```
   openssl list -providers
   ```

   Debería ver los siguientes datos de salida:

   ```
   Providers:
     base
       name: OpenSSL Base Provider
       version: 3.2.2
       status: active
     default
       name: OpenSSL Default Provider
       version: 3.2.2
       status: active
     fips
       name: Amazon Linux 2023 - OpenSSL FIPS Provider
       version: 3.0.8-d694bfa693b76001
       status: active
   ```

# AL2023 Endurecimiento del núcleo
<a name="kernel-hardening"></a>

 El núcleo 6.1 de Linux AL2023 está configurado y construido con varias opciones y funciones de refuerzo. 

## Opciones de fortalecimiento del kernel (independientes de la arquitectura).
<a name="kernel-hardening-common"></a>


| Opción `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ACPI_CUSTOM_METHOD`](#CONFIG_ACPI_CUSTOM_METHOD)  |  n  |  n  | N/A | N/A | N/A | N/A | 
|  [`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/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_CFI_PERMISSIVE`](#CONFIG_CFI_PERMISSIVE)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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/A |  n  | N/A |  n  | N/A |  n  | 
|  [`CONFIG_DEBUG_CREDENTIALS`](#CONFIG_DEBUG_CREDENTIALS)  |  n  |  n  | N/A | N/A | N/A | N/A | 
|  [`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/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_HARDENED_USERCOPY_PAGESPAN`](#CONFIG_HARDENED_USERCOPY_PAGESPAN)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_HIBERNATION`](#CONFIG_HIBERNATION)  |  y  |  y  |  y  |  y  |  y  |  y  | 
|  [`CONFIG_HW_RANDOM_TPM`](#CONFIG_HW_RANDOM_TPM)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.pem  |  certs/signing\$1key.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/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_PAGE_POISONING_ZERO`](#CONFIG_PAGE_POISONING_ZERO)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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/A | N/A | N/A | N/A | 
|  [`CONFIG_RANDOM_TRUST_CPU`](#CONFIG_RANDOM_TRUST_CPU)  |  y  |  y  | N/A | N/A | N/A | N/A | 
|  [`CONFIG_REFCOUNT_FULL`](#CONFIG_REFCOUNT_FULL)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_SCHED_CORE`](#CONFIG_SCHED_CORE)  | N/A |  y  | N/A |  y  | N/A |  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/A | N/A | N/A | N/A | 
|  [`CONFIG_SECURITY_WRITABLE_HOOKS`](#CONFIG_SECURITY_WRITABLE_HOOKS)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`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 los métodos ACPI estén en tiempo de ejecución (CONFIG\$1ACPI\$1CUSTOM\$1METHOD) inserted/replaced
<a name="CONFIG_ACPI_CUSTOM_METHOD"></a>

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

Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings).

### Varios formatos binarios (`binfmt_misc`)
<a name="CONFIG_BINFMT_MISC"></a>

 Aunque esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), no establece esta opción de configuración con los valores recomendados por KSPP](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). AL2023 En AL2023, esta función es opcional y se ha creado como un módulo del núcleo. 

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

 Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `BUG()` si el kernel detecta daños en los datos al comprobar la validez de las estructuras de memoria del kernel
<a name="CONFIG_BUG_ON_DATA_CORRUPTION"></a>

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

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

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

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

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `CONFIG_DEBUG`endurecimiento cerrado
<a name="CONFIG_DEBUG_KERNEL"></a>

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

### Deshabilite el DMA para los dispositivos PCI en el código auxiliar EFI antes de configurar el IOMMU
<a name="CONFIG_EFI_DISABLE_PCI_DMA"></a>

 Si bien esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### Reforzamiento para copiar memoria entre el núcleo y el espacio de usuario
<a name="CONFIG_HARDENED_USERCOPY"></a>

 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()`. Como AL2023 incluye un núcleo 6.1, esta opción ya no es relevante para. AL2023 

 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 ya no se aplica al núcleo 6.1 de. AL2023 

 Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Soporte para hibernación
<a name="CONFIG_HIBERNATION"></a>

 Aunque esta opción es una de las opciones recomendadas por [el KSPP (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Esta opción debe estar habilitada para permitir la [hibernación de la instancia bajo demanda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) y para permitir la [hibernación de las instancias de spot interrumpidas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernate-spot-instances.html) 

### Generación de números aleatorios
<a name="kernel-rng"></a>

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

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

 Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. En AL2023, esta función es opcional y se ha creado como un módulo del núcleo. 

### Ponga a cero todas las páginas del núcleo y la memoria del asignador de bloques durante la asignación y desasignación
<a name="kernel-init-on-alloc-free"></a>

 Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Estas opciones están deshabilitadas AL2023 debido al posible impacto en el rendimiento que tendría la activació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`)
<a name="CONFIG_INIT_STACK_ALL_ZERO"></a>

 Si bien esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Esta opción requiere GCC 12 o más, mientras que se incluye con GCC 11 AL2023 . 

### Firma del módulo del núcleo
<a name="kernel-config-modules"></a>

 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 del kernel estén firmados, [Módulo de seguridad Lockdown Linux (LSM)](#CONFIG_SECURITY_LOCKDOWN_LSM) pueden configurarlos para que así lo exijan. 

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

 Aunque esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Esta opción está habilitada para poder utilizar la funcionalidad `kdump`. 

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

 AL2023 permite el soporte del 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`
<a name="CONFIG_KFENCE"></a>

 Si bien esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### Soporte para `pty` heredado
<a name="CONFIG_LEGACY_PTYS"></a>

 AL2023 utiliza la interfaz moderna PTY (). `devpts` 

 Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

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

 AL2023 crea el `lockdown` LSM, que bloqueará automáticamente el núcleo cuando se utilice 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), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Cuando no se utiliza el arranque seguro, es posible activar el LSM de bloqueo y configurarlo como se desee. 

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

 Si bien esta opción es una de las configuraciones recomendadas por el [Kernel Self Protection Project (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Del mismo modo[Ponga a cero todas las páginas del núcleo y la memoria del asignador de bloques durante la asignación y desasignación](#kernel-init-on-alloc-free), está deshabilitada en el AL2023 núcleo debido a su posible impacto en el rendimiento. 

### Protector de pila
<a name="CONFIG_STACKPROTECTOR"></a>

 El AL2023 núcleo se ha creado con la función de protección contra pilas que GCC está habilitada con esta opción. `-fstack-protector-strong` 

 Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

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

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `panic()` timeout
<a name="CONFIG_PANIC_TIMEOUT"></a>

 El AL2023 núcleo está configurado con este valor establecido en`0`, lo que significa que el núcleo no se reiniciará cuando entre en pánico. Aunque esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. Esto se puede configurar mediante `sysctl`, `/proc/sys/kernel/panic` y en la línea de comandos del kernel. 

### Modelos de seguridad
<a name="CONFIG_SECURITY"></a>

 AL2023 se activa SELinux en modo permisivo de forma predeterminada. Para obtener más información, consulte [Configuración de los modos de SELinux para AL2023](selinux-modes.md). 

 Los módulos [Módulo de seguridad Lockdown Linux (LSM)](#CONFIG_SECURITY_LOCKDOWN_LSM) y `yama` también están habilitados. 

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

 Si bien esta opción es una de las opciones recomendadas por el [Kernel Self Protection Project (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### La pila del kernel realiza una asignación al azar las entradas al syscall
<a name="CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT"></a>

 Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por 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`)
<a name="CONFIG_REFCOUNT_FULL"></a>

 Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por 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`)
<a name="CONFIG_SCHED_CORE"></a>

 El AL2023 núcleo está construido con`CONFIG_SCHED_CORE`, lo que permite el uso de las 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Comprobar si la pila está dañada en las llamadas a `schedule()` (`CONFIG_SCHED_STACK_END_CHECK`)
<a name="CONFIG_SCHED_STACK_END_CHECK"></a>

 El AL2023 núcleo se ha creado con `CONFIG_SCHED_STACK_END_CHECK` enabled. Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Fortalecimiento del asignador de memoria
<a name="kernel-allocator-hardening"></a>

 El AL2023 núcleo permite reforzar el asignador de memoria del núcleo con las opciones, y. `CONFIG_SHUFFLE_PAGE_ALLOCATOR` `CONFIG_SLAB_FREELIST_HARDENED` `CONFIG_SLAB_FREELIST_RANDOM` Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Soporte de depuración SLUB
<a name="CONFIG_SLUB_DEBUG"></a>

 El AL2023 núcleo `CONFIG_SLUB_DEBUG` lo activa, 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 kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### CONFIG\$1STATIC\$1USERMODEHELPER
<a name="CONFIG_STATIC_USERMODEHELPER"></a>

 Aunque esta opción es una de las opciones recomendadas por [el KSPP (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por 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`)
<a name="CONFIG_STRICT_KERNEL_RWX"></a>

 El AL2023 núcleo está configurado para marcar el texto y la memoria del núcleo y los módulos del núcleo como de solo lectura, y la rodata memoria no textual se marca como no ejecutable. Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

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

 El AL2023 núcleo está diseñado 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Pila virtualmente mapeada con páginas de protección (`CONFIG_VMAP_STACK`)
<a name="CONFIG_VMAP_STACK"></a>

 El AL2023 núcleo está construido con`CONFIG_VMAP_STACK`, lo que permite disponer de 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Compilar con las advertencias del compilador como errores (`CONFIG_WERROR`)
<a name="CONFIG_WERROR"></a>

 Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### Registrar la puesta a cero en la función exit (`CONFIG_ZERO_CALL_USED_REGS`)
<a name="CONFIG_ZERO_CALL_USED_REGS"></a>

 Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### Dirección mínima para la asignación del espacio de usuario
<a name="CONFIG_DEFAULT_MMAP_MIN_ADDR"></a>

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### `clang`opciones de endurecimiento específicas
<a name="kernel-hardening-clang"></a>

 El AL2023 núcleo está construido con y GCC noclang, 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. Aunque esta opción es una de las opciones recomendadas [por el KSPP (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

## Opciones de fortalecimiento del kernel específicas para x86-64
<a name="kernel-hardening-x86-64"></a>


| Opción `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_AMD_IOMMU`](#CONFIG_AMD_IOMMU)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_AMD_IOMMU_V2`](#CONFIG_AMD_IOMMU_V2)  | N/A |  y  | N/A | N/A | N/A | N/A | 
|  [`CONFIG_IA32_EMULATION`](#CONFIG_IA32_EMULATION)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_INTEL_IOMMU`](#CONFIG_INTEL_IOMMU)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_INTEL_IOMMU_DEFAULT_ON`](#CONFIG_INTEL_IOMMU_DEFAULT_ON)  | N/A |  n  | N/A |  n  | N/A |  n  | 
|  [`CONFIG_INTEL_IOMMU_SVM`](#CONFIG_INTEL_IOMMU_SVM)  | N/A |  n  | N/A |  n  | N/A |  n  | 
|  [`CONFIG_LEGACY_VSYSCALL_NONE`](#CONFIG_LEGACY_VSYSCALL_NONE)  | N/A |  n  | N/A |  n  | N/A |  n  | 
|  [`CONFIG_MODIFY_LDT_SYSCALL`](#CONFIG_MODIFY_LDT_SYSCALL)  | N/A |  n  | N/A |  n  | N/A |  n  | 
|  [`CONFIG_PAGE_TABLE_ISOLATION`](#CONFIG_PAGE_TABLE_ISOLATION)  | N/A |  y  | N/A | N/A | N/A | N/A | 
|  [`CONFIG_RANDOMIZE_MEMORY`](#CONFIG_RANDOMIZE_MEMORY)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_X86_64`](#CONFIG_X86_64)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_X86_MSR`](#CONFIG_X86_MSR)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_X86_VSYSCALL_EMULATION`](#CONFIG_X86_VSYSCALL_EMULATION)  | N/A |  y  | N/A |  y  | N/A |  y  | 
|  [`CONFIG_X86_X32`](#CONFIG_X86_X32)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_X86_X32_ABI`](#CONFIG_X86_X32_ABI)  | N/A |  n  | N/A |  n  | N/A |  n  | 

### Compatibilidad con x86-64
<a name="CONFIG_X86_64"></a>

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

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

 El AL2023 núcleo 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

 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 núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por el KSPP. 

 La `CONFIG_INTEL_IOMMU_SVM` opción no está habilitada actualmente en. AL2023 Si bien esta opción es una de las opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### Support para espacio de usuario de 32 bits
<a name="kernel-hardening-32bit-support"></a>

**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 ya AL2023 no incluye ningún paquete de 32 bits, el núcleo 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](compare-with-al2.md#i686). 

 Para permitir la ejecución de aplicaciones de espacio de usuario de 32 bits, AL2023 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 opciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Compatibilidad con registro específico de modelo x86 (MSR)
<a name="CONFIG_X86_MSR"></a>

 La opción `CONFIG_X86_MSR` está habilitada para admitir `turbostat`. Aunque esta opción es una de las configuraciones recomendadas por el [Proyecto de autoprotección del núcleo (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

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

 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 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Eliminar el mapeo del kernel en modo de usuario
<a name="CONFIG_PAGE_TABLE_ISOLATION"></a>

 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 kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Asignación al azar de las secciones de memoria del kernel
<a name="CONFIG_RANDOMIZE_MEMORY"></a>

 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 kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

## Opciones de refuerzo del kernel específicas de aarch64
<a name="kernel-hardening-aarch64"></a>


| Opción `CONFIG` | AL2023/6.1/aarch64 | AL2023/6.1/x86\$164 | AL2023/6.12/aarch64 | AL2023/6.12/x86\$164 | AL2023/6.18/aarch64 | AL2023/6.18/x86\$164 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  [`CONFIG_ARM64_BTI`](#CONFIG_ARM64_BTI)  |  y  | N/A |  y  | N/A |  y  | N/A | 
|  [`CONFIG_ARM64_BTI_KERNEL`](#CONFIG_ARM64_BTI_KERNEL)  | N/A | N/A | N/A | N/A | N/A | N/A | 
|  [`CONFIG_ARM64_PTR_AUTH`](#CONFIG_ARM64_PTR_AUTH)  |  y  | N/A |  y  | N/A |  y  | N/A | 
|  [`CONFIG_ARM64_PTR_AUTH_KERNEL`](#CONFIG_ARM64_PTR_AUTH_KERNEL)  |  y  | N/A |  y  | N/A |  y  | N/A | 
|  [`CONFIG_ARM64_SW_TTBR0_PAN`](#CONFIG_ARM64_SW_TTBR0_PAN)  |  y  | N/A |  y  | N/A |  y  | N/A | 
|  [`CONFIG_UNMAP_KERNEL_AT_EL0`](#CONFIG_UNMAP_KERNEL_AT_EL0)  |  y  | N/A |  y  | N/A |  y  | N/A | 

### Identificación del objetivo de ramificaciones
<a name="CONFIG_ARM64_BTI"></a>

 El AL2023 núcleo 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 kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

 La `CONFIG_ARM64_BTI_KERNEL` opción no está habilitada porque está construida con ellaGCC, y la compatibilidad para compilar el núcleo con esta opción está [actualmente deshabilitada en el núcleo original debido](https://github.com/torvalds/linux/commit/c0a454b9044fdc99486853aa424e5b3be2107078) a un error de [gcc](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671). AL2023 Aunque esta opción es una de las configuraciones recomendadas por [el KSPP (KSPP), AL2023 no establece esta opción de configuración con los valores recomendados](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings) por KSPP. 

### Pointer Authentication (`CONFIG_ARM64_PTR_AUTH`)
<a name="CONFIG_ARM64_PTR_AUTH"></a>

 El AL2023 núcleo se ha creado 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](https://aws.amazon.com/ec2/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 `CONFIG_ARM64_PTR_AUTH_KERNEL` opción también está habilitada, el AL2023 núcleo puede utilizar la protección de direcciones de retorno por sí mismo. 

 Esta opción es una de las [configuraciones recomendadas por el proyecto de autoprotección del kernel](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Emular acceso privilegiado sin utilizar nunca la conmutación `TTBR0_EL1`
<a name="CONFIG_ARM64_SW_TTBR0_PAN"></a>

 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

### Anular la asignación del kernel cuando se ejecute en el espacio de usuario
<a name="CONFIG_UNMAP_KERNEL_AT_EL0"></a>

 El AL2023 núcleo está configurado para desmapearlo 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](https://kernsec.org/wiki/index.php/Kernel_Self_Protection_Project/Recommended_Settings). 

# Inicio de sesión de metadatos del repositorio AL2023
<a name="repo-metadata-signing"></a>

A partir del lanzamiento`2023.11.20260406`, AL2023 los repositorios incluyen firmas criptográficas para los metadatos del repositorio. Cada `repomd.xml` archivo del repositorio va acompañado de un archivo de firma GPG independiente (`repomd.xml.asc`) que puede utilizar para comprobar la autenticidad e integridad de los metadatos del repositorio antes de descargar los paquetes.

Esta firma se suma a la firma del paquete RPM existente (`gpgcheck`), que verifica los paquetes individuales. La firma de los metadatos del repositorio verifica los metadatos que describen el contenido del repositorio, como la lista de paquetes disponibles y sus sumas de verificación.

## Cómo funciona la firma de metadatos del repositorio
<a name="repo-metadata-signing-overview"></a>

Cuando se publican AL2023 los repositorios, los metadatos del repositorio (`repomd.xml`) se firman con una clave AWS KMS. La firma separada resultante (`repomd.xml.asc`) se coloca junto a los metadatos en el repositorio.

Cuando lo habilitas `repo_gpgcheck` en la configuración de tu repositorio, descarga y verifica DNF automáticamente la `repomd.xml.asc` firma con la clave pública GPG antes de usar los metadatos del repositorio. Si se produce un error en la verificación de la firma, DNF rechaza los metadatos del repositorio y no continúa con las operaciones de empaquetado desde ese repositorio. Para obtener más información al respecto`repo_gpgcheck`, consulte la [Referencia DNF de configuración](https://dnf.readthedocs.io/en/latest/conf_ref.html).

Los siguientes AL2023 repositorios incluyen metadatos firmados:
+ Repositorio principal () `amazonlinux`
+ Repositorio Kernel Livepatch () `kernel-livepatch`
+ Repositorio NVIDIA () `amazonlinux-nvidia`
+ Paquetes complementarios para el repositorio de Amazon Linux (`amazonlinux-spal`)

## Diferencia entre `gpgcheck` y `repo_gpgcheck`
<a name="repo-metadata-signing-gpgcheck-vs-repo-gpgcheck"></a>


| Opción | Qué verifica | Predeterminado en AL2023 | 
| --- | --- | --- | 
| gpgcheck=1 | Verifica la firma GPG de los paquetes RPM individuales antes de la instalación. | Habilitado | 
| repo\$1gpgcheck=1 | Verifica la firma GPG de los metadatos del repositorio (repomd.xml) antes de usarlo. | Desactivado (activado de forma predeterminada a partir de la versión 2023.12 trimestral) | 

Le recomendamos encarecidamente que active las dos `gpgcheck` opciones`repo_gpgcheck`. Esto garantiza que tanto los metadatos del repositorio como los paquetes individuales se verifiquen antes de usarlos.

## Habilitar la verificación de los metadatos del repositorio
<a name="repo-metadata-signing-enable"></a>

Puede habilitar la verificación de los metadatos de los repositorios individuales actualizando sus archivos de configuración.

**importante**  
A partir de la versión `2023.12` trimestral, se `repo_gpgcheck=1` activará de forma predeterminada en los archivos de configuración del AL2023 repositorio.

### Habilitar para un repositorio específico
<a name="repo-metadata-signing-enable-per-repo"></a>

Los archivos de configuración del AL2023 repositorio están `/etc/yum.repos.d/` `repo_gpgcheck=0` configurados de forma predeterminada. Para habilitar la verificación de los metadatos del repositorio, cambie este valor a `1` en la configuración del repositorio. Por ejemplo, para habilitarlo en el repositorio principal:

```
[amazonlinux]
name=Amazon Linux 2023 repository
...
gpgcheck=1
repo_gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023
```

## Comprobar que la firma de metadatos del repositorio funciona
<a name="repo-metadata-signing-verify"></a>

Tras habilitarla`repo_gpgcheck=1`, puedes comprobar que la verificación de los metadatos funciona borrando la DNF caché y actualizando los metadatos:

```
[ec2-user ~]$ sudo dnf clean metadata
[ec2-user ~]$ sudo dnf makecache
```

Si la verificación de los metadatos se realiza correctamente, DNF importa la clave GPG (si aún no se ha importado) y crea la caché de metadatos sin errores. Verá una salida similar a la siguiente:

```
Amazon Linux 2023 repository                    1.7 MB/s | 1.8 kB     00:00
Importing GPG key 0xD832C631:
 Userid     : "Amazon Linux <amazon-linux@amazon.com>"
 Fingerprint: B21C 50FA 44A9 9720 EAA7 2F7F E951 904A D832 C631
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023
Amazon Linux 2023 repository                      18 MB/s |  55 MB     00:03
Metadata cache created.
```

Si la verificación de la firma no se realiza correctamente, DNF muestra un mensaje de error que indica un error en la verificación de la firma GPG y un error al crear la caché de metadatos.

## Claves públicas GPG para repositorios AL2023
<a name="repo-metadata-signing-gpg-keys"></a>

Las claves públicas GPG utilizadas para la verificación de los metadatos del repositorio se instalan mediante la configuración del repositorio correspondiente en. RPMs `/etc/pki/rpm-gpg/` En la siguiente tabla se enumeran las claves públicas utilizadas por cada repositorio.


| Repository | Clave de firma de paquetes | Clave de firma de Repodata | Distribuido en | 
| --- | --- | --- | --- | 
| Núcleo (amazonlinux) | RPM-GPG-KEY-amazon-linux-2023 | RPM-GPG-KEY-amazon-linux-2023 | system-release | 
| Kernel Livepatch () kernel-livepatch | RPM-GPG-KEY-amazon-linux-2023 | RPM-GPG-KEY-amazon-linux-2023 | system-release | 
| NVIDIA () amazonlinux-nvidia | RPM-GPG-KEY-NVIDIA-D42D0685 | RPM-GPG-KEY-amazon-linux-2023-nvidia | nvidia-release | 
| SPAL () amazonlinux-spal | RPM-GPG-KEY-amazonlinux-spal | RPM-GPG-KEY-amazonlinux-spal | spal-release | 

Estas claves se instalan automáticamente al instalar el RPM de configuración del repositorio correspondiente.

# UEFI Secure Boot está activado AL2023
<a name="uefi-secure-boot"></a>

AL2023 admite el arranque seguro UEFI a partir de la versión 2023.1. Debe usar AL2023 con instancias de Amazon EC2 que admitan UEFI y Arranque seguro UEFI. Para obtener más información, consulte [Requisitos para lanzar una instancia de Amazon EC2 en modo de arranque UEFI en](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launch-instance-boot-mode.html) la *Guía del usuario de Amazon EC2*.

AL2023 las instancias con el arranque seguro UEFI habilitado solo aceptan el código de nivel de núcleo, incluidos el núcleo de Linux y los módulos, que estén firmados por él, de Amazon modo que puede asegurarse de que su instancia solo ejecute códigos de nivel de núcleo firmados por. AWS

 Para obtener más información sobre las instancias de Amazon EC2 y el arranque seguro UEFI, consulte [Arranque seguro UEFI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/uefi-secure-boot.html) en la *Guía del usuario de Amazon EC2*.

**Requisitos previos**
+ Debe utilizar una AMI con la AL2023 versión 2023.1 o superior.
+ El tipo de instancia debe ser compatible con el modo Arranque seguro UEFI. Para obtener más información, consulte [Requisitos para lanzar una instancia de Amazon EC2 en modo de arranque UEFI en](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launch-instance-boot-mode.html) la *Guía del usuario de Amazon EC2*.

## Active el arranque seguro de UEFI AL2023
<a name="enablement"></a>

 AL2023 AMIs Incorpora de forma estándar un gestor de arranque y un núcleo firmados con nuestras claves. Puede habilitar el arranque seguro de UEFI inscribiendo las instancias existentes o creándolas AMIs con el arranque seguro de UEFI prehabilitado registrando una imagen a partir de una instantánea. El arranque seguro UEFI no está activado de forma predeterminada en el estándar. AL2023 AMIs

El modo de arranque AL2023 AMIs está configurado para garantizar `uefi-preferred` que las instancias lanzadas con ellas AMIs utilicen el firmware UEFI, si el tipo de instancia es compatible con UEFI. Si el tipo de instancia no admite UEFI, la instancia se lanza con firmware de la BIOS anterior. Cuando una instancia se ejecuta en el modo BIOS anterior, no se aplica el Arranque seguro UEFI.

Para obtener más información sobre los modos de arranque de las AMI en instancias de Amazon EC2, consulte [Comportamiento de inicialización de instancias con modos de arranque de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html) en la *Guía del usuario de Amazon EC2*.

**Topics**
+ [Active el arranque seguro de UEFI AL2023](#enablement)
+ [Inscripción de una instancia existente](#enrollment-existing-instance)
+ [Registrar imagen de una instantánea](#secure-boot-amis)
+ [Actualizaciones de revocación](#revocation-updates)
+ [Cómo funciona UEFI Secure Boot en AL2023](#shim-use)
+ [Inscribir sus propias claves](#enrolling-own-keys)

## Inscripción de una instancia existente
<a name="enrollment-existing-instance"></a>

Para inscribir una instancia existente, rellene las variables de firmware UEFI específicas con un conjunto de claves que permitan al firmware comprobar el cargador de arranque comprobar el kernel en el siguiente arranque.

1. Amazon Linux proporciona una herramienta para simplificar el proceso de inscripción. Ejecute el siguiente comando para aprovisionar la instancia con el conjunto de claves y certificados necesario. 

   ```
   sudo amazon-linux-sb enroll
   ```

1. Ejecute el siguiente comando para volver a arrancar la instancia . Una vez reiniciada la instancia, se habilitará Arranque seguro UEFI. 

   ```
   sudo reboot
   ```

**nota**  
Amazon Linux AMIs actualmente no es compatible con Nitro Trusted Platform Module (NitroTPM). Si necesita NitroTPM además de Arranque seguro UEFI, utilice la información de la siguiente sección.

## Registrar imagen de una instantánea
<a name="secure-boot-amis"></a>

Al registrar una AMI a partir de una instantánea de un volumen raíz de Amazon EBS mediante la API `register-image` de Amazon EC2, puede aprovisionar la AMI con un blob binario que contenga el estado del almacén de variables UEFI. Si lo proporciona AL2023 `UefiData`, habilita el arranque seguro de UEFI y no necesita seguir los pasos de la sección anterior.

Para obtener más información sobre la creación y el uso de un blob binario, consulte [Crear un blob binario que contenga un almacén de variables precargado](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami-with-uefi-secure-boot.html#uefi-secure-boot-optionB) en la *Guía del usuario de Amazon EC2*.

AL2023 proporciona un blob binario prediseñado que se puede utilizar directamente en las instancias de Amazon EC2. El blob binario se encuentra en `/usr/share/amazon-linux-sb-keys/uefi.vars` en una instancia en ejecución. Este blob lo proporciona el paquete `amazon-linux-sb-keys` RPM, que se instala de forma predeterminada a AL2023 AMIs partir de la versión 2023.1.

**nota**  
Para asegurarse de que utiliza la versión más reciente de las claves y las revocaciones, utilice el blob de la misma versión AL2023 que utilizó para crear la AMI.

Al registrar una imagen, le recomendamos que utilice el parámetro `BootMode` de la API [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage.html) establecido en `uefi`. Esto le permite activar NitroTPM configurando el parámetro `TpmSupport` en `v2.0`. Además, al configurar `BootMode` en `uefi` garantiza que el Arranque seguro UEFI esté habilitado y no se pueda deshabilitar de forma accidental al cambiar a un tipo de instancia que no sea compatible con UEFI.

Para obtener más información sobre NitroTPM, consulte [Instancias de NitroTPM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nitrotpm.html) en la *Guía del usuario de Amazon EC2*.

## Actualizaciones de revocación
<a name="revocation-updates"></a>

Puede ser necesario que Amazon Linux distribuya una nueva versión del cargador de arranque `grub2` o del kernel de Linux firmada con las claves actualizadas. En ese caso, es posible que sea necesario revocar la clave anterior para evitar que los errores explotables de versiones anteriores del cargador de arranque pasen por alto el proceso de verificación de Arranque seguro UEFI.

Las actualizaciones de paquetes a los paquetes `grub2` o `kernel` siempre actualizan automáticamente la lista de revocaciones en el almacén de variables UEFI de la instancia en ejecución. Esto significa que, con el Arranque seguro UEFI habilitado, ya no se puede ejecutar la versión anterior de un paquete después de instalar una actualización de seguridad para el paquete.

## Cómo funciona UEFI Secure Boot en AL2023
<a name="shim-use"></a>

A diferencia de otras distribuciones de Linux, Amazon Linux no proporciona un componente adicional, denominado shim, que sirva de cargador de arranque de primera fase. El shim generalmente está firmado con claves de Microsoft. Por ejemplo, en las distribuciones de Linux con el shim, el shim carga el cargador de arranque `grub2`, que utiliza el propio código del shim para verificar el kernel de Linux. Además, el shim mantiene su propio conjunto de claves y revocaciones en la base de datos de claves del propietario de la máquina (MOK), ubicada en el almacén de variables UEFI y controlada con la herramienta `mokutil`.

Amazon Linux no proporciona un shim. Como el propietario de la AMI controla las variables UEFI, este paso intermedio no es necesario y afectaría negativamente a los tiempos de inicio y arranque. Además, optamos por no confiar en las claves de ningún proveedor de forma predeterminada, para reducir la posibilidad de que se puedan ejecutar archivos binarios no deseados. Como siempre, los clientes pueden incluir archivos binarios si así lo desean. 

Con Amazon Linux, UEFI carga y verifica directamente nuestro cargador de arranque `grub2`. El cargador de arranque `grub2` se modificó para usar UEFI para verificar el kernel de Linux después de cargarlo. Por lo tanto, el kernel de Linux se verifica con los mismos certificados almacenados en la variable `db` UEFI normal (base de datos de claves autorizadas) y se comprueba con la misma variable `dbx` (base de datos de revocaciones) que el cargador de arranque y otros archivos binarios de UEFI. Al proporcionar nuestras propias claves PK y KEK, que controlan el acceso a la base de datos db y a la base de datos dbx, podemos distribuir las actualizaciones y revocaciones firmadas según sea necesario sin un intermediario como el shim.

Para obtener más información sobre el arranque seguro UEFI, consulte [Funcionamiento del arranque seguro UEFI con instancias de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-uefi-secure-boot-works.html) en la *Guía del usuario de Amazon EC2*.

## Inscribir sus propias claves
<a name="enrolling-own-keys"></a>

Como se ha documentado en la sección anterior, Amazon Linux no requiere un `shim` para el Arranque seguro UEFI en Amazon EC2. Cuando lea la documentación de otras distribuciones de Linux, puede encontrar documentación para administrar la base de datos de claves de propietario de la máquina (MOK)`mokutil`, que no está presente en ella. AL2023 Los entornos `shim` y MOK solucionan algunas limitaciones de la inscripción de claves en el firmware UEFI que no se aplican a la forma en que Amazon EC2 implementa el Arranque seguro UEFI. Con Amazon EC2, existen mecanismos para manipular directamente y con facilidad las claves del almacén de variables UEFI.

Si desea inscribir sus propias claves, puede hacerlo manipulando el almacén de variables dentro de una instancia existente (consulte [Agregar claves al almacén de variables desde la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami-with-uefi-secure-boot.html#uefi-secure-boot-optionA)) o creando un blob binario precargado (consulte [Crear un blob binario que contenga un](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-ami-with-uefi-secure-boot.html#uefi-secure-boot-optionB) almacén de variables precargado).