Documentation index for AI agents

보안

GS2 의 보안에 대한 사고방식

보안 요건에는 크게 3가지 카테고리가 있습니다.

  • 게임 실행 파일의 변조
  • 게임 실행 중 메모리의 변조
  • 사용자 데이터의 변조

게임 실행 파일의 변조

어떤 무기의 공격력이 본래 10이어야 할 부분을 부정 행위로 9999로 변조하는 것과 같은 공격입니다. Android 에서는 apk 파일을 디스어셈블하여 게임 데이터를 변조한 후 재패키징한 apk 파일을 만듦으로써 이러한 공격이 가능합니다.

GS2 는 이러한 공격에 대한 지원을 제공하지 않습니다. 게임 바이너리가 변조되지 않았는지를 탐지하는 솔루션을 도입함으로써 이러한 문제에 대처해야 합니다.

게임 실행 중 메모리의 변조

실행 시 메모리 정보를 다시 써서 부정하게 적의 체력을 줄이거나 퀘스트 클리어 판정에 사용되는 플래그 값을 다시 써서, 실패했어야 할 것을 클리어한 시퀀스로 진입시키는 공격이 해당합니다.

GS2 는 이러한 공격에 대한 지원을 제공하지 않습니다. 게임 실행 시 메모리 값이 부정하게 변조되지 않았는지를 탐지하는 솔루션을 도입함으로써 이러한 문제에 대처해야 합니다.

사용자 데이터의 변조

아이템 소지 수량을 변조하는 것과 같은 공격이 해당합니다.

GS2 에서는 아이템 소지 수량 등의 사용자 데이터(세이브 데이터)를 서버 사이드에서 관리하며, 그 증감을 API를 통해서만 수행할 수 있도록 되어 있습니다. 특히 아이템 증가와 같이 플레이어에게 이득이 되는 사용자 데이터 조작은, GS2 가 제공하는 마이크로서비스의 부수 효과를 통해서만 조작할 수 있도록 설계되어 있습니다.

예를 들어

  • GS2-Showcase 에서 상품을 구매했을 때 아이템 소지 수량을 늘린다
  • GS2-Quest 에서 퀘스트를 클리어했을 때 아이템 소지 수량을 늘린다

와 같은 처리를 통해서만 아이템 소지 수량을 늘릴 수 있습니다.

GS2-Showcase 에서 아이템을 구매한다는 것은 게임 내 통화를 소비하는 등 어떠한 대가를 지불해야 하며, GS2-Quest 에서 퀘스트를 시작하기 위해서는 스태미나를 소비하는 등 어떠한 대가를 지불해야 합니다.

이러한 설계로 함으로써, 무제한으로 아이템을 늘리는 행위를 할 수 없도록 하고 있습니다.