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
Webキャッシュポイズニング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shunaroo
April 27, 2022
Technology
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Webキャッシュポイズニング
Webのキャッシュを悪用することで、攻撃を行うWebキャッシュポイズニングとその対策を紹介します。
shunaroo
April 27, 2022
More Decks by shunaroo
See All by shunaroo
Browser In The Browserの紹介
shunaroo
0
130
Other Decks in Technology
See All in Technology
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
580
サプライチェーンセキュリティの空白地帯 - 信頼できる”依存性”の未来を考える
rung
PRO
2
740
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
510
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
840
Sony_KMP_Journey_KotlinConf2026
sony
2
210
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
270
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
200
ABEMA の Datadog × OTel 基盤、 中から見るか? 外から見るか?
tetsuya28
0
110
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
210
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
50k
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
3
360
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
250
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
GitHub's CSS Performance
jonrohan
1033
470k
Exploring anti-patterns in Rails
aemeredith
3
400
We Are The Robots
honzajavorek
0
240
Typedesign – Prime Four
hannesfritz
42
3.1k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building Applications with DynamoDB
mza
96
7.1k
Navigating Team Friction
lara
192
16k
Transcript
Web キャッシュ ポイズニング ~Webのキャッシュを使った攻撃と対策~ @shunaroo
自己紹介 @shunaroo ▪ 経歴 (重複あり) ▪ Webアプリ開発 5~6年 ▪ Web/NW脆弱性診断
3~4年 ▪ コンサルもどき 1~2年 ▪ 趣味 ▪ 犬を愛でる ▪ ゴルフ
Web キャッシュ ポイズニングとは? ▪ 攻撃者が用意した悪意のあるWebキャッシュに被害者がアクセスすることで発生する攻撃 攻撃者 被害者 悪意のある Webキャッシュ 攻撃者に利用された
サーバ キャッシュサーバ
Web キャッシュとは? ▪ Webコンテンツを一時的に保存(キャッシュ)しておくこと。 ▪ キャッシュ専用のサーバを用意しておくことで、Webコンテンツの応答速度や効率を上げること ができる 利用者A キャッシュされた コンテンツ
キャッシュサーバ 利用者B キャッシュサーバからコンテンツを取得できるので、 利用者Bはその分早く受け取れるし、 元のサーバの負荷も減る 同じWebコンテンツにアクセスする場合 キャッシュがない場合は 元のサーバまで取りに行く
キャッシュキーとアンキャッシュキー ▪ キャッシュサーバが、リクエストを受けた際に、「何をもって同じリクエストか」を判断する目印が必要 ▪ その目印を「キャッシュキー(Cache Key)」と呼ぶ ▪ 少なくとも、どのサイト(Hostヘッダ)のどのコンテンツ(リクエストライン)かを識別する値は、 キャッシュキーの一部となる ▪
キャッシュキーにならないリクエストの部分を「アンキャッシュキー(Uncache Key)」と呼ぶ キャッシュキー例 アンキャッシュキー例
Webキャッシュポイズニングの主な条件 ①元のサイトから悪意のあるレスポンスを引き出せる ▪ 本来アクセスしたいサイト以外にリダイレクトされる ▪ 不正なスクリプトが動作する など ②攻撃が悪用できる状態でキャッシュできる 元のサイト 悪意のある
Webキャッシュ キャッシュサーバ 被害者
攻撃のステップ ①攻撃に使えるアンキャッシュキーを特定する キャッシュキーに、攻撃用のペイロードを載せられたとしても、 攻撃するためには、被害者も同様に攻撃用のペイロードを載せたリクエストを送る必要がある(影響小) アンキャッシュキーを用いて、攻撃することができれば、 被害者はサイトにアクセスするだけで、攻撃が成立するようになる(影響大) 特定方法としては、Burp SuiteのプラグインParam Minerが有名 ②キャッシュさせる
すぐにキャッシュされなかったり、短期間で消えてしまう可能性があるので、注意深く観察する
学習用サイト Web Security Academy ▪ Lab: Web cache poisoning with
an unkeyed header <https://portswigger.net/web-security/web-cache-poisoning/exploiting-design- flaws/lab-web-cache-poisoning-with-an-unkeyed-header> ▪ アンキャッシュキーに含まれる値を用いてJSの読み込み先を変更していることを利用して、 読み込み先を攻撃者が用意してるサーバに変更し、攻撃する
解法例 ステップ① ▪ Param Minerでアンキャッシュキーを探索
解法例 ステップ② ▪ 「x-forwarded-host」がアンキャッシュキーとして悪用できそうであるとわかる
▪ リクエストレスポンスを確認してみる 解法例 ステップ③
解法例 ステップ④ ▪ リクエストレスポンスを確認してみる JSの読み込み先が「x-forwarded-host」で指定したドメインに変わっている。 悪意のあるレスポンスを引き出せることがわかる
解法例 ステップ⑤ ▪ 攻撃用サーバの準備 このURLにアクセスすると、 alert(document.cookie)が返却される
解法例 ステップ⑥ ▪ JSの読み込み先を攻撃用サーバに変え、かつキャッシュされるようにリクエストを数回送信 キャッシュキー 攻撃用サーバのドメイン
解法例 ステップ⑦ ▪ JSの読み込み先を攻撃用サーバに変え、かつキャッシュされるようにリクエストを送信 キャッシュから取得 読み込み先が攻撃者のサーバに変わっている
解法例 ステップ⑧ 検証完了 ▪ トップページアクセスすることで、攻撃者が用意したスクリプトが作動
対策 ▪ キャッシュさせない ←難しい ▪ キャッシュキー/アンキャッシュキーをきっちり把握し、悪意のあるレスポンスを発生させない 魔法のような対策はない。地道な情報収集と検証が大事
参考 ▪ Web cache poisoning ▪ https://portswigger.net/web-security/web-cache-poisoning