Novas falhas HTTP/2 expõem servidores da Web a ataques DoS

Foram divulgadas que novas falhas HTTP/2 expõem servidores da Web a ataques DoS e que foram descobertas por Jonathan Looney, da Netflix, e por Piotr Sikora, do Google.

DoS, ou Denial of Service), é um ataque de negação de serviço. Uma tentativa de tornar todos os recursos de um sistema indisponíveis para os seus usuários. Alvos típicos desse tipo de ataque são servidores web.

Novas falhas HTTP/2 expõem servidores da Web a ataques DoS
Novas falhas HTTP/2 expõem servidores da Web a ataques DoS

Sucessor do HTTP originalmente usado nos primeiros anos da Web, O HTTP/2 foi desenvolvido pelo grupo de trabalho httpbis do Hypertext Transfer Protocol da IEFT (Internet Engineering Task Force) e é uma revisão importante do protocolo de rede HTTP usado pela World Wide Web. Ele foi derivado do protocolo SPDY experimental anterior, originalmente desenvolvido pelo Google

Apesar do seu foco em segurança, não demorou muito para surgirem ameaças a esse importante protocolo da Internet.

Novas falhas HTTP/2 expõem servidores da Web a ataques DoS

Atualmente, várias implementações do protocolo HTTP/2 são vulneráveis ​​a ataques que podem consumir recursos suficientes para causar uma condição de negação de serviço (DoS) em servidores não corrigidos.

O comportamento pode ser desencadeado pela exploração de vulnerabilidades em servidores que suportam a comunicação HTTP/2, que no momento, é 40% de todos os sites na Internet, de acordo com as estatísticas atuais da W3Techs.


Recentemente, foi divulgado um conjunto de oito vulnerabilidades que poderia levar a uma condição de DoS, e vários fornecedores já atualizaram seus sistemas para corrigir as falhas.

Eles podem ser aproveitados por um cliente remoto. Alguns deles são significativamente mais graves do que outros, já que podem ser usados ​​a partir de um único sistema final para impactar vários servidores.

Os menos eficientes, no entanto, podem ser aproveitados em ataques DDoS.

Sete das falhas foram descobertas por Jonathan Looney, da Netflix, e por Piotr Sikora, do Google. A lista completa com uma descrição para cada um deles está disponível no final deste artigo.

Em um comunicado recente, a Netflix diz que todos os vetores de ataque são variações do mesmo tema, em que um cliente aciona uma resposta de um servidor vulnerável e se recusa a lê-lo.

Dependendo de como o servidor gerencia as filas, o cliente pode forçá-lo a usar fazer uso excessivo da memória e CPU para processar as solicitações recebidas.

Os ataques DoS podem fazer com que os servidores parem de responder e neguem aos visitantes o acesso a páginas da web. Em um caso menos grave, as páginas podem demorar mais para serem carregadas.

Uma nota de vulnerabilidade do CERT Coordination Center mostra uma matriz impressionante de fornecedores que podem ser afetados por essas vulnerabilidades DoS.

A lista inclui grandes nomes como Amazon, Apache, Apple, Facebook, Microsoft, nginx, Node.js e Ubuntu.

Alguns deles já corrigiram os problemas. A Cloudflare anunciou correções para sete das vulnerabilidades que impactaram seus servidores Nginx responsáveis ​​pela comunicação HTTP/2.

Atores de ameaças já começaram a explorar as vulnerabilidades, como a empresa informou que já reprimiu algumas tentativas.

Na nota, a CloudFlare disse o seguinte:

“Há 6 diferentes vulnerabilidades potenciais aqui e estamos monitorando todas elas. Detectamos e mitigamos um punhado de ataques, mas nada generalizado ainda.”

As correções ocorreram antes da divulgação coordenada, pois a Cloudflare, junto com outros fornecedores, receberam uma notificação antecipada da Netflix sobre os riscos de segurança de DoS.

A Microsoft também lançou patches para cinco falhas DoS que afetam sua pilha de protocolos HTTP/2 (HTTP.sys).

O registro de alterações do Nginx para uma atualização da versão mainline 1.17.3 informa sobre o patch de três vulnerabilidades do DoS.

A versão estável também foi atualizada para 1.16.1 para corrigir os mesmos problemas, conforme seu próprio changelog.

A Apple também atualizou o framework de aplicativos SwiftNIO contra cinco das falhas que poderiam impactar as versões do macOS a partir do Sierra 10.12.

Confira abaixo as novas falhas HTTP/2 expõem servidores da Web a ataques DoS:

  • CVE-2019-9511 Data Dribble: – o atacante solicita uma grande quantidade de dados de um recurso especificado em vários fluxos. Eles manipulam o tamanho da janela e a prioridade do fluxo para forçar o servidor a enfileirar os dados em blocos de 1 byte. Dependendo da eficiência com que esses dados são enfileirados, isso pode consumir excesso de CPU, memória ou ambos, possivelmente levando a uma negação de serviço.
  • CVE-2019-9512 Ping Flood: – o atacante envia pings contínuos para um par HTTP / 2, fazendo com que o par construa uma fila interna de respostas. Dependendo da eficiência com que esses dados são enfileirados, isso pode consumir excesso de CPU, memória ou ambos, possivelmente levando a uma negação de serviço.
  • CVE-2019-9513 Resource Loop: – o atacante cria vários fluxos de requisição e embaralha continuamente a prioridade dos fluxos de uma maneira que causa substancial rotatividade na árvore de prioridades. Isso pode consumir excesso de CPU, potencialmente levando a uma negação de serviço.
  • CVE-2019-9514 Reset Flood: – O atacante abre vários fluxos e envia uma solicitação inválida sobre cada fluxo que deve solicitar um fluxo de quadros RST_STREAM do peer. Dependendo de como o par enfileira os quadros RST_STREAM, isso pode consumir excesso de memória, CPU ou ambos, possivelmente levando a uma negação de serviço.
  • CVE-2019-9515 Settings Flood: – o atacante envia um fluxo de quadros de CONFIGURAÇÕES para o peer. Como o RFC requer que o par responda com um reconhecimento por quadro de CONFIGURAÇÕES, um quadro de CONFIGURAÇÕES vazio é quase equivalente em comportamento a um ping. Dependendo da eficiência com que esses dados são enfileirados, isso pode consumir excesso de CPU, memória ou ambos, possivelmente levando a uma negação de serviço.
  • CVE-2019-9516 0-Length Headers Leak: – o atacante envia um fluxo de cabeçalhos com um nome de cabeçalho de comprimento 0 e valor de cabeçalho de comprimento 0, opcionalmente Huffman codificado em cabeçalhos de 1 byte ou maior. Algumas implementações alocam memória para esses cabeçalhos e mantêm a alocação ativa até que a sessão seja interrompida. Isso pode consumir excesso de memória, potencialmente levar
  • CVE-2019-9517 Internal Data Buffering: – o atacante abre a janela HTTP / 2 para que o par possa enviar sem restrição; no entanto, eles deixam a janela TCP fechada para que o par não possa realmente gravar (muitos) os bytes no fio. O atacante envia um fluxo de solicitações para um grande objeto de resposta. Dependendo de como os servidores enfileiram as respostas, isso pode consumir excesso de memória, CPU ou ambos, possivelmente levando a uma negação de serviço.
  • CVE-2019-9518 Empty Frames Flood: – O atacante envia um fluxo de quadros com uma carga útil vazia e sem o sinalizador de final de fluxo. Esses quadros podem ser DATA, CABEÇALHO, CONTINUAÇÃO e / ou PUSH_PROMISE. O par gasta o tempo processando cada quadro desproporcionalmente à largura de banda de ataque. Isso pode consumir excesso de CPU, potencialmente levando a uma negação de serviço.

Via BleepingComputer

O que está sendo falado no blog

Veja mais artigos publicados neste dia…

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.