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á.
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_desync_guardian analisa solicitações HTTP para evitar ataques de HTTP Desync. Para obter mais informações, consulte HTTP Desync Guardian
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.
Classificações
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.
Modos
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
Para atualizar o modo de mitigação de dessincronização usando o console
Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, em Load Balancing (Balanceamento de carga), escolha Load balancers (Balanceadores de carga).
-
Escolha o nome do balanceador de carga para abrir sua página de detalhes.
-
Na guia Atributos, escolha Editar.
-
Na página Editar atributos do balanceador de carga, em Configuração de tráfego, escolha Defensivo (recomendado), Mais estrito, ou Monitorar.
-
Escolha Salvar alterações.
Para atualizar o modo de mitigação de dessincronização usando o AWS CLI
Use o modify-load-balancer-attributescomando com o elb.http.desyncmitigationmode
atributo definido como monitor
defensive
, oustrictest
.
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"
}
]
}