Windows の管理

セキュリティ環境でのゲーム プレイ

Matt Clapham

 

概要:

  • 保護されたフォルダおよびレジストリ キーへの書き込みに関する問題
  • コピー防止機能によるエラー
  • ファイアウォールの例外要求による問題
  • エンタープライズ クライアントの問題

私はマイクロソフトの Security Program Manager として勤務しています。また、TechNet Magazine にもセキュリティに関する記事を投稿しています。言うまでもないことですが、私はセキュリティを非常に重視しています。もちろん、趣味もあります。

余暇には、Windows® ベースのゲームを楽しんでいます。特に、シューティング ゲーム、シミュレーション、ロールプレイング、そして RTS (real-time strategy) ゲームを好んでプレイしています。ただし、これには落とし穴があります。友人の Jesper Johansson と Aaron Margosis と同様に、どうしても必要な場合を除き、私は管理者特権でゲームを実行しないようにしています。その理由は、ネットワーク ゲームで 0wn3d が発生するのは私のスキル不足が原因で、他のユーザーがルートキットで私を妨害しているためではないことを確実にするためです (「詳細情報」サイドバーの「Quake 3 Buffer Overflow Advisory」を参照してください)。

そのため、最新のゲームをプレイできないこともあります (図 1 を参照)。私は、管理者アカウントでゲームのインストールおよび更新を行った後、Small Business Server (SBS) ドメインに参加しているクライアント上で制限付きユーザー アカウント (LUA) でゲームを実行できない場合、そのゲームは削除しています。そのようなお粗末なエンジニアリングには付き合っていられませんし、ゲームは他にも沢山あります。過剰反応かもしれませんが、この点は妥協できません。それでも、私はゲームの向上のために小さな欠点を改善することに反対するものではありません。今日は、この点について説明します。まず、私がこれまで経験したゲーム関連の問題とその解決方法を紹介しましょう。ベスト プラクティスの概要については、「制限付きユーザーとしてゲームをプレイするためのヒント」を参照してください。

図 1 手動更新を実行する際のファイル アクセスの問題

図 1** 手動更新を実行する際のファイル アクセスの問題 **(画像を拡大するには、ここをクリックします)

一般的な問題

この特権の問題は新しいものではありません。多くのゲームおよびその他のプログラムには、適切に実行するために管理者特権が必要なものがあります。詳細については、マイクロソフト サポート技術情報の「制限付きのユーザー アカウントを使用してログオンした場合、一部のプログラムが正しく動作しない」 (support.microsoft.com/kb/307091) を参照してください。この記事には、制限付きユーザーとして実行する際に問題が発生する約 200 のゲームとアプリケーションの一覧が記載されています (少数ながらマイクロソフトのプログラムも含まれています)。

断っておきますが、私は、ゲームをインストールすることや (手動で) 更新する際に管理者特権が必要であることが問題と考えているわけではありません。これは将来、Windows 上で定期的なユーザーごとのインストールを行う機能が利用できるようになるまでは、一般的に必要なことです。このような機能が利用可能になるまでにそれほど時間はかからないと思います。しかし、ゲームをインストールおよび更新した後は、システムのすべてのユーザーがプレイできるはずです。制限付き特権のユーザーも同様です。

保護されたフォルダおよびレジストリ キーへの書き込みに関する問題 私が遭遇した最も一般的な問題は、ゲームが保護されたフォルダまたはレジストリ キーへの書き込みを行おうとするために起動時またはプレイ中にエラーが発生することです (多くの Windows ベースのアプリケーションで一般的な問題です)。既定では、特定のフォルダ (%PROGRAMFILES% など) およびレジストリ ハイブ (HKEY_LOCAL_MACHINE など) に書き込むことができるのは、管理者 (および以前サポートされていた Power Users) だけです。このようなエラーは比較的わかりやすく、「Error 42: Can't write log files to C:\Program Files\CoolGamesInc\NewestFPS\Logs\ (エラー 42: C:\Program Files\CoolGamesInc\NewestFPS\Logs\ にログ ファイルを書き込めません)」 または「Game not installed properly, reinstall and restart. (ゲームが正しくインストールされていません。再インストールしてください。)」というメッセージが表示されます。ゲームをプレイしているとき (現在のステージを保存する際など) にエラー メッセージが表示されることもあります。Age of Mythology® のように、機能させるためには管理者特権が必要であることをユーザーに通知するゲームもあります。頻繁に更新されることに加えて、自己更新プログラムは技術的に解決することが少し難しいため、特権に関する問題は MMOG (Massively Multiplayer Online Game) で多く発生することがあります。私は、EVE Online を試したとき、ログ ファイルが不適切な場所に配置されることに加えて、自己更新ゲーム コンテンツ データがインストール フォルダに配置されることに気付きました。

コピー防止機能によるエラー ゲームの起動に失敗する一般的なもう 1 つの理由は、制限付きユーザーではゲームに組み込まれたコピー防止機能 (またはその他の著作権保護機能) が機能しないからです。この場合、ドライバが適切に起動しなかったり、バックグラウンド サービスが実行していないなどの問題が発生します。この問題で私が遭遇した最も典型的な例は、必要なメディアがドライブに挿入されていてもディスクの挿入が要求されることです。また、管理者だけがコピー防止チェックを適切に実行できるという間違った考えから管理者特権が要求されるゲームもあります。最悪の場合、ゲームのサポート サイトへの参照も含まず、意味もなさないエラー メッセージが表示されることがあります。

ファイアウォールの例外要求による問題 ローカル ネットワークまたはインターネット上でプレイできるマルチプレーヤー ゲームは広く一般に浸透しているので、Windows XP Service Pack 2 (SP2) には、アプリケーションがネットワークをリスンしようとしているときにユーザーに警告メッセージを表示する機能が追加されています。このことが次に一般的な問題の原因となり、ファイアウォール例外が必要なゲームの起動時に、この例外が追加されないという現象が発生します。制限付きユーザーはファイアウォール構成を変更できないので、この警告 (図 2) に対応するには管理者に構成変更を依頼する必要があります。さらに悪いことに、警告がゲームのインターフェイスではなく Windows シェルに表示される場合は、問題を見つけることが困難です。実際、ゲームを終了するまでエラー メッセージが見えないこともあります。

図 2 ファイアウォールの設定による問題

図 2** ファイアウォールの設定による問題 **(画像を拡大するには、ここをクリックします)

エンタープライズ クライアントの問題 制限付きユーザーとして実行することに直接関連するものではありませんが、紹介しておくべきその他の例もあります。私は、スモール エンタープライズと同様のホーム コンピューティング環境を実行しています (詳細については、私が Jesper Johansson と共同で TechNet Magazine 2006 年 10 月号に投稿した「Master Your Domain: Build a Corporate Network at Home」(英語) を参照してください)。私は、SBS 2003 (R2) を使用して、完全な Windows ドメインをセットアップしています。この環境では、マイ ドキュメント フォルダはサーバー共有にリダイレクトされます。ここで最後に説明するエンタープライズ クライアントを処理できないゲームという問題を発見したのは、この環境においてです。

私は、Age of Empires® III (AoE3) に 2 つの問題があることに気付きました。このゲームを開発したチームのために断っておきますが、ゲームは制限付きユーザーとして正常に起動してプレイできます。しかし、大量のログ データがネットワーク経由で書き込まれるので、シナリオの読み込みに時間がかかります。さらに、私の構成、保存済みのゲーム、およびゲーム終了時のステージが AoE3 で維持されません。ファイルはマイ ドキュメント フォルダにありますが、それらのファイルはゲームに読み込まれません。これには非常に失望しました。特に、シリーズの以前のタイトルに比べて AoE3 の LUA への対応が向上したことを考えると、実に残念です。

このようなエンタープライズ クライアントの問題を少なくとも認識しているゲームがありました。Fable®: The Lost Chapters™ を試したとき、リモートのマイ ドキュメントはサポートされていないというメッセージが表示され、ゲームが適切に終了しました。サポートされていないシナリオを認識して除外した開発チームは称賛に値します。しかし、数 MB のデータをマイ ドキュメント フォルダに配置できないという理由だけでプレイできないゲームというのも考えものです。

シンプルな解決策

このような問題は、多くのゲームで何度となく遭遇しました。幸いにして、多くの場合には手軽な対応策があります。一番の対応策は、そのゲームを削除して、別のメーカー製から発売されている LUA 対応のタイトルに乗り換えることです。過剰反応と思われることは承知しています。加えて、開封後のゲームは返品できないので、これは理想的な解決策とは言えません。したがって、その他の対応策を考えてみましょう。制限付きユーザーとしてゲームをプレイするためのヒント

  • Windows Vista にアップグレードする。
  • 購入する前にデモを試す (完全バージョンの LUA の問題はデモで確認できるはずです)。
  • LUA で実行する際に問題が発生することが確認されているプログラムの一覧を確認する。
  • ゲームに "Designed for Windows" ロゴが付いていることを確認する。
  • ゲームをインストールおよび更新した後に制限付きユーザーとして実行する。
  • ゲームが制限付きユーザーとして機能しない場合は、メーカーのテクニカル サポート サービスに連絡する。
  • 必要な場合は、システムのローカル Power User アカウントを使用する。

コピー防止機能によるエラーの修正 最初にコピー防止ドライバの問題を見てみましょう。コピー防止システムが存在することに問題はありませんが、そのために管理者以外がゲームを実行できないということは問題です。ほとんどのゲームでは、Macrovision 社の SafeDisc コピー防止メカニズムが採用されていて、オリジナルのゲーム ディスクをチェックするドライバがインストールされます。既定では、ドライバは要求時に起動するように構成されています。これは制限付きユーザーが実行できない機能です。マイクロソフトと Macrovision は修正プログラムを配布していますが、私は別の解決策を見つけました。

  1. 管理者アカウントを使用して、デバイス マネージャを開きます。
  2. [表示] メニューの [非表示デバイスの表示] を選択します。
  3. [プラグ アンド プレイではないドライバ] ノードを展開します。
  4. Security または SecDrv ドライバのプロパティを開きます (図 3 を参照してください)。
  5. [スタートアップ] の種類を [自動] に変更します。

図 3** コピー防止機能を適切に実行するための解決策 **(画像を拡大するには、ここをクリックします)

これでコンピュータの起動時にドライバが起動するようになるので、ディスクを挿入してゲームを実行するときには準備が完了しています。

ファイル システムおよびレジストリへの書き込みに関する問題の修正 ゲームだけでなく、現在および過去の多くのプログラムでは、ファイル システムやレジストリのすべての部分への自由なアクセスが前提となっていることが大きな問題です。管理者特権が必要となるさまざまな問題の解決方法の詳細については、Aaron Margosis による記事「Problems of Privilege: Find and Fix LUA Bugs」(英語) を参照してください。

アクセスの問題は追跡するのが少し面倒ですが、必要なファイル、フォルダ、およびレジストリ キーを識別できれば、制限付きユーザーがゲームをプレイできるようにアクセス制御リスト (ACL) を変更することは難しい作業ではありません。ほとんどの場合、以下の手順を使用できます。

  1. microsoft.com/technet/sysinternals (英語) から最新バージョンの Filemon および Regmon を入手します。
  2. これらのツールを管理者として実行してログの収集を開始します。
  3. 管理者としてゲームを数分間プレイし、最も一般的なタスク (新規キャンペーンの開始、ゲームの保存、ネットワーク ゲームのホストなど) を実行します。
  4. Filemon および Regmon からの結果を検証して、ゲームから行われたアクセスを確認します。
  5. 該当するフォルダおよびレジストリ キーの ACL を変更します。
  6. 管理者以外のユーザーとしてゲームを実行して、正常にプレイできることを確認します。

ACL を変更する際は、制限を低くすぎたり ("Everyone" に "フル コントロール" を与えるなど)、高すぎるレベル (HKEY_CLASSES_ROOT など) で制限を低くしたりしないように注意してください。Windows 全体への不正アクセス防止やシステムのセキュリティ保護を行うために、%SYSTEMROOT% や %PROGRAMFILES% などのシステム フォルダのアクセス許可は変更しないでください。

もう 1 つの解決策は、システムのローカル Power User としてゲームを実行することです。これは理想的な解決策ではありませんが、そのシステムに対してローカルなアカウントを使用することにより、何かの問題が発生した場合でも、影響の範囲は 1 台のワークステーションに限定できます。この解決策は、管理者としてしか適切に機能しないほとんどのゲームに対して有効です。

それとは別に、管理者としてゲームを短時間実行することは、ゲームの自己更新を行う際に便利な方法です。私は、管理者としてゲームを実行し、更新オプションを起動してゲームを終了した後に制限付きユーザー アカウントに戻ってゲームをプレイしています (Windows Vista™ では、修正プログラムがオリジナルのメーカーによって署名されているという前提に基づいて、制限付きユーザーでもアプリケーションを更新できます)。

Windows Vista では、ゲームおよびその他のアプリケーションでのファイルおよびレジストリへのアクセスの問題が解決されています。既定では、制限付きユーザーによって実行されるプログラムでは、ファイルおよびレジストリへの間違ったアクセスをユーザー固有のキャッシュにリダイレクトする仮想化 shim が有効になります。私は、Windows 9x の時代に設計され、(アクセス許可の問題が原因で) Windows XP 上で正常に実行しなかったゲーム (The Neverhood など) が、既定の shim で Windows Vista 上で正常に実行するのを見たことがあります。同様の問題があるその他のゲームを Windows Vista で試すのを楽しみにしていますが、Windows Vista で適切な shim 処理が行われないゲームがあるのは間違いないと思います。

ファイアウォールの問題の修正 ファイアウォールの問題は、ゲームをインストールするときに解決できます。しかし、必要なファイアウォールの設定をゲームのセットアップで構成できない場合は、次の方法を試してみてください。

  1. 管理者としてログオンします。
  2. [コントロール パネル] から [Windows ファイアウォール] を開きます。
  3. [例外] タブで、ファイアウォールの例外に追加するプログラムを選択します。
  4. 一覧から目的のゲームを選択するか、ゲームの実行可能ファイルを参照します。

ゲームの実行可能ファイルをファイアウォールの例外に追加することにより、ゲームは、正常に機能するために必要なポートにアクセスできるようになります。

エンタープライズ クライアントの問題の解決 エンタープライズ クライアントで発生するゲームの問題は、数年後にはなくなるはずです。その理由は、複数台のコンピュータとブロードバンド環境がある家庭が増加していることに加えて、家庭で SBS を実行しているユーザーも増えているからです。しかし、現時点では、何らかの解決策が必要です。

私自身の経験では、リダイレクトされたマイ ドキュメントの問題は、システムのローカル LUA を使用することによって解決されました。マイ ドキュメント フォルダがネットワーク フォルダにリダイレクトされていなければ、Age of Empires III および Fable: The Lost Chapters は両方とも制限付きユーザーとして正常に機能しました。詳細情報

まとめ

管理者以外のユーザーとして実行する際の利点を活用するために、制限付きユーザーとして実行することを強くお勧めします。エンタープライズ環境で最小の権限でゲームをプレイするのは難しいかもしれませんが、不可能ではありません。私は、さまざまなジャンルで制限付きユーザーとして正常に実行できる多くのゲームを長年にわたって見てきました。そして、制限付きユーザーとして実行できないその他のタイトルを機能させるための解決策も見つけました。その一方で、Windows Vista での仮想化により、Windows XP 上では制限付きユーザーとして実行できなかったゲームも機能するようになりました。

Matt Claphamは、マイクロソフトの Security Program Manager であり、シアトルの IT セキュリティ コミュニティの積極的な参加者として、また IT 起業支援プロジェクトにおいてリスク マネジメント チームのメンバとしても活躍しています。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.