脆弱性
HTTP デシンク攻撃
別称: HTTP/1.1 デシンク, 接続状態攻撃
定義
プロキシとサーバーのチェーンを意図的に非同期化し、他ユーザーの接続に悪意あるトラフィックを注入する、HTTP リクエストスマグリングの現代的形態。
2019 年の James Kettle の研究「HTTP Desync Attacks」で広く知られた手法で、前段プロキシと後段サーバーの解析を意図的にずらします。CL.TE、TE.CL、TE.TE、HTTP/2 から HTTP/1.1 へのダウングレード、チャンクエンコーディングの細工などを駆使します。接続が非同期化すると、攻撃者の制御するバイト列が次の被害者のリクエストの前に付加され、認証情報の窃取、内部エンドポイントへのアクセス、レスポンスキューの汚染、認証・WAF のバイパスを引き起こします。対策はエンドツーエンドの HTTP/2、厳格なヘッダ検証、Content-Length と Transfer-Encoding を同時に含むリクエストの拒否、エッジでの曖昧リクエスト破棄、HTTP Request Smuggler などによる継続的検証です。
例
- HTTP/2 → HTTP/1.1 ダウングレードのデシンクで、他ユーザーのセッション Cookie を窃取する。
- フロントエンドの keep-alive を非同期化して、次のリクエストを内部 admin URL に乗っ取る。
関連用語
HTTP リクエストスマグリング
前段プロキシとバックエンドサーバーで HTTP リクエストの終端解釈が食い違うことを悪用し、攻撃者が隠しリクエストを送り込めるようにする攻撃。
HTTP レスポンス分割
ユーザー入力中の信頼できない CR/LF 文字によって、サーバーが攻撃者の制御する追加 HTTP レスポンスを送出してしまうインジェクション脆弱性。
キャッシュ汚染
共有キャッシュに悪意あるレスポンスを保存させ、以降の他ユーザーに攻撃者のコンテンツを配信する攻撃。
Web キャッシュデセプション
悪意ある URL によって、中間キャッシュが被害者の認証済みの機微なレスポンスを公開可能なパスとして保存してしまう攻撃。
Reverse Proxy
Reverse Proxy — definition coming soon.
セッションハイジャック
セッション識別子を盗用または偽造して被害者の認証済みセッションを乗っ取り、攻撃者が認証情報なしで本人として振る舞う攻撃。