Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTTP/2 Desync Attacksを解説する
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kuzushiki
September 30, 2021
Technology
1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTTP/2 Desync Attacksを解説する
第11回 初心者のためのセキュリティ勉強会(
https://sfb.connpass.com/event/224489/)の発表資料です
kuzushiki
September 30, 2021
More Decks by kuzushiki
See All by kuzushiki
ECS-cape – Hijacking IAM Privileges in Amazon ECSを解説する
kuzushiki
0
300
Next.jsの脆弱性(CVE-2025-29927)の話
kuzushiki
0
42
CISSPに出てくるセキュリティモデルとアクセス制御モデルをまとめてみた
kuzushiki
0
440
攻撃者の視点から見たGraphQLのセキュリティ
kuzushiki
0
40
PythonのURLパーサで見つかった脆弱性について解説する
kuzushiki
0
62
Pythonのtarfileによる展開処理がセキュアになりそう
kuzushiki
0
26
Web Cache Deception Attackについて解説する
kuzushiki
0
56
PHP8.2の新機能✞SensitiveParameter✞につい て
kuzushiki
0
33
Apple M1 CPUの脆弱性「PACMAN」について解説する
kuzushiki
0
870
Other Decks in Technology
See All in Technology
Kiro Ambassador を目指す話
k_adachi_01
0
110
AIのReact習熟度を測る
uhyo
2
660
AIAU_UMEMOGU_ninomiya_slide
ninomiya_ii
0
240
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
180
現場のトークンマネジメント
dak2
0
140
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
1
490
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
20260619 私の日常業務での生成 AI 活用
masaruogura
1
230
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
210
【NRUG vol.18】KubernetesにおけるNew Relicデータ取得量削減の考え方
nrug_member
0
170
Lightning近況報告
kozy4324
0
210
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
1
190
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.1k
The SEO Collaboration Effect
kristinabergwall1
1
490
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
170
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Become a Pro
speakerdeck
PRO
31
6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
From π to Pie charts
rasagy
0
210
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
Transcript
HTTP/2 Desync Attacks を解説する kuzushiki 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki
今回の発表内容 HTTP/2: The Sequel is Always Worse James Kettle |
Director of Research, PortSwigger HTTP/1.1とHTTP/2との同期ズレ (DeSync) を突いた攻撃手法について 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki Black Hat USA 2021で興味深かった発表を紹介する 2 / 20
HTTP/1.1 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki 3 / 20
HTTP/2 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki 4 / 20
HTTP/2で追加された概念 Binary Protocol HTTP/1はテキストベースなので曖昧な文字列のパースが必要 ex) ヘッダの終わりを知るために「:」を探す TCPのようなバイナリのプロトコルを採用 Message Length HTTP/1ではメッセージボディの長さを以下のヘッダで定義
Content-Length Transfer-Encoding HTTP/2では削除 メッセージボディに長さのフィールドが組み込まれているため不要 メッセージ長を曖昧にする余地がほとんどない 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki 5 / 20
HTTP/2 Desync Attacks 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki ようやく本題 6 / 20
Request smuggling via HTTP/2 downgrades プロトコルの違いを利用してリクエストを密輸 (smuggling) 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki
7 / 20
H2.CL Desync on Netflix 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki リアルワールドの脆弱性を紹介 8 /
20
Before HTTP/2ではContent-Lengthヘッダは不要 なぜかRFCでは付与してもOK After リクエストを挿入し罠サイト 02.rs に誘導 Netflixのアカウントを侵害し,クレジットカード番号など の重要な情報を窃取できた 報奨金は200万円
第11回 初心者のためのセキュリティ勉強会 kuzu7shiki 9 / 20
H2.TE Desync on Application Load Balancer 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki リアルワールドの脆弱性を紹介
10 / 20
Before HTTP/2ではTransfer-EncodingヘッダはNG AWSはこれに従っていなかった After リクエストを挿入し罠サイト psres.net に誘導 報奨金は70万円 第11回 初心者のためのセキュリティ勉強会
kuzu7shiki 11 / 20
H2.TE via Request Header Injection 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki リアルワールドの脆弱性を紹介 12
/ 20
Before HTTP/2はバイナリベース \r\nなどの特殊な文字列を挿入可能 After 被害者は悪意のあるNetlifyドメインからコンテンツを受け取 ることに 報奨金はMozilaから20万,Netlifyから20万円 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki
13 / 20
H2.X via Request Splitting 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki リアルワールドの脆弱性を紹介 14 /
20
Before chunked encodingを使わず,2回の\r\nでリクエストを 中断させようとした After しかし失敗 フロントエンドはHostヘッダを\r\n\r\nで終わらせるため, 独立したリクエストを挿入してしまった その結果... ->
第11回 初心者のためのセキュリティ勉強会 kuzu7shiki 15 / 20
結果,障害レベルの事態に 1回の通信で2つの独立したリクエストを送信してしまった リクエストとレスポンスが一つずれてしまった Set-Cookieヘッダを含むレスポンスがあったため,異なるユーザのアカウントにログインできてしま った Atlassianは全ユーザのセッションを失効することで対処 報奨金は150万円 著者はかなり影響が大きいと考えている 第11回 初心者のためのセキュリティ勉強会
kuzu7shiki 16 / 20
Desync-Powered Request Tunnelling Smugglingの例とは異なり,IPごとにコネクションが張られている 他ユーザのレスポンスに影響が出ない この場合でも キャッシュポイゾニング が可能 第11回 初心者のためのセキュリティ勉強会
kuzu7shiki 17 / 20
Tunnelling Exploitation: Cache Poisoning 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki リアルワールドの脆弱性を紹介 18 /
20
Before POSTではレスポンスボディが大きすぎて上手く検知できず… HEADを用いてレスポンスボディをカット After 通常レスポンスヘッダはhtmlとしてみなされない 今回はレスポンスボディとして解釈されているためXSSが 発火 この時点でキャッシュが汚染される 他のユーザが /blog/?x=dontpoisoneveryone
に アクセスしてもXSSが発火 報奨金は150万円 第11回 初心者のためのセキュリティ勉強会 kuzu7shiki ` ` 19 / 20
おわりに HTTP/2 Desync Attacksを解説した 報奨金の多さ(計560万円!)から,とても深刻な脆弱性だということが分かった 紹介した脆弱性は以下のツールで発見できる(BApp Storeからインストール可) https://github.com/PortSwigger/http-request-smuggler E2EでHTTP/2を使うことが大切 第11回
初心者のためのセキュリティ勉強会 kuzu7shiki 20 / 20