ビデオゲームコンソールのウェブブラウザの進化とセキュリティリスク

コンソールブラウザ:主要な攻撃ベクトルとして

ゲームコンソールのウェブブラウザは、インターネットから任意のコードを実行できるため、システム改造や脱獄(jailbreaking)のための最もアクセスしやすいエントリーポイントとして機能することがよくあります。この脆弱性は、カスタムファームウェアやホームブリューアプリケーションをインストールするために、複数のハードウェア世代にわたって悪用されてきました。

  • Nintendo Wii U: 内蔵ブラウザは、その寿命の大部分において、システムの改造における主要なエントリーポイントとなってきました。
  • Nintendo Wii: 後期の脆弱性には、Internet ChannelのFlash playerを標的とした「FlashHax」(2017)や、HTTP経由でロードされるHTMLのEULAを悪用してWiimmfiの代替サービス用のパッチャーを配布した「str2hax」(2018)が含まれます。
  • Nintendo 3DS: ブラウザは脱獄の重要なベクトルとして注目されており、時にはNintendoのサーバーから検証なしでゲームを直接ダウンロードすることを可能にしていました。

現代の時代:高い機能性 vs 極端なロックダウン

現代のコンソールブラウザは、2つの極端な例を示しています。高度な機能を持つChromiumベースのエンジンと、隠された厳格に制御された環境です。

高機能ブラウザ

Xboxコンソールは、デスクトップ版とほぼ同一のChromiumベースのMicrosoft Edgeブラウザを利用しています。この実装は、WebAssembly (Wasm)、Gamepad API、および幅広いビデオコーデック(MP4/MKV with H264+AAC/AC3/MP3)を含む高度なウェブ標準をサポートしています。これらの機能により、ユーザーはRetroArchのウェブエミュレータなどの複雑なアプリケーションを、ゲームパッドを使用してブラウザ経由で直接実行することが可能になります。

制限された環境

対照的に、SonyはPlayStation 5におけるウェブアクセスを大幅に制限しています。隠しブラウザは存在しますが(メッセージ内のURLをクリックすることでのみアクセス可能)、Sonyは報告によると、この方法を厳しく取り締まっています。ブラウザを起動させるために自分自身にリンクを送信しようとしたユーザーは、PlayStation Networkのアカウント警告や、アカウント停止の脅威を受けています。

歴史的な実装とハードウェア統合

初期のコンソールブラウザは、ハードウェアによって制限されることが多く、独創的な入力方法や専用のソフトウェアバンドルに依存していました。

Dreamcastの時代

Sega Dreamcastは、WWW、Email、IRCを含むコンパクトなパッケージ(~10MiB)であるPlanetwebブラウザ(Web Browser 2.0)を搭載していました。これはJavaScript、Macromedia Flash、およびセーブデータのアップロード/ダウンロードやMP3の操作をサポートしていました。

独自のハードウェア統合には以下が含まれます:

  • 入力周辺機器: キーボードやマウス周辺機器のサポート。
  • ライトガン・ナビゲーション: DreamkeyブラウザはDreamcastのライトガンをサポートしており、ユーザーはD-padでスクロールし、リンクを「撃つ」ことでナビゲーションを行うことができました。
  • ゲーム統合: 多くのゲームがブラウザをバンドルしており、メインメニューから公式ゲームウェブサイトにアクセスできるように、グローバルに保存された接続設定を使用していました。

その他の注目すべき初期の試み

  • Nintendo Wii: ブラウザはスケーリング機能で知られており、一部のゲームはJavaScriptやFlashを介してWiimoteをネイティブにサポートしていました。
  • Nintendo 64DD: Randnet Browserを搭載していました。
  • Game Boy Color/GBA: Mobile Trainer GBがHTMLの限定的なサブセットを提供し、任意のURL入力は許可していませんでした。
  • Sega Channel: リモートコンピュータでレンダリングを行い、Genesisのディスプレイに画像データとして変換して表示する計画のブラウザが存在していましたが、正式にリリースされることはありませんでした。

ユーザーエクスペリエンスと入力の制限

従来のウェブナビゲーションをコントローラーベースのインターフェースに統合することは、しばしば重大なユーザビリティの課題を引き起こしました。

例えばWii Uでは、Nintendoはボタン、アナログスティック、タッチスクリーンの状態を取得するためのAPIを提供していました。しかし、preventDefault()の解決策が欠如していたため、システムレベルのショートカットがウェブアプリの入力を上書きしてしまう問題がありました。例えば、ウェブ開発者がそのボタンをゲーム内アクションとして使用したいと考えていても、関係なくブラウザの「戻る」機能がトリウザしてしまうため、複雑なブラウザベースのゲーム体験の可能性をを限ってしまうことになりました。

Sources