모바일 게임 시장은 141조 원 규모로 작년 대비 소폭 하락했지만, 여전히 큰 시장 규모를 보이고 있습니다. 특히 23년 하반기 바이오하자드와 같은 대형 콘솔 게임도 모바일 플랫폼에 이식되어 출시하며 이제는 게이머들이 선호하는 하나의 플랫폼으로 인정받게 되었죠.
하지만, 한국 콘텐츠 진흥원의 조사에 따르면 2022년 기준 온라인 게임의 수명은 37.6개월인 반면, 모바일 게임은 6개월밖에 되지 않는다고 발표했습니다. 모바일 게임의 수명이 짧기 때문에 개발사는 더욱 빠른 개발 및 출시 파이프라인에 따라 신규 게임을 런칭하고 있습니다.
하지만 빠른 파이프라인으로 인해 리소스 부족과 시간의 부족으로 보안이 제대로 적용되지 않은 게임이 출시되는 경우가 많고 해커는 이점을 노려 끊임없이 해킹을 시도합니다.
특히 게임의 특성상 이득을 보고 높은 점수를 차지하기 위해 게임 해커 뿐만 아니라 일반 유저들도 치트툴을 활용하여 해킹을 시도하고 있습니다. 포켓몬 Go에서 사용자들은 GPS 신호를 속여 위치 조작을 통한 해킹이 빈번하게 일어났으며 모바일 배틀그라운드와 와일드 리프트의 핵을 통한 불공정하게 게임을 하기도 합니다.
해킹이 빈번하게 일어나는 모바일 게임에서 게임과 이용자의 보호를 위해서는 해킹 유형을 명확히 알고 이에 대응하기 위한 보안을 적용해야 합니다. 그렇다면 모바일 게임 해킹 유형은 무엇이 있을지 확인해 볼까요?
모바일 게임 해킹 유형
1. 변조(Tampering) 공격
게임 내의 메모리, 파일 등을 변조하여 게임을 불공정하게 이용하는 해킹 유형입니다. 위변조 공격에는 파일단 변조, 메모리단 변조 그리고 데이터 변조 세가지 유형이 있습니다.
파일단 변조
파일단 변조는 정적(Static)분석을 통하여 게임 파일에 저장되어 있는 코드와 데이터를 변조하는 유형입니다.
게임 내 파일과 데이터를 분석하여 게임이 원하는 방식으로 동작하도록 변조합니다. 일반적으로 모바일 디바이스의 루트 권한을 획득하여 게임 파일에 있는 코드와 데이터에 무단으로 접근하여 변조를 진행합니다.
메모리단 변조
메모리단 변조는 동적(Dynamic) 분석을 통하여 게임이 실행중일때 메모리 코드와 데이터를 변조하는 해킹 공격입니다. 게임이 실행 중일 때 구동을 위해서 게임 게임의 메모리 코드와 데이터를 변조하여 인게임에서 돈, 체력, 능력치 등을 변조하는 해킹 유형입니다. 메모리단 변조 공격으로는 해킹 방식으로 게임 구동파일인 DLL을 변조하여 삽입하는 DLL인젝션 공격과 게임앱의 메모리를 실시간으로 스캐닝하고, 변조하는 게임 가디언, 럭키 패처과 같은 게임 치트툴을 활용한 해킹 공격입니다. 게임 유저가 흔하게 사용하는 핵(hack)도 메모리 변조를 활용한 해킹 방법으로 종류는 다음과 같습니다.
핵 종류 | 설명 |
---|---|
Resource hack | 게임 내 화폐, 아이템, 자원 등을 불법적으로 증가시키는 핵 |
ESP Hack | 플레이어에게 추가적인 정보를 제공하는 핵으로 벽 넘어 볼 수 있거나 맵에 다른 플레이어 위치 공개 |
Aim Hack | 슈팅 게임에서 타겟에 자동으로 조준 |
Wall hack | 플레이어가 벽이나 다른 장애물을 통과할 수 있게 하여, 게임의 정상적인 경로를 벗어나는 행동을 가능하게 하는 핵 |
Speed Hack | 게임 내 캐릭터나 객체의 속도를 비정상적으로 증가 또는 게임 내 시간을 변조 |
데이터 변조
데이터 변조는 게임의 내/외부 파일 데이터, 네트워크 데이터, 그리고 메모리 데이터를 무단으로 변경이나 조작하는 해킹 유형입니다. 해커는 게임 클라이언트를 직접 해킹하여 사용자의 장치에 있는 데이터를 변조하거나 네트워크 패킷 탈취 및 중간자 공격을 통하여 서버랑 교환되는 데이터를 변조할 수 있습니다.
2. 클라이언트 변조 / 리패키징
원본 코드를 추출하여 재배포하는 공격입니다. 해커는 소스코드에 접근해 클라이언트를 변조함으로써 금액을 지불해야만 사용할 수 있는 프리미엄 기능(게임 내 스킨, 맵 등)을 무단으로 사용할 수 있습니다. 리패키징을 통해 유료 게임을 무료로 이용 또는 배포할 수 있으며, 패키징 하는 과정에서 앱을 변조해 불법적인 모드(Mod)를 제작할 수 있습니다.
리패키징 공격의 위험성은 단순히 기업의 게임을 불법적으로 즐길 수 있다는 점뿐만 아니라 리패키징 과정에서 악성 코드를 심어 해당 앱을 다운로드 받은 고객의 디바이스를 감염시킬 수 있다는 점입니다. 악성 코드를 통해 해커는 고객의 디바이스에 무단으로 침투하여 원격으로 제어하거나 데이터를 탈취해갈 수 있습니다.
3. 자동화 스크립트 및 봇 사용
자동화 스크립트 및 봇을 활용하여 비정상적인 방법으로 게임을 이용하는 공격 방식입니다. 일반적으로 매크로(Macro)라고 알려져있는 툴을 이용하여 플레이어의 개입 없이 게임 내 반복적인 작업을 자동화 하여 게임을 이용하는 방법입니다. Autoplay hack도 해당 공격의 일부로 게임 플레이를 인간의 개입 없이 봇으로 동작시키는 해킹 유형입니다.
4. 결제 시스템 조작
게임의 결제 시스템을 조작하여 실제로 결제를 진행하지 않고 유료 아이템 및 콘텐츠를 획득하는 공격 방식입니다. 일반적으로 게임에는 유료 재화를 판매하기 위한 인앱 결제 모듈을 보유하고 있으나, 해커는 이 결제 모듈을 우회 혹은 조작하여 결제를 진행하지 않았어도 결제한 것으로 인식하여 재화를 제공해줍니다.
모바일 해킹 대응 방법
이용자와 해커가 게임 내외에서 이득을 보기 위해 시도하는 해킹 공격 확인해 보셨나요? 공정하고 안전한 모바일 게임 서비스를 고객에게 제공하기 위해서는 위해 해킹 위협에 대응할 수 있는 보안 조치는 필수적입니다! 그렇다면 앞서 언급된 해킹 공격으로부터 앱을 안전하게 지킬 수 있는 방법을 같이 확인해 보시죠.
1. 암호화
암호화는 앱의 코드 또는 평문의 데이터를 읽을 수 없는 데이터로 변환하는 기술입니다. 예시로 앞선 문장을 암호화한다면 아래 그림과 같이 무작위 문자열로 나타나게 됩니다.
암호화된 데이터 또는 코드는 암호화 키 없이는 복호화할 수 없습니다. 데이터 및 메모리 변조를 하기 위해서는 해킹해야 하는 데이터 또는 코드의 위치와 알고리즘을 파악해야 하지만 암호화가 되어있다면 암호화 키 없이는 파악 할수가 없어 변조를 불가능하게 합니다.
2. 무결성 검사
출처: 모바일 전자정부서비스 앱 소스코드 검증 가이드라인
앱의 데이터와 시스템이 변조 또는 변경, 손상되어 있지 않은 상태를 유지하고 있는지 검사해 게임에 부정행위 및 해킹 공격이 가해졌는지 확인하는 보안 기법입니다. 무결성을 검증하는 방법으로는 게임 내 재화와 같은 데이터 또는 사용자의 입력값이 서버와 일치하는 검증을 하거나 디지털 서명을 통해 게임이 출시된 원본 상태 그대로인지 확인하는 방법이 있습니다.
3. 루팅, 탈옥, 에뮬레이터 감지
일반적으로 게임의 소스코드와 메모리, 데이터에 접근하기 위해서는 디바이스의 루트 파일에 접근할 수 있어야 합니다. 안드로이드는 루팅을 통해, iOS는 탈옥을 통해 루트 권한을 얻을 수 있습니다. 또한, 안드로이드 에뮬레이터를 사용하면 더욱 쉽게 루트 권한을 얻을 수 있습니다. 이를 통해 해커는 모바일 게임의 모든 데이터에 접근하여 복제 및 변조하거나 Lucky Patcher, Game Guardian 등의 게임 치트 툴을 이용할 수 있어 방지하기 위한 조치를 취해야 합니다.
4. 패킷 탈취 방지
네트워크 패킷 탈취를 게임과 서버 간에 통신이 되는 데이터를 중간에서 가로채고 분석하여 통신 프로토콜과 데이터를 이해하고 이를 수정 및 변조하여 게임 자원을 변경하거나 인증을 우회하여 게임 서버에 접속할 수 있습니다. 더 나아가 사용자의 개인정보를 탈취하여 유출시킬 수 있어 패킷 탈취를 방지하는 보안을 적용해야 합니다.
5. 모니터링 및 로그 분석
게임 서버와 클라이언트에 발생하는 유저의 활동을 실시간으로 모니터링하고 로그를 분석하여 게임 내에 이상 행동이 발생하고 있는지 검토해야 합니다. 서버와 게임 클라이언트의 데이터가 일치하게 작동하는지 해킹 공격이 발생하고 있는지 지속적인 모니터링을 통해 게임이 정상적으로 운영되는지 확인해야 합니다.
보안은 흔히 창과 방패의 싸움이라고 하듯 게임 개발사는 해킹을 방어하기 위해, 해커는 취약점을 찾아 해킹하기 위해 끊임없는 싸웁니다. 이 때문에 앞서 언급한 보안을 적용했다고 끝이 아니라 지속적으로 취약점이 있는지 확인하고 보안을 업데이트해야 안전한 모바일 게임 서비스를 유지할 수 있습니다.
마무리하며
모바일 게임의 빠른 개발 프레임워크 때문에 많은 개발사가 보안 적용을 놓치는 경우가 많습니다. 특히 모든 게임을 방어하기 위해서는 다양한 보안 기능을 적용해야 하며 이를 꾸준히 업데이트 해야 하기 때문에 많은 시간과 리소스가 들어갑니다.
앱실링은 이러한 고민을 해결하기 위해 코딩 없이 한 번의 클릭만으로 모바일 게임에 보안 기능을 제공할 수 있는 보안 솔루션입니다. 앱실링은 암호화를 통해 게임의 데이터와 코드를 보호하고 안티 리버스 엔지니어링 기술과 위변조 방지 기술을 통해 게임을 분석하고 변조하는 것을 방지합니다. 또한, 안전하지 못한 환경에서의 구동 및 패킷 탈취 시도가 있는지 감지하는 기능으로 모바일 게임을 전방위로 보호해주고 있으며 대시보드를 통해 해커의 공격을 실시간으로 확인하고 모니터링 할 수 있습니다. 빠른 개발과 출시를 원하는 개발자들에게 최적의 보안 앱실링을 통해 모바일 게임을 안전하게 보호하세요!