
Steamの通信処理でRCEを実証
Atredis PartnersのBryan Alexander氏らは、Windows版Steamでリモートコード実行(RCE)に関する問題2件と、ローカル権限昇格(LPE)に関する問題4件を報告しました。研究者らは、攻撃者が標的と同じSteamアカウントで認証されたクライアントを操作できる条件で、利用者がリンクをクリックしたりファイルを開いたりせずにコードを実行させる「ゼロクリック」の手法も実証しました。
RCEは、別の端末から標的の端末上でプログラムを実行させる攻撃です。見つかった2件は、同一アカウントでログインしたSteamクライアント同士の通信で、ダウンロード予定の変更やゲームのインストール・更新状況を通知するメッセージの処理に関係していました。
ゼロクリックの実証では、これらの問題に情報漏えいを引き起こす別のバグを組み合わせています。そのため、攻撃者が標的と同じSteamアカウントで認証されたクライアントを操作できることが、実証された攻撃の前提となります。
Steamのサービス構成と権限昇格
Steamでは、利用者が操作するクライアントと、インストールなどの処理を担うサービスプロセスが分かれています。Windows版では、一般ユーザー権限で動くsteam.exeがSYSTEM権限で動くsteamservice.exeへ要求を送り、ゲームの管理や依存ソフトのインストールなどを行います。
LPEは、端末内で本来持たない高い権限を得る攻撃です。研究者らは、ゲームのインストール用スクリプトを処理する機能などを調べ、SYSTEM権限でプログラムを実行できる問題を含む4件を報告しました。
WindowsのLocalSystem(SYSTEM)アカウントは、NT AUTHORITY\SYSTEMとBUILTIN\AdministratorsのSIDを持ち、端末内の多くのシステムオブジェクトにアクセスできる広い権限があります。また、ログオン中の利用者アカウントとは別のセキュリティコンテキストで動作し、レジストリのHKEY_CURRENT_USERは現在の利用者ではなく既定のユーザーに対応します。ネットワーク上のリモートサーバーに接続する際には、端末の認証情報を提示します。
脆弱性の報告と開示
研究者らは今回の問題をValveの脆弱性報告プログラム「HackerOne」を通じて報告しました。Atredis Partnersは、取り上げた問題が修正済み、または開示までの期限を過ぎたものだと説明しています。
報告されたLPEのうち2件は別の報告との重複で、さらに1件は別の研究者が先に開示していたとAtredis Partnersは記しています。このため、研究で挙げられた6件すべてが、独立した未報告の脆弱性だったという意味ではありません。
研究者らは、Windows上で確認した脆弱性と実証手法を扱いました。Atredis Partnersは、議論した各問題の概念実証コードも公開したとしています。
Steam Guardとアカウント認証
Steam Guardは、アカウント名とパスワードに加えて設けられる認証手段です。Steamは、この追加の認証層によってアカウントを他人に使われにくくすると説明しています。
Steamのモバイル認証機能は端末上でコードを生成し、新しい端末からのログインや取引などで追加確認を行います。一方、マルウェアによるSteamのセッショントークン窃取は、認証を迂回する手口として挙げられています。
Steam Guardによる追加認証と、すでに有効なセッションを奪われた場合の影響は、異なる局面に関わります。










