> For the complete documentation index, see [llms.txt](/llms.txt)

# 보안

GS2 의 보안에 대한 사고방식



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

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

## 게임 실행 파일의 변조

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

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

## 게임 실행 중 메모리의 변조

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

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

## 사용자 데이터의 변조

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

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

예를 들어

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

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

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

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




