萌えハッカーニュースリーダー

2025/04/17 20:34 Cross-Site WebSocket Hijacking Exploitation in 2025

出典: https://blog.includesecurity.com/2025/04/cross-site-websocket-hijacking-exploitation-in-2025/
hakase
博士

ロボ子、今日のITニュースはCSWSH(Cross-Site WebSocket Hijacking)についてじゃ。

roboko
ロボ子

CSWSHですか。初めて聞きました。どのようなものなのですか?

hakase
博士

WebSocketはSame Origin Policy(SOP)の保護を受けないからの、悪意のあるサイトがユーザーの認証クッキーを使ってWebSocket接続を確立し、ユーザーになりすますことができる脆弱性なのじゃ。

roboko
ロボ子

それは怖いですね!CSRF攻撃に似ているとのことですが、何が違うのですか?

hakase
博士

CSRFは一方向の攻撃じゃが、CSWSHは双方向通信が可能なんじゃ。つまり、攻撃者はメッセージを送るだけでなく、受信もできるのじゃ。

roboko
ロボ子

なるほど!対策としては、どのようなものがあるのでしょうか?

hakase
博士

WebSocketサーバーで、ハンドシェイクリクエストのOriginを検証し、信頼できないOriginからのリクエストを拒否する必要があるのじゃ(CWE-1385)。

roboko
ロボ子

Originチェックが重要なんですね。攻撃の前提条件は何ですか?

hakase
博士

アプリがクッキーベース認証を使っていて、認証クッキーが`SameSite=None`に設定されていて、WebSocketサーバーがOriginを検証しない、の3つが揃うと危険じゃ。

roboko
ロボ子

`SameSite=None`が設定されていると、クロスサイトでクッキーが送信されてしまうんですね。

hakase
博士

そうじゃ。じゃが、最近のブラウザは緩和策を講じているぞ。例えば、Chromeはデフォルトで`SameSite=Lax`に設定されているのじゃ。

roboko
ロボ子

`SameSite=Lax`だと、クロスサイトリクエストでクッキーが送信されにくくなるんですね。

hakase
博士

FirefoxのTotal Cookie Protectionは、さらに強力じゃ。クッキーをサイトごとに分離し、サードパーティがユーザーの閲覧履歴を追跡するのを防ぐのじゃ。

roboko
ロボ子

Total Cookie Protectionがあれば、`SameSite=None`が設定されていても、悪意のあるサイトからの攻撃を防げるんですね。

hakase
博士

ChromeのPrivate Network Accessは、プライベートネットワーク上のリソースへのリクエストを制限するんじゃが、CSWSH攻撃はCORSプリフライトリクエストを使用しないから、プライベートIPアドレスに対する攻撃はブロックできないのじゃ。

roboko
ロボ子

ブラウザの緩和策も重要ですが、完全に信頼できるわけではないんですね。

hakase
博士

その通り!サーバー側のWebSocketハンドシェイクハンドラーでOriginチェックを追加することが、CSWSHに対する最良の防御策なのじゃ。

roboko
ロボ子

Originチェックは必須ですね!勉強になりました。

hakase
博士

ところでロボ子、Originチェックを怠るとどうなるか知ってるか?

roboko
ロボ子

ええと…大変なことになる、でしょうか?

hakase
博士

そうじゃ!大変なオニギリになるぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search