Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/aws/http-desync-guardian
Análisis EstáticoAnálisis de VulnerabilidadesPruebas de Seguridad de APIsSeguridad Web
GitHubaws/http-desync-guardian

http-desync-guardian

Analizar solicitudes HTTP para minimizar riesgos de ataques HTTP Desync (precursor de HTTP request smuggling/splitting).

Ver Repositorio
274223hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Apache 2 License Crate Clippy/Fmt Tests Coverage Status

Resumen

HTTP/1.1 experimentó una larga evolución desde 1991 hasta 2014:

  • HTTP/0.9 – 1991
  • HTTP/1.0 – 1996
  • HTTP/1.1
    • RFC 2068 – 1997
    • RFC 2616 - 1999
  • RFC 7230 - 2014
  • Esto significa que existe una variedad de servidores y clientes, los cuales pueden tener diferentes puntos de vista sobre los límites de las solicitudes, creando oportunidades para ataques de desincronización (también conocidos como HTTP Desync).

    Puede parecer sencillo seguir las últimas recomendaciones de la RFC. Sin embargo, para sistemas a gran escala que han estado funcionando por un tiempo, esto puede conllevar un impacto inaceptable en la disponibilidad.

    La biblioteca http_desync_guardian está diseñada para analizar solicitudes HTTP y prevenir ataques HTTP Desync, equilibrando seguridad y disponibilidad. Clasifica las solicitudes en diferentes categorías y proporciona recomendaciones sobre cómo debe manejarse cada nivel.

    Se puede usar tanto para encabezados de solicitud HTTP sin procesar como para aquellos ya analizados por un motor HTTP. Los consumidores pueden configurar la recopilación de registros y métricas. El registro tiene límite de velocidad y todos los datos del usuario están ofuscados.

    Si cree que podría haber encontrado un problema de seguridad, siga nuestro Proceso de Notificación de Seguridad.

    Prioridades

    • La uniformidad entre servicios es clave. Esto significa que la clasificación de solicitudes, el registro y las métricas deben realizarse internamente y con configuraciones mínimamente disponibles (por ejemplo, destino del archivo de registro).
    • Enfoque en la revisabilidad. El conjunto de pruebas no debe requerir conocimiento sobre la biblioteca/lenguajes de programación, solo sobre el protocolo HTTP. Así es fácil de revisar, contribuir y reutilizar.
    • La seguridad es eficiente cuando es fácil para los usuarios. Nuestro objetivo es hacer que la integración de la biblioteca sea lo más simple posible.
    • Ultraligero. La sobrecarga debe ser mínima y no imponer un costo tangible en el manejo de solicitudes (ver benchmarks).

    Versiones HTTP compatibles

    El enfoque principal de esta biblioteca es HTTP/1.1. Consulte tests para todos los casos cubiertos. Los predecesores de HTTP/1.1 no admiten la reutilización de conexiones, lo que limita las oportunidades de HTTP Desync, sin embargo, algunos proxies pueden actualizar dichas solicitudes a HTTP/1.1 y reutilizar conexiones de backend, lo que podría permitir crear solicitudes maliciosas HTTP/1.0. Es por eso que se analizan usando los mismos criterios que HTTP/1.1. Para otras versiones del protocolo, se tienen las siguientes excepciones:

    • Las solicitudes HTTP/0.9 nunca se consideran Compliant, sino que se clasifican como Acceptable. Si hay presencia de Content-Length/Transfer-Encoding, entonces es Ambiguous.
    • HTTP/1.0: la presencia de Transfer-Encoding hace que una solicitud sea Ambiguous.
    • HTTP/2+ está fuera del alcance. Pero si su proxy degrada HTTP/2 a HTTP/1.1, asegúrese de que la solicitud saliente sea analizada.

    Consulte la documentación para obtener más información.

    Uso desde C

    Esta biblioteca está diseñada para ser utilizada principalmente desde motores HTTP escritos en C/C++.

    1. Instalar cbindgen: cargo install --force cbindgen
    2. Generar el archivo de cabecera:
      • Ejecute cbindgen --output http_desync_guardian.h --lang c para C.
      • Ejecute cbindgen --output http_desync_guardian.h --lang c++ para C++.
    3. Ejecute cargo build --release. Los binarios se encuentran en los archivos ./target/release/libhttp_desync_guardian.*.

    Más información: ejemplos genérico y Nginx.

    root@kitploit:~
    #include "http_desync_guardian.h"
    
    /* 
     * http_engine_request_t - ya analizada por el motor HTTP 
     */
    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:
                // La solicitud es válida. luz verde
                break;
            case REQUEST_SAFETY_TIER_ACCEPTABLE:
                // Rechazar, si mode == STRICTEST
                // De lo contrario, OK
                break;
            case REQUEST_SAFETY_TIER_AMBIGUOUS:
                // La solicitud es ambigua.
                // Rechazar, si mode == STRICTEST 
                // De lo contrario, enviarla pero no reutilizar ninguna conexión FE/BE.
                break;
            case REQUEST_SAFETY_TIER_SEVERE:
                // Enviar 400 y cerrar la conexión FE.
                break;
            default:
                // código inalcanzable
                abort();
        }
    }
    

    Uso desde Rust

    Consulte benchmarks como ejemplo de uso desde Rust.

    Notificaciones de problemas de seguridad

    Si descubre un posible problema de seguridad en http_desync_guardian, le pedimos que notifique a AWS Security a través de nuestra página de reporte de vulnerabilidades. Por favor, no cree un issue público en github.

    Seguridad

    Consulte CONTRIBUTING para más información.

    Licencia

    Este proyecto está licenciado bajo la Licencia Apache-2.0.

    Descargar herramienta