
モバイルゲームのセキュリティ - ハッキング対策
モバイルゲームのハッキングの傾向の変化を見ると、人気ゲームだけがハッキングされていた初期から、自動化されたハッキングツールを使用して無差別にハッキングされるのが特徴です。
一般的に、大手ゲーム開発者(ゲーム開発以外の資金が限られている企業)を除いて、ゲームがリリースされて一定の利益が発生したときにセキュリティを計画することがほとんどです。
しかし、ゲームサービスのユーザー数が一定数以上集まると、開発作業量が増え、セキュリティを適用するタイミングを失い、ハッカーにゲームの全体構造を理解してからセキュリティを試みることになります。しかし、ハッカーはすでにアプリの構造を理解しているため、追加のハッキングの試みが頻繁に行われる可能性があります。
そのため、セキュリティがほとんどなくても、最初から行うことが重要です。
以下は、ゲームハッキングの種類ごとに適切な防御策です。
(1) メモリ検索
(2) リパック
(3) ハッキングツール
(4) ルート化、仮想マシン
メモリ検索
防御方法
1. メモリ検索やメモリ変調から保護するには、API またはゲーム アプリ プロセスのメモリ ファイル アクセスを介してハッキング ツールがアプリのメモリにアクセスするのを検出してブロックする機能が必要です。
- LIAPP メモリ保護を参照してください
2. これらの機能の効果により、重要な情報の流れを把握したり、アプリ内の重要なメモリ情報を取得するためのダンプから保護することもできます。
再パック
リソースの改ざん
[ ソース コードの改ざん ]
ハッカーは、ゲームを動かすコアソースコードを改ざんすることで、目的を達成します。
1. 現在ゲームアプリで使用されている Java のソースコードや UNITY のソースコードは、主にデバイスの移植性を考慮して開発された言語であるため、改ざん構造の特定や変更は比較的容易です。
2. Unreal Engine の場合、JAVA や UNITY などのバイトコードではありませんでした。ただし、ハッキングに慣れたハッカーは、より多くの時間だけを必要とし、改ざん構造を理解できます。
[ リソースの改ざん ]
リソースの改ざんは、アプリパッケージ内で実行するために必要なソースコード以外のファイルを変更して、ハッカーが望む目的を達成します。
1. ゲームの初期段階では、ゲーム自体の機能を実装するために心配することがたくさんあります。そのため、パッケージ内のリソースファイルに重要なファイルを定義して参照することがあります。
これらのファイルは意図的ではない場合もありますが、不注意や公開日の期限により、ゲームにとって重要なデータがアプリ パッケージ内で定義されているとおりに配布される可能性があります。
1. 整合性検出
整合性検出は、アプリファイルが開発者によって配布されたファイルであるか、または他の人によって改ざんされたファイルであるかを判断する機能です。
整合性検出は、ゲームアプリでの不正なソースコードの改ざんやリソースの改ざんを防ぐのに役立ちます。
- 現在実行中のアプリがハッカーによって改ざんされていないか、開発者によって公開されたファイルが正しいかどうかを確認することで、ハッキングやリソースの改ざんを防ぐことができます。
- ゲーム内の広告がハッカーによって削除され、置き換えられた場合、すべての広告収入が盗まれる可能性があるため、開発者は整合性検出を通じてそれを保護する必要があります。
2. ソースコードを保護
- JAVA CODE 保護、UNITY CODE 保護
Android アプリの基盤となる JAVA CODE と UNITY で開発されたアプリの UNITY CODE の保護は不可欠です。
改ざんによってゲームを識別して攻撃できるため、ソースコードを簡単に解析できないように暗号化と難読化によって保護する必要があります。
- Unreal Engine, cocos
Unreal Engine と cocos の場合、ゲーム アプリの重要なソース コードは、パッケージ ファイルの lib フォルダーに .so ファイルがあります。
ファイルの構造が判別できないように保護する必要があり、また、変更を加えた場合でも、ゲーム アプリで正常に使用できるように保護する必要があります。
ゲーム アプリを保護するには、ソース コードの整合性検出と保護が重要な役割を果たします。
上記の機能により、安全なゲーム サービスを構築することが不可欠になります。
- LIAPP Anti-Tamper を参照してください
- LIAPP Native Library Protection を参照してください
ハッキングツール
ハッキングツールを効果的に防御するには、次の両方のケースを考慮した場合にのみ、効果的な防御が可能です。
既知のハッキングツールを検出する
未知のハッキングツールからのアクセスをブロックする
さらに、ハッキングツールを効果的に保護するためには、ハッキングツールが提供する典型的な機能の防止が必要です。
メモリ変調
スピードハック
アプリ内購入の回避
統計によると、ハッキングツールは主にメモリ変調とスピードハックの目的で使用されています。
1. メモリ変調とスピードハックの場合、「メモリ検索」方法で説明したゲームアプリプロセスへのアクセスをブロックすることで、既知および未知のハッキングツールから防御できます。
2. また、既知のハッキングツールの場合、ハッキングツールが現在実行されているかどうかを確認し、検出してブロックすることが重要です。
- LIAPPハッキングツール検出を参照してください
受け取ったアプリがハッキングに使用されるツールかどうかわからない場合があります。これらのユーザーの場合、ハッキングツールがインストールされているためゲームがブロックされない場合は、ユーザーの離脱が原因である可能性がある苦情につながる可能性があります。
ハッキングツールが検出された場合、ユーザーはハッキングツールのインストール状態を確認せずに、プロセス中にハッキングツールが実行されているかどうかを確認することで不便を最小限に抑えることができます。
3. アプリ内購入をバイパスする場合、ゲームアプリは支払い時に発行されたアプリ内支払い領収書をゲームサーバーに送信し、領収書の有効性を確認します。
ルート化とは、モバイルデバイスを変更して管理者権限を取得することです。管理者権限はモバイルデバイスシステムに完全にアクセスできるため、ゲームアプリを偽造したり、メモリやプロセスにアクセスしたりするために使用できます。
ルート化を検出するには、管理者権限に変換できるファイルの検出とカスタムROMの検出を組み合わせる必要があります。これは効率的な検出を意味します。
ただし、ゲームアプリはユーザーの流入を考慮してルーティングを許可することが多く、ルーティングを無条件にブロックすると、ユーザーがゲームサービスに入るのを防ぐことができます。
セキュリティの観点から、ルート化されたデバイスのブロックポリシーは効率的です。または、ゲームアプリは、メモリ署名、整合性検出、ハッキングツール検出などの機能を使用して、機密ハッキングに対する保護を提供できます。
[ 仮想マシン ]
仮想マシンは、PCのモバイル環境をサポートし、PCでモバイルゲームを楽しむのに役立つプログラムです。
仮想マシンがハッキングに重要な理由は、ほとんどの仮想マシンがルート化をサポートしており、PCで使用されるのと同じ強力なハッキングツールをモバイルで使用できるためです。
しかし、ルート化と同様に、多くのゲームアプリは、貴重なユーザーを参加させたいため、ゲームアプリの起動当初は仮想マシンの使用をユーザーに推奨していません。
ただし、ルート化とは異なり、ゲームアプリのユーザーが多い場合は、仮想マシンの検出も考慮すべき重要な要素です。
ソース コードの保護 (クラス保護)
アプリのモジュレーションの防止 (改ざん防止)
メモリ保護
デバッグのブロック (デバッグ防止)
Unity コード保護 (Unity 保護)
再パッケージの防止 (再パッケージ防止)
Unreal、Cocos エンジン保護 (ネイティブ ライブラリ保護)
ハッキング ツール検出
仮想マシン検出
ルート化検出
ゲーム アプリの起動開始時に、必須の防御を満たし配布するために、LIAPP ONSITE チケット LIAPP ONSITE ticket (apply LIAPP one time) または LIAPP ONSITE Monthly (apply LIAPP unlimitedly until its expiration) を使用することをお勧めします要件。
そして、ゲームアプリのユーザーが増加する中期的な拡大に対応する要素を満たすために、 LIAPP BUSINESS Monthly を使用することをお勧めします。
ゲームアプリのサービスが爆発的なユーザー増加または一定レベルのユーザーで募集されている場合、効果的な戦略は、 LIAPP for Game を使用してiOSとAndroidの両方を保護し、ポリシーを設定してユーザーを制御することです。