

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

# Aplicação de patches do kernel em tempo real no AL2023
<a name="live-patching"></a>

Você pode usar a aplicação de patches do kernel em tempo real para o AL2023 a fim de aplicar patches específicos para vulnerabilidades de segurança e bugs críticos a um kernel do Linux em execução, sem reiniciar ou interromper as aplicações que estão em execução. Além disso, a aplicação de patches do kernel em tempo real pode ajudar a melhorar a disponibilidade da aplicação, ao mesmo tempo em que aplica essas correções até que o sistema possa ser reinicializado.

A AWS disponibiliza dois tipos de patches do kernel em tempo real para o AL2023:
+ **Security updates** (Atualizações de segurança): contêm atualizações para vulnerabilidades e exposições comuns (CVEs) do Linux. Normalmente, essas atualizações são classificadas como *importantes* ou *críticas* de acordo com as classificações do Boletim de segurança do Amazon Linux. Geralmente, elas são mapeadas com uma pontuação 7 ou maior do Common Vulnerability Scoring System (CVSS – Sistema de pontuação de vulnerabilidades comuns). Em alguns casos, a AWS pode fornecer atualizações antes da atribuição de CVE. Nesses casos, os patches podem aparecer como correções de erros.
+ **Correções de erros**: contêm correções de erros críticos e problemas de estabilidade que não estão associados às CVEs.

A AWS oferece patches do kernel em tempo real para uma versão do kernel do AL2023 por até 3 meses depois de seu lançamento. Após esse período, é necessário fazer a atualização para uma versão posterior do kernel para continuar a receber patches ao vivo do kernel.

Os patches ao vivo do kernel para o AL2023 são disponibilizados como pacotes RPM assinados nos repositórios existentes do AL2023. Os patches podem ser instalados em instâncias individuais usando fluxos de trabalho de **gerenciamento de pacotes DNF** existentes. Ou podem ser instalados em um grupo de instâncias gerenciadas usando o AWS Systems Manager.

O Kernel Live Patching no AL2023 é fornecido sem custo adicional.

**Topics**
+ [Limitações](#live-patching-limitations)
+ [Configurações e pré-requisitos compatíveis](#live-patching-prereq)
+ [Trabalhar com o Kernel Live Patching](#working-with-live-patching)

## Limitações
<a name="live-patching-limitations"></a>

Ao aplicar um patch ao vivo no kernel, você não pode executar a hibernação, usar ferramentas avançadas de depuração (como `SystemTap`, `kprobes` e ferramentas baseadas em `eBPF`) ou acessar arquivos de saída `ftrace` usados pela infraestrutura do Kernel Live Patching.

**nota**  
Devido a limitações técnicas, alguns problemas não podem ser resolvidos com a aplicação de patches em tempo real. Por causa disso, essas correções não serão distribuídas no pacote de patch do kernel em tempo real, mas somente na atualização do pacote nativo do kernel. Você pode instalar o pacote nativo do kernel e [atualizar e reinicializar](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) o sistema para ativar os patches normalmente.

## Configurações e pré-requisitos compatíveis
<a name="live-patching-prereq"></a>

O Kernel Live Patching pode ser usado nas instâncias do Amazon EC2 e nas máquinas virtuais locais que executam o AL2023.

Para usar o Kernel Live Patching no AL2023, você deve usar o seguinte:
+ Um `x86_64` de 64 bits ou arquitetura `ARM64`
+ Versão `6.1` ou `6.12` do kernel

### Requisitos de política
<a name="policy-requirements"></a>

Para baixar pacotes dos repositórios do AL2023, o Amazon EC2 precisa acessar os buckets do Amazon S3 pertencentes ao serviço. Se estiver usando um endpoint do Amazon Virtual Private Cloud (VPC) para o Amazon S3 em seu ambiente, garanta que sua política de endpoint da VPC permita acesso a esses buckets públicos. A tabela a seguir descreve o bucket do Amazon S3 que o Amazon EC2 pode precisar acessar para a aplicação de patches do kernel em tempo real.


| ARN do bucket do S3 | Descrição | 
| --- | --- | 
|  arn:aws:s3:::al2023-repos-*region*-de612dc2/\$1  |  Bucket do Amazon S3 contendo repositórios do AL2023  | 

## Trabalhar com o Kernel Live Patching
<a name="working-with-live-patching"></a>

Você pode habilitar e usar o Kernel Live Patching em instâncias individuais usando a linha de comando na própria instância. Como alternativa, você pode habilitar e usar o Kernel Live Patching em um grupo de instâncias gerenciadas usando o AWS Systems Manager.

As seções a seguir explicam como habilitar e usar o Kernel Live Patching em instâncias individuais usando a linha de comando.

Para obter mais informações sobre como habilitar e usar o Kernel Live Patching em um grupo de instâncias gerenciadas, consulte [Use Kernel Live Patching on AL2023 instances](https://docs.aws.amazon.com/systems-manager/latest/userguide/kernel-live-patching.html) no *Guia do usuário do AWS Systems Manager*.

**Topics**
+ [Habilitar o Kernel Live Patching](#live-patching-enable)
+ [Visualizar os patches ao vivo do kernel disponíveis](#live-patching-view-available)
+ [Aplicar patches ao vivo do kernel](#live-patching-apply)
+ [Visualizar os patches ao vivo do kernel aplicados](#live-patching-view)
+ [Desabilitar o Kernel Live Patching](#live-patching-disable)

### Habilitar o Kernel Live Patching
<a name="live-patching-enable"></a>

O Kernel Live Patching está desabilitado por padrão no AL2023. Para usar patches ao vivo, você deve instalar o plug-in **DNF** para patches ao vivo do kernel e ativar a funcionalidade de patching ao vivo.

**Como habilitar o Kernel Live Patching**

1. Os patches ao vivo do kernel estão disponíveis para AL2023 com a versão `6.1` do kernel. Para verificar a versão do kernel, execute o comando a seguir.

   ```
   $ sudo dnf list kernel
   ```

1. Instale o plug-in **DNF** para o Kernel Live Patching.

   ```
   $ sudo dnf install -y kpatch-dnf
   ```

1. Habilite o plug-in **DNF** para o Kernel Live Patching.

   ```
   $ sudo dnf kernel-livepatch -y auto
   ```

   Este comando também instala a versão mais recente de RPM do patch ao vivo do kernel a partir dos repositórios configurados.

1. Para confirmar se o plug-in **DNF** para a aplicação de patches ao vivo no kernel foi instalado com êxito, execute o comando a seguir.

   Quando você habilita o Kernel Live Patching, um RPM de patch ao vivo do kernel vazio é aplicado automaticamente. Se a aplicação de patches do kernel em tempo real tiver sido habilitada com êxito, este comando retornará uma lista que inclui o RPM de patch do kernel em tempo real vazio inicial (e outro RPM que configura o repositório DNF contendo os patches em tempo real).

   ```
   $ sudo rpm -qa | grep kernel-livepatch
   kernel-livepatch-repo-s3-2023.7.20250428-0.amzn2023.noarch
   kernel-livepatch-6.1.134-150.224-1.0-0.amzn2023.x86_64
   ```

1. Instale o pacote **kpatch**.

   ```
   $ sudo dnf install -y kpatch-runtime
   ```

1. Atualize o serviço **kpatch**, caso tenha sido instalado anteriormente. 

   ```
   $ sudo dnf upgrade kpatch-runtime
   ```

1. Inicie o serviço **kpatch**. Este serviço carrega todos os patches ao vivo do kernel durante ou após a inicialização. 

   ```
   $ sudo systemctl enable kpatch.service && sudo systemctl start kpatch.service
   ```

### Visualizar os patches ao vivo do kernel disponíveis
<a name="live-patching-view-available"></a>

Os alertas de segurança do Amazon Linux são publicados no Centro de segurança do Amazon Linux. Para obter mais informações sobre os alertas de segurança do AL2023, que incluem alertas para patches ao vivo do kernel, consulte o [Centro de segurança do Amazon Linux](https://alas.aws.amazon.com/alas2023.html). Os patches ao vivo do kernel são prefixados com `ALASLIVEPATCH`. O Centro de segurança do Amazon Linux pode não listar patches ao vivo do kernel que resolvam erros.

Também é possível descobrir os patches ao vivo do kernel disponíveis para recomendações e CVEs usando a linha de comando.

**Como listar todos os patches ao vivo do kernel disponíveis para recomendações**  
Use o seguinte comando.

```
$ sudo dnf updateinfo list
Last metadata expiration check: 1:06:23 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
ALAS2LIVEPATCH-2021-123   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
ALAS2LIVEPATCH-2022-124   important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

**Como listar todos os patches ao vivo do kernel disponíveis para CVEs**  
Use o seguinte comando.

```
$ sudo dnf updateinfo list cves
Last metadata expiration check: 1:07:26 ago on Mon 13 Feb 2023 09:28:19 PM UTC.
CVE-2022-0123    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
CVE-2022-3210    important/Sec. kernel-livepatch-6.1.12-17.42-1.0-3.amzn2023.x86_64
```

### Aplicar patches ao vivo do kernel
<a name="live-patching-apply"></a>

Aplique patches ao vivo do kernel usando o gerenciador de pacotes **DNF** da mesma maneira que você aplicaria atualizações regulares. O plug-in **DNF** para a aplicação de patches do kernel em tempo real gerencia os patches do kernel em tempo real que estão disponíveis para aplicação.

**dica**  
Recomendamos que você atualize seu kernel regularmente usando a aplicação de patches do kernel em tempo real para garantir que ele receba correções de segurança específicas importantes e críticas até que o sistema possa ser reinicializado. Verifique também se foram disponibilizadas correções adicionais para o pacote do kernel nativo que não podem ser implementadas como patches em tempo real e, nesses casos, [atualize e reinicie](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) o kernel.

É possível optar por aplicar um patch ao vivo do kernel específico, ou aplicar qualquer patch ao vivo do kernel disponível com suas atualizações de segurança regulares.

**Como aplicar um patch ao vivo do kernel específico**

1. Obtenha a versão do patch ao vivo do kernel usando um dos comandos descritos em [Visualizar os patches ao vivo do kernel disponíveis](#live-patching-view-available).

1. Aplique o patch ao vivo do kernel no kernel do AL2023.

   ```
   $ sudo dnf install kernel-livepatch-kernel_version-package_version.amzn2023.x86_64
   ```

   Por exemplo, o comando a seguir aplica um patch ao vivo do kernel para a versão `6.1.12-17.42` AL2023 do kernel .

   ```
   $ sudo dnf install kernel-livepatch-6.1.12-17.42-1.0-4.amzn2023.x86_64
   ```

**Como aplicar patches ao vivo do kernel disponíveis com as atualizações de segurança regulares**  
Use o seguinte comando.

```
$ sudo dnf upgrade --security
```

Omita a opção `--security` para incluir correções de erros.

**Importante**  
A versão do kernel não é atualizada após a aplicação de patches ao vivo do kernel. A versão só é atualizada para a nova versão depois da reinicialização da instância.
Um kernel AL2023 recebe patches de kernel ao vivo por 3 meses. Após esse período, nenhum novo patch ativo do kernel será lançado para essa versão do kernel.
Para continuar a receber patches ao vivo do kernel após 3 meses, você deve reinicializar a instância para migrar para a nova versão do kernel. A instância continua recebendo patches ativos do kernel pelos próximos 3 meses após a atualização.
Para verificar a janela de suporte para a versão do kernel, execute o seguinte comando.  

  ```
  $ sudo dnf kernel-livepatch support
  The current version of the Linux kernel you are running will no longer receive live patches after 2025-07-22.
  ```

### Visualizar os patches ao vivo do kernel aplicados
<a name="live-patching-view"></a>

**Como visualizar os patches ao vivo do kernel aplicados**  
Use o seguinte comando.

```
$ sudo kpatch list
Loaded patch modules:
livepatch_CVE_2022_36946 [enabled]

Installed patch modules:
livepatch_CVE_2022_36946 (6.1.57-29.131.amzn2023.x86_64)
livepatch_CVE_2022_36946 (6.1.57-30.131.amzn2023.x86_64)
```

O comando retornará uma lista dos patches ao vivo do kernel de atualização de segurança carregados e instalados. A seguir está um exemplo de saída.

**nota**  
Um único patch ao vivo do kernel pode incluir e instalar vários patches ao vivo.

### Desabilitar o Kernel Live Patching
<a name="live-patching-disable"></a>

Se não precisar mais usar o Kernel Live Patching, é possível desabilitá-lo a qualquer momento.
+ Desabilite o uso de livepatches:

  1. Desabilite o plug-in: 

     ```
     $ sudo dnf kernel-livepatch manual
     ```

  1. Desabilite o serviço kpatch: 

     ```
     $ sudo systemctl disable --now kpatch.service
     ```
+ Remova totalmente as ferramentas livepatch:

  1. Remover o plug-in de:

     ```
     $ sudo dnf remove kpatch-dnf
     ```

  1. Remover kpatch-runtime:

     ```
     $ sudo dnf remove kpatch-runtime
     ```

  1. Remova qualquer livepatches instalado:

     ```
     $ sudo dnf remove kernel-livepatch\*
     ```