Vanguard x VALORANT

チート対策は進化し続けます。チート自体の進化に呼応して。

皆さん、どうも!ライアットのチート対策ソフトウェア「Vanguard」チームでデータエンジニアをしているJose “the3” Chavezです。チーターの特定・対処に必要なデータを迅速かつ効率的にチームと共有することを仕事としています。要するに、データを「しばき倒す」のが仕事です。ふだんはデータを楽しくこねくり回していますが、今日はすこし手を止めてVanguardの現状についてお話ししてみたいと思います。 


実は今回もLoLの時と同じくmirageofpenguinsに書いてもらおうと頼んだのですが、彼は「なんかレンタルビデオの返却が…」などと言葉を濁しており… ですので、今回は私が担当します。対象タイトルはVALORANT、トピックはPC版のチート対策、コンソール版のマウス検出、「Ranked Rollback」計画の予告、そして人生を変えるアカウントセキュリティーのアドバイスです。

あなたの試合を守護し続けて4年

VALORANTのVanguardがリリースされてもう4年が経つなんて信じられますか?決して平坦な道ではなかったし、本当に色んな事がありました。幸いなことにチート対策は順調に機能しており、今後もこの状態を持続していくつもりです! 

ではさっそく、これまでの対策実績を見てみましょう。まず過去4年間のバン総数はチート使用だけで360万アカウント以上でした。実に37秒に一度のペースです!ここで重要なのは、この数字にはボットの使用、ブースティング、そして意図的にチーターとキューする行為は含まれない、ということです。下の図はリリースから現在までの処置内容を、バンの管理システム別に分類したものです。

  • Detection(検出):チートアセットが明示的に検出されてバンに至ったもの

  • Hardware(ハードウェア):再違反者と特定されたアカウントに対し、一定時間経過後に処分したもの

  • Manual(手動):エージェントが手動レビュー後にバンを実施したもの

現在、チート使用アカウントへの対策はかつてない規模になっています。これは本作がチーターとプレイヤーの両方で人気を博しているためでもありますが、最近は自動検出の果たす役割がハードウェア的対処よりも大きくなってきています。これは追加対策のテスト・導入を続ける私たちにとって、VALORANTをより安全な環境で確実に運営するための意図的な選択でした。

VALORANTにおけるVanguardの処置数の推移。手動バン、自動検出に基づくバン、再違反者に対するハードウェアバンを含む。線グラフは任意の試合にチーターが参加している確率を示します

直近数ヶ月のバン総数は増加していますが、検出までの所要時間は比較的安定した状態を維持しています。下のグラフでも、Time to action(対処までの所要時間)はほぼ同水準で推移しています。これは上のグラフの% of games with cheaters(試合にチーターが参加している確率)とも呼応しています。チーターとの戦いは複雑さを増し続けていますが、「可能な限り速やかにチーターを試合から排除する」取り組みは維持できています。さて「可能な限り速やかに」と言いましたが、実はこれ、時には少し待ったほうが良いこともあります。しかしなぜチーターを即座にバンしないのでしょう?詳細はグラフの後に説明していくのでお楽しみに。

チーターがバンされるまでにプレイする試合数の平均値

この成果は誇らしく思っていますが、結局はどの数字も「どれだけチーターに反応できたか」の指標でしかありません。もちろんチーターの捕捉・バンは速くできるに越したことはありません。しかし一方では、より能動的な取り組みにも取り組んでいきたいと──そもそも被害が生じないようにしていきたいと──考えています。もちろんVanguardは現時点でもさまざまな方法で脆弱性悪用を防いでいますが、それ以上を目指すにはどうしたらいいのでしょう?

たとえば、特定のプレイヤーが極めて怪しい(完全にチートとは言えずとも、間違いなく境界線にはかかっている)行動をしているのを補足した場合や、検出したチーターにやり直す機会を与えたい場合、私たちはVAN:RESTRICTIONを使用します。これは要するに、疑惑を向けられた個人にWindows内蔵のセキュリティー機能を有効化してもらうことでチート使用を困難にし、「それをチートしないという約束」にしているわけです。これは(再違反があった場合には)対処時間を人為的に伸ばすことにもなり得ますが、チート使用自体を難しくするため、結果的にチーターの試合参加率に影響しません。

さて、ではこうしたプレイヤーに有効化してもらっているセキュリティー機能とは何で、どういう理由で選ばれているのでしょう?ここから先は技術的な話になってくるので、Windowsのセキュリティー機能に興味がない方は次項まで飛ばしてしまっても大丈夫です。

明かされるVAN:RESTRICTION

まずVAN:RESTRICTIONではWindowsのパッチバージョンを更新するように求められます。これは通常、旧バージョンになるほどカーネルにコードを侵入させる脆弱性が多くなるためです。またVAN:RESTRICTIONではWindows 10マシンでもTPM/Secure Bootを有効化必須とします。これはブートキットが攻撃ベクトルとして使用させる可能性を廃するため、そして扱いやすいハードウェアIDを入手するためです。さらに現在、チームではVAN:RESTRICTIONによる仮想化ベースのセキュリティ(VBS)ハイパーバイザーで保護されたコード整合性(HVCIの有効化を必須とする案の実用性を調査しています。これらはいずれもマルウェアや脆弱性悪用からWindowsカーネルを強固に保護する比較的新しいセキュリティー機能です。 

昨今の新型チートには、ダイレクトメモリアクセス(DMA)ツールを用い、マザーボード上でCPUを経由せずにプログラムのメモリに直接接続するものも確認されています。外部ツールを使ってメモリを操作するしくみであるため、Windows側での検出が困難になります。こうした流れに対抗するため、現在私たちのチームではVAN:RESTRICTIONで入出力メモリ管理ユニット(IOMMU)を有効化必須として隙間を埋め、悪意あるデバイスがゲームのメモリに侵入しないように予防する手段を検討しています。このIOMMUテクノロジーはコンソールプラットフォーム(PlaystationやXboxなど)でも導入されてゲームのメモリを保護しています。コンソールにDMAが実質的に存在していないことからも、その有効性の高さがわかります。 

ずいぶん技術寄りの文章を書いてしまいました…。Windowsに内蔵されているこうした機能は、あなたのマシンをマルウェアから──多くの「チート」は実質的にゲームを標的としたマルウェアです──守っています。Microsoftは自社のオペレーティングシステムを保護するべくこれらの機能を継続的に開発しており、このまま発展していけばゲームの保護のためにカーネルレベルのチート対策をする必要もなくなるでしょう。実際、Windowsは(すべてをセキュア/サンドボックス化する動きのなかで)サードパーティーアプリケーションをカーネルから完全に排除しようと動き始めています。とはいえ、こうした動きについて皆さんが何かを心配する必要はないでしょう。皆さんは善良で、じっくり腰を据えてゲームを楽しみたいだけなのですから。

でもチーターに負けたんだけど!

先ほどのグラフでチーターがバンされるまでにプレイする試合数を紹介しました。これにはさまざまな評価が可能ですが、ひとつだけ確かなことがあります。「0ではない」ということです。しかし言い訳だと思われるかもしれませんが、私たちはこの数字を0にしたいとは思っていません。Vanguardのチーター検出条件は不明な点が多いですが、私たちはあえてその状態を維持しています。そのほうがチート開発者の仕事が難しくなるからです。こちらだけが必至に対処しているだけでは面白くないので、相手にも同じだけの苦労をしてもらおうという話ですね。たいていの場合、私たちはチーターがゲームに入ると即座に検出できますが、即座にバンはしません。即時バンをすればチート開発者に検出条件をA/Bテストするチャンスを与えてしまうからです。仮にチーターを即時バンしていけば、チート開発者はチートに変更を加え、新しいアカウントを手に入れて(なのでアカウントのセキュリティー対策をお忘れなく)、新バージョンがバンされるか確認する。これをひたすら繰り返します。彼らは検出された理由を特定し、回避策を実装し、「検出されない」チートとして売り出すのです(何度でも)。もちろん最終的にはそうしたチートも検出しますが、バン措置にディレイを入れることでチーターの開発プロセスを鈍化させ、私たちは検出手法を「長持ち」させているのです。

ただ、こうしたバン遅滞作戦はチート対策の側面から見れば有効かもしれませんが、チーターがバンされるまでの間に苦しめられるプレイヤーが生まれてしまいます。そうしたプレイヤーは、チーターがバンされるまでの期間に努力の結晶であるRRを失い、ランクアップを逃してしまう可能性すらあるわけです。これは看過できないことです。そこで私たちはVALORANTコンペティティブとソーシャルシステムの両チームと連携し、Ranked Rollback(仮称)機能の開発に着手しました。これはチーターとの対戦で失ったRRを、対象チーターのバン措置後に「巻き戻す」機能です。チーターがゲームから追い出され、被害を受けたプレイヤーが正当なランクアップの権利を回復するこの機能は、両アカウントをあるべき姿にするものであるとも言えるでしょう。本機能はまだ開発中ですが、必ずリリースすることを約束します。

Vanguard x コンソール

さてPC版の小難しい用語の話はこれくらいにして、話題を変えましょう!去る6月、ライアットはVALORANTコンソール版のクローズドベータをリリースしました。これはライアットとしてもコンソールゲーム初リリースという大きな一歩でしたが、チート対策チームにとってもまったくの新世界でした。コンソールでのチート検出に関する経験が少なかったため、私たちはかなり大変な状況に直面していました。

コンソールのチートは、PCとはまったく状況が異なります。PCではユーザーが何を・いつ・どのように実行するか相当細かく制御できるため、カスタマイズや悪用の余地が大きい環境となっています。しかしコンソールはそういった部分がファーストパーティーメーカー(例:Sony、Microsoft)により大幅に制限されています。コンソールは「うまく騙して本来できないことをさせる」のが非常に難しいのです。その結果、コンソール版チーターは「ゲームの入力を書き換える」というPC版とは大きく異なる手法を取ります。コンソール版シュータージャンルのチートを調査していく中で私たちが即座に理解したのは、競技の健全性を害する最大の攻撃ベクトルが「キーボード&マウスの使用」であるということでした。

コンソール版FPSゲームには通常、アナログスティックでのゲーム体験をスムーズにするためエイムアシスト機能が用意されています。これはVALORANTも同様です。しかし、このコンソールFPS用エイムアシスト機能とキーボード&マウス操作(振り向きが一瞬でできる)を組み合わせると、コントローラー使用プレイヤーを容易に圧倒できてしまうのです。ライアットもこれを認識していたので、コンソール版では競技の健全性を維持するためにクロスプレイ(PC-コンソール間での対戦)を実装しない決断をし、さらにコンソール版でのキーボード&マウスを禁止しました。これにて一件落着!コンソール版プレイヤーは対等な環境で対戦できてめでたしめでたし!…とシンプルだったら良かったのですが。

キーボード&マウスをゲームコンソールに接続する際に使用される入力偽装装置の例

残念ながら、ルールを出し抜こうとする人はどこにでも存在します。もちろんコンソールのチートもそれほど簡単ではなく、ゲーム機のUSBポートにキーボードとマウスを差し込むだけでは完結しません。チーターはまず入力偽装装置を購入し、キーボードとマウスを純正コントローラーとして誤認識させます。この種のデバイスは「コントローラーが接続された」とコンソールに認識させるため、チーターはキーボード&マウス入力の利点とエイムアシストの恩恵を両取りできるわけです。これはコンソールFPS全体が直面している大きな問題なのですが、今回ついに私たちにも取り組む番が回ってきたわけです。

コンソール版のリリース前、私たちは分析すべきデータを一切持たなかったので、リリースしてデータが揃うまで待ったほうが良いのではないかという声も一部にはありました。しかしライアットならばプレイヤーに最良の体験を届けるために全力を尽くすべきだろう!というわけで、本件は公式リリース前に解決するべき課題となったのです。 

ライアットは他のシューター開発会社からデータを買い上げたのだろうという憶測もありましたが、実際に私たちがやったことは…「自ら根絶を誓った存在になってみる」でした。社内プレイテストで徹底的に──さまざまなセッティングで、さまざまなスキル帯で──チートし続け、そのデータに基づいて開発を進めたのです(同僚のみんなゴメン、実は僕、コントローラーじゃエイムできないんだ)。そしてプレイテストを重ね、Vanguardのソフトウェアエンジニアとデータエンジニアたちは緊密に連携して悪意ある振る舞いの検出に必要なデータの生成、整形、調査を進めていきました。そして絶え間なきプレイテストと満たされることのないデータへの渇きを乗り越え、リリース前の検出システム構築に必要なデータは揃いました。


そして迎えた6月14日、勝負のとき。1人残らず検出するほどの自信はありませんでしたが、被害が大きくなりすぎる前に一定数のチーターを捕らえたいとは願っていました。そして数時間後…最初のバン措置が発動します!その後まもなく、バンは次々と続いていきました。私たちの取り組みに気づいてくれたプレイヤーが現れたのも嬉しかったですね!そしてリリース週の週末にはチーター側が検出回避に動き始めたのを把握し、それに対応すべく検出システムの更新を重ねていきました。この時点で私たちの手元には分析対象データが比べ物にならないほど蓄積されていたため、検出システムも更新のたびに改善されていきました。

Anti-Cheat Police Department(チート対策警察)アカウントの投稿。VALORANTコンソール版で入力偽装装置を用いてキーボード&マウス操作していたプレイヤーがバンされる瞬間をシェアしていました

「いやいい話だ、じゃあ数字を見せてもらおうかデータ君」と思った方へ。VALORANTコンソール版のクローズドベータリリース以降の処置数を示したグラフをどうぞ!ちなみに「バン」ではなく「処置」と言ったのは、即時バン以外にもマッチ停止(とプレイヤー通知)という処置を試験的に併用しているためです。処置数が跳ね上がっている箇所はいずれも新地域でのリリース開始、オープンベータ移行、フルリリースなどプレイヤー層が広がったタイミングです。

VALORANTコンソール版におけるVanguardの処置数(6月14日のオープンベータリリース~)。チーターの総数はひとまず非公開(喧伝に使われるネタは提供しません)

さて、こうしてコンソール版チーターとの初戦勝利を振り返るのは楽しいものですが、この戦いが終結には程遠いことは私たちもよく理解しています。チーターはこれからも検出システムを越えようとしてくるでしょうし、私たちも最新のチートに対応し続けていかねばなりません。コンソール版のチートはVanguardとチート対策チームにとってもうひとつのフロンティアですが、私たちはこれからも競技の公平性を心から信じられる環境を提供できるように戦い続けていきます。

車だったら盗まないのに

私が幼い頃見ていたCMに「車だったら盗まないのに」というものがありました(訳注:2000年代の著作権侵害防止CM)が、残念ながらチーターは躊躇なくあなたのアカウントを盗み、悪意ある活動に使います。バンされたチーターがああダメだったと諦めて立ち去ってくれれば最高なのですが、現実はそうはいきません。チーターは頑固で、何度バンを喰らってもゲームに戻ってこようとします。しかしバンされたハードウェアのID偽装、アカウント作成、チュートリアルをやり直すのは、特に繰り返しやるとなれば面倒です。では面倒じゃない方法は?アカウントを盗めば簡単です! 

残念ながら私たちが生きている世界では、Wi-Fi機能付き水筒のパスワードが流出しただけで、芋づる式に情報が盗まれる可能性があります。Eメールアドレス、銀行口座、あるいは最悪の場合ライアットゲームズアカウントまでも!悪意ある者たちはそうした流出情報を使って無実のプレイヤーのアカウントに侵入し、極悪非道な行いをします。私たちはこれを実体験として知っています。というのも、VALORANTでチート使用によりバンされたアカウントの4%は、後に乗っ取りが原因でバン解除されているからです。そしてご想像の通り、「アカウントを乗っ取られていただけだからバンを解除して欲しい」はバンされたチーターたちの常套句でもあります。私たちは嘘だと知っているので騙されませんが。 

ではプレイヤーにはどんな防衛手段があるのでしょうか?一番簡単ですぐにできるのは、パスワードを更新することです。きっと誰もが、2011年からずっと同じパスワードを使っているアカウントをひとつ思い浮かべられるんじゃないでしょうか。しかし実際問題として、覚えやすいそのパスワードはそのまま侵入しやすいという意味でもあるのです。新しく、強固で、使いまわしていないパスワードに更新することは、悪意ある者が流出したパスワードを使ってアカウントに侵入するリスクを大幅に低減します。その次にできること、そしてプレイヤーが取りうる最強の防衛手段は、ライアットゲームズアカウントに2要素認証を設定することです。これはライアットゲームズアカウントにサインインし、「アカウント管理」で「2要素認証」を有効化すれば完了します。

ライアットゲームズアカウントのアカウント管理ページで2要素認証を有効化している画面

ええ、確かにそうでしょう。ちょっとスイフトプレイやデスマッチをやりたいだけなのに、Eメールアドレスに届くアクセスコードを入力するのは面倒くさいですよね。でも信じてください。そのひと手間で得られるアカウントセキュリティーの強さは圧倒的です。ログインにかかる時間は数秒長くなるかもしれませんが、それでアカウントを取り戻そうと奔走し、心労に苛まれる必要がなくなるんですから。このアドバイスはあらゆるオンラインアカウントに当てはまります。Eメールアドレスも、銀行口座も、Wi-Fi機能付き水筒も何もかもです。パスワードを更新し、2要素認証があるなら必ず有効にする。それだけで悪意ある者は相当やりにくくなります。あなたもアカウント(とそこに注ぎ込んだ熱意と時間)が安全だと確信して、夜もぐっすり眠れるようになるでしょう。

今回はここまで

いやはや、思っていたより長くなってしまいました。この記事を通じて新たな知見が提供できていたら幸いです!思い出を振り返るのはいつだって楽しいものですが、一方でやるべき事はまだまだたくさん残っています。なにせ、今やVanguardはVALORANT PC版、VALORANTコンソール版、そしてリーグ・オブ・レジェンド(はい、こちらもうちのチームの仕事です)の多正面作戦を展開中ですから。ゲームの健全性を保つための戦いが終わる日はまだしばらく来ないでしょうから、私たちは今後も戦い続けていきます。幸いなことにチームには非常に優秀で熱心なメンバーが揃っており、その全員がVanguardで最高のチート対策を実現するべく日夜全力を尽くしています(社内プレイテストでのチート使用を含む)。というわけで、プレイヤーの皆さんはアカウントのセキュリティー対策の更新と、チート疑惑遭遇時の報告をぜひお願いしますね。そしてこれを読んでいるチーターにもひと言。やめようぜ!