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

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

お客様、そこは秘孔です!突かないでください! 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. お客様、そこは秘孔です!
    突かないでください!
    HTTP/2 Rapid reset の概要と対策
    Murachi Akira aka Hebikuzure

    View full-size slide

  2. 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

    View full-size slide

  3. 秘孔
    •経絡秘孔
    •「気」の流れる経絡の要所
    •秘孔を突くことにより敵を破裂させたり、人体を強
    化することができる
    https://ja.wikipedia.org/経絡秘孔
    3

    View full-size slide

  4. 脆弱性
    •一つ以上の脅威によって付け込まれる可能性のあ
    る資産または管理策の弱点
    (ISO 27000 / JIS Q 27000)
    •一般的にはソフトウェアの不具合やソフトウェアの
    設定の誤りによって生じる
    4

    View full-size slide

  5. 脆弱性
    •一般的にはソフトウェアの不具合やソフトウェアの
    設定の誤りによって生じる
    •開発者による不具合や利用者の誤りが無くても脆
    弱性となる場合がある
    5
    標準規格(仕様)自体に脆弱性が見つかる

    View full-size slide

  6. HTTP/2
    •RFC 7540 - Hypertext Transfer Protocol Version 2
    (HTTP/2) (ietf.org)
    https://datatracker.ietf.org/doc/html/rfc7540
    7

    View full-size slide

  7. HTTP 1.1 と TCPセッション
    •HTTP 1.1ではTCP 1セッション=
    1つの HTTP リクエスト / レスポンス
    8
    HTTP Request
    HTTP Response
    TCP

    View full-size slide

  8. HTTP/2 ストリーム多重化
    •HTTP/2 では 1 つの TCP 接続を複数の HTTP スト
    リーム(リクエスト / レスポンス)で共有する
    stream#1 HTTP Request
    HTTP Response
    stream#2 HTTP Request
    HTTP Response
    TCP
    9

    View full-size slide

  9. HTTP リクエストの中断
    •ブラウザーを閉じる
    •タブを閉じる
    •[×] ボタンで読み込み中止
    10
    HTTP リクエストを中止して終了したい

    View full-size slide

  10. HTTPリクエストの中断
    •HTTP 1.1
    ⇒ TCP セッションを切れば良い
    = TCP RST の送出
    •HTTP/2
    ⇒ TCP セッションは切れない
    ※他の HTTP ストリームと共有しているから
    11
    そこで RST_STREAM

    View full-size slide

  11. 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

    View full-size slide

  12. ストリームのリセット
    •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

    View full-size slide

  13. DoS/DDoS とは
    14

    View full-size slide

  14. DoS (Denial of Service) 攻撃
    •情報セキュリティにおける可用性を侵害する
    攻撃手法
    •フラッド攻撃
    • 大量のリクエストや巨大なデータを送りつけてサービス
    を中断させる
    •脆弱性を利用する
    • サービスの脆弱性を利用してサービスを中断させる
    15

    View full-size slide

  15. フラッド攻撃
    16

    View full-size slide

  16. DDoS (Distributed Denial of Service)
    •乗っ取りやなりすましを利用して、多数のエンドポ
    イントからサービスへの攻撃を集中させる手法
    •協調分散型DoS攻撃(乗っ取りを利用)
    • 乗っ取ったデバイスから攻撃対象にリクエストを送信
    •分散反射型DoS攻撃(なりすましを利用)
    • 攻撃対象になりすまし、大量のリクエストを送信
    • 攻撃対象に大量のレスポンスが集中
    17

    View full-size slide

  17. 協調分散型DoS
    18

    View full-size slide

  18. TCP Syn Flood
    Syn Syn Syn Syn Syn Syn
    Syn-Ack
    Ack Ack Ack Ack AckAck
    Ack を
    返さない
    接続応答(Ack)待ち
    スレッドが増大
    19

    View full-size slide

  19. HTTP/2 Rapid reset attack
    20

    View full-size slide

  20. 8月末からのDDoS
    •8月末から9月にかけて世界的な DDoS キャンペー
    ンが発生
    •新しい DDoS 手法が利用されていることが判明
    •HTTP/2 の仕様の弱点を利用した新しい手法
    ⇒HTTP/2 Rapid reset attack
    21

    View full-size slide

  21. RST_STREAM の処理
    •送信側
    • 単に送信するだけ
    • 負荷は少ない
    •受信側
    • それまでの処理のキャンセルが必要
    • それなりの処理量が必要
    送信側と受信側の負荷が非対称
    22

    View full-size slide

  22. HTTP/2 Rapid reset attack
    1.HTTP/2 リクエストを送信
    2.直後にリセット要求(RST_STREAM)を送信
    3.これを高速・大量に繰り返す
    4.サーバー側の負荷が増大
    5.DoS 成立
    23
    RST_STREAM が
    「秘孔」

    View full-size slide

  23. リクエストとリセット
    リセット処理の負荷増大
    HTTP/2 Request
    RST_STREAM
    24

    View full-size slide

  24. 対策
    •不正な(大量の)RST_STREAMを検知して
    TCP 接続をクローズ
    •不正な(大量の)RST_STREAMを送信する
    IP をブロック
    サーバー/ネットワークでの対処
    25

    View full-size slide

  25. 対応状況
    •主なネットワーク オペレーター(CDN など)では
    対処完了
    •サーバー製品(Web サーバー、フレームワーク、プロ
    キシなど)の対処も完了 ⇒ 要更新
    •詳細情報
    CVE Record | CVE CVE-2023-44487
    26

    View full-size slide

  26. Call to action
    •利用しているサーバー製品(Web サーバー、フレー
    ムワーク、プロキシなど)の対応状況を確認
    •対応済みバージョンへの更新
    •ネットワーク オペレーターの対応やガイダンスを
    確認
    27

    View full-size slide

  27. 参考情報
    • 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

    View full-size slide

  28. 29
    ありがとうございました • Murachi Akira aka hebikuzure​
    • https://www.linkedin.com/in/akiramurachi/
    • https://www.facebook.com/amurachi/
    • https://twitter.com/hebikuzure

    View full-size slide