Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お客様、そこは秘孔です!突かないでください! HTTP/2 Rapid reset の概要と対策

Murachi Akira
November 24, 2023

お客様、そこは秘孔です!突かないでください! HTTP/2 Rapid reset の概要と対策

2023年11月25日開催「.NETラボ 勉強会 2023年11月」で行ったセッションのスライドです。
※2023年10月29日開催「HTML5 9th Anniversary」でのセッションの改訂版です。
2023年8月末から観察された DDoS 攻撃で利用された新しい手法について概要を解説しています。

Murachi Akira

November 24, 2023
Tweet

More Decks by Murachi Akira

Other Decks in Technology

Transcript

  1. About me • Murachi Akira aka hebikuzure ( 村地 彰

    ) • 株式会社エクシードワン 技術フェロー • 株式会社シーピーエス 技術教育スペシャリスト • 専門学校東京テクニカルカレッジ非常勤講師 • Microsoft MVP (Most Valuable Professional) • Since Apr. 2011 ( 13 Years! ) • Award Category: Windows and Device (Windows) • Expertise • Windows client / user management and security • Microsoft 365, Active Directory, Microsoft Endpoint Manager https://www.linkedin.com/in/akiramurachi/ https://www.facebook.com/amurachi/ https://twitter.com/hebikuzure 2
  2. HTTP/2 •RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)

    (ietf.org) https://datatracker.ietf.org/doc/html/rfc7540 7
  3. HTTP/2 ストリーム多重化 •HTTP/2 では 1 つの TCP 接続を複数の HTTP スト

    リーム(リクエスト / レスポンス)で共有する stream#1 HTTP Request HTTP Response stream#2 HTTP Request HTTP Response TCP 9
  4. HTTPリクエストの中断 •HTTP 1.1 ⇒ TCP セッションを切れば良い = TCP RST の送出

    •HTTP/2 ⇒ TCP セッションは切れない ※他の HTTP ストリームと共有しているから 11 そこで RST_STREAM
  5. RST_STREAM stream#1 HTTP Request HTTP Response stream#2 HTTP Request RST_STREAM

    stream#3 HTTP Request HTTP Response TCP 12 https://datatracker.ietf.org/doc/html/rfc7540#section-6.4
  6. ストリームのリセット •1つのTCP 接続内の特定のストリームだけ中断した い場合、クライアント/サーバーはリセット要求 (RST_STREAM フレーム)を送信できる •リセット要求はただちに処理される • The RST_STREAM

    frame fully terminates the referenced stream and causes it to enter the “closed” state. After receiving a RST_STREAM on a stream, the receiver MUST NOT send additional frames for that stream, with the exception of PRIORITY. However, after sending the RST_STREAM, the sending endpoint MUST be prepared to receive and process additional frames sent on the stream that might have been sent by the peer prior to the arrival of the RST_STREAM. 13
  7. TCP Syn Flood Syn Syn Syn Syn Syn Syn Syn-Ack

    Ack Ack Ack Ack AckAck Ack を 返さない 接続応答(Ack)待ち スレッドが増大 19
  8. 参考情報 • HTTP/2 Rapid Reset:記録的勢いの攻撃を無効化 (cloudflare.com) • 仕組み: 新手の HTTP/2「Rapid

    Reset」DDoS 攻撃 | Google Cloud 公式ブログ • How AWS protects customers from DDoS events | AWS Security Blog (amazon.com) • CVE-2023-44487 - セキュリティ更新プログラム ガイド - Microsoft - MITRE: CVE-2023-44487 HTTP/2 Rapid Reset Attack 28