Shikata Ga Nai

Private? There is no such things.

Webキャッシュとその脆弱性:Web Cache Deceptionの基礎を理解する

Hello there, ('ω')ノ

✅ Webキャッシュとは?

Webキャッシュとは、ユーザーのリクエストとサーバーの間に介在し、静的リソースのやり取りを効率化する仕組みです。


🔁 キャッシュの動作フロー

  1. ユーザーが静的リソースをリクエスト(例:画像やCSS、JavaScriptなど)
  2. リクエストはまずキャッシュサーバー(CDNなど)に送られる
  3. キャッシュにそのリソースが存在しない場合(キャッシュミス)

    • キャッシュはオリジンサーバーにリクエストを転送
    • サーバーがレスポンスを返す
    • キャッシュがそのレスポンスを保存しつつ、ユーザーに返す
  4. 次回以降、同じリソースが要求された場合(キャッシュヒット):

    • キャッシュが直接レスポンスを返す
    • オリジンサーバーに負荷がかからず、高速応答が可能

🚀 CDNとキャッシュの効果

**CDN(Content Delivery Network)**は、世界中に分散したサーバーにキャッシュされたデータを保持し:

  • ユーザーの地理的に最も近いサーバーからコンテンツを配信
  • レイテンシーの削減
  • オリジンサーバーの負荷軽減

⚠️ キャッシュがもたらすセキュリティのリスク:Web Cache Deception

Webキャッシュは便利な反面、次のような攻撃手法の入口になることがあります

🔍 Web Cache Deception(WCD)とは?

攻撃者が以下のような状況を利用してキャッシュサーバーに本来キャッシュしてはいけないデータを保存させ、他ユーザーに公開させる手法:

  • 本来はユーザー固有であるべきレスポンス(例:個人情報やセッションページ)
  • それが誤って共有キャッシュに保存される
  • 他のユーザーが同じパスにアクセスすると、別人の情報が表示されてしまう

✅ まとめ

概念 内容
Webキャッシュ 静的リソースを中継し、再利用して高速化・負荷軽減を行う
キャッシュミス キャッシュに該当データがない場合。オリジンサーバーにリクエストが転送される
キャッシュヒット キャッシュ済みデータが直接返される。高速かつ効率的
Web Cache Deception 攻撃者が意図的にキャッシュさせてはならないデータをキャッシュさせ、情報漏洩を誘発

Best regards, (^^ゞ