セキュリティ研究者が、何百万人もの Windows PC ゲーマーが使用する Valve Corporation の Steam クライアントの脆弱性を公開したが、その報告は「該当なし」として却下されたため、未だ修正されていない。
ヴァシリー・クラベッツ氏の報告書は、2つの問題を提起している。1つ目は、エクスプロイトそのもの、そして2つ目は、セキュリティレポートを扱うパートナー企業HackerOneを通じたValveのポリシーが、重大とみなされるバグの種類に関して厳しすぎるのではないかという点だ。
まず、問題の概要を簡単に見てみましょう。SteamクライアントはSteamクライアントサービスをインストールします。このサービスは、説明によると「Steamコンテンツの監視と更新」を行います。どのユーザーにもこのサービスを開始および停止する権限があります。このサービスは強力な「ローカルシステムアカウント」で実行され、Microsoftによると「ローカルリソースへの完全かつ無制限のアクセス」が可能です。
この Steam サービスは、HKLM\Software\Wow6432Node\Valve\Steam 内のレジストリ キーのセキュリティ記述子を設定し、ローカル ユーザー グループのすべてのメンバーにキーの完全な制御権を与えます。
Windowsレジストリはシンボリックリンクをサポートしています。シンボリックリンクとは、レジストリのある部分にあるリンクが別の場所にある別のリンクを指すリンクです。そのため、Steamセクションに別のキーを指すリンクを作成し、そのキーを完全に制御することが可能です。
Kravetsが例として挙げているのは、ローカルシステムとして実行されるWindowsインストーラサービスです。キーのフルコントロール権限があれば、実行される実行ファイルを独自のアプリケーションに変更することができ、完全な管理者権限で実行され、ユーザーアカウント制御(UAC)プロンプトも表示されません。
Steamのセキュリティホールを発見し、あらゆるゲームのライセンスキーを入手したのですが、手に入れたのはたったこれだけ… うーん、嬉しいことに2万ドル
続きを読む
これは権限昇格攻撃と呼ばれます。Steamクライアントを実行しているマシンに標準ユーザーとしてアクセスすると、簡単に権限を昇格させてそのマシンを完全に制御できるようになります。
標準ユーザーはデフォルトでレジストリエディターにアクセスできます(管理者はこれを制限できます)。ただし、管理者以外のユーザーはシステムキーを変更できません。ただし、Steamセクションなど、権限のある場所にリンクを作成することは可能です。Registerで試してみたところ、Steamは実際に対象キーに対する完全な制御を許可し、標準ユーザーとして保護されたWindowsの場所にファイルを書き込むことができ、UACプロンプトも表示されませんでした。
Kravets氏はHackerOne経由でValveにこの問題を報告し、管理者コマンドプロンプトを起動するサンプルも添付しましたが、却下されました。Valveが調査する問題の範囲はこちらに記載されています。「対象外」の項目には、ユーザーのデバイスへの物理的なアクセスを必要とする攻撃や、「ユーザーのファイルシステム上の任意の場所にファイルを配置する能力を必要とする攻撃」が含まれます。HackerOneは当初、この報告は後者のカテゴリーに該当すると主張していました。
Kravets氏はこの拒否について疑問を呈し、HackerOneの担当者に自身の手順を試すよう説得しました。その後、報告はValveに送られましたが、数週間後に再び拒否されました。今回は前述の2つの理由(物理的なアクセスとファイルのドロップ)によるものでした。
次に、研究者は 45 日が経過したため脆弱性を公開すると HackerOne に通知しましたが、すると「もう 1 人の HackerOne 従業員がスレッドに現れ、公開を禁じた」とのことです。
調査を進めると、Steamにも2015年に初めて報告された脆弱性(CVE-2015-7985)があることがすぐに判明しました。これは、Steamインストールフォルダが全ユーザーに対して読み書き可能になってしまうというものです。Steam.exeはログイン時に実行されるため、一般ユーザーはSteam.exeを独自の実行ファイルに置き換えたり変更したりして、管理者がログインして実行するのを待つことができます。
これらすべては Valve にとって良い印象を与えず、同社が権限昇格の問題に関心がないように見えます。
Steam のセキュリティは、アプリケーションが「実行可能ファイルを保護するために強力かつ適切な ACL [アクセス制御リスト] を使用する必要がある」、および「改ざんされやすいサービスへの管理者以外のアクセスを減らす必要がある」と規定している Microsoft のガイドラインに違反しています。
Valveにコメントを求めた。
ローカル管理者権限なしでゲーミングPCを操作するのは面倒なので、Steamを使用しているPCゲーマーのほとんどは、いずれにしても管理者権限を持っている可能性が高いでしょう。とはいえ、システムを変更するアプリケーションを実行する前に、UACプロンプトが表示されるはずです。ロックダウンされたPCにSteamをインストールすべきではありません。また、万が一、ビジネスユーザーがSteamを必要とすると主張した場合は、管理者はリスクを考慮する必要があります。®