10代の青年が『Counter-Strike: Global Offensive』のチート行為を検出するAIツールを開発。1万5000人以上のチーターをBANに追い込む

Pocket
reddit にシェア
LINEで送る

Steamにおいてトップクラスの同時接続プレイヤー数を誇るValveの対戦FPS『Counter-Strike: Global Offensive』(以下、CS:GO)。プレイヤーベースの大きさも相まって、チート行為に手を染めるプレイヤーも多く、ValveはVAC(Valve Anti-Cheat)やOverwatchプログラムなどによる対応をおこなっている。そんな中、とある10代の青年がディープラーニングを用いる独自のAIツールを開発し、1万5000人以上のチーターをBAN処分に追い込むことに成功していたことが明らかになった。海外メディアThe Loadoutが報じている。

その青年とは、イギリス在住の2Eggs氏だ。学生であり、システムの脆弱性を侵入調査するペネトレーションテスターとしての活動もおこなっている人物とのこと。今年10月には、『CS:GO』とSteamに関する未知のバグを発見・報告し、脆弱性報告プラットフォームHackerOneを通じてValveから約1万2000ドル(約130万円)の報奨金を受け取っている。

その2Eggs氏は、ギリシャ神話の女神にちなんで名付けた「HestiaNet」という独自のAIツールを個人で開発。チートと疑わしきプレイヤーの行動とそうでないものを仕分けることを目的に、2015年までさかのぼって『CS:GO』のゲームプレイを学習させているという。

先述したOverwatchプログラムでは、チート行為を目撃したプレイヤーからの報告や、Valveが開発したディープラーニングによるチート検出技術VACnetからの報告をもとに、選ばれたプログラム参加者がチェックしてチートであるかどうかを最終的に判断している。そうした判断をおこなう作業は、1件あたり数分程度かかるとされているが、HestiaNetでは数秒で完了するとのこと。そして、疑わしいと判断したケースについてはValveに自動的に報告。この間、2Eggs氏のSteamアカウントを使用することにはなるが、同氏が直接操作することはない。なお、同氏はOverwatchプログラムの参加者のようだ。

2Eggs氏は11月27日、HestiaNetの直近の成果をTwitter上で報告した。それによると、Overwatchプログラムに報告された計1万7659件のチートと疑われるゲームプレイを調査し、HestiaNetはこの内1万5356件をチート行為と判断。残る2303件をチートではないと判断している。また、エイムアシストやビジュアルによるアシスト、外部からの何らかのアシストと、チートの内容別に切り分けており、加えて嫌がらせ行為(グリーフィング)についても検出していることが分かる。グリーフィングも、一時的あるいは永久BANの対象である。

そして、チートと判断した1万5356件をValveに報告した後、最終的にBAN処分が下ったのは1万5104件だったとし、チート検出の精度は98.36パーセントだったと結論づけている。精度の横に表示されている0.19パーセントアップとは、HestiaNetへの学習を重ねて前回よりも精度が向上したという意味だろうか。今回は1.64パーセントが誤検出という結果となったが、HestiaNetはこうした経験からも学習してチートの検出精度を高めていくことができるという。

ディープラーニングを用いたチートの検出は、先述したようにValveも実施している。同社のシニアソフトウェアエンジニアJohn McDonald氏は2018年のGDCにて、『CS:GO』に導入したVACnetの仕組みなどについて講演をおこなった。2Eggs氏はこの講演を見て、自分にも何かできることはないかと考え、HestiaNetの開発を始めたそうだ。そして現時点では、満足できるところまで仕上げることができたと感じているとのこと。

確かに、上に示したとおりHestiaNetのチート検出精度はかなり高い。GDC 2018で示されたデータでは、VACnetがチート行為(エイムアシスト)であると判断したケースのうち、BAN処分が下ったのは80〜95パーセントとされていた。もちろん、VACnetもそれから検出精度を向上させていることだろう。なお、2Eggs氏はHestiaNetについて、『CS:GO』のOverwatchプログラム以外にも利用できる可能性はあると述べるものの、今後どのように活用していくのかは特に明かしていない。ただ、チーターに手の内を見せることになるため、オープンソース化は考えていないとのことである。

Pocket
reddit にシェア
LINEで送る