PCゲームにおけるチート・海賊版対策 内製化のススメ

8.5K Views

November 27, 23

スライド概要

■概要
PCゲームは常にチートや海賊版の対象になっています。悪質なチートや海賊版は製品の価値さげ、損益に繋がります。
そんなチートや海賊版に対抗するための過去の背景から現在までの取り組みについて解説いたします。
これはRE ENGINEに搭載されているセキュリティーモジュールが出来上がるまでの歴史です。

※CAPCOM Open Conference Professional RE:2023 で公開された動画を一部改変してスライド化しております。

■想定スキル
特になし

詳細は下記公式サイトをご確認ください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CAPCOM Open Conference Professional RE:2023
https://www.capcom-games.com/coc/2023/

カプコンR&Dの最新情報は公式Twitterをチェック!
https://twitter.com/capcom_randd
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

profile-image

株式会社カプコンが誇るゲームエンジン「RE ENGINE」を開発している技術研究統括によるカプコン公式アカウントです。 これまでの技術カンファレンスなどで行った講演資料を公開しています。 【CAPCOM オープンカンファレンス プロフェッショナル RE:2023】  https://www.capcom-games.com/coc/2023/ 【CAPCOM オープンカンファレンス RE:2022】  https://www.capcom.co.jp/RE2022/ 【CAPCOM オープンカンファレンス RE:2019】  http://www.capcom.co.jp/RE2019/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

PCゲームにおけるチート・海賊版対策 内製化のススメ それでは、PCゲームにおけるチート・海賊版対策、内製化のススメを始めさせていただきます。 ©CAPCOM 1

2.

はじめに ここで扱っているセキュリティ的な内容について • PCゲーム・DLCなどのコンテンツのチートや海賊版等に特化したものです • ランサム等のマルウェア的な話はございません セキュリティという題材の性質上、明言できない点がいくつかあります 具体的な製品名・ツール名についての言及はご容赦ください はじめに、ここで扱っているセキュリティという単語につきましては、PCゲーム・DLCなどのコンテンツのチート及び海賊版に 特化した内容となっています。ランサムウェア等に代表されるマルウェア対策とは別の話になりますのでご承知おきください。 2 セキュリティという題材の性質上、明言できない点がいくつかあります。具体的な製品名・ツール名についての言及は ご容赦ください。 ©CAPCOM 2

3.

アジェンダ 組織的な背景 PCゲームの改ざん耐性 PCゲームのチート・海賊版事情 実際のチート・海賊版対策について チート・海賊版対策の内製化 RE ENGINEの「セキュリティモジュール」 それでは、本日のアジェンダになります 最初に組織的な背景についてと、PCゲームにおける改ざん耐性についてお話します。 3 続いて、PCゲームのチートや海賊版事情についてお話致します。 そこから実際のチート・海賊版対策についてご説明させていただきます。 そして今回の趣旨である「チート・海賊版対策」の内製化について、最後に弊社の内製エンジン「RE ENGINE」に搭載された、 セキュリティモジュールについてお話させていただきます。 ©CAPCOM 3

4.

3年前からの取り組みの話になります • それまでシステムプログラマでした • 3年前から現在のセキュリティエンジニアに切り替えました チート・海賊版対策が脆弱だった事に気づく • 組織的にも問題があった 今回の話は3年前から開始した取り組みの話になります。 元々、自分はシステムプログラマをしており、CPUやメモリ、IOなどのシステム的な仕事をメインにやっていました。 4 この時、チート・海賊版対策等のいわゆる、セキュリティ的なことは何も知りませんでした。 とあるキッカケでシステム系の仕事と兼業して、チート・海賊版対策を行うようになりました。 この時のチート・海賊版対策の経験を活かし、主な職種をセキュリティエンジニアに切り替えました。 切り替えた理由は弊社がそれまでチート・海賊版対策に脆弱だったこと、そして組織的な問題点が見えた事から始まります。 ©CAPCOM 4

5.

組織的な背景 では、組織的な背景についてご説明します 5 ©CAPCOM 5

6.

組織的な背景 取り組む前はチート・海賊版対策はタイトル毎で行っていた • ノウハウが共有されず、知る人ぞ知る状態(属人化) • 右往左往する • 部署が別れており、部署間の情報共有も困難 当時始めてチート・海賊版対策を行った時に気づいたことは、各タイトル毎にチート・海賊版対策が実装されていたことです。 これにより当たり前ですが、ノウハウが共有されておらず、担当したことがある人だけが知っている、いわゆる知る人ぞ知る 6 状態となり、属人化していました。 何も知らなかった自分は、様々なタイトルに実装を聞く為、右往左往しました。更にはタイトル間での情報も、それぞれ違ったり していました。また基本的にタイトルの人員は同部署所属なので、別部署のタイトルに移動することはめったにありません。 コレにより部署間の共有は一層困難な状況になっていました。 ©CAPCOM 6

7.

組織的な背景 さらに徐々に見えるチート・海賊版対策の問題点 • チート・改ざんについての知識がない • 外部プロテクトウェアで全部守れるという幻想 そして、チート・海賊版対策を行っていくうちに属人問題や、部署間問題以外にも、他の問題が浮き彫りになってきました。 そもそもの話、タイトルを含め社内大多数の人がチートとはなんぞや?海賊版とは何ぞや?という状態でした。 7 これはチートや海賊版の名前や意味は知っていますが、では何がどう行われているかについてはほぼほぼ無知の状態でした。 この無知の状態が、とある幻想を抱いてしまっていました。 どのタイトルも外部プロテクトソフトウェアを使用して製品をガードしていましたが、この外部プロテクトソフトウェアで 全部守れているという幻想を抱いていました。 ©CAPCOM 7

8.

組織的な背景 製品発売後に即チートされてしまう • 外部プロテクトソフトウェアで守っていたのに!? その幻想のまま発売を迎えると、即日チートされるという現実が待っています。 外部プロテクトソフトウェアで守っていたにも関わらずです。 8 ©CAPCOM 8

9.

組織的な背景 自分も幻想を抱いて、叩きのめされた やられたことによって見えてきた問題点 • タイトル横断的な対策が出来ず、情報の共有化や蓄積が無い • 不正ツールは日進月歩で開発される このままでは完敗 • 対策しなければ! かくいう自分もそのような幻想をいだき、現実に叩きのめされました。そしてその現実から、何が問題だったかを考えました。 チート・海賊版対策については、タイトル間の横断的な対策が出来ていません。そもそもタイトル間で聞くことも教えることも 9 ないので、タイトルで得られた知識や、得た情報の共有化や蓄積も無いことが明らかになりました。 また不正ツールなどは日進月歩で新しいものが出て来ます。 何も情報が共有・蓄積されていない状況では、根本的に戦いの場に上がることすら難しいことがわかりました。 このままではいつか完敗してしまうのではないかという危惧も生まれました。これは何か対策を打たなければいけません。 ©CAPCOM 9

10.

組織的な背景 カプコン カスタマーサポートT タイトルC タイトルB 中立的な立場を利用した カスタマーサポートTとの連携 タイトルに属人化しない事で タイトルを横断して 海賊版・チート対策を実施 RE ENGINE開発 今のポジション セキュリティT そこでまず、属人化問題を解決するために、自分の立ち位置の変更を行いました。 すべてのタイトルでチート・海賊版対策の情報の共有化・蓄積を行うべく、RE ENGINE開発部署に身を置きました。 10 そして、そこにセキュリティ専門としてセキュリティチームを設立しました。コレにより、チート・海賊版対策がタイトル毎に 閉鎖的に行われて、タイトルの対策が全く見えないという問題に対して、自分が情報のハブとなることで共有化・蓄積を 行うようにしました。そうすることで今まで見えなかった各タイトルの対策や状況が見えるようになり、新たな対策を行う事も できるようになりました。 また中立的な部署に属することで、カスタマーサポートチームと複数のタイトルの情報のやり取りが可能になりました。 カスタマーサポートチームから幅広い情報を集約し、チート・海賊版対策に役立てることが出来るようになりました。 そして、RE ENGINE開発部署に所属したもう1つの理由である、「内部プロテクトソフトウェア」の作成を開始しました。 以上が組織的な背景となります。 ©CAPCOM 10

11.

組織的な背景 タイトルでチート・海賊版を担当したことをキッカケに 「チート・海賊版対策の内製化」及び 「部署を超えた情報共有化」で これらの問題に向き合った取り組みについてお話いたします ではこれから、タイトルでチート・海賊版対策を担当したことをキッカケに、「チート・海賊版対策の内製化」 及び「部署を超えた情報共有化」で、チート・海賊版対策の意識改革に取り組んだ内容について、お話いたします。 11 ©CAPCOM 11

12.

その前に PCゲームの改ざん耐性について その前に、前提情報としてPCゲームにおける改ざん耐性についてお話します 12 ©CAPCOM 12

13.

PCゲームの改ざん耐性について ここでは、PCゲーム=Steam版と定義します PCゲームはコンシューマプラットフォームと比較して何でも出来てしまう Steam(PC) コンシューマ機 実行ファイル アクセス可・改ざん可 アクセス出来ない メモリ 自由に読み書き可 アクセス出来ない セーブデータ ただのファイル・読み書き可 HWで暗号化してくれる ファイル ただのファイル・読み書き可 HWで暗号化してくれる OSの保証 改ざんされる ファームウェアの書き換え不可 作成基準 ほぼなし メーカーで定義される PCゲーム制作ではこれらを認識しておく必要がある ここではPCゲームはSteamプラットフォームにおけるゲームアプリケーションと定義させていただきます。 PCゲームというのはコンシューマプラットフォームと比較すると自由に何でも出来てしまうプラットフォームです。 13 ざっと挙げると実行ファイルのアクセス及び改ざんが容易に可能な点、実行メモリの自由な読み書きの可能な点が大きく違います。 また、セーブデータがただのファイルであることが挙げられます。対してコンシューマプラットフォームはHWで暗号化を サポートしてくれます。ゲームデータファイルについても、セーブデータと同じことが言えます。またOS自体もドライバ等を つかって侵入、改ざんされる事が考えられます。コンシューマ機はファームウェアの侵入が不可能です。 ちょっと毛色が違いますが、作成基準が厳密かどうかの違いがあります。コンシューマプラットフォームはHWが守ってくれる分、 ゲームの作り方にルールがあります。 PCゲーム開発に置いては、これらの違いをまず正確に認識しておく必要があります。 ©CAPCOM 13

14.

PCゲームは自由だが、 改ざんも自由! ざっくりいうと、PCゲームというのは「自由に作れるけど、改ざんも自由だよ!」というプラットフォームになります。 14 ©CAPCOM 14

15.

PCゲームのチート・海賊版事情 では、続いてそんなPCゲームのチート・海賊版の事情をお話します。 15 ©CAPCOM 15

16.

PCゲームのチート・海賊版事情 そもそも PCゲームでチート・海賊版対策を行わないと? どうなるの? そもそもの話、PCゲームでチート・海賊版対策を行わないとどうなるのでしょうか? 16 ©CAPCOM 16

17.

PCゲームのチート・海賊版事情 1日足らずの海賊版出現! DLC等の有料コンテンツの無料化! 売上被害となり実益損害に繋がる! 1日かからずに海賊版が出現し、DLC等の有料コンテンツは無料化して使われてしまいます。 これが初日に起こるので売上に影響がでて、即、実益損害に繋がります。 17 ©CAPCOM 17

18.

PCゲームのチート・海賊版事情 しかし、実際の損害額は観測出来ない • • • • 損害がでた場合と出てない場合を比較できない これは一般的なセキュリティ界隈でも同じ話 推測でしかチート・海賊版対策のコストを出せない しかしやらなければさらなる被害は確実に発生する 効率的なチート・海賊版対策が求められる! しかしながら、いくら実益損害が出たのかを正確に図る手段はありません。 これは損害が出た場合と、出てない場合を比較することが出来ない為、あくまでも損害が出た、「だろう」という話になります。 18 これはこの話に限らず、いわゆる一般的なセキュリティ界隈でも同じような話があります。 そして実際の損害額が出せないため、チート・海賊版対策をするための、対策コストをどれだけ出すことが適切なのか、 図ることが出来ません。しかしやらなければさらなる被害が確実に発生するのは明らかでもあります。 難しい問題ですが、1つ言えることは正確な対策コストが出せない以上は、できる限り効率的な対策を実施していく必要があります。 ©CAPCOM 18

19.

PCゲームのチート・海賊版事情 もう1つの問題点 MOD問題 もう1つ、PCゲームといえば、切っても切り離せない関係にあるのがMODです。 19 ©CAPCOM 19

20.

PCゲームのチート・海賊版事情 チート・海賊版対策にMODは入るのか? • MODは公式に対応している場合を省き、すべてチートと定義 • 内部でやっていることはチートと全く変わらない チートと変わらないMODは製品に影響を与える MODは既存のゲームに対して様々な機能追加や変更を行うことが出来、ユーザーに人気です。 しかし、チート・海賊版対策においてはMODはすべてチートと定義します。 これは公式にゲームがMOD対応していないMODは、内部的にはチートと変わらない挙動で実装されています 20 これらのチートと変わらないMODについての影響についてお話致します。 ©CAPCOM 20

21.

PCゲームのチート・海賊版事情 悪質なMODによる風評被害 • 勝手に公序良俗違反なMODが出ると製品のイメージが損なわれる • MODが正規の実装と勘違され、悪い風評被害を受ける事も 悪質なMODによる業務負荷 • 不具合が発生する事でカスタマーに対して業務負荷が発生する • 最悪な場合、フリーズやセーブデータ破損 • 調査に時間がかかる+判明しても徒労に終わってしまう • 調査に時間がかかるため、本来のゲーム制作が遅れる • 本来のユーザーのサポートが遅れる 大多数のMODというのはゲームに良い影響も与えることがありますが、一部の悪質なMODに関しては会社に損害を与えます。 それは風評被害と業務負荷における損害です。 21 一部の悪質なMODの中には公序良俗違反なMODも多数あります。これらが流布されると、製品のイメージが損なわれることで、 ブランディングに影響が出ます。またそれらの公序良俗違反なMODが正規の実装と勘違いされ、製品に悪いイメージをつけられ、 風評被害を受ける事もあります。また悪質なMODの中にはチートによってゲームを破壊してしまう事があります。最悪なケース としてはフリーズやセーブデータ破損まで引き起こします。 このようなデータを破壊するMODを導入され、カスタマーサポートに問い合わせが行われると、調査が難航し多くの作業時間が 取られてしまいます。また原因が判明したとして、どうしようも出来ないので徒労に終わってしまいます。このような状況が 発生すると、本来のゲーム制作に遅れを発生させる原因ともなり、更にはMODを使ってないユーザーのサポートの遅れが発生します。 ©CAPCOM 21

22.

PCゲームのチート・海賊版事情 カスタマー負荷が上がると巡り巡って開発費に影響する • 高いクオリティーのゲームを作るには開発費が必要 • このような状況は誰も望まないはず・・・・ そしてカスタマーサポートの負荷が上がると最終的に巡り巡って開発費に影響を与えます。 高い品質のゲームを作るには、どうしても開発費が必要です。その開発費に影響が出てしまうと、ゲームの品質が下がることになり、 22 ユーザーへの期待外れと共に、売上が落ち、損害に繋がってしまいます。 このような状況は決して、誰も望んでいないはずです。 ©CAPCOM 22

23.

PCゲームのチート・海賊版事情 将来的な利益を創出するのがチート・海賊版対策 更に会社の評価を守ることにもつながる! つまり、チート・海賊版対策は会社の将来的な利益、及び評価を守ることにも繋がり、非常に重要な内容になります。 23 ©CAPCOM 23

24.

PCゲームのチート・海賊版事情 PCゲームはチート・海賊版対策が不可欠! • 出す以上は必ず対策を! • 何もしないと実益損害、風評、業務負荷が蓄積していく 以上のことから、PCゲームにおけるチート・海賊版対策の必要性をご理解いただけたかと思います。 PCゲームを出す以上は必ず対策を行う必要があります。何もしないと、実益損害、風評被害、業務負荷が蓄積していきます。 24 ©CAPCOM 24

25.

実際のチート・海賊版対策について ではここからは実際のチート・海賊版対策についてお話します。 25 ©CAPCOM 25

26.

実際のセキュリティの確保について 外部プロテクトソフトウェアでチート・海賊版対策 • コンパイル時点で仕込む • 完成したアプリケーションに対して適用する • ハイブリッド 知識がなくてもドキュメントを読めば適応出来る • しかしここに落とし穴がある! チート・海賊版対策用に、プロテクトソフトウェアの存在があります。 コンパイル時点で仕込みを入れるものや、出来上がったアプリケーションに対して適応するもの、もしくはコンパイル時点と、 26 出来上がった物の両方に適応する物等、様々な種類があります。 いずれにしても、チート・海賊版対策の知識がなくても、プロテクトソフトウェアのドキュメントを読めば適応することが出来ます。 しかしながらこれには落とし穴があります。 ©CAPCOM 26

27.

本当に「守りたい物」が守れていますか? それは本当に、守りたい物が守れていますか? 27 ©CAPCOM 27

28.

実際のセキュリティの確保について 本当に「守りたい物」が守れてますか? • プロテクトソフトウェアの多くが特化品 • 「何々」は守れるが、「それ以外」は守れない プロテクトソフトウェアの多くは特化品です。何々は守れるが、それ以外は守れないという物です。 28 ©CAPCOM 28

29.

実際のセキュリティの確保について 例:セーブデータを守りたい Steam(PC) コンシューマ機 実行ファイル アクセス可・改ざん可 アクセス出来ない メモリ 自由に読み書き可 アクセス出来ない セーブデータ ただのファイル・読み書き可 暗号化済み! HWで暗号化してくれる ファイル ただのファイル・読み書き可 HWで暗号化してくれる OSの保証 改ざんされる ファームウェアの書き換え不可 作成基準 ほぼなし メーカーで定義される 暗号化するプロテクトソフトウェアをする • セーブデータの書き換えができなくなる! 例えば、ゲームのセーブデータを守りたいというのを考えてみます。 PCゲームをコンシューマ機を比較してみると、セーブデータの暗号化のある無しがあります。ということは、セーブデータを 29 暗号化するプロテクトソフトウェアを採用することで、セーブデータを守ることが出来そうです。 適用後、確かにセーブデータは暗号化され、書き換えによるチートや改ざんを行うことはできなくなりました。セーブデータを 守るためにコストをかけたので満足しました。めでたしめでたし。 ©CAPCOM 29

30.

実際のセキュリティの確保について 確かにセーブデータ自体の書き換えはできなくなりましたが、 本当にセーブデータを改ざんできなくなったのでしょうか? 確かにセーブデータ自体の書き換えはできなくなりました。が、本当にセーブデータを改ざんできなくなったのでしょうか? 30 ©CAPCOM 30

31.

実際のセキュリティの確保について そんなことはない Steam(PC) コンシューマ機 実行ファイル アクセス可・改ざん可 アクセス出来ない メモリ 自由に読み書き可 アクセス出来ない セーブデータ ただのファイル・読み書き化 暗号化済み! HWで暗号化してくれる ファイル ただのファイル・読み書き化 HWで暗号化してくれる OSの保証 改ざんされる ファームウェアの書き換え不可 作成基準 ほぼなし メーカーで定義される 実行ファイルやメモリの改ざんは出来る! • これらを足がかりにしてセーブデータを改ざん出来る! はい、もちろんそんな事はありません。 コンシューマ機は実行ファイルも実行メモリもアクセスできないので改ざんのしようがありません。 31 ですが、PCゲームに置いては「プログラム自体の改ざん」や「実行メモリの改ざん」もどちらも可能なプラットフォームです。 すなわち、いくらセーブデータを暗号化しようとも、プログラム自体を改ざんしてセーブデータの中身を書き換えたり、 メモリを直接操作してセーブデータの中身を変更することで改ざんすることが可能なのです。 ©CAPCOM 31

32.

実際のセキュリティの確保について この問題はプロテクトソフトウェア自体の評価が出来ない事 • チート・海賊版対策をやる上で最も重要な概念 • どう守っているのか中身から理解する必要がある • 何を守れて何を守れないかを守備範囲を正しく理解する 理解する為にチート・海賊版対策を内製化する この問題は、使用者がプロテクトソフトウェア自体の評価をすることが出来ないことに起因します。 更にこの概念はチート・海賊版対策のみならず、セキュリティをやる上でも最も重要な概念です。 32 プロテクトソフトウェアを採用する人はプロテクトソフトウェアがどう守っているのか中身から理解する必要があります。 その上で何を守れて何を守れないか、その製品の守備範囲を正しく理解する必要があります。 このプロテクトソフトウェアを理解するために、おすすめしたいのがチート・海賊版対策の内製化です。 ©CAPCOM 32

33.

チート・海賊版対策の内製化について では、次にチート・海賊版対策の内製化についてお話します。 33 ©CAPCOM 33

34.

チート・海賊版対策の内製化 プロテクトソフトウェアにはそれぞれ守備範囲がある • 守れるものと守れないものの明確な理解が必要な点 プロテクトソフトウェアの理解について • 素人が一朝一夕で理解出来るものではない。つまり長期戦になる • 長期戦になるということは、会社として専属化する必要がある プロテクトソフトウェアでカバーしてない箇所のカバー • 他のプロテクトソフトウェアを追加で対応は可能 • しかし相性問題で適応出来ないことが多い 内製化するに当たってプロテクトソフトウェアの問題点と、内製化を行っていく上での問題点を整理します。 まず、再度になりますが、プロテクトソフトウェアの問題点は、守れる物と守れないものがある点です。 34 このプロテクトソフトウェアの理解について、これは素人がいきなり一朝一夕で理解できるような物ではありません。 つまり長期戦は必須です。長期戦になるのであれば、会社として専属化していく必要があります。 またプロテクトソフトウェアが守れてない部分をどう守っていくかを合わせて考えていく必要も出てきます。他のプロテクト ソフトウェアを併用することで対応は可能かもしれません。が、残念ながら多くのプロテクトソフトウェアは相性問題で 互いに適応出来ない場合があり、これは抜本的解決には繋がりません。 ©CAPCOM 34

35.

チート・海賊版対策の内製化 これらを引っくるめて解決する方法が 「チート・海賊版対策内製化」です S I L V E R B U L L E T これらを引っくるめて解決する方法として、「チート・海賊版対策内製化」の提案です 35 ©CAPCOM 35

36.

チート・海賊版対策の内製化 内製化の4つのメリット 内製化を行うことで得られるメリットは4つ存在します 36 ©CAPCOM 36

37.

プロテクトソフトウェアの理解度向上 メリット1:理解の劇的向上 • チート・海賊版対策をやる上で最も重要 • コストを払うだけのリターンが存在するかどうかの判断可能 • 本当に必要な機能だけを採用する 内製化のメリットその1は、プロテクトソフトウェアの動作を理解することが出来るようになります。 何をどう守るかを理解するのはチート・海賊版対策をやる上で最も重要です。 37 守りたい物に対して本当にコストを払うだけのリターンが存在するのか判断できるようになり、それらに適した製品を選び抜く 知識と経験・及び運用が可能になります。本当に必要な機能だけを採用するようにすることで、プロテクトソフトウェア自身の コストカットに繋がります。とりあえず守れます、でプロテクトソフトウェアを採用してしまうといらないコストが発生する 場合が出てきます。 ©CAPCOM 37

38.

プロテクトソフトウェアの補完 メリット1:理解の劇的向上 メリット2:守れない部分の理解と補完 • なぜ守れないのかが理解出来るという事は守る方法も理解出来る 内製プロテクトソフトウェアを作成することで補完出来る • プロテクトとは1つの穴があれば終わってしまう • これは世の中の脆弱性の考え方と同じ 内製化のメリットその2は、守れてない部分の理解です。 守れている部分の理解も重要ですが、守れない部分の理解もチート・海賊版対策において重要です。 38 なぜなら「何故守れないのか」が理解出来るということは、逆に「守る方法を理解出来る」ということの証左になります。 守る方法を理解できれば、内製プロテクトソフトウェアでそれらの穴を補完することが出来ます。 セキュリティ界隈ではおなじみですが、セキュリティというのは1つの穴があればそこをつつかれて、破られてしまいます。 これはいわゆる、脆弱性と同じ考え方ですが、チート・海賊版対策も同じ考えが適応されます。 ©CAPCOM 38

39.

疑問 全部内製化した方がいい? 断じて、否! さて、ふと疑問が湧いてきます 外部のプロテクトソフトウェアを全部理解出来るのであれば、完全に内製化にしたほうがいいのではないか?と思われますが 39 それに関しては断じて、否とお答えします。 ©CAPCOM 39

40.

プロテクトソフトウェアの理解度向上 外部プロテクトソフトウェアが非常に強力なのは事実 • 外部プロテクトソフトウェアを破ることは相当な技術力が必要 • 外部プロテクトソフトウェアを非推奨にするわけではない • そもそも、内製プロテクトソフトウェアは数名で作っているので貧弱 外部プロテクトソフトウェアの守れない部分を強調しましたが、守れている部分というのは非常に強力です。これは事実です。 外部プロテクトを破ることは相当な技術力が無いとできません。今回はそれ以外の部分を守るために内製化を勧めているのであって、 40 外部プロテクトソフトウエアの利用を非推奨にするものではありません。そもそも内製プロテクトソフトウェアは数名で 作成しているので、外部のプロテクトソフトウェアには太刀打ち出来ません。 ©CAPCOM 40

41.

考え方を変える 外部と内製の共生 • 1点もののプロテクトは1点が破られると終わる • 多層の対策により破られにくくする ここは考え方を変えて、外部プロテクトソフトウェアと内製プロテクトソフトウェアの共生する方面に話を持っていきます。 プロテクトというのは1点が破られるとすべてが瓦解してしまいます。強力な豪華絢爛な1点物のプロテクトより、薄く広く 41 何十にもかかった対策のほうが破られにくいと判断しています。たとえ内製の弱い対策であっても外部プロテクトソフトウェアと お互いを守り合う事でそれぞれのメリットを共有することが可能となります。 外部プロテクトソフトウェアのみを採用した状態よりもより強力な状況に昇華することが出来ます。 ©CAPCOM 41

42.

多層プロテクト メリット1:理解の劇的向上 メリット2:守れない部分の理解と補完 メリット3:多層プロテクト • • • • 補完することで穴のないプロテクト 1枚の強力なプロテクトよりも複数のプロテクト お互いを守り合う相互プロテクト 外部プロテクトソフトウェアと同じ箇所の重複プロテクト これが内製化のメリットその3、多層プロテクトを挙げさせていただきます 多層プロテクトの定義は 42 補完することで穴のないプロテクト、1枚の強力なプロテクトよりも複数のプロテクト、 さらに、お互いを守り合う相互プロテクト、外部のプロテクトソフトウェアと同じ場所を守る重複プロテクト です。 ©CAPCOM 42

43.

多層プロテクト 内製プロテクトソフトウェアをリリースし、動向を観察した結果 攻撃者は「最も簡単な方法で改ざんしたい」 最も簡単な穴をついてくる • つまりどんな強力なプロテクトでも穴1個あったら終わり 攻撃者は「動けばOK」なので攻撃者完全有利 • となると防御側は相対的に弱いのも確定 以上の考えに至ったのは、実際に内製プロテクトソフトウェアをリリースして、その後の動向を観測したことにより得られた 知見です。 43 基本的に攻撃者は最も簡単な方法で改ざんしたいと考えています。よって、最も簡単な穴を必ずついてきます。逆にどんな強力な プロテクトを実装したとして、穴が1個あったら終わります。また、攻撃者は中身が何であろうと、動けばOKなので、完全に 攻撃者側有利となります。 必然的に動作保証をしないといけない防御側は攻撃側に比べて相対的に弱くなるのも確定しています。 ©CAPCOM 43

44.

多層プロテクト 元も子もないが、「プロテクトは必ず破られる」 • 破られないプロテクト(シルバーバレット)はない! 攻撃者の「めんどくさい」に訴えかける • 相手も人間なので「めんどくさい」事はやらない • 論理的なプロテクトの強度とは別の考え方 完全に元も子もないことを言いますが、どんなプロテクトも必ず破られます。破られないプロテクトは存在しません。 よって、強固なプロテクトより攻撃者の「めんどくさい」に訴えかける方向に切り替えます。攻撃者も人間なので、 この「めんどくさい」事はしたくありません。 44 論理的なプロテクトの強度とは別の考え方ですが、これが多層プロテクトの根本として考えています。 ©CAPCOM 44

45.

多層プロテクト 改ざん者から見る多層プロテクト • 攻撃しようとしている箇所が平文でない • いくつもの別種プロテクトが入っている • 同時にすべてのプロテクトを解除しないと外せない この様に「めんどくさい」に訴えかける! 先程の多層プロテクトを攻撃者側からのぞいてみてみます。 まず攻撃しようとしている箇所が平文になっていません。なおかつ、違う種類のプロテクトが入っています。と同時にすべての 45 プロテクトを解除しないと外せません。 以上の様に改ざん者がめんどくさいと思うような状態にして、感情に訴えかけます。 ©CAPCOM 45

46.

多層プロテクトに向けて 多層プロテクトが有効であると気づけたのは最近 • 外部プロテクトソフトウェア1本では気づかなかった知見 • 内製化あってこその強み • 内製化はパッチ毎等にやり方を変更できる この攻撃者から見ためんどくさいを利用した、多層プロテクトの方法が有効であると気づけたのは最近です。 外部のプロテクトソフトウェア1本では決して気づくことがなかった知見でした。これは内製化あってこその強みだと 46 判断しています。また、内製だとパッチ毎等でやり方を変更することで、更に撹乱することもできます。 ©CAPCOM 46

47.

内製化 メリット1:理解の劇的向上 メリット2:守れない部分の理解と補完 メリット3:多層プロテクト メリット4:新しいキャリアパス • 今までそのような仕事を専門にする人がいなかった • CAPCOMでは自由にやらせてくれる社風 内製化のメリットその4は、ちょっと外れますが、新しいキャリアパスとなったことです。今までタイトルごとに対応していたのを 全社的に対応を広げることで、専門家として存在をアピールすることが出来るようになりました。 47 CAPCOMではやりたいと思った仕事をやらせてくれる社風があります。 ©CAPCOM 47

48.

内製化 内製化はコスト面でもメリットが多い • 外部プロテクトソフトウェアは契約期間でコストがかかる • 契約期間が過ぎてしまうと製品を守れなくなる • しかし内製なら恒久的にサポート出来る さらに内製化には素晴らしいメリットが存在する 以上が内製化の4つのメリットになりますが、内製化はコスト面でもメリットが存在します。 外部プロテクトソフトウェアは契約期間でコストがかかってくる物が大半を占めています。契約期間が過ぎてしまうと、 48 製品を守ることができなくなりますが、内製であれば恒久的に守ることもサポートすることも可能です。 さらに内製化にはもう1つ素晴らしいメリットが存在します。 ©CAPCOM 48

49.

内製化 何と言っても、技術蓄積! それはなんといっても技術蓄積です! 49 ©CAPCOM 49

50.

内製化 技術者やってたら、 こんな楽しい事は他に無いやん! 技術者を名乗っている以上、多量の知識を蓄えることが出来る、こんな楽しい事は他にありません。 50 ©CAPCOM 50

51.

内製化 内製化オススメ • RE ENGINE自体も同じことが言える • 大量のタイトルを作りたければエンジンを内製化する • RE ENGINEの内部の技術は技術蓄積によって支えられる チート・海賊版対策も同じ事 • タイトルの数を考えれば内製化は大いに効果がある! • 内製化するということは運営が必要になる 以上が、内製化を進める理由となります。弊社の共通エンジンであるRE ENGINEが内製で作られているのも同じ理由です。 数あるタイトルを作るのであればエンジンを内製化することでコストカットが望めます。また、RE ENGINEの内部の技術は 51 技術蓄積によって支えられています。チート・海賊版対策も同じことが言え、タイトル数を考えれば、内製化という話は 大いに効果があるものとなります。 しかし、内製化を行うということは同時に運営が必要になることでもあります。 ©CAPCOM 51

52.

RE ENGINE 「セキュリティモジュール」 次に、内製化プロテクトソフトウェアの運営形態である、RE ENGINE「セキュリティモジュール」についてお話致します。 52 ©CAPCOM 52

53.

RE ENGINE「セキュリティモジュール」 内製化の成果がRE ENGINE「セキュリティモジュール」 • • • • • 共通エンジンの強みを生かしたセキュリティモジュール エンジンに組み込まれているのでどのタイトルでも即採用可能 画一的なチート・海賊版対策が望める 問題があった場合、すべてのタイトルに向けて修正が可能 モジュールが破られた場合も次のタイトルでより強化できる 弊社では先のページに出てた通り、RE ENGINEという共通エンジンを運営しております。 内製プロテクトソフトウェアはこのRE ENIGNEの一部として運用しており、「セキュリティモジュール」としてエンジン内部に 53 組み込まれています。これは共通エンジンという強みを生かしたモジュールになっていまして、どのタイトルでも、即採用可能な ものになっています。モジュールですので、いつでも切り離すことも可能です。 セキュリティーモジュールの登場により、すべてのタイトルにおいて、画一的なチート・海賊版対策を行うことが可能になりました。 また問題があればすべてのタイトルから情報を収集し、修正も素早く全タイトルに送ることが可能です。対策が破られた場合、 即次のパッチやタイトルで対応することが可能なります。 ©CAPCOM 53

54.

RE ENGINE「セキュリティモジュール」 セキュリティーモジュールの自己ハック • 自分で作ったものをハック出来るか検証する • 攻撃者の目線を理解する • 実際に穴をいくつか塞いだ • ただデバッグがしにくくなりました・・・ • 強力なモジュールにする また、セキュリティーモジュールはテストプログラム等を用いて、自己ハックを行っています。 これは攻撃者目線から自己モジュールを見ることで、どのように見えていて、穴が有るかどうかを検証しています。54 実際にはいくつかこの自己ハックで穴を塞ぎました。が、デバッグがしにくくなるという問題が発生し、非常に苦労しました。 これによりセキュリティモジュールを強化しています。 ©CAPCOM 54

55.

RE ENGINE「セキュリティモジュール」 セキュリティモジュールを作るために動いたこと • セキュリティ専門としてRE ENGINE開発で配置願いを出す • いきなりセキュリティエンジニアを名乗る • 基礎的なセキュリティ技術を身につける • x86アーキテクチャ・PE、暗号・情報収集等 • 外部プロテクトソフトウェアの詳細な理解 • 対となる解析ツールの自作 上記を2~3年続ける • セキュリティモジュール完成・リリース このセキュリティモジュールを作成するために動いたことをまとめています。 最初にセキュリティ専門としてRE ENGINE開発で配置願いを出し、これを受理していただきました。この時点で「セキュリティ 55 エンジニア」を名乗るようにしましたが、社内でそのようなエンジニアがいたことはなかったので、「で?何するの?」ぐらいの 反応でした。 ここからプロテクトソフトウェアを理解するために基礎的なセキュリティ技術を身につける為、1年間ほど調査に時間をさきました。 やったこととしては、X86-64アーキテクチャの理解や、PEフォーマットの解析、暗号として共通鍵暗号、公開鍵暗号、プログラム の動作を理解するための情報収集など、様々なセキュリティに重要であろう技術を身に着けました。そこから実際に外部プロテクト ソフトウェアの動作を調査、何がどうなっているのかを調べていき、詳細を理解していきました。またセキュリティモジュールと 対となるプログラム解析ツールを自作しました。これは前述の自己ハックにて使用しています。 これらを2~3年続け、セキュリティモジュールを完成・リリースしています。 ©CAPCOM 55

56.

RE ENGINE「セキュリティモジュール」 セキュリティモジュールを軸に社内全体の向上を狙う • タイトル毎でバラバラだったセキュリティ対応を一本化 • • • • すべてのタイトルの有識者を集め、自分が共有のハブとなる チートや改ざん情報を素早く共有化する事で現状を見える化する 各タイトルのセキュリティモジュールのサポートを行う 内製を使わない場合でも外部プロテクトソフトウェア適応をサポート 作成したセキュリティモジュールの公開、運営を軸に社内全体のチート・海賊版対策の向上を狙いました。 タイトルごとにバラバラだったチート・海賊版対応を、全タイトル担当者のハブとなって、やり取りする形で一本化を行いました。 56 これにより各タイトルごとに存在していた改ざん情報を素早く収集することが出来、それらを全タイトルに共有化することで、 チート・海賊版の現状を見える化しました。 そしてセキュリティモジュールを各タイトルで採用していただくためのサポートを行うのはもちろんですが、残念ながら採用に 至らないパターンも存在しており、その場合は外部プロテクトソフトウェアを適切に紹介する形で、何かしらの対策は必ず 入っているという状態を最低限キープするようにしました。 ©CAPCOM 56

57.

RE ENGINE「セキュリティモジュール」 社内全体のチート・海賊版対策が向上した • 日々変わっていく情報を共有・蓄積化 • 各タイトルの有識者の知見や意識が向上する セキュリティエンジニアを名乗ってた効果が出る • ゲーム開発者から見れば「聞けば知ってる有識者の存在」となる • 1から調査・取得するコストがかからない そのようなサポートを行ったことで、社内全体のチート・海賊版対策におけるレベルは間違いなく向上しました。 日々変わっていくチートや海賊版の情報を共有・蓄積化を行うことで、各タイトルの有識者の知見や意識は前の状況とは 57 比較にならないくらい向上しました。 また、セキュリティエンジニアを名乗ることで、アプリ開発者から、「聞けば知っている有識者」として認知されました。 これにより各タイトルが個別にチート・海賊版対策について1からの調査や、外部プロテクトソフトウェアの内容を取得する コストを省くことが出来るようになります。 ©CAPCOM 57

58.

RE ENGINE「セキュリティモジュール」 セキュリティは継続した運営が必須 • 明日も大丈夫だという保証はどこにもない 集まった情報は技術蓄積となりCAPCOMの武器になる • 終わらないセキュリティのイタチごっこに正面切って挑む! しかし向上したとしても、セキュリティは継続的な運営が必須です。日々状況が変わりますので明日も大丈夫だという保証は どこにもありません。 58 集まったこれらの情報は技術蓄積となってCAPCOMの武器になります。セキュリティには終わりはありません。 この武器を使って、イタチごっこに正面切って切り込んでいく必要があります。 ©CAPCOM 58

59.

RE ENGINE「セキュリティモジュール」 運営していく上で、後方支援のクラッシュレポートツール • セキュリティーモジュール作成の知見を利用 • PCの環境は千差万別なので思いもよらない動作になる可能性がある • QAで可能な限り問題ないことは確認している お客様の環境をレポートして頂く事が難しい • クラッシュレポートツールの提供 • 最低限のMiniDump、動作環境情報を1ファイルに 今はタイトルの不具合対応で主力に また運営にあたり、セキュリティーモジュールを作成した知見を利用して、後方支援用のクラッシュレポートツールを リリースしました。 59 PCの環境は千差万別であり、可能な限り問題ないか品質管理部門でチェックしていますが、思いもよらない動作が発生する場合が あります。お客様の環境で発生した不具合ですので、情報を集める事自体、技術的に難易度が高いものになります。 もしも何らかの不具合によりクラッシュしてしまった場合に、素早く確実に情報収集を行う必要があります。 それらを行うためにクラッシュレポートツールをRE ENGINE開発タイトル用に開発しました。お客様のところで発生した不具合の 情報を必要最低限の情報にまとめ、1ファイル化するツールです。今現在はタイトルの不具合情報収集及び解決において非常に 役立っています。 ©CAPCOM 59

60.

現在の取り組みと目標 現在行っている取り組み • セキュリティーモジュールの運営 • 不正ツールの監視・解析・対策 • 新たな外部プロテクトソフトウェアの情報収集 今現在やっている取り組みとしては、セキュリティモジュールの運営、及び、発売中の製品に対する不正ツールの監視、解析、 対策の継続、新たに採用出来る可能性のある外部プロテクトソフトウェアの情報収取など行っています。 60 ©CAPCOM 60

61.

現在の取り組みと目標 その他の取り組み • 社内へのチート・海賊版対策の意識向上を狙った活動 • セキュリティブログを開設、今現在約70投稿 • 新人CTFの開催 • 非常に好評 それに加え、社内全体のチート・海賊版に対する意識向上活動も行っています。 代表的なものとしてセキュリティの内容を中心としたセキュリティブログを開設、現在約70投稿をしています。 また、新人を中心としたCTFイベント等を開催しています。新人に非常に好評のイベントとなっています。 61 セキュリティブログでは実際に製品を改ざんし、脆弱な部分や手段に対しての理解を促しています。これにによりタイトル側で 危機感を高めてもらう意識改革を狙っています。 また本資料に書いてある内容などを社内向けに詳しく発信したりしています。 ©CAPCOM 61

62.

現在の取り組みと目標 社内で人気だったセキュリティーブログ人気記事TOP3 • 製品のクラック情報速報 • 製品を実際にクラックしてみた • 体験版をハックしてみた 自社製品を攻撃して脆弱性を発見する話が人気 なお、社内セキュリティーブログでの閲覧者トップ3です。 製品が実際にクラックされた場合、速報を記事にしていますが、特にこの記事は閲覧者も多いです。 62 次に製品を実際にクラックしてみるデモンストレーションによる技術記事が2位についています。実際のクラック手法が 解説されているということで閲覧者が増えました。 3位は2位と同じですが体験版をハックしてみた技術記事になります。この3位は実際に出る前の体験版をハックしたのですが、 体験版で設定した以外のエリアを遊べる可能性があることを実証しました。もちろんこの記事を書く際にタイトル側には脆弱性を 報告しましたので、実際にハックが出来る体験版は出ておりません。 このようにセキュリティーブログでは自社製品の脆弱性を実際につく話が人気です。 ©CAPCOM 62

63.

現在の取り組みと目標 今後やっていきたい取り組み • セキュリティモジュールの機能追加 • まだまだやれることが沢山ありますが、追いついていません • セキュリティモジュール簡素化 • より手軽にモジュールを使ってもらうための仕組みの作成 今後やっていきたい取り組みとしては、セキュリティーモジュールの機能拡張です。まだまだやれることはたくさんありますが、 追いついていません。 63 と、同時にセキュリティモジュールをより一層簡単に組み込んでもらうよう、簡素化を行っていきたいと考えています。 ©CAPCOM 63

64.

まとめ 最後にまとめになります 64 ©CAPCOM 64

65.

問題点とその解決(結論) タイトル横断的な対策が出来ず、共有化や蓄積が無いのを解決 • タイトルに在籍すると属人化してしまう(またコストもかかる)ので、タイトルとは離れた部署 に在籍し専門化。セキュリティに関する人や情報を集約し、すべてのタイトルで横断的な対応が 出来るように • 予算があるタイトルは属人化でも対策出来るが、予算が少ないタイトルはノープロテクトになっ てしまう • そのような予算が少ないタイトルには共有化は非常に貢献する タイトル横断的な対応が出来ずに情報の共有や蓄積がないことに関しては、タイトルに在籍せずに離れた部署に在籍し、 専門化することによって、チート・海賊版等の情報を集約しすべてのタイトルで、横断的に共有・蓄積が出来るようにしました。 65 特に問題だった属人化は、予算があるタイトルはそれでも対応出来たりするが、予算が少ないタイトルはそれだと ノープロテクトになってしまう。チート・海賊版対策における共有化は、タイトルの規模に関わらず対策する事ができ、 特に予算が少ないタイトルに非常に貢献することができます。 ©CAPCOM 65

66.

問題点とその解決(結論) 外部プロテクトウェアで全部守れるという幻想を解決 • 何が守れる・何が守れないのか、技術的に解説 • RE ENGINE「セキュリティモジュール」の作成 • 不正検出用の独自ライブラリ • 外部プロテクトソフトウェアとセキュリティモジュール • 補完と多層プロテクトによる確固たるプロテクト 外部プロテクトソフトウェアで全て守れているという幻想を抱いてしまう問題は まずは何が守れる何が守れないかを技術的側面から解説し、ご理解いただく。 66 RE ENGINE「セキュリティモジュール」と外部プロテクトソフトウェアによる、補完、多層プロテクトにより確固たるプロテクト。 ©CAPCOM 66

67.

問題点とその解決(結論) チート・海賊版についての知識共有を解決 • 基礎的な攻撃手法や対策の啓蒙活動としてブログを開設・情報を発信 • 実際に自社製品を改ざんしたり、手段をわかり易く解説し、危機感を高める • 不正ツールは日進月歩で開発されており、継続した対応を行う必要がある チート・海賊版についての知識共有に関しては 基礎的な攻撃方法、及び対策の必要性をブログ等で啓蒙活動を行ったり、実際の自社製品を改ざんしたり手段をわかり易く 67 説明して危機感を高めています。 また、不正ツールは日進月歩で開発されているため、継続した対応を恒久的に行う必要があります。 ©CAPCOM 67

68.

現在の取り組みと目標 カプコンがセキュリティでも優れた会社となる RE ENGINEと共に、セキュリティの技術力でも勝負する これからはカプコンがセキュリティでも優れた会社になることが目標です。 RE ENGINEとともにセキュリティの技術力でも勝負していきます。 68 ©CAPCOM 68

69.

ご清聴ありがとうございました ご清聴ありがとうございました 69 ©CAPCOM 69