Damocles:Cradles 게임 분석 보고서
저자: 다모클레스
1. 개요
Cradles는 11.15일에 다운로드가 열렸고, 다모클레스 팀은 11.16일에 해당 게임에 대한 심층 보안 분석을 진행했습니다. 분석을 통해 해당 게임에 많은 디버그 정보가 삭제되지 않았음을 발견하였고, 디버그 로그를 통해 게임 개발 팀이 중국 팀임을 추론했습니다. 또한 테스트 과정에서 해당 게임은 어떤 보안 보호 조치도 취하지 않았으며, 게임 통신 프로토콜의 일부는 오픈 소스 엔진을 사용하고, 일부 논리 판단이 지나치게 불확실하여 사용자에게 게임을 경험할 것을 추천하지 않습니다.
2. 게임 배경
평가된 게임 버전: 20231115
게임 유형 및 게임 엔진: MMORPG, Unity2021.3.x
게임 플레이에서 발생할 수 있는 문제:
불법 이동(악의적인 패킷을 통한 순간 이동, 가속 등)
가속(게임 내 대세계 시간, UE 프레임워크 하의 시간 함수)
자동 조준/자동 잠금
무적
무한 체력
채굴 가속
3. 게임 보안성 분석
게임 코드 보호:
분석 과정:
- 서로 다른 엔진은 서로 다른 분석 모드를 가지고 있으므로, 게임 EXE를 확보한 후 먼저 게임이 사용하는 엔진을 확인해야 합니다. 게임 기본 정보를 식별하여 해당 게임이 Unity21.3.x로 개발되었음을 확인할 수 있습니다.
- 게임에서 배포된 파일을 살펴보면 게임이 Mono 메커니즘을 사용하고 있으며, iL2Cpp 모드로 개발되지 않았음을 확인할 수 있습니다. 이러한 방식으로 개발된 게임은 전체적인 보안성이 더 낮고 분석이 더 간단합니다.
또한 해당 게임이 사용하는 프로토콜 프레임워크는 KBEngine입니다.
따라서 GitHub와 같은 오픈 소스 라이브러리를 통해 KBEngine의 소스 코드 및 공개된 자료를 얻을 수 있으며, 이후 게임 분석 속도를 높일 수 있습니다.
분석 결론:
Cradles는 게임 코드 보호 측면에서 점수가 0으로, 전혀 보호되지 않고 있습니다. 전통적인 게임에서는 종종 맞춤형 암호화, 패킹 등의 방법으로 소스 코드를 보호하며, 전통적인 게임은 Mono 모드를 사용하여 컴파일하는 경우가 드뭅니다. Cradles는 건전한 게임 기본 코드 보호가 없고 구식 컴파일 기술을 사용하여 악의적인 플레이어가 코드를 분석하는 문턱과 비용이 매우 낮아, 만약 치트가 발생한다면 정상 플레이어에게 극도로 불공평합니다. 플레이어가 자유롭게 결투할 수 있는 지역에서는 악의적인 플레이어가 상대를 더 쉽게 이길 수 있습니다.
게임 기본 반치트:
분석 과정:
- 기본 반치트 감지 측면에서 우리는 두 가지 측면에서 테스트를 진행했습니다. 하나는 게임에 반디버깅이 존재하는지, 다른 하나는 게임에 읽기/쓰기 보호가 존재하는지입니다.
- 게임이 열려 있는 상태에서 CE를 사용하여 추가하고, 일반 함수에 중단점을 설정했을 때 게임이 종료되거나 경고 메시지가 나타나지 않았습니다.
- CE를 통해 게임 내의 스태미나와 HP를 수정했을 때, 효과가 발생하며 게임에서 팝업이나 경고가 나타나지 않았습니다. (스태미나 수정은 무한 체력/마나를 구현하고, HP 잠금은 10초 이내에 유효합니다.)
분석 결론:
Cradles는 반치트 능력 측면에서 점수가 0으로, 악의적인 사용자가 마음대로 치트를 할 수 있습니다.
반디버깅과 읽기/쓰기 보호 두 가지 측면만 테스트한 이유는 치트 프로그램의 경우 데이터 찾기와 기능 구현이 디버깅과 읽기/쓰기를 통해 가능하기 때문입니다. 가장 기본적인 두 가지 보호 능력이 결여되어 있다면, 주입, 훅 등의 감지 또한 무의미합니다.
게임 논리 문제
분석 과정:
Mono 방식으로 컴파일된 MMORPG 게임의 경우, 직접 데이터 수정은 원칙적으로 수익이 낮지만, 테스트 중 일부 데이터(예: 체력, 스태미나 등)의 수정이 효과가 있음을 발견했습니다. 체력 수정 후 9초 이내에 유효하며, 시간이 초과되면 몬스터를 공격할 수 없게 됩니다. 서버에 피해 시간 제한이 있을 것으로 추측됩니다. 스태미나 수정은 장시간 유효하며, 서버에서 어떤 판단도 하지 않는 것으로 추측됩니다. 이유는: 로컬 캐릭터의 스태미나가 소진될 때, 운동을 일시 정지하여 스태미나 회복 작업을 수행할 수 있기 때문입니다. 로컬에서 회복이 가능하다면, 게임에서는 서버 검증 단계를 생략할 수 있습니다.
스태미나 업데이트 논리:
체력 업데이트 논리:
또한 Avatar 클래스에는 캐릭터와 관련된 많은 속성이 있으며, 이 속성 중에도 조작할 수 있는 다른 지점이 존재할 것입니다.
분석 결론:
- Cradles의 전체 게임 논리 보안 문제는 매우 심각하며, 특히 이 게임은 강제 PVP 모드와 관련이 있어, 치트 프로그램 개발 문턱이 낮고 수익이 높습니다. 완성된 치트 프로그램이 개발되면, 일방적으로 학살할 수 있습니다.
- 게임 데이터에 대한 인식 부족과 게임 내 다른 공격받기 쉬운 지점에 대한 감지 부족이 있으며, 오픈 소스 엔진을 사용하기 때문에 프로토콜이 완전히 공개된 상태입니다. 채굴이 있는 게임의 경우 이러한 행동의 위험성이 매우 높습니다.
게임 프로토콜 분석
Cradles는 KBEngine 엔진을 프로토콜 기반으로 사용하고 있으며, 해당 엔진에 대한 자료가 네트워크에 이미 존재합니다.
참고 자료:
- KBEngine 기술 개요
- KBEngine MMORPG 데모
- KBEngine unity3d 플러그인
WEB3 보안 분석:
현재 Cradles의 토큰이 출시되지 않았기 때문에 WEB3 측면의 분석은 보류하며, 채굴 관련 프로토콜이 완전히 노출되어 있어, 사용자 채굴 수량은 게임에 있어 단지 임시 숫자에 불과하므로 해당 부분에 대한 분석은 진행하지 않습니다.
다모클레스에 대하여
다모클레스 연구소는 2023년에 설립된 보안 팀으로, Web3 산업의 보안에 집중하고 있으며, 사업 내용에는 계약 코드 감사, 비즈니스 코드 감사, 침투 테스트, GameFi 코드 감사, GameFi 취약점 발굴, GameFi 치트 분석, GameFi 반치트가 포함됩니다.
우리는 Web3 보안 산업에서 지속적으로 노력할 것이며, 가능한 한 많은 분석 보고서를 출력하여 프로젝트 측과 사용자에게 GameFi 보안에 대한 인식을 높이고, 산업의 안전한 발전을 촉진할 것입니다.