Skip to main content

Encontre e corrija a vulnerabilidade zero-day HTTP/2 Rapid Reset CVE-2023-44487

feature http2 vuln

11 de outubro de 2023

0 minutos de leitura

Pesquisadores e fornecedores investigaram ataques DDoS volumétricos observados entre agosto e outubro de 2023 e descobriram uma nova técnica, chamada “rapid reset”, que explora a multiplexação de streams, um recurso do amplamente adotado protocolo HTTP/2.

Divulgada hoje, a vulnerabilidade HTTP/2 Rapid Reset está sendo rastreada como CVE-2023-44487 e foi classificada como de alta gravidade, com pontuação CVSS de 7,5 (de 10).

Acredita-se que a vulnerabilidade afete todos os servidores web que implementam HTTP/2 e que, se explorada, possa permitir ataques DDoS volumétricos extremamente grandes. Se você for afetado por essa CVE em um pacote de aplicativo ou sistema operacional E esse pacote estiver presente em um aplicativo implantado com acesso à internet, considere:

  • Consultar seu provedor de infraestrutura e/ou CDN (por exemplo, Cloudflare, Google Cloud, AWS e Akamai) para garantir que a vulnerabilidade esteja mitigada.

  • Atualizar o pacote se houver uma correção disponível. Algumas versões corrigidas já foram publicadas.

A Snyk não foi afetada por essa vulnerabilidade

Todos os serviços da Snyk acessíveis externamente estão protegidos: eles são hospedados atrás da Akamai ou de balanceadores de carga na nuvem que já foram mitigados.

Mitigação por meio do provedor de infraestrutura

Primeiro, recomendamos que as organizações façam alterações de configuração e apliquem mitigações por meio de provedores de infraestrutura e CDNs, quando necessário, para reduzir a exposição a essa nova técnica de DDoS. 

Embora seja possível mitigar a exposição a essa vulnerabilidade por meio de provedores de infraestrutura ou balanceadores de carga na nuvem, é importante ir além e corrigir o problema na origem, atualizando todos os pacotes que podem ser afetados por essa CVE.

Atualização de pacotes para versões corrigidas

Em seguida, as organizações devem verificar se alguma imagem de contêiner ou ecossistema de código aberto foi afetado e aplicar as atualizações disponíveis. Você encontra todos os avisos sobre essa CVE específica na Snyk Vulnerability Database, selecionando o(s) gerenciador(es) de pacotes ou a(s) distribuição(ões) de contêiner.

Snyk Vulnerability Database filtrado por CVE-2023-44487, com vulnerabilidades de esgotamento de recursos de alta gravidade listadas em pacotes afetados.

Como detectar as vulnerabilidades HTTP/2 com a Snyk

Para descobrir se seus projetos ou aplicativos foram afetados, filtre por "CVE-2023-44487" no relatório Detalhes do problema e encontre os projetos que contêm um pacote vulnerável.

Painel de detalhes de problemas do Snyk filtrado por CVE-2023-44487, mostrando 32 problemas relacionados a sete vulnerabilidades únicas e a contagem por gravidade.

Teste seus projetos usando a Snyk CLI

Há várias maneiras de detectar e corrigir a vulnerabilidade HTTP/2 — gratuitamente — com a Snyk. Com a Snyk CLI, você pode testar seus projetos localmente.

Teste projetos que usam gerenciadores de pacotes

Para aplicativos, execute snyk test na Snyk CLI para comparar as dependências do seu repositório e detectar pacotes vulneráveis. Você pode testar todos os projetos com snyk test --all-projects e especificar o gerenciador de pacotes usando a flag --package-manager=. Também é possível especificar um arquivo de requisitos não padrão com a flag --file=.

Atualmente, os argumentos compatíveis com a flag --package-manager= incluem cocoapods, composer, golangdep, maven, npm, pip e outros (consulte a CLI para ver mais opções).

Teste projetos C++ com a CLI

Para aplicativos, execute snyk test --unmanaged na Snyk CLI para comparar as dependências não gerenciadas do seu repositório e detectar pacotes vulneráveis.

Teste imagens de contêiner com a CLI

Para contêineres, execute snyk container test para detectar pacotes do sistema operacional que dependem de versões vulneráveis do HTTP/2. Para obter os melhores resultados, informe o nome da imagem e o caminho para o Dockerfile que a criou. Por exemplo:

snyk container test debian:10 --file=Dockerfile

Teste seus projetos usando uma integração Git/SCM

Ao importar seu projeto para a Snyk usando nossas integrações de SCM compatíveis (GitHub, Bitbucket, GitLab, Azure Repos), um teste é iniciado automaticamente. Assim, você pode usar a interface da Snyk para identificar, priorizar e corrigir as vulnerabilidades http/2 nos seus projetos quando houver uma correção disponível. 

Como corrigir as vulnerabilidades HTTP/2

Depois de identificar pacotes e contêineres vulneráveis no seu ambiente, você pode corrigi-los com a Snyk. Os métodos são semelhantes, mas você tem algumas opções.

Para componentes de código aberto

  • Correção automática: conecte a Snyk aos seus repositórios Git para que ela possa abrir pull requests e atualizar o grafo de dependências sempre que possível. Depois, recrie seu aplicativo.

  • Correção manual (opção 1): se você tiver uma dependência direta de um componente afetado pela vulnerabilidade HTTP/2, atualize o arquivo de dependências para especificar a versão corrigida correspondente e, em seguida, recrie seu aplicativo.

  • Correção manual (opção 2): se seu aplicativo usar um componente afetado pela vulnerabilidade HTTP/2 como dependência indireta ou transitiva, identifique uma versão da dependência direta que inclua uma versão atualizada da dependência afetada e, em seguida, recrie seu aplicativo. Outra opção é tratar a dependência como direta e incluir uma versão corrigida no arquivo de requisitos, caso seu gerenciador de pacotes ofereça suporte a substituições.

Para imagens de contêiner

  • Correção automática: conecte a Snyk aos seus repositórios Git para que ela possa abrir pull requests e atualizar a imagem base do Docker sempre que possível. Confira se a atualização sugerida da imagem base ainda apresenta a vulnerabilidade em https://snyk.io/test/docker/<image_name> e, depois de identificar uma opção de atualização adequada, recrie seu contêiner.

Painel de projetos do Snyk com recomendações de atualização da imagem base, contagens de vulnerabilidades, níveis de gravidade e um botão “Abrir uma PR de correção”.
  • Correção manual: se sua imagem incluir versões vulneráveis dos pacotes e não houver uma atualização da imagem base disponível ou desejada, você pode atualizá-los por conta própria seguindo as recomendações de correção do Snyk Container. 

Se ainda não houver uma correção disponível

Se não for possível atualizar um pacote ou contêiner específico, é possível mitigar essa vulnerabilidade antes do caminho de chamada, conforme descrito acima. Por exemplo, se um serviço afetado por essa vulnerabilidade estiver exposto à internet por meio de um balanceador de carga na nuvem, ele não será afetado, pois todos os principais provedores de nuvem já mitigaram esse risco em sua infraestrutura.

Como repriorizar essa vulnerabilidade usando políticas personalizadas?

Se você quiser aumentar a prioridade da vulnerabilidade HTTP/2 para dar mais visibilidade ao problema, pode usar as políticas personalizadas da Snyk para repriorizá-la. No momento, a CVE está classificada como de alta gravidade. No entanto, se quiser alterar essa prioridade, você pode criar uma política que afete a CVE-2023-44487 e mude a gravidade para Critical.

Interface de regras de segurança mostrando a CVE-2023-44487 com severidade alterada para Crítica

Por outro lado, se você tiver mitigado o risco de outras formas, pode alterar a gravidade para baixa para que os relatórios reflitam essa condição com precisão. 

Teste novamente após adicionar políticas de gravidade personalizadas

Após adicionar uma política de gravidade personalizada, os projetos precisam ser testados novamente para que as gravidades atualizadas sejam exibidas.

Próximas etapas para responder às vulnerabilidades HTTP/2

  1. Faça alterações de configuração e aplique mitigações por meio de provedores de infraestrutura e CDNs para reduzir a exposição a essa nova técnica de DDoS. 

  2. Teste seus projetos com a Snyk usando os métodos descritos neste artigo. Para começar, crie uma conta gratuita na Snyk e importe e analise todos os projetos potencialmente afetados usando o assistente de importação.

  3. Quando houver correções disponíveis, atualize as bibliotecas afetadas para versões corrigidas e crie novas imagens de contêiner com imagens base corrigidas.

  4. Continue acompanhando os desdobramentos, siga-nos no Twitter/X (@snyksec) e acesse o blog da Snyk para conferir as novidades. As equipes de segurança da Snyk atualizarão nossos recursos regularmente com as informações mais recentes.

Comece a resolver desafios de capture the flag

Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.