Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
http-desync-guardian — Analisar requisições HTTP para minimizar riscos de ataques HTTP Desync (precursor para contrabando/divisão de requisições HTTP). | Kitploit
Ferramentas/GitHubGitHub/aws/http-desync-guardian
Análise EstáticaAnálise de VulnerabilidadesTestes de Segurança de APIsSegurança Web
GitHubaws/http-desync-guardian

http-desync-guardian

Analisar requisições HTTP para minimizar riscos de ataques HTTP Desync (precursor para contrabando/divisão de requisições HTTP).

Ver Repositório
27422há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Apache 2 License Crate Clippy/Fmt Tests Coverage Status

Visão Geral

O HTTP/1.1 passou por uma longa evolução desde 1991 até 2014:

  • HTTP/0.9 – 1991
  • HTTP/1.0 – 1996
  • HTTP/1.1
    • RFC 2068 – 1997
    • RFC 2616 - 1999
    • RFC 7230 - 2014

Isso significa que existe uma variedade de servidores e clientes, que podem ter visões diferentes sobre os limites das requisições, criando oportunidades para ataques de dessincronização (também conhecidos como HTTP Desync).

Pode parecer simples seguir as recomendações mais recentes da RFC. No entanto, para sistemas de grande escala que existem há algum tempo, isso pode ter um impacto inaceitável na disponibilidade.

A biblioteca http_desync_guardian foi projetada para analisar requisições HTTP e prevenir ataques HTTP Desync, equilibrando segurança e disponibilidade. Ela classifica as requisições em diferentes categorias e fornece recomendações sobre como cada nível deve ser tratado.

Pode ser usada tanto para cabeçalhos HTTP brutos quanto para requisições já analisadas por um motor HTTP. Os consumidores podem configurar a coleta de logs e métricas. O log é limitado por taxa e todos os dados do usuário são ofuscados.

Se você acredita ter encontrado um problema de impacto na segurança, siga o nosso Processo de Notificação de Segurança.

Prioridades

  • Uniformidade entre serviços é fundamental. Isso significa que a classificação de requisições, logs e métricas devem ocorrer internamente e com configurações minimamente disponíveis (por exemplo, destino do arquivo de log).
  • Foco na revisabilidade. O conjunto de testes não deve exigir conhecimento sobre a biblioteca/linguagens de programação, mas apenas sobre o protocolo HTTP. Assim, é fácil revisar, contribuir e reutilizar.
  • Segurança é eficiente quando é fácil para os usuários. Nosso objetivo é tornar a integração da biblioteca o mais simples possível.
  • Ultra leve. A sobrecarga deve ser mínima e não impor custo tangível no tratamento de requisições (veja benchmarks).

Versões HTTP Suportadas

O foco principal desta biblioteca é o HTTP/1.1. Veja testes para todos os casos cobertos. Os predecessores do HTTP/1.1 não suportam reutilização de conexão, o que limita as oportunidades para HTTP Desync, no entanto, alguns proxies podem atualizar tais requisições para HTTP/1.1 e reutilizar conexões de backend, o que pode permitir a criação de requisições HTTP/1.0 maliciosas. É por isso que elas são analisadas usando os mesmos critérios do HTTP/1.1. Para outras versões do protocolo, existem as seguintes exceções:

  • Requisições HTTP/0.9 nunca são consideradas Compliant, mas são classificadas como Acceptable. Se algum Content-Length/Transfer-Encoding estiver presente, então é Ambiguous.
  • HTTP/1.0 - a presença de Transfer-Encoding torna a requisição Ambiguous.
  • HTTP/2+ está fora do escopo. Mas se o seu proxy rebaixar HTTP/2 para HTTP/1.1, certifique-se de que a requisição de saída seja analisada.

Veja a documentação para saber mais.

Uso a partir do C

Esta biblioteca foi projetada para ser usada principalmente a partir de motores HTTP escritos em C/C++.

  1. Instale o cbindgen: cargo install --force cbindgen
  2. Gere o arquivo de cabeçalho:
    • Execute cbindgen --output http_desync_guardian.h --lang c para C.
    • Execute cbindgen --output http_desync_guardian.h --lang c++ para C++.
  3. Execute cargo build --release. Os binários estão nos arquivos ./target/release/libhttp_desync_guardian.*.

Saiba mais: exemplos genérico e Nginx.

root@kitploit:~
#include "http_desync_guardian.h"

/* 
 * http_engine_request_t - already parsed by the HTTP engine 
 */
static int check_request(http_engine_request_t *req) {
    http_desync_guardian_request_t guardian_request = construct_http_desync_guardian_from(req); 
    http_desync_guardian_verdict_t verdict = {0};

    http_desync_guardian_analyze_request(&guardian_request, &verdict);

    switch (verdict.tier) {
        case REQUEST_SAFETY_TIER_COMPLIANT:
            // The request is good. green light
            break;
        case REQUEST_SAFETY_TIER_ACCEPTABLE:
            // Reject, if mode == STRICTEST
            // Otherwise, OK
            break;
        case REQUEST_SAFETY_TIER_AMBIGUOUS:
            // The request is ambiguous.
            // Reject, if mode == STRICTEST 
            // Otherwise send it, but don't reuse both FE/BE connections.
            break;
        case REQUEST_SAFETY_TIER_SEVERE:
            // Send 400 and close the FE connection.
            break;
        default:
            // unreachable code
            abort();
    }
}

Uso a partir do Rust

Veja benchmarks como um exemplo de uso a partir do Rust.

Notificações de problemas de segurança

Se você descobrir um potencial problema de segurança no http_desync_guardian, pedimos que notifique a AWS Security através da nossa página de relato de vulnerabilidades. Por favor, não crie uma issue pública no github.

Segurança

Veja CONTRIBUTING para mais informações.

Licença

Este projeto é licenciado sob a Licença Apache-2.0.

Baixar ferramenta