다모클레스: 빅타임 게임 분석 보고서

다모클레스 연구소
2023-11-10 12:43:33
수집
BigTime에 대한 일련의 보안 분석 및 테스트를 수행하였으며, 여기에는 게임 클라이언트 속성 변조, GameRPC 악의적 호출 테스트, 토큰 계약 감사 등이 포함됩니다.

저자: 다모클레스


1. 개요

BigTime은 2023년 10월 10일 토큰을 출시한 이후 GameFi의 열풍을 일으켰습니다. 팀은 9월부터 BigTime에 주목했지만 자격이 없어 분석을 진행하지 못했습니다. 최근 등록 문턱이 낮아진 후, 우리는 BigTime에 대한 일련의 보안 분석 및 테스트를 시작했습니다. 여기에는 게임 클라이언트 속성 변조, GameRPC 악의적 호출 테스트, 토큰 계약 감사 등이 포함됩니다. 게임의 전반적인 평가를 통해 우리는 이 게임의 보안성이 낮고 악의적인 플레이어에게는 치트 비용이 낮다는 것을 발견했습니다. 또한 게임의 분석 난이도가 낮습니다. 프로젝트 측이 게임을 지속적으로 운영하고자 한다면, 게임의 보안성과 공정성을 향상시키는 것이 후속 운영의 최우선 과제가 되어야 합니다.

2. 게임 배경

평가 대상 게임 버전: v0.28-CL#78459

게임 유형 및 게임 엔진: MMORPG, UE4.27

게임 플레이에서 발생할 수 있는 문제:

  1. 불법 이동 (RPC를 통해 악의적 패킷으로 순간 이동, 가속 등 조작)
  2. 가속 (게임 내 대세계 시간, UE 프레임워크의 시간 함수)
  3. 원클릭 연계/원클릭 스킬 루프
  4. NFT 제작 가속
  5. NFT 난수 조작
  6. 던전 종료 후 다중 결산

3. 게임 보안성 분석

게임 코드 보호:

분석 과정:

  1. 서로 다른 엔진은 서로 다른 분석 모드를 가지고 있으므로 게임 EXE를 확보한 후 먼저 게임이 사용하는 엔진을 확인해야 합니다. 게임 기본 정보를 식별하여 이 게임이 UE27.2로 개발되었음을 확인할 수 있습니다.

  1. 게임을 IDA에 가져와서 게임 코드가 강화되지 않았음을 발견하고, UE27의 특성 코드를 검색하여 GWorld 변수를 빠르게 찾을 수 있었습니다.

또한 문자열도 암호화되지 않았음을 확인할 수 있습니다.

따라서 Gworld를 특성 코드로 식별할 수 있고 게임이 암호화되지 않았음을 확인한 후, NamePool 특성 코드를 추출하여 일부 SDK Dump 도구를 통해 덤프할 수 있습니다.

게임 SDK를 확보한 후 분석을 가속화할 수 있습니다.

분석 결론:

BigTime은 게임 코드 보호 측면에서 0점을 기록했습니다. 전통적인 게임에서는 종종 맞춤형 암호화, 패킹 등의 방법으로 소스 코드를 보호합니다. BigTime은 건전한 게임 기본 코드 보호가 없기 때문에 악의적인 플레이어가 코드를 분석하는 진입 장벽과 비용이 매우 낮습니다. 만약 치트가 발생한다면 정상 플레이어에게는 불공평하며, 게임의 경제 모델에 영향을 미칠 가능성도 있습니다.

게임 기본 반치트:

분석 과정:

  1. 기본 반치트 감지 측면에서 우리는 두 가지 측면에서 테스트를 진행했습니다. 하나는 게임에 반디버깅이 존재하는지, 다른 하나는 게임에 읽기/쓰기 보호가 존재하는지입니다.
  2. 게임이 열려 있는 상태에서 CE를 사용하여 첨부하고, 일반 함수에 중단점을 설정했을 때 게임이 종료되거나 경고를 표시하지 않았습니다.

  1. CE를 통해 게임 내의 Health를 수정했을 때, 효과가 발생하고 게임이 팝업이나 경고를 표시하지 않았습니다. (Health 수정은 보다 직관적으로 표시하기 위한 것이며, 일반적으로 이 필드는 서버에 저장되므로 로컬 수정 시 아무 효과가 없습니다.)

분석 결론:
  1. BigTime은 반치트 능력 측면에서 0점을 기록했습니다. 악의적인 사용자가 마음대로 치트할 수 있습니다.
  2. 반디버깅과 읽기/쓰기 보호 두 가지 측면만 테스트한 이유는 외부 프로그램의 경우 데이터 찾기와 기능 구현이 디버깅과 읽기/쓰기를 통해 가능하기 때문입니다. 가장 기본적인 두 가지 보호 능력이 결여되어 있다면, 일부 주입, 훅 등의 감지도 무의미합니다.

게임 논리 문제

분석 과정:

UE 기반의 MMO 유형 게임의 경우, 로컬 데이터를 변조하는 수익이 낮습니다. 그 이유는 UE에 성숙한 동기화 메커니즘이 있어 각 Actor와 다른 속성 간의 동기화 및 서버 검증을 수행하기 때문입니다. 그러나 게임 소스 코드를 분석해보면 BigTime은 속성 동기화 메커니즘을 합리적으로 활용하지 않고 있으며, 일부 데이터가 로컬에 저장되어 있습니다. 예를 들어 Comboindex 기능은 combo Index 설정에 쓰기 중단점을 설정하여 쓰기 함수를 찾을 수 있으며, 이후 combo 기능을 디버깅할 수 있습니다. (구체적인 작업은 공정성에 영향을 미치므로 시연하지 않습니다.)

분석 결론:

  1. BigTime의 전체 게임 논리 보안 문제는 그리 두드러지지 않지만, 여전히 일정한 보안 위험이 존재하므로 논리 보안 점수는 4점입니다.
  2. 특정 민감 속성에 대한 동기화 메커니즘이 부족하므로, 더 많은 부분은 서버 측에서 암호화해야 합니다.

게임 RPC 분석

RPC 문제는 민감하므로 프로젝트 측의 승인 없이는 분석을 진행하지 않겠습니다. 현재 BigTime의 RPC 보안 방어는 0이며, 특정 RPC 패키지에 대한 테스트 결과 서버가 이를 인정하는 것으로 나타났습니다. 보안 점수는 0입니다. 프로젝트 측에 RPC 전체 보안에 대한 상세 감사를 권장합니다. 아래는 일부 RPC 정보입니다.

WEB3 보안 분석:

개요:

BigTime은 체인 게임으로서 Web3 설계는 두 부분으로 나눌 수 있습니다. 각각은 기본 BigTime 토큰 부분과 게임 내 WEB3 경제 시스템 부분입니다. 이 부분의 설계는 다른 게임에 비해 상대적으로 분리되어 있으며, 게임 내에서 토큰을 생성하고 NFT를 제작하는 역할을 하며, ETH에 고정 유통되는 토큰 계약을 배포합니다.

토큰 계약 보안:

토큰 기본 정보는 다음과 같습니다.

BigTime 토큰 계약은 다중 서명 지갑으로 토큰을 민트한 후 고정 공급량 방식으로 배포됩니다. 현재 토큰 계약 기능이 간단하므로 계약의 기본 보안성은 충분합니다. 소유자 지갑의 Tx 정보를 관찰하면 소유자 지갑이 토큰을 확보한 후 여러 지갑으로 일부 토큰을 이체한 것을 볼 수 있습니다.

이 지갑 대부분은 Safe의 다중 서명 지갑을 사용하고 있습니다. 이를 바탕으로 현재 토큰과 관련된 전체 보안 위험은 주로 개인 키 유출 및 프로젝트 측에 특권 계정이 존재하는지 여부에서 발생합니다. 다중 서명을 사용하더라도 특권 계정의 개인 키가 유출되면 여전히 일정한 도난 위험이 존재합니다.

게임 내 경제 시스템 보안:

BigTime에서 플레이어는 시공 수호자의 공간에 들어가 시간 모래시계를 제작하고 충전하는 등의 작업을 수행할 수 있습니다. 이 부분은 시장 균형에 직접 영향을 미치는 기능의 일부 코드가 로컬에서 실행되고 있으며, GS가 어떻게 설계되었는지는 불확실하지만 이러한 행동은 고위험 행동에 해당합니다. 아래와 같습니다.

이와 유사한 RPC 함수는 많이 있으며, 테스트 비용이 높기 때문에 현재로서는 어떤 보안 테스트도 진행하지 않겠습니다. 프로젝트 측이 이 부분에 대해 서버에서 철저한 판단을 해주기를 바랍니다.

다모클레스에 대하여

다모클레스 연구소는 2023년에 설립된 보안 팀으로, Web3 산업의 보안에 집중하고 있으며, 사업 내용에는 계약 코드 감사, 비즈니스 코드 감사, 침투 테스트, GameFi 코드 감사, GameFi 취약점 발굴, GameFi 외부 프로그램 분석, GameFi 반치트가 포함됩니다.

우리는 Web3 보안 산업에서 지속적으로 힘쓰며, 가능한 한 많은 분석 보고서를 출력하여 프로젝트 측과 사용자에게 GameFi 보안에 대한 인식을 높이고, 산업의 안전한 발전을 촉진할 것입니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축