Valveの人気タイトル『CS:GO』『Team Fortress 2』のソースコードが流出。一体何があったのか?


圧倒的なプレイヤーベースを誇り、同時接続数においても常に上位に位置するValve謹製タイトル『Counter-Strike: Global Offensive』(以下、CS:GO)ならびに『Team Fortress 2』(以下、TF2)。昨日4月22日、上記2作品におけるソースコードの流出が判明した。現在も『CS:GO』『TF2』ともにプレイ可能なものの、コミュニティや海外メディアを中心にソースコード流出によるセキュリティ上の危険性を警戒・不安視する動きが相次いでいる。

今回のソースコードの流出については、Steam Database(以下、Steam DB)公式Twitterによる報告を皮切りに多くのプレイヤーに知れ渡ることとなった。Steam DB運営元は日本時間の昨晩、『CS:GO』および『TF2』のソースコードの流出が判明したと報告。くわえて『CS:GO』を構成するディレクトリ内と思わしき画像も投稿されている。Steam DB曰く、流出したコードはValveが手がけるソースエンジンのライセンシー向けに公開されたものであり、その内容は『CS:GO』『TF2』ともに2017/2018年バージョンのものだという。実際に前述した画像においては、ファイルの更新日時がすべて「2018年4月22日」となっていることが確認できる。少なくとも今回流出したソースコードは、最新のものではないということだ。

しかし流出したソースコードが最新か否かにかかわらず、流出したという事実は変わらない。プレイヤーならば、そうした事態を重く受け止めるのは当然のこと。前述したSteam DBの報告は、『CS:GO』および『TF2』のコミュニティを騒然とさせた。両作のredditコミュニティ上においてもコード流出の件は報告されており、その被害を懸念するユーザーからのコメントも多数寄せられている。なかでも特に危険視されているのは、RCEを用いたコード書き換え被害。そして、それによるゲーム内アイテムへの影響である。

RCE(Remote Code Execution)とは、離れた場所からでもコードを自在に操ることが可能なセキュリティ上の脆弱性を指す。これが発生すると、ソースコードが勝手に書き換えられるうえ、対象のPCにマルウェアやウイルスを感染させられる恐れさえある。つまり今回の場合、流出したソースコードを悪用する何者かがゲーム内のサーバー/クライアントをハッキング。その結果、プレイヤーのPCがサイバー攻撃を受ける可能性も考えられるというわけだ。また『CS:GO』『TF2』ともにルートボックスおよび、課金システムを採用している。自分の入手したアイテムや、ゲーム内の経済システムにも悪影響が及ぼされるのではないかと懸念するユーザーもおり、コミュニティ内は困惑ムードに染まりつつあった。

こうした経緯から一部プレイヤーのあいだでは、今オンラインで『CS:GO』『TF2』をプレイすることは避けるべきとの意見もあがっている。両タイトルのサーバーへのアクセスによるウイルス感染などの被害を防ぐためだ。さらにプレイヤーのなかには、実際にゲーム内に危害を加えられたと報告を寄せるものも出現。またTwitter上では『TF2』のエンジニア使いとして知られるUncle Dane氏をはじめ、『CS:GO』にて独自のチート検出システムを開発した実績を持つ2Eggs氏なども「しばらくはプレイを避けたほうがいい」との警告を発していた。このように各方面で、“万一の事態”を警戒する動きが急速に広まったのだ。

https://twitter.com/2Eggsss/status/1252985447397105664

 

一方で、今回の騒動に異を唱える人物も現れている。エンジニアであり、技術系ブログを運営するSoatok氏は、今回のソースコード流出によって『CS:GO』および『TF2』がハッキング被害に遭う可能性は限りなく低いと主張。同氏曰く、ソースコードの漏えいと多くのプレイヤーが危惧するRCEによる脅威は切り離して考えるべきだという。その具体的な理由として、ソースコードの性質をあげている。

そもそも多くのコンテンツにおいて、ソースコードの閲覧自体は誰でも可能となっている。たとえばSteamタイトルであれば、サムネイル画像のうえで右クリック。プロパティからローカルファイルを参照し、バイナリファイルを選択。最後に特定のソフトウェアを用いてデコンパイル(機械向けプログラム言語を人間が理解しやすい言語に翻訳)することで、誰でもゲーム内のプログラム構造を覗ける。つまりSoatok氏は、ソースコードの流出それ自体には何の危険性もないと主張しているわけだ。付け加えて同氏は、セキュリティの観念上もっとも重要なことはソースコードを隠すことではなく、閲覧されても改ざんできない仕様にすることだと述べている。つまるところ今回のケースの場合は、『CS:GO』および『TF2』を遊ぶにあたって、プレイヤーは何の心配も要らないということなのだろう。

前述したSoatok氏のように、今回のソースコード流出に対して冷静な見解を示す人物はほかにも現れている。Soatok氏と同じくエンジニアであり、『TF2』のマーケットサイト設立者でもあるJoshua Coffey氏もその中のひとりだ。同氏はRCEを発見することの困難さ、またアイテムサーバーの仕様を踏まえた安全性について説いている。まずRCEについては、たとえば『TF2』のような大規模なコードベース上で悪用される可能性は極めて低いという。たとえ悪用が試みられた場合でも長大な時間を要し、一般的にはRCEが実行されることはまずないようだ。

また『TF2』のアイテムサーバーについては、今回流出したソースコードとは無関係だという。具体的には、アイテムサーバーにおけるソースコードはValveのプライベートサーバー上で実行されている。そして今回流出したソースコードは、クライアントサイドのもの。つまりサーバー/クライアントは全く別のプログラムで構成されているため、今回のようにクライアントのコードが流出した場合でも、サーバーサイドで管理されているゲーム内アイテムや課金システムに影響はないということだ。説明の内容こそ少し異なるがSoatok氏と同様、Coffey氏もまたエンジニアの観点から、ソースコードの流出そのものに大きな危険はないとの見解を示している。

https://twitter.com/geel9/status/1253113013407711232

ここまでの一連の流れのなかで、本日4月23日、ついに『CS:GO』『TF2』の開発元であるValveよりソースコードの流出についての公式な声明が両作品のTwitterアカウントを通じて発表された。まず『CS:GO』プレイヤーに向けた報告では、流出した同作のソースコードについては2017年後半にパートナー企業向けに公開されたものであることが明かされた。また該当のコードは、2018年に一度流出した限定的な『CS:GO』エンジンコードデポであるともいい、今回再び公開されただけだと説明。冒頭にも述べたSteam DBによる報告においても過去のソースコードであることが確認できたが、その事実を改めて公式が認めた形と言えるだろう。そしてValveは、現時点でプレイヤーが警戒する必要性は特にないと結論づけている。ただし万一に備えて、セキュリティ性の高い公式サーバーでプレイしてほしいとのことだ。

もう一方の『TF2』プレイヤーに向けた報告では『CS:GO』と同じく、流出したソースコードは2018に一度リークされたものだとValveは説明している。またプレイについては、こちらも『CS:GO』と同様に現時点でプレイヤーにとって危惧すべきことはないようだ(ただしこちらも公式サーバーでのプレイが推奨されている)。最後にValveは、今回の流出の件について今後も調査を続けていくと述べている。くわえて、もし流出に関する何らかの情報を掴んだ際は、Valveのセキュリティページを参照してその内容を報告してほしいとのこと。

ソースコードの流出という決して穏やかでない状況に見舞われた『CS:GO』『TF2』であるが、現在は公式の声明も影響してか、両作のコミュニティは落ち着きを取り戻しつつある。また、なかにはソースコードの流出を絡めたミーム画像を投稿するユーザーが現れたり、騒動真っ只中のなか寄せられた被害報告をデマだとみる動きが出てきたりと、心に余裕のあるユーザーもいるようだ。しかし一連の流れを振り返ると、まだまだ不透明な部分もあるだろう。一体誰が、何のために今回ソースコードを流出させたのか。実は騒動のさなか、その正体を知るという人物も現れていた。

ValveのジャーナリストJaycie λ氏は4月22日、今回の『CS:GO』および『TF2』のソースコード流出について、その裏で起きていた一連の経緯を自身のTwitterにて説明している。同氏によると、コードを流出させた人物の正体は小規模開発チームLever Softworksの元一員であるようだ。同スタジオは、Valveの開発中止プロジェクト「F-Stop」の再現を試みるModコミュニティのひとつ。Jaycie λ氏自身も参加するこのチーム内では、人種差別などの問題行動を起こすメンバーがひとり存在したという。そしてその人物は活動に悪影響を及ぼすと判断されたのか、チームから外されたようだ。

https://twitter.com/JaycieErysdren/status/1253004940001398785

話をソースコード流出の件に戻そう。Jaycie λ氏曰く、前述したチームから外されたという人物がなんと、その報復として今回『CS:GO』および『TF2』のソースコードを流出させたというのだ。くわえて、今回のリークに含まれるソースコードは、過去にチームが関与したCephalonと呼ばれる謎の情報源がValveへ嫌がらせする目的で2018年5月ごろに一度流出させたものであるという。この2018年という日付や“過去に一度流出している”という点において、前述したSteam DBおよびValveによる声明と共通した部分があり、そうした点を踏まえるとJaycie λ氏の発言の信ぴょう性は高いと言えるだろう。

つづけてJaycie λ氏は、Lever Softworksの一員であり、Valve製タイトルのニュースを中心に取り扱うメディアVNN(Valve News Network)を運営するTyler McVicker氏についても触れている。Tyler氏は、コードを流出させた人物と長年の知り合いであったという。そうしたこともあってか、今回の騒動に際してはTyler氏の関与が海外掲示板4chanにて疑われていたようだ。しかしJaycie λ氏は、Tyler氏の関与を否定している。というのもTyler氏、自身のTwitterアカウントにてすでに身の潔白を証明しており、Valveおよびその法務部に無罪の証拠となる書類を提出したことを報告している様子。また付随してTyler氏は、リークされたコードには一切アクセスしたことはないと、今回の流出に関わっていないことを改めて強調している。

以上が今回のソースコード流出に関する、ことの顛末である。Jaycie λ氏の報告をそのまま受け止めるならば、流出させた犯人の正体はすでに判明している。一方Valveは現況を調査中とのことで、今後Jaycie λ氏との協力のもと、犯人が罰せられる可能性は高いだろう。また『CS:GO』および『TF2』のプレイについては、現時点で問題はないとの公式からの声明もあり、騒動は収束の気配をみせている。ただしJaycie λ氏は、今回の件でValveとSource EngineのModコミュニティ、両者の関係に亀裂が入る可能性を憂慮しており、万事解決とは言い難い面もある。また今後、ソースコード流出を取り巻く状況が変わる可能性もあるだろう。『CS:GO』『TF2』のいずれか、もしくは両方をプレイするユーザーは、今後もValveの発信する情報に目を向けておいたほうがいいかもしれない。