1 ポイント 投稿者 GN⁺ 2024-10-31 | 1件のコメント | WhatsAppで共有
  • 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関連変更

1件のコメント

 
GN⁺ 2024-10-31
Hacker News のコメント
  • 先週 GTA V を再インストールしたのですが、起動するにはルートキットを入れなければならないと知ってかなり驚きました。
    10年前に買ったゲームに、しかもシングルプレイだけをするつもりのゲームに、必須のカーネル拡張を追加するなんてありえません。
    いつものように、海賊版のほうが良い体験だったのだと思います。

    • Steam の起動オプションに -nobattleye を入れれば、追加インストールなしで シングルプレイ ができます。
      Rockstar はほかのゲームのように、別の起動オプションとして用意しておくべきでした。
    • Max Payne 3 の Steam ストアページに、Rockstar Club アカウントはマルチプレイでのみ必要と書いてあったのに、実際にはシングルプレイにも強制していた頃から、PC向けの 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 のような既製品もありますし、自作もできます。
      ただ重要なのは、ゲームのチーターの中でハードウェアまで買うほど執拗な割合はごく小さいという点です。実行ファイルをダブルクリックして即座に満足を得るより、ずっと高くつき手間もかかります。
      だから、アカウント停止を避けるにはそこまで手間をかけなければならない状態にするだけでも、実質的には成功と見なされます。
    • こういうものは今でも OpenCV ですぐ可能です。画像検出は昔から非常に高精度で高速な水準です。
      ほとんどのプレイヤーは正直に楽しむために遊んでいるので、あまり気にしていないだけです。
    • 技術ベースの解決策は、人間の問題を解決しようとして、結局どこかで失敗します。問題を作る側も技術を使えるからでしょう。
    • ゲームのステレオサウンドで足音のような音の方向を知らせる外部「レーダー」チートがすでにあるということは、自分のヘッドホンもチートデバイスということなのか、と思ってしまいます。
      真面目な話、そうしたデバイスがすでにあるとは聞いています。
    • 映像・音声入力とマウス・キーボード出力だけを使う人工知能ボット大会の分野にしたら、かなり面白そうです。
  • 最初の段階の次には、カーネルレベルのアンチチートが入ったゲームを禁止すべき
    Linuxでは受け入れられないし、Appleも今後そうしたものをこれ以上許可しないだろう。ただしAppleはMantleとMプロセッサ以降、ゲームにおける影響力を失っており、どちらも互換性の問題を大きくした
    Microsoftもこれに関するあらゆる選択を後悔しているところだ
    https://www.theverge.com/2024/9/12/24242947/microsoft-window...
    いつものことだが、Microsoftが悪い判断をすると全員が苦しむ。Linuxでさえそうだ。非公開ソースのカーネルモジュールがLinuxをtainted状態としてマークするのには理由があり、そのシステムは信頼できない
    ゲームを安全にするのはゲーム開発者の責任であって、ユーザーのデバイスを操作することではない。安全な方法で目的を達成できないからといって、愚かで危険なことを強制する理由にはならない

    • それはあまりにナイーブな見方だ。カーネルレベルのアンチチートは企業にとっても実際のリスクだ。問題が起きればゲームプロセスだけが落ちるのではなく、プレイヤーのPC全体をクラッシュさせる可能性があり、大規模に発生すれば広報上の悪夢になる
      そもそもカーネルコンポーネントを作れるエンジニアを雇うコストも大きい。狭い専門領域で、安く手に入るものではない
      ゲーム会社が怠けているからカーネルレベルのアンチチートを使っているのではなく、特にFPSのように純粋なサーバー側の方式だけでは完全には防げないゲームでは、絶対的な必要性があるから使っている
      機械学習も試されたが、誤検知が多く、プレイヤー体験を損なう微妙なチートを多く見逃す。以前のアンチチートはユーザーモードにしかなかったが、するとチートがカーネルへ移り、検出もブロックも難しくなった
      効果を維持するには、アンチチートも追随せざるを得なかった。代替案は、その領域をチーターに明け渡し、莫大なリソースで開発・運営したゲームが、普通のプレイヤーが離れていくチート地獄になるのを見ることだけだ
    • パブリッシャーがそんな理念を気にすると思っているのが笑える
      こうしたものがなければ全員にとってより良い、という点には同意するが、私企業が個人の望みどおりに運営されるべきで、開発者には望む方式でしか作らない「義務」があると信じる権利意識には驚く
    • ゲーム会社がカーネルレベルのアンチチートを選ぶ理由は、愚かでサーバー側のネットワークプロトコルをきちんと保護できないからではない
      人間に大量の判定要員を任せ、「あの人はチートかどうか」を不安定に決めさせたくないからだ
      カーネルレベルのアンチチートには根本的な欠陥がある。その結果、DMAチートやコンピュータービジョンベースのチートがさらに増えており、チーターに依然として大きく、より検出しにくい優位を与えている
      それでも、露骨なチートや大半の微妙なチートを防ぐには効果がある
      サーバーが入力を受け取ったあとでチートを検出するのは、安定して行うのが非常に難しい。初心者は遅く遅延した入力をし、上級者は反応が一桁倍以上速く、筋肉記憶のため思ったより速く反応することもある
      検出不可能なチートを作るには、コードに人間レベルの反応時間制限を入れ、すべての入力が現実的に見えるようにすればよい
      結局、サーバーの統計的手法では実際には検出されない一方で、大きな優位を与えるチートを作れてしまう
      ここで人工知能を使いたくなるだろうが、間違いなく人間の監督が必要で、そうでなければ誤検知が起きる
      極端には、サーバー側レンダリングとサーバー側入力処理を中心にゲームを設計し、プレイヤーが実質的にリモートデスクトップ接続でプレイするようにしても、レイテンシの問題をひとまず無視すれば、頭部への自動スナップ、反動補正、自動発射のようなチートは依然としてゲームに大きな影響を与える
      さらに、人間が敵の位置を把握できるほど正確である必要がある音を使って、原始的なウォールハックを実装することさえできる
      FPSゲームの本質がこうであるため、企業はこうしたゲームにカーネルレベルのアンチチートを入れることになる。チートが不可能なFPSを作るには、形式上チートがより難しい、あるいは不可能な別のゲームを作る必要がある
      チーターのいないFPSを望むなら、直接のマッチメイキング、直接のサーバーホスティング、直接の管理を再び奨励するべきだ。しかし「スケールしない」という問題が生じる。人間のレビューも、サーバー側レンダリングもスケールしない
      ゲーム会社がカーネルレベルのアンチチートを行う核心的な理由は、プレイヤーがそれ入りのゲームには金を払うが、ないゲームには金を払わないからだ
      Microsoftは最悪の企業の一つだと思っているが、この場合、Microsoftやカーネルレベルのアンチチート開発者を責めるのは難しいと思う。開発者はプレイヤーが望んだことをしており、Microsoftはエンドユーザーが許可したいものを許可しているだけだ
      Microsoftがカーネルレベルのアンチチートをなくすなら、侵入型アンチチートという概念を葬るのではなく、ハードウェア証明をサポートするユーザー空間コードに置き換える可能性が高い。Microsoftは自分の責任を避けるためにツールを再設計しているだけだ
      根本的に、カーネルレベルのアンチチートはチートをDMAとコンピュータービジョンの領域へ押しやった。したがって、カーネルレベルのアンチチートでも検出されない、より露骨で腹立たしいチートが近いうちにさらに一般的になるかもしれない
      次の選択肢は、公認ハードウェアとハードウェア証明を備えたコンソール専用ゲームだけになるかもしれない。それにさえ欠陥はある
      結局、公開サーバーでチートなしにゲームをすることが不可能になるかもしれない。これが人々をこの種のゲームから遠ざけるのか、非公開ロビーへ追いやるのかは分からない
    • 無料プレイのマルチプレイヤーゲームの平均的なインストール1件と、そのPCで行うすべてにアクセスできる権限のどちらに価値があるのか気になる
      こう考えたのは私だけではないはずだ
  • ゲームに、許可なく好き放題できるレベルのカーネルアクセス権を与えるのはまったく好きではない。
    ただ、オンラインで良いゲーム体験を維持するうえでチートは実存的な脅威であり、ほかに良い解決策はよく分からない。
    ここ数年で特に苛立たしかったのは、一部のゲーム開発者が、ゲームをしていないときでもアンチチートを実行中のまま、あるいはアイドル状態で残しておく悪い習慣のせいで、自分が遊んでいるゲームとはまったく関係のない別のゲームに問題が起きたことだ。
    対戦ゲームを多く遊ぶ立場として、妥協案としてゲーム専用ノートPCを別に用意し、その中ではメールアカウントへのログインすらしない。Steam、ゲーム、必要な動画ソフトウェアくらいしか入れていない。
    あまり良いとは言えないが、少なくとも開示はすべきだと思う。これがすでに標準ではなかったというのが不思議だ。ただ、開示しすぎるとチーターに悪用される可能性もあるので難しくはある。

    • チートは、匿名のグローバルな「コミュニティ」における信頼の問題から派生している。
      アンチチートは軍拡競争にすぎず、別のアプローチもある。たとえばランクモードで電話番号を要求する、弱いKYCのような方式だ。
      Deadlockは招待制の早期アクセスシステムで興味深いことをしているように見える。実質的にプレイヤーのソーシャルグラフを作っており、それを使って「チート組織」や乗っ取られたアカウントを特定したり、コミュニティ内で社会的評価システムを作ったりできる。
    • サーバー側で動く行動ベースのAIアンチチートが解決策になり得る。
    • オンラインでのチートが良いゲーム体験に対する実存的脅威だという話が、あまりよく理解できない。
      別のスレッドでも言ったが、自分がもう年を取ったからなのか、他のプレイヤーがチートを使っているかどうかを気にしたことがまったくない。
      昔はエイムボットやウォールハックのようなものを使う人に出会うのはかなり普通だった。
      本当に楽しさを損なうなら、サーバーを変えるか別のロビーに入ればよかった。
  • カーネルレベルのアンチチートだけでは不十分だ。
    クライアント入力は信頼しなければならないのに出所証明がなく、カーネルは入力を見ることができない。
    今、100人のマッチメイキングゲームをリリース中だ。クライアントは360Hz、サーバーは120Hzでティックを回す。ping 60まで公平で、大陸全体をカバーする。
    サーバーは仮想マシンではなく物理サーバーで、EPYC 4244Pに2Gbpsの送出、15分のゲームごとにサーバー1台だ。すべてのクライアントとサーバーで mitigations=offnosmt を使う。
    Steamは好きだが、このゲームはそこには出さない。
    プレイするには再起動が必要だ。USBドライブからゲームへ直接起動する、改造されたArch Linux ISOだ。
    カーネルだけでなく、OSと実行中のすべてのプログラムを管理する。CortanaもDiscordもSpotifyもなく、ゲームだけがある。プレイ中、PCはアーケード筐体になる。
    それでも不十分だ。
    ランクをやるには、左肩越しに手元カメラを設置しなければならない。頭の向き、両手、マウスパッド全体、画面が見える必要がある。固定のマウス速度、マウスパッドのサイズ、モニターサイズも使わなければならない。
    全員が同じ設定と構成でプレイするので、どのプレイヤーの入力を検証しても見慣れたものに見えるはずだ。
    カーネルアンチチートでは足りず、実行プログラムとネットワーク接続まで含めた再現可能なOS環境全体が必要だ。
    それでも足りない。ユーザー入力の出所証明をゲームのリプレイシステムに直接結び付け、自分でも誰でも、交戦状況をすべての当事者の視点から検証できる必要がある。
    当然、すべて任意であるべきだ。誰もがランクをやりたいわけではないし、OS全体のアンチチートだけでも、入力の出所証明なしにある程度は役に立つだろう。
    自分がチーターに殺されたのか、神のようなプレイヤーに殺されたのか、気になったことはあるか。二度とそんな疑問を持ちたくないとは思わないか。私はそう思うし、まもなくそうなる。

    • Valveは今、デモを分析する機械学習でチーターを捕まえている。かなり多く捕まえていて、プレイヤーの通報より信頼できるという。
      だが正直、チーターを防ぐのは不可能だ。方法は友人たちと遊ぶか、ゲームの報酬を変えてチートの魅力を下げることだけだ。
      たとえばCounter-Strikeはスキンを稼いで売れるので、チーターが多くならざるを得ない。ゲームが非常に人気なので、チートを買うプレイヤーも多い。
      ゲーム設計とエンジン設計もチート防止に役立ち得る。
      腐敗を解決することはできず、ゲームかプレイヤーを変えなければならない。
      Counter-Strikeコミュニティはかなり有害だが、Valveにとっては非常に収益性が高いので、プレイヤーが悪く振る舞ってもValveは気にしていないと思う。
      CSは良いゲームだが、人間の本性がそうなのだ。CSをやっている人の中で推薦できるような人を見つけるのは難しく、ほとんどのゲーマーはそのコミュニティと関わるのがあまりにもひどいので別のものをやる。
    • 怨念が人をどこまで突き動かせるのかを示す、ものすごい証拠だ。
      ゲームは遊んでみたいが、自分にとっての問題は自分のコンピューターを掌握しようとする人たちだ。その問題を解決するために、あなたに自分のコンピューターを掌握させるつもりはない。
      システム要件の話をすると、古いポンコツノートPCでも動くだろうか?
    • 風刺だと思う。そんな要件のゲームを実際に遊ぶ人はいない気がする。
    • これを全部やるくらいなら、単にコンソールで遊べばいい。
      理論上はそこにもチーターはいるだろうが、自分のPS5のゲームではユーザー体験に影響するほど多くはない。
      狂ったゲーム計画そのものはすごい。ただ、Twitchストリーマーにマーケティングしてもらうのは難しそうだ。
    • DOS時代の「ゲームディスク1を入れて再起動してプレイしてください」という感じだ。
  • Steamゲームだけをするために、別のArch Linuxマシンを作った。
    そのマシンではメール、銀行などの機密性の高いアカウントには絶対にログインしない。
    FrameworkノートPCなので、カメラとマイクを物理的に切り離しておける。実質的に共用端末のように扱っている。

    • Steamゲームが認証情報を抜き取るルートキットのようなものを持っていると本当に予想しているのか気になる。
      そうなら、PCにインストールするすべてのものが疑いの対象になる。ランダムなSteamゲームより ssh のインストールのほうがずっと怖く感じる。
    • 専用ハードウェアは良い考えだが、多くの人には高すぎる。専用OSが良い第一歩だ。
    • そこまでやるなら、わざわざそのマシンでArchを使う理由があるのか分からない。
      オンラインマルチプレイゲームをまったくしないなら、よく合うかもしれない。
    • 自分も同じだ。銀行情報をさらしたくないので、専用ゲームマシンを別に置いている。
    • FrameworkノートPCはモジュール性の面で良いとは聞いたが、発熱はどうなのか気になる。
      専用GPUを入れられるのか?
  • タグができるとよさそう。「サードパーティーアカウントが必要」タグもあるので、そういうゲームをフィルタリングして、そもそも表示されないようにできるとよい

    • Augmented Steam 拡張機能[0]を使っているが、ゲームに DRM、アンチチート、サードパーティーアカウント要件のような落とし穴があると、より目立つバナーを表示してくれる
      そのほかにも便利な機能が多い
      [0]: https://github.com/IsThereAnyDeal/AugmentedSteam
    • タグはクラウドソーシングによるもの。ストアページに表示される前から「常時オンライン DRM」タグを付けていたが、上位数個のタグしか表示されないので、あまり意味がない
  • ゲームが root 権限を要求するのを見たことがないし、カーネルレベルの何かをインストールするにはそうした権限が必要だと思う
    Steam のバイナリの中にも setuid や capabilities が設定されているものはない
    root 権限を要求するゲームを見た人がいるのか気になる
    この記事[1]と、Wine 関連パッケージにカーネルモジュールがなく、そのパッケージの実行ファイルにも setuid や capabilities がないという事実を見ると、これは Linux の問題ではなく Windows の問題に見える
    [1] https://www.reddit.com/r/linux_gaming/comments/gjzkzk/will_w...

    • カーネルレベルのアンチチートは、ほぼ常に Windows向けに書かれている
      Linux ゲーミングと関係がある理由は、Wine/Proton がユーザー空間部分をうまく実行できても、そうしたゲームは Linux では動作しないから
    • Proton で Linux 上で EAC のゲームを遊ぶ場合、Windows プレイヤーと同じ EAC を動かしているわけではないと理解している
      通常ユーザー権限で実行される軽量版を動かし、ゲームファイルの検証や明らかにおかしな要素の検出程度で、最低限の保護を提供しようとするもの
      当然、システム上で実行中のすべてを見る権限や、カーネルモジュールをインストールする権限はない
      そのためチーターが Linux ではより簡単に回避できる可能性もあり、EAC のようなアンチチートは Linux 対応を選択式のトグルにしていて、一部の開発者はそれを有効にしていない
    • 何でも「デバイスに変更を加えようとしています」と表示される。自分もそれで誤って EAC をインストールしてしまった
    • Linux ではそうではない。Windows では違うし、特に競技系ゲームをするならそうだと聞いた
  • Valve はカーネルレベルのアンチチートは不要だとずっと言ってきたし、自社ゲームにも入れていないことを考えると理解できる
    ただ正直、CS では相手が今日調子がいいだけなのか、ハックしているのか疑いたくなる場面が多く、Valorant ではそうならないのには理由がある

    • Valve が非カーネルレベルのアンチチートを開発中だという不満や憶測もかなり聞く
  • 開発者たちがサーバー側をきちんとやるべきだと早く気づくほどよい

    • サーバー側だけでチートを防ぐのは不可能。エイムボットのようなものは、クライアントが画面に他のプレイヤーをレンダリングするために必ず持っていなければならない情報だけでも動作でき、人間より速く反応するので大きな利点になる
    • ほとんどの会社はサーバー側をきちんとやっていると思う。問題は、クライアントにあり得ないほど上手くプレイさせるハックが多いこと
      マクロ、エイムボット、クールダウン追跡、自動 hex などがそれに当たる
    • ユーザーの管理下にあるマシンでコードが実行されるという現在の PC ゲーミングのモデルは、チート問題の解決と根本的に衝突している
      すべてをサーバー側で防ぐことはできない