

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á.

# Configurar o modo de mitigação de dessincronização para o Classic Load Balancer
<a name="config-desync-mitigation-mode"></a>

O modo de mitigação de dessincronização protege sua aplicação contra problemas causados por HTTP Desync. O balanceador de carga classifica cada solicitação com base em seu nível de ameaça, permite solicitações seguras e, em seguida, reduz o risco, conforme instruído pelo modo de mitigação especificado. Os modos de mitigação de dessincronização são: monitor (monitorado), defensive (defensivo) e strictest (mais rigoroso). O padrão é o modo defensivo, que fornece mitigação durável contra HTTP Desync, mantendo a disponibilidade da sua aplicação. Você pode alternar para o modo mais restrito a fim de garantir que sua aplicação receba somente solicitações que estejam em conformidade com a RFC 7230.

A biblioteca http\$1desync\$1guardian analisa solicitações HTTP para evitar ataques de HTTP Desync. Para obter mais informações, consulte [HTTP Desync Guardian](https://github.com/aws/http-desync-guardian) no github.

**Topics**
+ [Classificações](#desync-mitigation-classification)
+ [Modos](#desync-mitigation-modes)
+ [Modificar o modo de mitigação de dessincronização](#update-desync-mitigation-mode)

**dica**  
Essa configuração se aplica somente aos balanceadores de carga clássicos. Para obter informações que se aplicam aos balanceadores de carga da aplicação, consulte [Modo de mitigação de dessincronização para balanceadores de carga da aplicação](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#desync-mitigation-mode).

## Classificações
<a name="desync-mitigation-classification"></a>

As classificações são as seguintes:
+ Compatível: a solicitação está em conformidade com o RFC 7230 e não representa ameaças de segurança conhecidas.
+ Aceitável: a solicitação não está em conformidade com o RFC 7230, mas não representa ameaças de segurança conhecidas.
+ Ambígua: a solicitação não está em conformidade com o RFC 7230, mas representa um risco, pois vários servidores Web e proxies podem lidar com ela de formas diferentes.
+ Grave: a solicitação representa um alto risco de segurança. O balanceador de carga bloqueia a solicitação, atende uma resposta 400 ao cliente e fecha a conexão do cliente.

As listas a seguir descrevem os problemas para cada classificação.

**Aceitável**
+ Um cabeçalho contém um caractere não ASCII ou de controle.
+ A versão de solicitação contém um valor incorreto.
+ Há um cabeçalho Content-Length (Comprimento de conteúdo) com um valor de 0 para uma solicitação GET ou HEAD.
+ O URI de solicitação contém um espaço que não é codificado por URL.

**Ambíguo**
+ O URI de solicitação contém caracteres de controle.
+ A solicitação contém um cabeçalho Transfer-Coding (Codificação de transferência) e um cabeçalho Content-Length (Comprimento de conteúdo).
+ Há vários cabeçalhos Content-Length (Comprimento de conteúdo) com o mesmo valor.
+ Um cabeçalho está vazio ou há uma linha com apenas espaços.
+ Há um cabeçalho que pode ser normalizado para Transfer-Enconding (Codificação de transferência) ou Content-Length (Comprimento de conteúdo) usando técnicas comuns de normalização de texto. 
+ Há um cabeçalho Content-Length (Comprimento de conteúdo) para uma solicitação GET ou HEAD.
+ Há um cabeçalho Transfer-Encoding (Codificação de transferência) para uma solicitação GET ou HEAD.

**Grave**
+ O URI de solicitação contém um caractere nulo ou retorno de carro.
+ O cabeçalho Content-Length (Comprimento de conteúdo) contém um valor que não pode ser analisado ou não é um número válido.
+ Um cabeçalho contém um caractere nulo ou retorno de carro.
+ O cabeçalho Transfer-Encoding (Codificação de transferência) contém um valor inválido.
+ O método de solicitação está malformado.
+ A versão da solicitação está malformada.
+ Há vários cabeçalhos Content-Length (Comprimento de conteúdo) com valores diferentes.
+ Há vários cabeçalhos Transfer-Coding (Codificação de transferência): cabeçalhos em bloco.

Se uma solicitação não estiver em conformidade com o RFC 7230, o balanceador de carga incrementará a métrica `DesyncMitigationMode_NonCompliant_Request_Count`. Para obter mais informações, consulte [Métricas do Classic Load Balancer](elb-cloudwatch-metrics.md#loadbalancing-metrics-clb).

## Modos
<a name="desync-mitigation-modes"></a>

A tabela a seguir descreve como os balanceadores de carga clássicos tratam solicitações com base no modo e na classificação.


| Classificação | Modo monitorado | Modo defensivo | Modo mais restrito | 
| --- | --- | --- | --- | 
| Compatível | Permitido | Permitido | Permitido | 
| Aceitável | Permitido | Permitido | Bloqueado | 
| Ambíguo | Permitido | Permitido¹ | Bloqueado | 
| Grave | Permitido | Bloqueado | Bloqueado | 

¹ Encaminha as solicitações, mas fecha as conexões entre cliente e destino.

## Modificar o modo de mitigação de dessincronização
<a name="update-desync-mitigation-mode"></a>

**Para atualizar o modo de mitigação de dessincronização usando o console**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, em **Load Balancing** (Balanceamento de carga), escolha **Load balancers** (Balanceadores de carga).

1. Escolha o nome do balanceador de carga para abrir sua página de detalhes.

1. Na guia **Atributos**, escolha **Editar**.

1. Na página **Editar atributos do balanceador de carga**, em **Configuração de tráfego**, escolha **Defensivo (recomendado)**, **Mais estrito**, ou **Monitorar**.

1. Escolha **Salvar alterações**.

**Para atualizar o modo de mitigação de dessincronização usando o AWS CLI**  
Use o [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elb/modify-load-balancer-attributes.html)comando com o `elb.http.desyncmitigationmode` atributo definido como `monitor``defensive`, ou`strictest`.

```
aws elb modify-load-balancer-attributes --load-balancer-name my-load-balancer --load-balancer-attributes file://attribute.json
```

Veja a seguir o conteúdo de `attribute.json`.

```
{
    "AdditionalAttributes": [
        {
            "Key": "elb.http.desyncmitigationmode",
            "Value": "strictest"
        }
    ]
}
```