Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Background 6

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

DoS/DDoS とは 14

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

フラッド攻撃 16

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

協調分散型DoS 18

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

HTTP/2 Rapid reset attack 20

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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