Em 3 de agosto, a Imperva – uma empresa de segurança na Internet – anunciou quatro potenciais vulnerabilidades de segurança no protocolo HTTP/2 e emitiu um relatório detalhado avaliando vários servidores web em relação a essas vulnerabilidades.
Conforme mostrado na tabela (da página 19 do relatório da Imperva), o NGINX 1.9.9 teve um desempenho comparativamente bom nos testes da Imperva e não foi afetado por três das quatro vulnerabilidades potenciais. Tentativas de explorar a vulnerabilidade restante, “Leitura Lenta”, causaram um vazamento de recursos no NGINX e, finalmente, permitiram um ataque de negação de serviço contra serviços HTTP/2.
A falha foi relatada ao NGINX e resolvida prontamente nas versões NGINX 1.9.12 e NGINX Plus R9. Temos o prazer de confirmar que nenhuma das versões atuais do software NGINX – NGINX Plus, NGINX Open Source ‘mainline’ ou NGINX Open Source ‘stable’ – é vulnerável a qualquer um dos ataques potenciais descritos pela Imperva.
Se você implementou o HTTP/2 e está usando uma versão do nosso software anterior ao NGINX 1.9.12 ou NGINX Plus R9, atualize seu software. HTTP/2 é um protocolo complexo e relativamente novo, por isso é aconselhável executar sempre a versão mais recente do software.
Sugerimos que você revise nossas práticas recomendadas para ajustar o NGINX e o NGINX Plus . O ajuste em uma configuração padrão do Linux geralmente é bastante conservador, e alterar alguns parâmetros pode aumentar a capacidade do seu sistema NGINX ou NGINX Plus.
Em agosto de 2016, o HTTP/2 estava em uso em cerca de 9% de todos os sites , incluindo sites muito populares como Facebook, Google e Wikipedia. Os provedores de rede de distribuição de conteúdo (CDN) que usam NGINX e NGINX Plus geralmente incluem HTTP/2 como parte de suas ofertas.
O design complexo do HTTP/2 significa que há muitos caminhos possíveis que os pesquisadores podem explorar para procurar fraquezas de design ou implementação. O relatório Imperva descreve quatro vulnerabilidades potenciais no HTTP/2:
nghttpd
anteriores a 1.7.0 e Apache HTTP Server 2.4.18 e anteriores. O relatório afirma que a vulnerabilidade foi corrigida no nghttpd
1.7.0 “como parte de um problema de limpeza de memória mais geral (CVE-2015-8659) ”. A listagem do NVD é (CVE-2015-8659) .nghttpd
anteriores a 1.7.1 e versões do Wireshark anteriores a 2.0.2 e 1.12.10 . A listagem do NVD é CVE-2016-2525 ; a listagem do CVE-2016-1544 está marcada como reservada e não contém nenhuma informação.Quando a Imperva testou vários servidores web para ver se eles apresentavam vulnerabilidades, uma variação do teste “Slow Read” expôs um bug de vazamento de recursos no NGINX e no NGINX Plus. Esse vazamento de recursos acabou resultando em uma negação de serviço.
NGINX e NGINX Plus geralmente não são vulneráveis a ataques de “Leitura Lenta” (frequentemente conhecidos como Slowloris ). O caso de teste da Imperva nos ajudou a isolar um bug de vazamento de recursos relatado anteriormente . Conseguimos então resolver esse caso de erro adicionando tempos limite e proteções adicionais para garantir que os recursos HTTP/2 fossem fechados e liberados corretamente, e pudemos verificar se essas medidas são eficazes.
Recomendamos fortemente a atualização para a versão mais recente do NGINX e do NGINX Plus, especialmente se você implementou o HTTP/2 e está usando o NGINX 1.9.11 ou anterior, ou o NGINX Plus R8 ou anterior. O bug de vazamento de recursos exposto pelo caso de teste da Imperva não é exibido pelo NGINX 1.9.12 e posterior ou NGINX Plus R9 e posterior.
O NGINX e o NGINX Plus oferecem maneiras eficazes de derrotar a vulnerabilidade relevante descrita no relatório da Imperva, e a atualização para a versão mais recente de qualquer um dos produtos elimina a vulnerabilidade completamente.
Para reduzir a vulnerabilidade do seu site em geral, também recomendamos que você tome as medidas descritas em nossa postagem sobre como mitigar ataques DDoS , incluindo:
limit_req
)limit_conn
)Caso tenha alguma dúvida, comente nesta postagem ou, se você for assinante do NGINX Plus, não hesite em entrar em contato com nossa equipe de suporte para obter assistência.
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."