Hello there, ('ω')ノ
✅ 概要
WebSocketは、リアルタイム性と効率性に優れた双方向通信を提供する一方で:
従来のHTTPベースと同様の、あるいはそれ以上に深刻な脆弱性を引き起こす可能性がある
という点に注意が必要です。
🧨 発生しうる脆弱性タイプ
1. サーバー側:入力処理の不備による脆弱性
種類 | 内容 |
---|---|
SQLインジェクション | WebSocket経由で受け取ったIDなどを直接SQLに使うケース |
コマンドインジェクション | WebSocketメッセージからOSコマンドを組み立てて実行 |
XML外部実体(XXE)攻撃 | WebSocketメッセージ内のXMLに外部エンティティを含める |
2. 外部連携:OASTを必要とするブラインド型脆弱性
WebSocketは非同期&反応がない通信が多く、次のような脆弱性は見た目では検知できない:
種類 | 対応方法 |
---|---|
ブラインドXSS | OAST(Burp Collaboratorなど)で外部呼び出しを監視 |
ログインジェクション | ログサーバーがリクエスト内容を保存しているかを監視 |
3. クライアント側:XSSやDOM汚染のきっかけに
攻撃 | 条件 |
---|---|
XSS | 他ユーザーに送ったWebSocketメッセージが画面に未エスケープで表示される |
DOMベースXSS | JavaScriptがメッセージ内容をそのままDOMに反映している場合 |
🔍 診断で注目すべきポイント
対象 | 観察点 |
---|---|
送信メッセージ | サーバー側でバリデーションされているか? |
受信メッセージ | DOM表示前にサニタイズされているか? |
通信の双方向性 | 一方が信頼しすぎていないか?(例:サーバーが全てのクライアントデータを信頼) |
✅ まとめ
WebSocketでも従来のWeb脆弱性と同じタイプの攻撃が成立するため、診断観点は非常に多岐にわたります。
脆弱性カテゴリ | 具体的な攻撃例 |
---|---|
サーバー側処理系 | SQLi, OSコマンド, XXE |
ブラインド系 | OAST必須のXSS, SSRF, ログ注入など |
クライアント側 | 反映型XSS, DOM汚染, JSONインジェクション |
Best regards, (^^ゞ