Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
http-desync-guardian — HTTPリクエストを分析して、HTTP Desync攻撃(HTTPリクエストスマグリング/スプリッティングの前兆)のリスクを最小限に抑えます。 | Kitploit
ツール/GitHubGitHub/aws/http-desync-guardian
静的分析脆弱性分析APIセキュリティテストウェブセキュリティ
GitHubaws/http-desync-guardian

http-desync-guardian

HTTPリクエストを分析して、HTTP Desync攻撃(HTTPリクエストスマグリング/スプリッティングの前兆)のリスクを最小限に抑えます。

リポジトリを見る
274222ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Apache 2 License Crate Clippy/Fmt Tests Coverage Status

概要

HTTP/1.1は1991年から2014年にかけて長い進化を遂げました:

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

つまり、リクエストの境界について異なる見解を持つさまざまなサーバーやクライアントが存在し、非同期攻撃(別名HTTP Desync)の機会を生み出しています。

最新のRFC推奨事項に従うのは簡単に思えるかもしれません。しかし、長期間にわたって存在してきた大規模なシステムでは、許容できない可用性への影響を伴う可能性があります。

http_desync_guardianライブラリは、HTTPリクエストを分析してHTTP Desync攻撃を防止するように設計されており、セキュリティと可用性のバランスをとっています。 リクエストを異なるカテゴリに分類し、各階層の処理方法に関する推奨事項を提供します。

これは、生のHTTPリクエストヘッダーに対しても、HTTPエンジンによって解析済みのものに対しても使用できます。 利用者はログ記録とメトリクス収集を設定できます。 ログ記録はレート制限され、すべてのユーザーデータは難読化されます。

セキュリティに影響を与える可能性のある問題を発見された場合は、セキュリティ通知プロセスに従ってください。

優先事項

  • サービス間の統一性が鍵です。 つまり、リクエストの分類、ログ記録、メトリクスは内部で行われ、最小限の設定(例:ログファイルの保存先など)で利用可能でなければなりません。
  • レビュー容易性に重点を置きます。 テストスイートは、ライブラリやプログラミング言語の知識を必要とせず、HTTPプロトコルの知識のみを必要とします。これにより、レビュー、貢献、再利用が容易になります。
  • セキュリティはユーザーにとって簡単であるときに効果的です。 私たちの目標は、ライブラリの統合を可能な限りシンプルにすることです。
  • 超軽量。 オーバーヘッドは最小限で、リクエスト処理に目に見える負荷をかけてはいけません(ベンチマークを参照)。

サポートされているHTTPバージョン

このライブラリの主な焦点はHTTP/1.1です。すべてのカバーされるケースについてはテストを参照してください。HTTP/1.1以前のバージョンは接続の再利用をサポートしておらず、HTTP Desyncの機会が制限されますが、 一部のプロキシはそのようなリクエストをHTTP/1.1にアップグレードし、バックエンド接続を再利用する可能性があり、悪意のあるHTTP/1.0リクエストを作成できる可能性があります。 そのため、これらはHTTP/1.1と同じ基準で分析されます。他のプロトコルバージョンについては、次の例外があります。

  • HTTP/0.9リクエストはCompliantと見なされることはなく、Acceptableに分類されます。Content-Length/Transfer-Encodingのいずれかが存在する場合、Ambiguousになります。
  • HTTP/1.0 – Transfer-Encodingが存在する場合、リクエストはAmbiguousになります。
  • HTTP/2+は対象外です。ただし、プロキシがHTTP/2をHTTP/1.1にダウングレードする場合は、送信リクエストが分析されることを確認してください。

詳細についてはドキュメントを参照してください。

Cからの使用

このライブラリは、主にC/C++で書かれたHTTPエンジンから使用されるように設計されています。

  1. cbindgenをインストール: cargo install --force cbindgen
  2. ヘッダーファイルを生成:
    • C用: cbindgen --output http_desync_guardian.h --lang c を実行
    • C++用: cbindgen --output http_desync_guardian.h --lang c++ を実行
  3. cargo build --release を実行。バイナリは ./target/release/libhttp_desync_guardian.* ファイルにあります。

詳細: 汎用およびNginxの例。

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

/* 
 * http_engine_request_t - 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:
            // リクエストは良好。青信号
            break;
        case REQUEST_SAFETY_TIER_ACCEPTABLE:
            // モードがSTRICTESTの場合は拒否
            // それ以外はOK
            break;
        case REQUEST_SAFETY_TIER_AMBIGUOUS:
            // リクエストは曖昧。
            // モードがSTRICTESTの場合は拒否
            // それ以外は送信するが、FE/BE接続を再利用しない。
            break;
        case REQUEST_SAFETY_TIER_SEVERE:
            // 400を送信し、FE接続を閉じる。
            break;
        default:
            // 到達不能コード
            abort();
    }
}

Rustからの使用

Rustからの使用例としてベンチマークを参照してください。

セキュリティ問題の通知

http_desync_guardianで潜在的なセキュリティ問題を発見された場合は、 vulnerability reporting pageを通じてAWS Securityに通知してください。公開のgithub issueを作成しないでください。

セキュリティ

詳細についてはCONTRIBUTINGを参照してください。

ライセンス

このプロジェクトはApache-2.0 Licenseの下でライセンスされています。

ツールをダウンロード