スポンサーリンク

VALORANTがチート対策としてカーネルモードのデバイスドライバーを採用し物議

News

 近年、競技性の高いゲームにおいて不正行為が広がり、プレイヤーのゲーム体験に悪影響が出ている。例えば無料FPSの「Apex Legends」では不正行為が相次ぐ中、ゲーム内で不正ツールをチャットや音声で宣伝するBotが現れ、プレイヤーに不快感を与えた(動画)。また「不正ツール販売業者が4日間で55万円を売り上げた」という報告(Kotaku, Automaton)も上がっており、最新ゲームの登場に合わせて不正ツールを販売することがビジネスにもなりつつある。ゲーム開発者は、こうした不正行為との戦いを余儀なくされている状況だ。

 2020年夏のリリースが予定されているRiot Games発の無料FPS「VALORANT」も、2020年3月の発表の中でゲームの特長として強力なチート(不正行為)対策を実現することを宣言し、プレイヤーに対して不正行為の撲滅をアピールしている。

 しかし、その対策の一つとして導入される「Vanguard」について、賛否の声が広まっている。問題となっているのは「vgk.sys」というドライバーだ。上がっている論点は次の通り。

  1. カーネルモード(Ring 0)での常時実行:vgk.sysはRing 0の権限を持つため、ぜい弱性やバグが組み込まれた場合、PCに悪影響を及ぼす可能性がある。不正対策ソフトとして知られるBattleEye「Easy Anti Cheat」は、Ring 0で実行されるデバイスドライバーをゲーム起動~終了時に実行する実装になっている。一方、vgk.sysはVALORANTの動作と関係なく、PC起動~シャットダウン時まで実行される。
  2. ゲーム本体をアンインストールしても残る:VALORANTをアンインストールしても、ユーザーが気付かない限り、PCにvgk.sysが残り続ける(削除方法は公式サポートで紹介されている)
  3. 中国企業Tencentの完全子会社が提供すること:Riot Gamesは中国企業Tencentの完全子会社で、vgk.sysのRing 0権限を利用すればあらゆる種類のデータをRiotを通じてTencentに送信できる可能性があること

 カーネルモードを利用した不正行為対策について簡単に補足する。Windows OSはカーネルモードとユーザーモードという2種類の実行権限レベル(特権レベル)を持っている。私たちが普段利用するアプリケーションはユーザーモード、OSの中核となる機能はカーネルモードで実行される。これにより、アプリケーションの実行がOSの動作に影響を及ぼしたりしないように統制されている。

 不正ツールやマルウェアは、強い権限があればあるほど自由度が高まる。メモリやストレージなどの命令を管理する権限さえあれば、OSの正規処理に見せかけてユーザーモードにあるアプリケーションに偽の命令処理を出すことが可能になる。そこで不正対策ツールやウイルス対策ソフトはカーネルモードにデバイスドライバーを配置することで、カーネルモード内の処理を直接監視できるようにしているわけだ。

 この問題点は、「そのデバイスドライバーの安全性は保証できるのか」ということにある。類似した事例として知られているのが、ストリートファイターVで起きた「capcom.sys」にまつわる騒動だ。

 2016年9月、カプコンはストリートファイターVにおけるチート対策強化を目的に「capcom.sys」というデバイスドライバーを実装した。しかし、capcom.sysの実装後、ユーザーから「ゲームを起動できない」など複数の問い合わせが寄せられる。そんな中、capcom.sysの実装に問題があり、カプコン以外の第三者が悪用できる可能性があるという問題点がRedditで指摘された。その後、カプコンはcapcom.sysの実装に関するセキュリティ上の問題を認め、capcom.sysを削除するパッチを配布した。

 デバイスドライバーによる不正行為対策は、細心の注意を払わないと多くのユーザーに悪影響を与えかねないため、リスクを最小限にした実装が求められるというわけだ。Riot Gamesの担当者はRedditで、「過去のデバイスドライバーが起こしたセキュリティの問題を起こさないよう、複数のセキュリティ企業にレビューを依頼している」と説明している。

 またArs Technicaの取材に対しては「ゲーム本体のアップデートとは別に必要なタイミングでアップデートする機能を備えているため、もしカーネルドライバでコード実行バグが見つかったとしても、数時間以内に解消できる可能性が高い。もし緊急の問題が起きた場合は、パッチチームと協力して全てのコンピューターからVanguardを削除する」と述べている(記事)。

 Riot Gamesは、カーネルドライバを用いる重要性を日本語記事で訴えたり、セキュリティチームの署名で声明を出している。読者の皆さんはカーネルレベルまで踏み込む不正行為対策についてどう考えるだろうか。

情報元 PRTIMES マイクロソフト系技術情報Wiki Riot Games Reddit Reddit Reddit スラド