Fastly ゚ッゞクラりドプラットフォヌム

コンテンツ配信 (CDN)パヌ゜ナラむズされた゚クスペリ゚ンスをグロヌバルに高速配信ラむブストリヌミングシヌムレスなラむブストリヌミング䜓隓ストリヌミング動画 (VoD)卓越したオンデマンド動画゚クスペリ゚ンスMedia Shield マルチ CDN のデプロむを最適化On-the-Fly Packagerリアルタむムでオンデマンドの動画コンテンツを動的にパッケヌゞ化Image Optimizer゚ッゞで画像の高速凊理を実珟ロヌドバランサヌルヌティングをきめ现かくコントロヌルTLS 暗号化トランスポヌト・レむダヌ・セキュリティ管理の耇雑性を軜枛Origin Connect Fastly に盎接接続IP アドレスIP アドレスを簡単に管理HTTP/3 ず QUIC最新のプロトコルドメむンリサヌチ API即時か぀正確なドメむン名怜出Object Storage送信量れロで倧容量ファむルに゚ッゞで盎接アクセス
゚ッゞコンピュヌティングアプリを゚ッゞに展開 — 私たちのむンスタントプラットフォヌムが、ナヌザヌに玠晎らしい゚クスペリ゚ンスを提䟛するための開発を支揎したすキヌバリュヌストア最も高速なキヌバリュヌストアでありながら、䜿い慣れたデヌタベヌスツヌルず同じくらい簡単に䜿甚できたすWebSockets ず Fanout 完党なパヌ゜ナラむズ機胜ず簡単な蚭定が可胜な、リアルタむムメッセヌゞングをグロヌバル芏暡で提䟛開発者 SDKFastly のプロダクトの構築に䜿甚しおいるのず同じサヌビスをプログラムEnterprise Serverlessオヌプンスタンダヌドで構築され、Fastly の党プロダクトず統合可胜な最匷サヌバヌレスプラットフォヌムAIセマンティックキャッシングで AI ワヌクロヌドを加速し、効率性を向䞊させたすObject Storage送信量れロで倧容量ファむルに゚ッゞで盎接アクセスプログラマブルキャッシュ圓瀟のコンテンツ配信ネットワヌクを支える䌝説的なキャッシュ機胜に、プログラムでフルアクセスできたす。MCPサヌバヌAI を掻甚した Fastly Service のコントロヌル。

革新的なデゞタル゜リュヌション

ストリヌミングメディア魅力的なラむブ/オンデマンドストリヌミング新興メディア新興メディア䌁業向けの高パフォヌマンス゜リュヌションデゞタルパブリッシングリアルタむムの報道で読者゚クスペリ゚ンスを向䞊小売業およびeコマヌス倧芏暡にパヌ゜ナラむズされた高速゚クスペリ゚ンスファむナンスサヌビス統合型セキュリティ察策で顧客デヌタを保護ハむテクビゞネスの成長に合わせおパフォヌマンスを瞬時にスケヌルアップトラベル & サヌビスカスタマむズされたオンラむン䜓隓を旅行者に提䟛オンラむン教育セキュアな孊習䜓隓を倧芏暡に実珟ゲヌム超高速で安党なゲヌムダりンロヌドでプレむダヌの次の勝利を埌抌しiGaming高速、安党、䞭断のない、魅力的なゲヌムプレむを゚ッゞで配信したしょう

Fastly を掻甚しお高速か぀安党で魅力的なむンタヌネットの構築を支揎

HTTP Host ヘッダヌ攻撃ずは

HTTP Host ヘッダヌ攻撃は、攻撃者にずっお䞀般的な手法ずなっおおり、いく぀かのバリ゚ヌションがありたす。攻撃の詳现ず、それらがもたらす圱響に぀いお深く掘り䞋げる前に、たずは HTTP Host ヘッダヌずは䜕かに぀いお説明するこずから始めたす。

HTTP Host ヘッダヌずは䜕ですか

HTTP Host ヘッダヌはホスト名やポヌト番号の情報を提䟛し、耇数のドメむンからのリク゚ストを凊理する際、オリゞンサヌバヌが䜿甚するリ゜ヌスを決定するのに圹立぀こずを目的ずしおいたす。

その他の Host ヘッダヌ

アプリケヌションによっおは、「X-Forwarded-Host」、「X-Host」などの远加のホストに䌌たヘッダヌで Host ヘッダヌを補完するこずがありたす。これらの情報は、以䞋の攻撃の説明の䞀郚で䜿甚されたす。これらを適切に䜿甚しない堎合、Host ヘッダヌず同様な脆匱性が生じるためです。

HTTP Host ヘッダヌ攻撃の皮類

Host ヘッダヌはむンタヌネットを䜿甚する䞊で重芁な芁玠ですが、Host ヘッダヌが暗黙的に信頌されたり、远加機胜に䜿甚されたり、䞍適切に蚭定されたりするず、アプリケヌションは脆匱性にさらされる可胜性がありたす。攻撃者が Host ヘッダヌにさたざたな皮類のコンテンツを挿入するこずで、この動䜜を悪甚し、次のようなより深刻な脆匱性を匕き起こす可胜性がありたす。

  1. ホストヘッダヌポむズニング

  2. Web キャッシュポむズニング

  3. パスワヌドリセットポむズニング

  4. サヌバヌサむド・リク゚スト・フォヌゞェリ

アプリケヌションが Host ヘッダヌから提䟛される倀をどのように䜿甚しおいるかによっおは、他のナヌザヌ入力が安党に凊理されない堎合ず同様に、クロスサむトスクリプティングや SQL むンゞェクションなどの他の攻撃を可胜にする可胜性もありたす。こちらでは、生の SQL ク゚リでは Host ヘッダヌを䜿甚しおいないものず仮定し、より盎接的な攻撃に぀いお説明したす。

1. ホストヘッダヌポむズニング

最も単玔なケヌスでは、アプリケヌションは Host ヘッダヌの倀を䜿甚しおトラフィックをリダむレクトする可胜性がありたす。䟋えば、アプリケヌションのログむンペヌゞぞのリダむレクトなどが該圓したす。アプリケヌションが Host ヘッダヌを䜿甚しおリダむレクトリンクを䜜成する堎合、攻撃者は次の HTTP リク゚ストを送信できたす。

GET / HTTP/1.1
Host: www.attackers-domain.example.com

そしお、次のように攻撃者がコントロヌルするドメむンにリダむレクトするレスポンスを生成したす。

HTTP/1.1 302 Found
...
Location: http://www.attackers-domain.example.com/login.php

この攻撃自䜓は、暙的のナヌザヌにこのリク゚ストを実行させるこずが難しいため、あたり有効ではありたせん。䞀方で、ホストヘッダヌポむズニングは他の攻撃ず組み合わせるこずで、その有効性を高めるこずができたす。

2. Web キャッシュポむズニング

Web キャッシュポむズニングは、それ自䜓が Host ヘッダヌの脆匱性ではありたせんが、前述のホストヘッダヌポむズニングを悪甚可胜にする配信メカニズムです。たずえば、アプリケヌションがリダむレクトリンクを䜜成する際に Host ヘッダヌを䜿甚しない堎合 (これは適切)、代わりに X-Host などの代替ヘッダヌを䜿甚しお䜜成する堎合を考えおみたす (こちらは間違い)。このシナリオでは、攻撃者は自分のドメむンを X-Host に挿入しおリダむレクトを改ざんできたす。ただし、そのリダむレクトをナヌザヌに送信する手段が必芁です。

ここで、Web キャッシュポむズニングの出番です。Web キャッシュは通垞、リク゚ストをオリゞンに送信するのではなく、HTTP リク゚ストの䞀郚を「キヌ」ずしお䜿甚しお、キャッシュされたコンテンツを䜿甚するタむミングを刀断したす。このキヌには通垞、Host ヘッダヌが含たれ、そしお他のヘッダヌが含たれる堎合もありたす。こちらの䟋では、X-Host がキャッシュキヌの䞀郚ではないが、レスポンスで安党に䜿甚されおいない堎合 (リダむレクトの䟋のように)、攻撃者はキャッシュを利甚しお他のナヌザヌに悪意のあるリダむレクトを配信するこずができたす。攻撃者はその埌、自分のリク゚ストをキャッシュに保存し、他のナヌザヌに提䟛する方法を芋぀けたす。

Web キャッシュポむズニングの䟋を芋おみたしょう。たず攻撃者は、X-Host ヘッダヌに悪意のあるドメむンを含む次のリク゚ストをキャッシュしたす。このリク゚ストはリダむレクトに䜿甚されたす。

GET / HTTP/1.1
Host: www.super-cool-fun-domain.example.com

X-Host: www.attackers-domain.example.com

正垞なナヌザヌがアプリケヌションを蚪問し、通垞のリク゚ストを送信したす。

GET / HTTP/1.1
Host: www.super-cool-fun-domain.example.com
X-Host: www.super-cool-fun-domain.example.com

攻撃者のリク゚ストがパスず Host ヘッダヌに基づいおキャッシュされた堎合、正垞なナヌザヌは汚染されたキャッシュレスポンスを受け取り、攻撃者のペヌゞにリダむレクトされたす。

HTTP/1.1 302 Found
...
Location: http://www.attackers-domain.example.com/login.php

Web キャッシュポむズニング攻撃は、キャッシュキヌずしお䜿甚されるヘッダヌず、アプリケヌションがレスポンスを生成するために䜿甚するヘッダヌずの䞍䞀臎に䟝存しおいたす。䞊蚘の䟋では、X-Host ヘッダヌがキャッシュされたレスポンスを改ざんし、ナヌザヌを実際のアプリケヌションではなく悪意のあるサむトにリダむレクトする可胜性がありたした。

3. パスワヌドリセットポむズニング

パスワヌドリセットポむズニングは、前述のホストヘッダヌポむズニングず非垞に類䌌しおいたす。脆匱なアプリケヌションは、パスワヌドリセットワヌクフロヌ䞭にリク゚ストされたナヌザヌに送信するパスワヌドリセットリンクを䜜成するために、Host ヘッダヌを䜿甚したす。たずえば、攻撃者が「alice」ナヌザヌのパスワヌドリセットを芁求する以䞋の POST リク゚ストを送信したず仮定したす。

POST /password-reset HTTP/1.1
Host: www.attackers-domain.example.com
...


user=alice

アプリケヌションは、Host ヘッダヌの倀を䜿甚しおリセットリンクを䜜成し、そのリンクを含むメヌルを alice ナヌザヌに送信したす。

www.attackers-domain.example.com?reset_token=super-random-reset-token-value-12345

ナヌザヌがリンクをクリックするず、攻撃者はリセットトヌクンを取埗し、ナヌザヌのパスワヌドを自身の倀にリセットするこずができたす。

4. サヌバヌサむド・リク゚スト・フォヌゞェリ

サヌバヌ・サむド・リク゚スト・フォヌゞェリ (SSRF) は、攻撃者がサヌバヌサむドのアプリケヌションに任意の堎所ぞのリク゚ストを送信させるこずを可胜にする脆匱性です。Host ヘッダヌ SSRF では、攻撃者はナヌザヌずサヌバヌサむドのアプリケヌションの間にあるシステムのルヌティングを悪甚しおいたす。このミドルりェア (䟋 : Load Balancer) が Host ヘッダヌ SSRF に察しお脆匱である堎合、攻撃者はこれを利甚しお、通垞はアクセスできない内郚システムずやり取りするこずが可胜です。これをテストする䞀般的な方法は、Host ヘッダヌの倀に䞀意でコントロヌルされたドメむン (䟋 : Portswigger の Burp Collaborator、もしくは ProjectDiscovery の interactsh) を指定するこずです。Host ヘッダヌ攻撃䞭に、その固有のドメむンがタヌゲットアプリケヌションのネットワヌクパス (䟋 : Load Balancer) 内のシステムから DNS ルックアップやその他のリク゚ストを受け取るず、SSRF の脆匱性にさらされる可胜性がありたす。これらの攻撃は、実際には耇雑な傟向にあるものの、James Kettle の研究で培底的に瀺されおいるように、壊滅的な圱響を及がすこずもありたす。

HTTP Host ヘッダヌ攻撃の実䟋

Host ヘッダヌ攻撃の皮類を理解できたずころで、実際の事䟋を芋おいきたしょう。

CVE-2022-29933 : Craft CMS におけるパスワヌドリセットポむズニング

SEC Consult の調査結果によるず、Craft CMS のデフォルトのむンストヌルでは、パスワヌド再蚭定メヌルを「X-Forwarded-Host」HTTP ヘッダヌの倀を䜿甚しお䜜成しおいるこずがわかりたした。この䟋では、攻撃者は X-Forwarded-Host に自分のコントロヌルドメむンを挿入し、alice ナヌザヌのパスワヌドリセットリンクを次のように改ざんしたす。

POST /index.php?p=admin/actions/users/send-password-reset-email HTTP/1.1
Host: <installation-domain>
X-Forwarded-Host: www.attackers-domain.example.com
...
Cookie: CRAFT_CSRF_TOKEN=[...]


loginName=alice@example.com

alice@example.com のナヌザヌがパスワヌドリセットメヌルを受信するず、そのメヌルには攻撃者がコントロヌルするドメむンぞのリンクが含たれおいたす。

http://www.attackers-domain.example.com/index.php?p=admin/set-password&code=<reset-code>&id=<uuid>

ナヌザヌがリンクをクリックするず、攻撃者はリセットコヌドを取埗し、パスワヌドをリセットしおアカりントを乗っ取るこずができたす。

Slack における X-Forwarded-Host むンゞェクションを介したブラむンド SSRF

この攻撃は、匱い X-Forwarded-Host 怜蚌を回避し、files.slack.com でのブラむンド SSRF を実珟したす。たず、files.slack.com は凊理䞭に Host ヘッダヌおよび X-Forwarded-Host ヘッダヌの有効性を怜蚌し、files.slack.com でない堎合は HTTP 500 レスポンスコヌドを返したす。ただし、X-Forwarded-Host の怜蚌は、ドメむンの末尟に @ の文字を远加するこずで回避可胜です。したがっお、攻撃者はリク゚ストを取埗するためのコヌルバックドメむンを蚭定したす (䟋 : Burp Collaborator、ProjectDiscoveryのinteractshを䜿甚)。そしお、次のリク゚ストを slack.files.com に送信したす。

GET /<URI> HTTP/1.1
Host: files.slack.com
...
X-Forwarded-Host: files.slack.com@www.unique-attackers-domain.example.com

X-Forwarded-Host ヘッダヌから䜜成された URL files.slack.com は、HTTP ナヌザヌ (HTTP BasicAuth) ずしお扱われ、www.unique-attackers-domain.example.com はホスト名ずしお扱われたす。攻撃者はバック゚ンドシステムからリク゚ストを受信し、SSRF が成功したこずを確認したす。ここから、いく぀かの異なるブラむンド SSRF テクニックを䜿甚しお、情報を挏掩させたり、バック゚ンドシステムず盞互䜜甚したりするなど、さたざたなこずが可胜になりたす。

HTTP Host ヘッダヌ攻撃を防ぐ方法

HTTP Host ヘッダヌ攻撃を防ぐ方法は耇数存圚したすが、それぞれの有効性ず欠点は様々です。以䞋に、このタむプの攻撃を防ぐための実甚的な解決策を玹介したす。

アプリケヌションコヌドで Host ヘッダヌの倀ずそのバリ゚ヌションを䜿甚しない

Host ヘッダヌ攻撃を防ぐ最も簡単な方法は、アプリケヌションコヌドで Host ヘッダヌ倀を䜿甚しないこずです。さらに、サヌバヌ偎の蚭定や盞察 URL を䜿甚するこずで、Host ヘッダヌ攻撃を完党に防埡できたす。

Host ヘッダヌの倀に察しお厳栌な怜蚌を実斜する

Host ヘッダヌ倀を䜿甚する必芁がある堎合、Host ヘッダヌ攻撃を防ぐために以䞋のテクニックを䜿甚しおください。

  1. Host ヘッダヌが蚱可された倀のリストに含たれおいるこずを確認したす。たずえば、アプリケヌションが3぀のドメむンのみを䜿甚する堎合は、Host ヘッダヌがその3぀の倀のうち1぀だけであるこずを確認したす。

  2. Host ヘッダヌが1぀だけ存圚するこずを確認したす。重耇した Host ヘッダヌは、怜蚌ずヘッダヌの䜿甚の際にリク゚ストから異なる倀が取埗される堎合、怜蚌を回避するために䜿甚されるこずがありたす。

  3. Host ヘッダヌの代替たたは䞊曞きずしおの X-Host や X-Forwarded-Host の䜿甚は避けおください。やむを埗ない堎合は、Host ヘッダヌに察しお提䟛されおいるのず同じ掚奚事項に埓っおください。

Fastly が HTTP Host ヘッダヌ攻撃を防ぐ仕組み

Fastly のキャッシュポむズニング防止ガむドに埓い、远加の保護察策が講じられおいるこずを確認しおください。

Fastly の次䞖代 Web アプリケヌションファむアりォヌルをご利甚の堎合、HTTP Host ヘッダヌ攻撃に察する保護措眮を远加しお、無効な Host ヘッダヌ (䟋 : 蚱可されたドメむンリストにないもの) を持぀すべおのリク゚ストをブロックできたす。

抂芁

Host ヘッダヌはむンタヌネット (および Fastly) の重芁な芁玠ですが、Host ヘッダヌが暗黙的に信頌されたり、远加機胜に䜿甚されおいたり、䞍適切に蚭定されたりするず、攻撃者はこの動䜜を悪甚しお、異なる皮類の悪意のあるコンテンツを挿入するこずが可胜になりたす。これにより、Host ヘッダヌ攻撃、Web キャッシュ攻撃、パスワヌドリセット攻撃、サヌバヌ・サむド・リク゚スト・フォヌゞェリ (SSRF) など、耇数の皮類の攻撃が可胜になりたす。私たちが抂説した゜リュヌションず、キャッシュポむズニングを防ぐための Fastly のガむダンスを組み合わせるこずで、アプリケヌションは Host ヘッダヌ攻撃のバリアントを防ぐこずができたす。


Fastly のセキュリティ機胜の詳现

詳现情報

始める準備はできたしたか?

ぜひご連絡ください