Steamゲーム、ストアでカーネルレベルのアンチチート開示が必須に
(gamingonlinux.com)- ValveがSteamの開発者に対し、ゲームでカーネルレベルのアンチチートを使用しているかどうかをストアページに明確に表示するよう求め、購入前にセキュリティ・互換性情報を確認しやすくなった
- 適用範囲は新作の発売予定タイトルにとどまらず、すでにSteamに登録されているゲームも含まれ、新しいリリース手順にも反映される
- 開示義務はカーネルレベルのアンチチートに限定されるが、Valveはクライアント側・サーバー側のアンチチートについてもプレイヤーに知らせるのが望ましいと考えている
- ストア表示については、アンチチート告知の有無や正確性までValveが確認し、一部の古いゲームにおける削除後の残留項目の問題もあわせて扱える可能性がある
- Steam DeckとDesktop Linuxのユーザーは、開発者がProtonでの実行をブロックするゲームを購入前に見分けやすくなる可能性が高い
Steamストアのアンチチート表示変更
- Valveは、Steam上でゲームが使用するカーネルレベルのアンチチートをストアページに明確に表示するよう求めている
- Steamworks Developerの投稿によると、開発者がプレイヤーにアンチチート情報を共有する方法を模索しており、プレイヤー側もゲームで使われるアンチチートサービスや追加インストールされるソフトウェアについて、より高い透明性を求めてきた
既存ゲームまで含む適用範囲
- この要件は新規リリース予定のゲームだけに適用されるものではない
- すでにSteamに登録されているゲームも該当情報を追加する必要がある
- 新しいリリース手順にも含まれる
- Valveは、ゲームページに告知があるか、その内容が正確かを確認する審査を行う
義務開示と任意開示の区別
- 必ず開示しなければならない項目はカーネルレベルのアンチチートである
- クライアント側またはサーバー側のアンチチートのみを使用する場合、開示は任意である
- Valveは、アンチチート技術を使用するすべてのゲームがプレイヤーにその事実を知らせることは有益だと考えている
削除関連の情報も表示可能
- 一部のゲームは、削除時にインストールされた項目を適切に取り除かない
- Valveは、こうしたことが古いゲームで発生していると述べている
- ストア表示には、削除に関する情報も含まれる可能性がある
LinuxとSteam Deckユーザーへの影響
- Steam DeckとDesktop Linuxのユーザーは、どのゲームを避けるべきかをより簡単に判断できるようになる
- カーネルレベルのアンチチートを使うゲームでは、通常、開発者が Proton での実行をブロックする
最近のSteam関連変更
- Valveは最近、Steamで複数の変更を進めている
- パブリッシャーバナーのスパム への対応
- Native Linuxゲームの改善
- ゲーム購入時に、所有権ではなくライセンスであることを明確に表示
- 個別仲裁の必要性を削除した内容を反映
1件のコメント
Hacker News のコメント
先週 GTA V を再インストールしたのですが、起動するにはルートキットを入れなければならないと知ってかなり驚きました。
10年前に買ったゲームに、しかもシングルプレイだけをするつもりのゲームに、必須のカーネル拡張を追加するなんてありえません。
いつものように、海賊版のほうが良い体験だったのだと思います。
-nobattleyeを入れれば、追加インストールなしで シングルプレイ ができます。Rockstar はほかのゲームのように、別の起動オプションとして用意しておくべきでした。
GTA V は PlayStation で買い、そこでは Rockstar アカウントなしでシングルプレイが可能でした。おそらく Sony がそうするよう強制したのであって、Rockstar が善意で対応したとは思っていません。
ただ、ゲームを起動するたびにマルチプレイへ誘導する画面が出て、一度マルチプレイ関連のオプションを押したら、その後数週間、ゲームを起動していなくても PlayStation のシステム通知で GTA Online のイベントをずっと押し込んできました。
なので Rockstar とはお別れです。ゲーム自体もすでに大きくなりすぎて、自分たちで扱いきれていない感じがします。
「この会社はどこも、Darth Vader University で MBA を取った CEO たちが運営していて、最初の授業が『私が取引条件を変更した。これ以上変更されないよう祈るがいい』なのだろう」
https://pluralistic.net/2023/12/08/playstationed
残念ながら、海賊版のほうが良い体験なのは事実です。ただ、通常はインディーゲームには当てはまらないと思います。
少なくともインディーであり続けている間は、という意味です。少し前に久しぶりに Minecraft を再インストールしたところ、Microsoft が10年以上前に買ったゲームを遊ぶために電話番号認証を要求していると知りました。
GTA V のルートキットと同じで、シングルプレイだけをしたいのかどうかは気にしません。ランチャーで止められたらそれで終わりで、助けてくれる人もいません。
コンピュータビジョンと人工知能が進歩し続けているのを見ると、近いうちに完全に外部デバイスとして動作し、検出しにくいチート用周辺機器が出てきそうです。
画面出力から直接映像をキャプチャし、USB 入力デバイスをまねて入力を渡すような仕組みです。
ゲームプロセスに接続するチートのように、ウォールハックのような全機能を提供することはできないでしょうが、この方式で超人的なエイムボットは作れます。
すでに、ゲームのステレオサウンドを使って足音のような特定の音が鳴った方向を知らせる外部「レーダー」チートもあります。
kmbox のような既製品もありますし、自作もできます。
ただ重要なのは、ゲームのチーターの中でハードウェアまで買うほど執拗な割合はごく小さいという点です。実行ファイルをダブルクリックして即座に満足を得るより、ずっと高くつき手間もかかります。
だから、アカウント停止を避けるにはそこまで手間をかけなければならない状態にするだけでも、実質的には成功と見なされます。
ほとんどのプレイヤーは正直に楽しむために遊んでいるので、あまり気にしていないだけです。
真面目な話、そうしたデバイスがすでにあるとは聞いています。
最初の段階の次には、カーネルレベルのアンチチートが入ったゲームを禁止すべき
Linuxでは受け入れられないし、Appleも今後そうしたものをこれ以上許可しないだろう。ただしAppleはMantleとMプロセッサ以降、ゲームにおける影響力を失っており、どちらも互換性の問題を大きくした
Microsoftもこれに関するあらゆる選択を後悔しているところだ
https://www.theverge.com/2024/9/12/24242947/microsoft-window...
いつものことだが、Microsoftが悪い判断をすると全員が苦しむ。Linuxでさえそうだ。非公開ソースのカーネルモジュールがLinuxをtainted状態としてマークするのには理由があり、そのシステムは信頼できない
ゲームを安全にするのはゲーム開発者の責任であって、ユーザーのデバイスを操作することではない。安全な方法で目的を達成できないからといって、愚かで危険なことを強制する理由にはならない
そもそもカーネルコンポーネントを作れるエンジニアを雇うコストも大きい。狭い専門領域で、安く手に入るものではない
ゲーム会社が怠けているからカーネルレベルのアンチチートを使っているのではなく、特にFPSのように純粋なサーバー側の方式だけでは完全には防げないゲームでは、絶対的な必要性があるから使っている
機械学習も試されたが、誤検知が多く、プレイヤー体験を損なう微妙なチートを多く見逃す。以前のアンチチートはユーザーモードにしかなかったが、するとチートがカーネルへ移り、検出もブロックも難しくなった
効果を維持するには、アンチチートも追随せざるを得なかった。代替案は、その領域をチーターに明け渡し、莫大なリソースで開発・運営したゲームが、普通のプレイヤーが離れていくチート地獄になるのを見ることだけだ
こうしたものがなければ全員にとってより良い、という点には同意するが、私企業が個人の望みどおりに運営されるべきで、開発者には望む方式でしか作らない「義務」があると信じる権利意識には驚く
人間に大量の判定要員を任せ、「あの人はチートかどうか」を不安定に決めさせたくないからだ
カーネルレベルのアンチチートには根本的な欠陥がある。その結果、DMAチートやコンピュータービジョンベースのチートがさらに増えており、チーターに依然として大きく、より検出しにくい優位を与えている
それでも、露骨なチートや大半の微妙なチートを防ぐには効果がある
サーバーが入力を受け取ったあとでチートを検出するのは、安定して行うのが非常に難しい。初心者は遅く遅延した入力をし、上級者は反応が一桁倍以上速く、筋肉記憶のため思ったより速く反応することもある
検出不可能なチートを作るには、コードに人間レベルの反応時間制限を入れ、すべての入力が現実的に見えるようにすればよい
結局、サーバーの統計的手法では実際には検出されない一方で、大きな優位を与えるチートを作れてしまう
ここで人工知能を使いたくなるだろうが、間違いなく人間の監督が必要で、そうでなければ誤検知が起きる
極端には、サーバー側レンダリングとサーバー側入力処理を中心にゲームを設計し、プレイヤーが実質的にリモートデスクトップ接続でプレイするようにしても、レイテンシの問題をひとまず無視すれば、頭部への自動スナップ、反動補正、自動発射のようなチートは依然としてゲームに大きな影響を与える
さらに、人間が敵の位置を把握できるほど正確である必要がある音を使って、原始的なウォールハックを実装することさえできる
FPSゲームの本質がこうであるため、企業はこうしたゲームにカーネルレベルのアンチチートを入れることになる。チートが不可能なFPSを作るには、形式上チートがより難しい、あるいは不可能な別のゲームを作る必要がある
チーターのいないFPSを望むなら、直接のマッチメイキング、直接のサーバーホスティング、直接の管理を再び奨励するべきだ。しかし「スケールしない」という問題が生じる。人間のレビューも、サーバー側レンダリングもスケールしない
ゲーム会社がカーネルレベルのアンチチートを行う核心的な理由は、プレイヤーがそれ入りのゲームには金を払うが、ないゲームには金を払わないからだ
Microsoftは最悪の企業の一つだと思っているが、この場合、Microsoftやカーネルレベルのアンチチート開発者を責めるのは難しいと思う。開発者はプレイヤーが望んだことをしており、Microsoftはエンドユーザーが許可したいものを許可しているだけだ
Microsoftがカーネルレベルのアンチチートをなくすなら、侵入型アンチチートという概念を葬るのではなく、ハードウェア証明をサポートするユーザー空間コードに置き換える可能性が高い。Microsoftは自分の責任を避けるためにツールを再設計しているだけだ
根本的に、カーネルレベルのアンチチートはチートをDMAとコンピュータービジョンの領域へ押しやった。したがって、カーネルレベルのアンチチートでも検出されない、より露骨で腹立たしいチートが近いうちにさらに一般的になるかもしれない
次の選択肢は、公認ハードウェアとハードウェア証明を備えたコンソール専用ゲームだけになるかもしれない。それにさえ欠陥はある
結局、公開サーバーでチートなしにゲームをすることが不可能になるかもしれない。これが人々をこの種のゲームから遠ざけるのか、非公開ロビーへ追いやるのかは分からない
こう考えたのは私だけではないはずだ
ゲームに、許可なく好き放題できるレベルのカーネルアクセス権を与えるのはまったく好きではない。
ただ、オンラインで良いゲーム体験を維持するうえでチートは実存的な脅威であり、ほかに良い解決策はよく分からない。
ここ数年で特に苛立たしかったのは、一部のゲーム開発者が、ゲームをしていないときでもアンチチートを実行中のまま、あるいはアイドル状態で残しておく悪い習慣のせいで、自分が遊んでいるゲームとはまったく関係のない別のゲームに問題が起きたことだ。
対戦ゲームを多く遊ぶ立場として、妥協案としてゲーム専用ノートPCを別に用意し、その中ではメールアカウントへのログインすらしない。Steam、ゲーム、必要な動画ソフトウェアくらいしか入れていない。
あまり良いとは言えないが、少なくとも開示はすべきだと思う。これがすでに標準ではなかったというのが不思議だ。ただ、開示しすぎるとチーターに悪用される可能性もあるので難しくはある。
アンチチートは軍拡競争にすぎず、別のアプローチもある。たとえばランクモードで電話番号を要求する、弱いKYCのような方式だ。
Deadlockは招待制の早期アクセスシステムで興味深いことをしているように見える。実質的にプレイヤーのソーシャルグラフを作っており、それを使って「チート組織」や乗っ取られたアカウントを特定したり、コミュニティ内で社会的評価システムを作ったりできる。
別のスレッドでも言ったが、自分がもう年を取ったからなのか、他のプレイヤーがチートを使っているかどうかを気にしたことがまったくない。
昔はエイムボットやウォールハックのようなものを使う人に出会うのはかなり普通だった。
本当に楽しさを損なうなら、サーバーを変えるか別のロビーに入ればよかった。
カーネルレベルのアンチチートだけでは不十分だ。
クライアント入力は信頼しなければならないのに出所証明がなく、カーネルは入力を見ることができない。
今、100人のマッチメイキングゲームをリリース中だ。クライアントは360Hz、サーバーは120Hzでティックを回す。ping 60まで公平で、大陸全体をカバーする。
サーバーは仮想マシンではなく物理サーバーで、EPYC 4244Pに2Gbpsの送出、15分のゲームごとにサーバー1台だ。すべてのクライアントとサーバーで
mitigations=off、nosmtを使う。Steamは好きだが、このゲームはそこには出さない。
プレイするには再起動が必要だ。USBドライブからゲームへ直接起動する、改造されたArch Linux ISOだ。
カーネルだけでなく、OSと実行中のすべてのプログラムを管理する。CortanaもDiscordもSpotifyもなく、ゲームだけがある。プレイ中、PCはアーケード筐体になる。
それでも不十分だ。
ランクをやるには、左肩越しに手元カメラを設置しなければならない。頭の向き、両手、マウスパッド全体、画面が見える必要がある。固定のマウス速度、マウスパッドのサイズ、モニターサイズも使わなければならない。
全員が同じ設定と構成でプレイするので、どのプレイヤーの入力を検証しても見慣れたものに見えるはずだ。
カーネルアンチチートでは足りず、実行プログラムとネットワーク接続まで含めた再現可能なOS環境全体が必要だ。
それでも足りない。ユーザー入力の出所証明をゲームのリプレイシステムに直接結び付け、自分でも誰でも、交戦状況をすべての当事者の視点から検証できる必要がある。
当然、すべて任意であるべきだ。誰もがランクをやりたいわけではないし、OS全体のアンチチートだけでも、入力の出所証明なしにある程度は役に立つだろう。
自分がチーターに殺されたのか、神のようなプレイヤーに殺されたのか、気になったことはあるか。二度とそんな疑問を持ちたくないとは思わないか。私はそう思うし、まもなくそうなる。
だが正直、チーターを防ぐのは不可能だ。方法は友人たちと遊ぶか、ゲームの報酬を変えてチートの魅力を下げることだけだ。
たとえばCounter-Strikeはスキンを稼いで売れるので、チーターが多くならざるを得ない。ゲームが非常に人気なので、チートを買うプレイヤーも多い。
ゲーム設計とエンジン設計もチート防止に役立ち得る。
腐敗を解決することはできず、ゲームかプレイヤーを変えなければならない。
Counter-Strikeコミュニティはかなり有害だが、Valveにとっては非常に収益性が高いので、プレイヤーが悪く振る舞ってもValveは気にしていないと思う。
CSは良いゲームだが、人間の本性がそうなのだ。CSをやっている人の中で推薦できるような人を見つけるのは難しく、ほとんどのゲーマーはそのコミュニティと関わるのがあまりにもひどいので別のものをやる。
ゲームは遊んでみたいが、自分にとっての問題は自分のコンピューターを掌握しようとする人たちだ。その問題を解決するために、あなたに自分のコンピューターを掌握させるつもりはない。
システム要件の話をすると、古いポンコツノートPCでも動くだろうか?
理論上はそこにもチーターはいるだろうが、自分のPS5のゲームではユーザー体験に影響するほど多くはない。
狂ったゲーム計画そのものはすごい。ただ、Twitchストリーマーにマーケティングしてもらうのは難しそうだ。
Steamゲームだけをするために、別のArch Linuxマシンを作った。
そのマシンではメール、銀行などの機密性の高いアカウントには絶対にログインしない。
FrameworkノートPCなので、カメラとマイクを物理的に切り離しておける。実質的に共用端末のように扱っている。
そうなら、PCにインストールするすべてのものが疑いの対象になる。ランダムなSteamゲームより
sshのインストールのほうがずっと怖く感じる。オンラインマルチプレイゲームをまったくしないなら、よく合うかもしれない。
専用GPUを入れられるのか?
タグができるとよさそう。「サードパーティーアカウントが必要」タグもあるので、そういうゲームをフィルタリングして、そもそも表示されないようにできるとよい
そのほかにも便利な機能が多い
[0]: https://github.com/IsThereAnyDeal/AugmentedSteam
ゲームが root 権限を要求するのを見たことがないし、カーネルレベルの何かをインストールするにはそうした権限が必要だと思う
Steam のバイナリの中にも
setuidや capabilities が設定されているものはないroot 権限を要求するゲームを見た人がいるのか気になる
この記事[1]と、Wine 関連パッケージにカーネルモジュールがなく、そのパッケージの実行ファイルにも
setuidや capabilities がないという事実を見ると、これは Linux の問題ではなく Windows の問題に見える[1] https://www.reddit.com/r/linux_gaming/comments/gjzkzk/will_w...
Linux ゲーミングと関係がある理由は、Wine/Proton がユーザー空間部分をうまく実行できても、そうしたゲームは Linux では動作しないから
通常ユーザー権限で実行される軽量版を動かし、ゲームファイルの検証や明らかにおかしな要素の検出程度で、最低限の保護を提供しようとするもの
当然、システム上で実行中のすべてを見る権限や、カーネルモジュールをインストールする権限はない
そのためチーターが Linux ではより簡単に回避できる可能性もあり、EAC のようなアンチチートは Linux 対応を選択式のトグルにしていて、一部の開発者はそれを有効にしていない
Valve はカーネルレベルのアンチチートは不要だとずっと言ってきたし、自社ゲームにも入れていないことを考えると理解できる
ただ正直、CS では相手が今日調子がいいだけなのか、ハックしているのか疑いたくなる場面が多く、Valorant ではそうならないのには理由がある
開発者たちがサーバー側をきちんとやるべきだと早く気づくほどよい
マクロ、エイムボット、クールダウン追跡、自動 hex などがそれに当たる
すべてをサーバー側で防ぐことはできない