Helllo there, ('ω')ノ
🧠 WebSocketとは?
WebSocketは、ブラウザとサーバー間でリアルタイムかつ双方向通信を可能にする技術です。HTTP接続の初期リクエスト後に「WebSocketプロトコル」に切り替わり、常時接続が確立されます。
🔍 WebSocket通信のセキュリティ診断とは?
WebSocketのセキュリティ診断では、次のような脆弱性を狙います:
- 本来許可されない操作の実行
- 不正なデータの送信や改ざん
- 認可の回避やセッション乗っ取り
🛠 Burp Suiteを使った診断手順
① WebSocket通信の確認
- Burpのブラウザで対象のアプリケーションにアクセス。
- アプリ内の特定操作(チャット送信、リアルタイム更新など)を実行。
- [Proxy] → [WebSockets] タブで、WebSocket通信が表示されることを確認。
② メッセージのインターセプトと改ざん
- [Proxy] → [Intercept] タブで「Intercept is on」に設定。
- ブラウザからのWebSocketメッセージがBurpに表示される。
- 必要に応じてJSONデータやパラメータを改ざんして「Forward」で送信。
③ メッセージのリプレイと生成
- WebSocketsタブで対象メッセージを右クリック。
- 「Send to Repeater」でメッセージを編集・再送信可能。
- 同様に、新しいメッセージを手動で作成し送ることも可能。
💡診断時のコツとポイント
- WebSocketメッセージ内の「user_id」「role」「amount」など、パラメータ名に注目
- WebSocket通信の認可チェックがサーバー側で行われているかを検証
- リクエストパターンの再送信で制限回避や再利用の有無を確認
- WebSocket通信にCSRFトークンの検証が存在しない場合も狙い目
✅ まとめ
WebSocketのセキュリティ診断は、双方向通信特有の構造や形式を理解したうえで、Burp Suiteを使って直接メッセージを操作することが重要です。HTTPと同様、適切な検証や認証が不足している場合、深刻な攻撃が成立する可能性があります。
Best regards, (^^ゞ