Google の Chromium チームは、Web アプリが直接 TCP および UDP ネットワーク接続を確立できるようにする方法を提案しました。これは、Web セキュリティを複雑にする可能性のある強力な機能です。
Raw Sockets API(将来的にはDirect Sockets APIに改名される可能性あり)は、HTTP、WebSocket、WebRTCといったデータ転送オプションでは実現できないネットワーク機能をブラウザアプリに提供しようとする試みです。これにより、ブラウザはネットワークを介してデバイスや他のコンピュータと直接通信できるようになります。
ChromiumエンジニアのEric Willigers氏は水曜日に、APIのプロトタイプ作成計画を発表しました。テストが順調に進めば、Chromiumの一般リリース前にChrome OS向けの技術をリリースする予定です。
「多くのネットワークデバイスは、HTTPSやWebSocket対応サーバーではなく、TCPやUDP経由の独自プロトコルを使用しています」とウィリガーズ氏は説明した。「WebUSB、WebMIDI、WebBluetoothと同様に、このAPIにより、ウェブアプリはローカルデバイスや情報システムと通信できるようになります。」
ActiveX、Javaアプレット、Microsoft Silverlightといったブラウザプラグイン技術は、過去にはこの種の接続性を提供してきました。しかし、セキュリティ上の問題が主な原因で、現在では使われなくなっています。
Raw/Direct Sockets APIにより、WebアプリはSSH、RDP、IRCなどのプロトコルを介して、プリンターや産業用デバイス、そして様々なレガシーシステムと通信できるようになります。分散ハッシュテーブルに基づく分散型ピアツーピアルーティングを基盤とした、より優れたWebメールクライアントやWebアプリの開発につながる可能性を秘めています。
また、ブラウザの攻撃対象領域を拡大する可能性もあります。Willigers氏がRaw/Direct Socketsの記事で指摘しているように、これと似たような機能は2008年に提案されましたが、悪用される可能性があったため実現には至りませんでした。
説明者は、様々なリスクを挙げ、潜在的なリスク軽減策を提案することで、冒頭から起こり得る問題に対処しようとします。リスクには以下が含まれます。
- ソケット API 呼び出しを Web ページに挿入したり、プレーンテキスト接続をハイジャックしたりする MITM 攻撃。
- ユーザーの知らないうちに接続を行ったり、DDoS 攻撃を実行したりする Web アプリ。
- サードパーティの CORS ポリシーをバイパスします。
- 接続を開始するサードパーティの iframe またはスクリプト。
- ファイアウォールの背後にあるリソースを公開するために DNS を操作します。
- API を使用して企業ポリシーに違反する。
また、ウェブサイトが数十のトラッカーを定期的に読み込む環境において、そのようなことが存在する限り、API を使用して Chromium ブラウザ ユーザーのプライバシーを侵害するさまざまな方法も存在します。
Googleのソフトウェアエンジニアは、リスクは管理可能であるかのように主張している。プライバシー研究者兼コンサルタントのLukasz Olejnik氏が、ブラウザに高度なネットワーク機能を組み込むことの潜在的な問題を指摘したTwitter投稿に対し、GoogleのシニアスタッフソフトウェアエンジニアであるAlex Russell氏は、「この機能はChromeアプリと拡張機能で既に利用可能であり、親切に要求するウェブサイトにキャンディーのように提供するようなことは決してありません。[API]の利用には、より高いハードルが伴うことになります」と述べた。
Mozillaのセキュリティエンジニアであるエイプリル・キング氏も、ブラウザが不正な接続を防御するために提供するポップアップインターフェースの提案について、同様に懐疑的なツイートを投稿しました。ブラウザはユーザーにホスト名またはIPアドレスの入力を求め、そのホストへの今後の接続を承認するためのチェックボックスを表示するというものです。
これを必ず私の善意のアーカイブに保存しておきます。pic.twitter.com/dhKNvF6mR0
— エイプリル・キング🌀 (@CubicleApril) 2020年8月21日
不正使用の防止策として入力メカニズムを提案した Google Chrome エンジニアリング ディレクターのジャスティン シュー氏からさらに説明を求められると、キング氏は次のように答えた。「ブラウザがユーザーのテキスト入力を要求する許可ダイアログをこれまでに示したことがあるでしょうか? 正直なところ、コンピューティングの世界ではほとんど例がありません。」
参考までに:APNICによると、ChromiumのネットワークプロービングはDNSルートサーバトラフィックの約半分を占めている。
続きを読む
許可プロンプトが最終的にどのように実装されるかに関係なく、Web 開発者の間では少なくともこのアイデアに対する支持があります。
IT管理者は「非常に怪しく、メンテナンスが不十分なネイティブソフトウェアに依存しており、それらは昇格された権限で実行され、脆弱性に満ちていることが多い」とシュー氏は述べた。「このようなユースケースをウェブ上で安全に動作させることができれば、現状を大きく改善できるだろう。」
これに対してキング氏は、「私が心配しているのは、極めて怪しく、メンテナンスが不十分なネイティブソフトウェアではありません。極めて怪しく、メンテナンスが不十分なサーバーソフトウェアこそが、XSS 攻撃によって悪意のあるソケット接続に繋がる危険性があるのです」と皮肉を込めて答えた。
Schuh 氏はひるむことなく、API GitHub リポジトリの問題スレッドに懸念事項を投稿することを勧めました。®