Protegendo o NGINX e o NGINX Plus contra o ataque POODLE ao SSLv3 (CVE-2014-3566)

NGINX | 15 de novembro de 2014

Uma vulnerabilidade relatada recentemente na versão 3 do protocolo SSL (SSLv3) pode ser explorada em um ataque man-in-the-middle para extrair partes de uma transmissão em texto simples que foi criptografada com HTTPS. Pesquisadores do Google publicaram uma explicação detalhada descrevendo como esse tipo de ataque pode ser realizado.

Esta não é uma vulnerabilidade em nenhuma implementação de SSL/TLS, mas sim uma vulnerabilidade no projeto do protocolo SSLv3 ao usar cifras de bloco. Como todas as cifras de fluxo alternativas também apresentam falhas, a única medida é desabilitar o SSLv3 nas configurações do NGINX e do NGINX Plus.

Desabilitando o SSLv3 no NGINX

O SSLv3 é habilitado por padrão no NGINX e no NGINX Plus e pode ser usado pelos serviços HTTP e de e-mail.

[Editor – Proxy e balanceamento de carga de tráfego TCP não eram totalmente compatíveis quando este artigo foi publicado originalmente. Para fins de completude, as etapas a seguir foram atualizadas para incluir a proteção do tráfego TCP.]

Execute estas etapas em todas as instâncias do NGINX e do NGINX Plus:

  1. Elimine o SSLv3 do conjunto de protocolos usados para o tráfego HTTP. Adicione a seguinte diretiva ssl_protocols ao bloco http{} caso ela não exista ou edite a diretiva existente para remover SSLv3 da lista de parâmetros.
# in the http{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Crie ou edite a mesma diretiva no bloco de configuração mail{} se suas instâncias do NGINX ou NGINX Plus processarem tráfego de e-mail.
# in the mail{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Crie ou edite a mesma diretiva no bloco de configuração stream{} se suas instâncias do NGINX ou NGINX Plus processarem tráfego TCP.
# in the stream{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Localize todas as outras ocorrências da diretiva ssl_protocols na sua configuração (ela pode estar incluída em um bloco de configuração server{} dentro dos blocos http{}, mail{} e stream{}). Recomendamos remover essas diretivas ssl_protocols, mas, no mínimo, remova SSLv3 da lista de parâmetros:
# in every server{} block ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Execute o seguinte comando para recarregar a configuração:
# nginx –s reload

Qual é o efeito dessa alteração?

Todos os navegadores modernos e clientes de API são compatíveis com TLSv1 e versões posteriores. Desabilitar o SSLv3 causará transtornos aos usuários do WindowsXP que navegam usando o Internet Explorer 6; CloudFlare estima que 1,12% dos usuários do WindowsXP (que representam 3,12% do tráfego da empresa) serão afetados — o equivalente a aproximadamente 1 em cada 3.000 usuários.

A alteração também pode afetar rastreadores da web e outros tipos de tráfego automatizado de bots.

O futuro

Em um ataque de downgrade de SSL, o invasor pode interromper os handshakes SSL/TLS e fazer com que o cliente e o servidor selecionem uma versão anterior do SSL/TLS. Quando usado para forçar a seleção do SSLv3, esse ataque pode tornar a conexão SSL/TLS vulnerável ao ataque POODLE. Desabilitar o SSLv3 no servidor impossibilita esse ataque.

O Google propôs uma extensão para SSL/TLS chamada TLS_FALLBACK_SCSV que busca impedir downgrades forçados de SSL/TLS. [Editor – A extensão foi adotada como RFC 7507 em abril de 2015.] Essa extensão poderá vir a ser incorporada ao OpenSSL, e o suporte correspondente no lado do cliente poderá ser adicionado aos principais navegadores. Isso permitirá que os serviços web ofereçam suporte ao SSLv3, mas os clientes legados ainda estarão vulneráveis.

No entanto, essa vulnerabilidade pode representar o golpe final no SSLv3 — uma solução mais simples e confiável de modo geral.

O que mais posso fazer?

Recomendamos atualizar o software cliente para que ele não ofereça suporte ao SSLv3. Isso protegerá você contra esse ataque ao acessar serviços que ainda não foram atualizados para desativar o SSLv3.

Leitura complementar


Compartilhar

Sobre o autor

Owen Garrett
Owen GarrettDiretor Sênior de Gestão de Produtos

Mais publicações de Owen Garrett

Publicações relacionadas no blog

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade
NGINX | 10/10/2024

Como o F5 NGINX One aprimora o gerenciamento e a observabilidade

Descubra como o F5 NGINX One aprimora o gerenciamento e a observabilidade de ambientes híbridos e multicloud ao oferecer um console web centralizado baseado em SaaS, com insights em tempo real, conformidade automatizada e gerenciamento simplificado de configurações.

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa
NGINX | 17/06/2024

Do OpenAPI ao NGINX como gateway de API usando uma API declarativa

Descubra como transformar uma definição de esquema OpenAPI em uma configuração NGINX totalmente funcional, operando como um API Gateway com a segurança de um Web Application Firewall e um Portal do Desenvolvedor, usando uma abordagem declarativa de API.

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor
NGINX | 14/07/2021

Como gerenciar picos repentinos de tráfego e sobrecarga do servidor

Picos de tráfego e sobrecarga de servidores são preocupações sérias para varejistas online em qualquer época, mas especialmente durante a “Cyber Season” de compras de fim de ano. Detalhamos como você pode aproveitar as soluções de entrega de aplicações de nível de produção da NGINX para se preparar para aumentos repentinos de tráfego.

Distribuição segura de chaves privadas SSL com o NGINX
NGINX | 02/04/2019

Distribuição segura de chaves privadas SSL com o NGINX

Descrevemos três maneiras progressivamente mais seguras de proteger chaves privadas SSL ao configurar o NGINX para processar tráfego HTTPS: permitir acesso de leitura apenas ao usuário root, criptografar as chaves com senhas armazenadas separadamente e distribuir as senhas a partir de um repositório central.

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX
NGINX | 24/05/2018

Agrupando solicitações de API em lotes com NGINX Plus e o módulo JavaScript do NGINX

O módulo JavaScript do NGINX lançado com o NGINX Plus R15 oferece suporte a subsolicitações, possibilitando uma classe totalmente nova de casos de uso para o NGINX Plus. Este exemplo completo também usa a API do NGINX Plus e os módulos de chave-valor para converter solicitações de API dos clientes em solicitações separadas para as APIs dos microsserviços que compõem um aplicativo.

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus
NGINX | 19/04/2016

Como superar o esgotamento de portas efêmeras no NGINX e no NGINX Plus

Confira dicas para evitar o esgotamento de portas efêmeras com ajustes no kernel do Linux, conexões keepalive e conexões vinculadas dinamicamente a endereços IP locais.