Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
http-desync-guardian — Analysieren Sie HTTP-Anfragen, um Risiken von HTTP-Desync-Angriffen (Vorläufer von HTTP-Request-Smuggling/-Splitting) zu minimieren. | Kitploit
Tools/GitHubGitHub/aws/http-desync-guardian
Statische AnalyseSchwachstellenanalyseAPI-SicherheitstestsWebsicherheit
GitHubaws/http-desync-guardian

http-desync-guardian

Analysieren Sie HTTP-Anfragen, um Risiken von HTTP-Desync-Angriffen (Vorläufer von HTTP-Request-Smuggling/-Splitting) zu minimieren.

Repository anzeigen
274223vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Apache 2 License Crate Clippy/Fmt Tests Coverage Status

Übersicht

HTTP/1.1 durchlief zwischen 1991 und 2014 eine lange Entwicklung:

  • HTTP/0.9 – 1991
  • HTTP/1.0 – 1996
  • HTTP/1.1
    • RFC 2068 – 1997
    • RFC 2616 - 1999
  • RFC 7230 - 2014
  • Dies bedeutet, dass es eine Vielzahl von Servern und Clients gibt, die unterschiedliche Ansichten über Anfragegrenzen haben könnten, wodurch Angriffsmöglichkeiten für Desynchronisationsangriffe (auch bekannt als HTTP Desync) entstehen.

    Es mag einfach erscheinen, den neuesten RFC-Empfehlungen zu folgen. Für große Systeme, die schon eine Weile bestehen, könnte dies jedoch eine inakzeptable Beeinträchtigung der Verfügbarkeit mit sich bringen.

    Die Bibliothek http_desync_guardian wurde entwickelt, um HTTP-Anfragen zu analysieren und HTTP-Desync-Angriffe zu verhindern, wobei Sicherheit und Verfügbarkeit abgewogen werden. Sie klassifiziert Anfragen in verschiedene Kategorien und gibt Empfehlungen, wie jede Stufe behandelt werden soll.

    Sie kann entweder für rohe HTTP-Anfrage-Header oder bereits von einer HTTP-Engine geparste Anfragen verwendet werden. Anwender können Protokollierung und Metriksammlung konfigurieren. Die Protokollierung ist ratenbegrenzt und alle Benutzerdaten werden verschleiert.

    Wenn Sie glauben, ein sicherheitsrelevantes Problem gefunden zu haben, folgen Sie bitte unserem Benachrichtigungsprozess für Sicherheitsprobleme.

    Prioritäten

    • Einheitlichkeit zwischen Diensten ist entscheidend. Dies bedeutet, dass Anfrageklassifizierung, Protokollierung und Metriken im Hintergrund und mit minimal verfügbaren Einstellungen (z.B. Protokolldateiziel) erfolgen müssen.
    • Fokus auf Überprüfbarkeit. Die Testsuite muss kein Wissen über die Bibliothek/Programmiersprachen, sondern nur über das HTTP-Protokoll erfordern. So ist es einfach zu überprüfen, beizutragen und wiederzuverwenden.
    • Sicherheit ist effizient, wenn sie für Benutzer einfach ist. Unser Ziel ist es, die Integration der Bibliothek so einfach wie möglich zu gestalten.
    • Ultra-leicht. Der Overhead muss minimal sein und keine spürbare Belastung für die Anfragebearbeitung darstellen (siehe Benchmarks).

    Unterstützte HTTP-Versionen

    Der Hauptfokus dieser Bibliothek liegt auf HTTP/1.1. Siehe Tests für alle abgedeckten Fälle. Vorgänger von HTTP/1.1 unterstützen keine Wiederverwendung von Verbindungen, was die Möglichkeiten für HTTP-Desync einschränkt. Einige Proxys können jedoch solche Anfragen auf HTTP/1.1 upgraden und Backend-Verbindungen wiederverwenden, was das Erstellen bösartiger HTTP/1.0-Anfragen ermöglichen könnte. Deshalb werden sie mit denselben Kriterien wie HTTP/1.1 analysiert. Für andere Protokollversionen gelten folgende Ausnahmen:

    • HTTP/0.9-Anfragen werden nie als Compliant betrachtet, sondern als Acceptable eingestuft. Wenn Content-Length/Transfer-Encoding vorhanden ist, gilt die Anfrage als Ambiguous.
    • HTTP/1.0 – das Vorhandensein von Transfer-Encoding macht eine Anfrage Ambiguous.
    • HTTP/2+ ist nicht im Fokus. Falls Ihr Proxy jedoch HTTP/2 auf HTTP/1.1 herabstuft, stellen Sie sicher, dass die ausgehende Anfrage analysiert wird.

    Siehe Dokumentation für weitere Informationen.

    Verwendung von C

    Diese Bibliothek ist hauptsächlich für die Verwendung von HTTP-Engines in C/C++ ausgelegt.

    1. Installieren Sie cbindgen: cargo install --force cbindgen
    2. Generieren Sie die Header-Datei:
      • Führen Sie cbindgen --output http_desync_guardian.h --lang c für C aus.
      • Führen Sie cbindgen --output http_desync_guardian.h --lang c++ für C++ aus.
    3. Führen Sie cargo build --release aus. Die Binärdateien befinden sich in ./target/release/libhttp_desync_guardian.* Dateien.

    Weitere Informationen: generic und Nginx Beispiele.

    root@kitploit:~
    #include "http_desync_guardian.h"
    
    /* 
     * http_engine_request_t - bereits von der HTTP-Engine geparst 
     */
    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:
                // Die Anfrage ist in Ordnung. Grünes Licht
                break;
            case REQUEST_SAFETY_TIER_ACCEPTABLE:
                // Ablehnen, wenn Modus == STRICTEST
                // Ansonsten OK
                break;
            case REQUEST_SAFETY_TIER_AMBIGUOUS:
                // Die Anfrage ist mehrdeutig.
                // Ablehnen, wenn Modus == STRICTEST 
                // Ansonsten senden, aber weder FE- noch BE-Verbindungen wiederverwenden.
                break;
            case REQUEST_SAFETY_TIER_SEVERE:
                // Sende 400 und schließe die FE-Verbindung.
                break;
            default:
                // nicht erreichbarer Code
                abort();
        }
    }
    

    Verwendung von Rust

    Siehe Benchmarks als Beispiel für die Verwendung von Rust.

    Sicherheitsmeldungen

    Wenn Sie ein potenzielles Sicherheitsproblem in http_desync_guardian entdecken, bitten wir Sie, AWS Security über unsere Seite zur Meldung von Schwachstellen zu benachrichtigen. Bitte erstellen Sie kein öffentliches GitHub-Issue.

    Sicherheit

    Siehe CONTRIBUTING für weitere Informationen.

    Lizenz

    Dieses Projekt ist unter der Apache-2.0-Lizenz lizenziert.

    Tool herunterladen