新興企業の脆弱性調査・コンサルティング会社ReVulnの研究者らによると、攻撃者はブラウザやその他のアプリケーションが steam:// プロトコルのURLを処理する方法を悪用して、Steamクライアントやプラットフォームを通じてインストールされたゲームの深刻な脆弱性を悪用する可能性があるという。
Steamは、ゲームや今月初めからその他のソフトウェア製品向けの人気デジタル配信およびデジタル著作権管理プラットフォームです。このプラットフォームを開発・運営するValve Corporationによると、Steamは2,000以上のタイトルを提供しており、4,000万以上のアクティブアカウントを保有しています。
Steam クライアントは Windows、Mac OS X、Linux で実行できますが、Linux ではベータ版としてのみ実行できます。
Steamクライアントがシステムにインストールされると、steam:// URLプロトコルハンドラーとして登録されます。つまり、ユーザーがブラウザや他のアプリケーションでsteam:// URLをクリックするたびに、そのURLがSteamクライアントに渡され、実行されます。
Steam:// URL には、ゲームのインストールまたはアンインストール、ゲームの更新、特定のパラメータを使用したゲームの起動、ファイルのバックアップ、その他のサポートされているアクションを実行するための Steam プロトコル コマンドを含めることができます。
攻撃者はこれらのコマンドを悪用し、ユーザーを騙して悪意を持って作成された steam:// URL を開かせることで、Steam クライアントやシステムにインストールされている Steam ゲームの脆弱性をリモートから悪用することができると、ReVuln のセキュリティ研究者で創設者の Luigi Auriemma 氏と Donato Ferrante 氏は月曜日に公開された研究論文で述べている。
研究者によると、問題は一部のブラウザやアプリケーションが、ユーザーに確認を求めることなく、自動的に steam:// の URL を Steam クライアントに渡すことにあるという。他のブラウザはユーザーに確認を求めるものの、URL 全体を表示したり、そのような URL の実行を許可することの危険性について警告したりしない。
ReVulnの研究者によるテストによると、Internet Explorer 9、Google Chrome、Operaは、Steamクライアントに渡して実行する前に、警告とsteam:// URLの全体または一部を表示します。Firefoxもユーザーに確認を求めますが、URLは表示されず、警告も表示されません。一方、Safariはユーザーの確認なしにsteam:// URLを自動的に実行すると研究者らは述べています。
「警告なしに外部URLハンドラーを直接実行するブラウザ、およびMozillaエンジンベースのブラウザ(FirefoxやSeaMonkeyなど)は、Steamブラウザプロトコル呼び出しをサイレントに実行するための完璧なベクトルとなります」と研究者らは述べています。「さらに、Internet ExplorerやOperaなどのブラウザでは、steam:// URL自体に複数のスペースを追加することで、URLの疑わしい部分を警告メッセージに表示しないようにすることが可能です。」
攻撃者は、ユーザーを騙して不正な steam:// URL を手動でクリックさせるだけでなく、悪意のあるページにロードされた JavaScript コードを使用して、ブラウザをそのような URL にリダイレクトすることもできると、Luigi Auriemma 氏は火曜日に電子メールで述べた。
デフォルトで steam:// URL 実行時にユーザーの確認を求めるブラウザは通常、この動作を変更し、Steam クライアントによって URL が自動実行されるようにするオプションをユーザーに提供していると、Auriemma 氏は述べた。「多くのゲーマーは、毎回確認する煩わしさを避けるために、既にブラウザで steam:// リンクを直接実行している可能性が高いでしょう。」

研究者らは、Steam クライアントと人気ゲームで発見されたいくつかの脆弱性をリモートから悪用するために steam:// URL がどのように使用されるかを示すビデオを公開しました。
例えば、Steam プロトコルの「retailinstall」コマンドを使用すると、不正な TGA スプラッシュ画像ファイルを読み込み、Steam クライアントの脆弱性を悪用して、そのプロセスのコンテキストで悪意のあるコードを実行できると研究者らは述べています。
別の例として、Steam:// URL は、Valve の Source ゲームエンジンにある正当なコマンドを実行するために利用され、攻撃者が制御するコンテンツを含む .bat ファイルを Windows スタートアップフォルダ内に書き込むことができます。Windows スタートアップディレクトリにあるファイルは、ユーザーがログインすると自動的に実行されます。
Source ゲーム エンジンは、Half-Life、Counter-Strike、Team Fortress など、数千万人のプレイヤーを抱える多くの人気ゲームで使用されています。
もう一つの人気ゲームエンジン「Unreal」は、コマンドラインパラメータを介してリモートのWebDAVまたはSMB共有ディレクトリからファイルを読み込むことができます。ReVulnの研究者によると、不正な「steam://」URLを使用することで、そのような場所から悪意のあるファイルを読み込み、ゲームエンジンに多数存在する整数オーバーフローの脆弱性の1つを悪用して悪意のあるコードを実行できる可能性があるとのことです。
APB Reloaded や MicroVolts などの一部のゲームに搭載されている自動更新機能も、steam:// URL を通じて悪用され、攻撃者が制御するコンテンツを含むファイルをディスク上に作成する可能性があります。
オーリエマ氏によると、ユーザーは自らを守るために、steam:// URLプロトコルハンドラーを手動または専用アプリケーションで無効化するか、steam:// URLを自動実行しないブラウザを使用するという方法がある。「デメリットとしては、これらのリンクをローカル(ショートカット)またはオンライン(ウェブブラウザ)で使用してサーバーに接続したり、このプロトコルの他の機能を使用したりしているゲーマーが、これらのリンクを使用できなくなることです。」
Safariはsteam:// URLを自動的に実行するブラウザの一つであるため、ブラウザのユーザーベースの大部分を占めるMac OS Xユーザーは、こうした攻撃にさらされる可能性が高くなる。「Mac OSはSteamで使用されている2番目のプラットフォームであり、多くのゲームがこのプラットフォームで利用できるため、幅広いユーザーベースを持っています」とAuriemma氏は述べた。
「我々の意見では、Valve はゲームへのコマンドラインパラメータの受け渡しを削除する必要がある。これは危険すぎるし、不正なパラメータを使ってサードパーティ製ソフトウェアがどのように動作するかを Valve が制御できないからだ」と研究者は述べた。
Valve社はコメント要請にすぐには応じなかった。
Valveは今月初め、Steamを通じて一部のゲーム以外のソフトウェアタイトルの配信を開始しました。Auriemma氏によると、これらのアプリケーションで発見された脆弱性は、steam:// URLを通じても悪用される可能性があるとのことです。
「ここ数ヶ月、ValveはSteamプラットフォームに多大な投資を行ってきました。Linux版Steamのベータ版のリリース、ユーザーがSteamで配信してほしいゲームに投票できるGreenLightサービスの追加、ソフトウェアセクションの追加、ゲームの追加、期間限定でフルプレイ可能な注目ゲームの追加、多数の無料ゲームの提供など、様々な取り組みを行ってきました」と研究者は述べています。「これらの問題に気付くには、今がまさに絶好の機会です。」