セキュリティ
セキュリティ要件には大きく3つのカテゴリがあります。
- ゲーム実行ファイルの改竄
- ゲーム実行中のメモリの改竄
- ユーザーデータの改竄
ゲーム実行ファイルの改竄
とある武器の攻撃力が本来10であるべき箇所を不正行為によって9999に改竄するような攻撃です。 Android では apk ファイルを逆アセンブルして、ゲームデータを改竄して再パッケージした apk ファイルを作成することでこのような攻撃化が可能です。
GS2 ではこの攻撃に対するサポートはありません。 ゲームバイナリが改竄されていないかを検知するソリューションの導入によってこのような問題に対処する必要があります。
ゲーム実行中のメモリの改竄
実行時にメモリの情報を書き換えるなどして、不正に敵の体力を減らしたり クエストクリア判定に使用するフラグの値を書き換えて、失敗したはずなのにクリアしたシーケンスに入れる攻撃が該当します。
GS2 ではこの攻撃に対するサポートはありません。 ゲーム実行時にメモリの値が不正に改竄されていないかを検知するソリューションの導入によってこのような問題に対処する必要があります。
ユーザーデータの改竄
アイテムを所持している数量を改竄するような攻撃が該当します。
GS2 では、アイテムの所持数量などのユーザーデータ(セーブデータ)をサーバーサイドで管理し その増減をAPI経由で行えるようになっています。 とくにアイテムの増加のようなプレイヤーにとってメリットのあるユーザーデータ操作は、GS2が提供するマイクロサービスの副作用によってしか操作できないように設計されています。
たとえば
- GS2-Showcase で商品を購入した時にアイテムの所持数量を増やす
- GS2-Quest でクエストをクリアした時にアイテムの所持数量を増やす
というような処理を通じてのみアイテムの所持数量を増やすことが可能です。
GS2-Showcase でアイテムを購入するということは、ゲーム内通貨を消費するなどの何らかの対価を支払う必要があり、 GS2-Quest でクエストを開始するためには、スタミナを消費するなどの何らかの対価を支払う必要があります。
このような設計にすることで、無制限にアイテムを増やす行為を行えなくしています。