3. Browser Threat Model (ブラウザの脅威モデル)
3. Browser Threat Model (ブラウザの脅威モデル)
Web セキュリティモデル [RFC6454] は、"オリジン (origins)" の概念に基づいています。簡単に言えば、オリジンはプロトコル、ホスト、およびポートのタプルで構成されます。たとえば、https://example.com/ のオリジンは (https, example.com, 443) です。(詳細については [RFC6454] を参照してください)。ブラウザが特定のオリジンにリクエストを送信すると、リクエストを開始したプリンシパル (たとえば、https://trusted.com/ からのスクリプト) に代わって動作します。Web の基本的なセキュリティルールは同一オリジンポリシー (Same-Origin Policy, SOP) であり、これは、リソースのオリジンがそのようなアクセスを明示的に許可しない限り (たとえば、クロスオリジンリソース共有 (CORS) [fetch] を介して)、あるオリジンからのリソースが別のオリジンからのスクリプトにアクセスできないようにすることを定めています。
WebRTC は、HTTP (および WebSocket) と並んで、Web に新しい通信チャネルを導入します。このチャネルは、いくつかの重要な点で HTTP と異なります:
- 任意のデータを送信できます (DataChannel 経由)。
- メディア (音声とビデオ) を送信できます。
- 通常は UDP 経由でルーティングされます (TCP もサポートされていますが)。
- ピアツーピア (P2P) である可能性があります。つまり、データはサーバー経由ではなく、ブラウザ間で直接送信されます。
これらの違いは、WebRTC アーキテクチャによって軽減されなければならない新たな脅威をもたらします。
3.1 新しいターゲット
WebRTC は、任意の IP アドレスとポートへのデータの送信を許可するため (ICE チェック [RFC8445] の対象)、悪意のあるスクリプトは、ユーザーのブラウザを使用して、パブリックインターネットからはアクセスできないがユーザーのマシンからはアクセスできるサービス (たとえば、イントラネット、ホームルーター) を攻撃する可能性があります。これは "コーリングカード (calling card)" 攻撃と呼ばれます。
3.2 新しいデータタイプ
WebRTC は、リアルタイムの音声とビデオの送信を許可します。悪意のあるサイトが同意なしにユーザーのカメラとマイクにアクセスできる場合、ユーザーをスパイすることができます。
3.3 サービス拒否
WebRTC は高帯域幅のトラフィックを生成できるため、サービス拒否 (DoS) 攻撃に使用される可能性があります。