반응형

모바일 게임 보안 솔루션: XIGNCODE3 for Android
by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaruhttp://www.jiniya.net

모바일 게임 보안 솔루션 분야에 출사표를 던진지도 제법 시간이 지났습니다. 관련 제품이 전무한 상태이고, 저희 쪽에서도 직접적으로 광고를 하고 있지는 않은 상태라 아직도 많은 분들께서 모바일 게임 쪽에는 안티 해킹 솔루션이 없다고 알고 계신 경우가 많은 것 같습니다. 이런 안타까운 현실을 조금 개선하고자 요즘 가장 핫한 모바일 게임 보안 솔루션인 XIGNCODE3 for Android의 기능에 대해서 잠깐 소개를 해보는 시간을 가져볼까 합니다.

#0
역사는 반복된다고 했던가요? 모바일 시장을 보고 있으면 온라인 게임 보안 시장의 예전 모습을 보는 듯한 느낌이 많이 들곤 합니다. 온라인 게임 보안의 초기 시장의 경우에도 많은 게임 업체에서 외부 솔루션 업체는 믿지 못한다는 생각으로 직접 하겠다고 덤빈 경우가 많았습니다. 물론 안타깝게도 대부분 결과가 좋지 않았습니다. 그런 과도기를 거친 후에는 매출이 일정 수준 이상인 게임들은 통상적으로 게임 보안 솔루션을 필수적으로 탑재하는 시대가 오게 되었습니다.

시간이 흘러 흘러 최근에는 게임 출시 전에 사용자들이 제일 먼저 묻는 질문 중에 하나가 이런 것들이 되었습니다. 안티치트 솔루션이 무엇이냐? 해킹 방지 대책이 무엇이냐? 이런 현상을 반영하듯 요즘은 외부 솔루션 업체만으론 힘에 부치기에 게임사 내부에도 별도의 보안팀을 두어서 외부 솔루션 업체가 특화시키지 못하는 — 외부 솔루션 업체는 특성상 범용적인 보안을 할 수 밖에는 없답니다. — 게임의 세부 사항들에 대한 보안을 강화해 나가는 추세입니다.

#1

hackcnt

모바일 핵 탐지 카운트. 모바일 해킹, 온라인 못지 않습니다. 자바는 거들뿐…

먼저 모든 솔루션이 그렇겠지만 과연 이게 필요한가, 과연 그 조악한 모바일 디바이스에서 해킹을 시도하는 사용자가 당췌 얼마나 될까라는 의문을 가질 수 있습니다. 우선 그 질문에 대한 답변을 먼저 하자면, 단언컨대 모바일 환경의 해킹 시도는 온라인의 그것 못지 않게 심각합니다.

아직 블랙마켓이 형성되기 전이라 전문 프로그래머들이 진출하진 않았습니다. 바야흐로 초딩의 시대죠. 하지만 만만하게 볼 초딩이 아닙니다. 상상력 하나는 끝짱이거든요. 몇몇 메모리 조작 도구들이 개발되었고 초딩들은 그것들을 하염없이 개조해고, 개조하고, 또 개조해서 우회 엔진이라 말하며 웹사이트에 올립니다. 거기서 끝이 아니죠. 그 올려진 도구를 사용해서 밤새도록 끊임없이 앱의 메모리를 염탐하고 조작하고 있습니다. 이런 초딩 인구가 집계가 되지 않을 정도로 많다는 카더라 통신도 있습니다.

더 심각한 상황은 엄마가 컴퓨터는 끄라고 하지만 핸드폰을 끄라는 소리는 하지 않기 때문에 핸드폰이라는 디바이스는 초딩들에게 24시간 열려있습니다. 이런 연유로 초보 해커인 초딩들은 오늘도 밤새도록 이불 밑에서 앱 메모리를 탐색하면서 어딘가 허점은 없을까? 아이템을 공짜로 훔칠순 없을까? 연구하고 또 연구하고 있습니다. 여기다 초딩의 영웅심이 더해지면 해킹툴 유포 속도는 빛의 속도에 근접하게 됩니다. 인정받고 싶어하는 그들의 욕구 때문에 절대로 알아낸 지식을 혼자만 알고 끝내는 법이 없지요. 어떻게는 짜투리 지식도 공유하고 또 공유합니다. 집단 지성 풀이 만들어지는 겁니다. 특히나 요즘 초딩들은 조기 교육 덕분에 영어 리소스에 손쉽게 접근할 수 있습니다. 이런 사실은 그들이 아주 고급스런 인터넷 정보에 접근할 수 있음을 의미하지요. 더불어 더 이상 그들이 초딩의 지식 한계에 머무르지는 않는다는 것을 의미하기도 합니다. 이쯤되면 메이저 업체에서 만든 앱들도 난자 당하는 건 시간 문제라는 걸 알 수 있습니다.

게임이 인기를 끌면 끌수록 모여드는 초딩은 늘어나고 게임은 더 많은 해킹 위협에 노출됩니다. 컨텐츠 개발에 힘써야 할 게임 프로그래머들이 변수 오프셋을 변경하고 값을 암호화 시키는 작업에 더 많은 시간을 투자하게 됩니다. A를 A라 저장하지 못하는 그야말로 난감한 상황이 됩니다. 게이머들의 컨텐츠 소모 속도는 빨라지고, 게임 프로그래머의 개발 속도는 더뎌집니다. 결국 개발한 앱은 컨텐츠 경쟁력에서 뒤쳐질 수 밖에 없습니다. 심지어는 실컷 만들어 놓고, 사용자도 많은데 매출은 없는 기형적인 구조가 되기도 합니다.

이쯤되면 아 뭔가, 우리를 대신해서 이 초딩 집단을 컨트롤해 줄 현자가 필요하겠구나, 라는 생각이 듭니다. 안드로이드 시스템에 해박한 지식을 가진, 리눅스를 적어도 커널 1.2 때부터는 사용해 왔던, X윈도우 커서 앞에서 눈물을 한번쯤 흘려 본 똑똑한 시스템 프로그래머가 필요한 시점인거죠.

#2
안드로이드의 가장 큰 홀은 다름 아닌 자바입니다. 자바는 그냥 게이머들에게 소스 코드를 던져주는 것과 똑같습니다. 변수값을 암호화해도 암호화 키나 시드 값을 알아내기가 정말 쉽습니다. 자바 코드는 너무 쉽게 디컴파일이 되고, 그걸 다시 컴파일해서 리패키징 하는 작업은 ‘식은 죽 먹기’입니다. 해킹 앱을 변조해서 새로 만들어내는 방법은 이미 튜토리얼 수준으로 공개돼 있어서 컴퓨터에 접근할 수 있는 초딩이라면 누구나 30분 내에 자신만의 독자적인 신규 해킹 앱을 제조해 낼 수 있는 수준입니다.

주먹구구 식으로 해킹 앱 패키지명 몇 개를 추가하는 것으로는 공격의 속도를 감당할 수 없습니다. 마치 UCC 처럼 해킹 앱을 제작해서 배포하는 수준이기 때문에 기존의 해시 시스템으로도 대응하기가 힘든 속도입니다.

XIGNCODE3 for Android는 온라인에서 검증된 우수한 패턴 처리 시스템과 백엔드 시스템을 사용해서 이렇게 초딩들이 마구잡이로 만들어내는 변종 앱들을 신속하게 처리할 수 있는 구조를 가지고 있습니다. 더욱이 저희는 Android 환경의 APK 전용 패턴 시스템을 별도로 제작했습니다. 이 방식을 통해서 초딩들이 허구헌날 새로 만들어내는 변종 앱들에 대해서도 패턴 변경 없이 놀라울 정도로 높은 수준의 진단율을 유지할 수 있는 구조를 가지고 있습니다.

#3
아주 잘 다듬어진 패턴 시스템이지만 무력화 시키는 것이 불가능하지는 않습니다. 그 벽을 뚫고 넘어온 친구들에게 우리는 루팅 체크라는 아름다운 선물을 제공해 주고 있습니다. 안드로이드 환경에서 다른 앱 메모리를 변조하기 위해서는 루트 권한 획득이 필수적이기 때문에 해킹 앱들은 필수적으로 루트 권한을 획득해야 합니다.

한가지 안타까운 점은 기존의 잘못된 상식 때문에 이 기능의 효용 가치가 너무나 심각하게 훼손 됐다는 점입니다. 기존 앱들, 심지어 금융앱에서도 루팅 체크를 su나 supersu의 존재를 체크하거나 특정 경로의 존재 유무를 체크하는 방식을 사용하고 있습니다. 잘 아시겠지만 이 방식을 우회하는 것은 정말 쉽습니다. 요즘 루팅 앱에서는 임시 언루팅이라는 이름으로 그러한 기능을 제공해 주고 있습니다. 반대로 이 방식의 치명적인 단점은 루팅 됐다는 사실 만으로 앱 실행을 차단한다는 점입니다. 루팅이란 자신의 돈으로 산 디바이스의 주인 권리를 찾겠다는 말인데 이걸 찾았다고 앱 실행을 제한한다는 것은 조금 이상합니다. 특히 금융 앱이 아닌 앱들에서는 이러한 허들은 앱을 사용하는 접속자를 늘리는데 도움이 안 되는 방식임에 틀림없습니다.

당연히 저희는 기존의 파일, 경로 체크와 같은 조악한 방식의 루팅 체크를 사용하지 않습니다. 우리는 진짜 시스템 프로그래머잖아요. 직접 프로세스에 접근해서 관련 조사를 수행합니다. 이 방식을 우회하기 위해서는 리눅스 커널을 새로 디자인하거나 시스템 전체의 동작 방식을 변경하는 아주 복잡한 작업이 필요합니다. 그래서 우회하기가 쉽지 않죠. 더불어 루팅 됐다는 사실만으로는 차단 하지 않기 때문에 동접 건전성을 유지할 수 있습니다.

루팅 앱을 체크하는 문제가 쉽게 느껴질 수 있습니다. 하지만 생각보다 쉬운 문제는 아닙니다. 바로 권한 페널티가 있기 때문입니다. 안드로이드 환경은 기본적으로 루팅을 불법으로 간주하고 있습니다. 따라서 정상 어플리케이션이 루트 권한을 요구하기란 쉽지 않습니다. 물론 루팅 단말에서만 권한을 요구할 수 있지만 그것 또한 정상적인 운영체제 경험을 위배하기 때문에 좋은 전략이라고 볼 수는 없습니다.

이런 연유로 안드로이드 환경에서는 통상적으로 해킹툴은 모든 권한을 가지고 있고, 보안 제품은 제한된 권한을 가질 수 밖에는 없습니다. 이렇게 권한 차이가 발생하는 것을 두고 우리는 권한 페널티가 존재한다고 이야기합니다. 결국 낮은 권한을 가진 프로그램이 높은 권한을 가진 프로그램을 탐지해야 하는 문제라는 것이죠. 이 이야기를 쉽게 말하면 다른 우주에 있는 범죄자를 잡는 것과 똑같다고 생각하시면 됩니다. 우주 끝이 어딘지도 모르는데 우주 밖에 있는 범죄자를 잡아야 한다뉘 욱기죠. 그래서 어려운 문제입니다.

XIGNCODE3 개발 팀은 다년간 이런 환경에서 작업을 해 왔고 권한 페널티에 있어서는 누구보다 전문가 입니다. 모두가 드라이버 설치를 강제할 때 그걸 옵션으로 했고, 모두가 64비트 프로세스를 띄울 때 WoW64에서 모든 것을 처리하도록 만들었습니다. 단언컨대 권한 페널티에 있어서 우리보다 전문가는 없다고 자부합니다. 우리는 낮은 권한에서 높은 권한을 가진 오브젝트를 검사하는 다양한 전략과 전술을 알고 있습니다. 이런 온라인 보안에서의 실전 경험은 모바일 보안에서도 당연히 진가를 발휘할 수 밖에 없습니다.

#4
완벽한 보안 솔루션이란 없습니다. 물론 저희도 완벽하진 않습니다. 다만 빛의 속도로 완벽해지는 것을 추구하는 한 솔루션입니다. 여러분의 게임을 서버 기반으로 디자인 했기 때문에 안전하다고 생각하실지도 모르겠습니다. 하지만 여전히 자동 플레이는 큰 문제이며, 오픈 플랫폼인 안드로이드의 취약점을 공격하는 것에 대해서는 속수무책일 수 밖에 없습니다. 알려진 공격루트를 허용하는 것과 차단하는 것 사이에는 하늘과 땅만큼의 차이가 있다는 점을 꼭 기억할 필요가 있습니다.

모바일 게임 보안, 이제 선택이 아닌 필수입니다.



Read more: http://www.jiniya.net/wp/archives/12153#ixzz3NCFXNntn

반응형
반응형

[IT News 이강민 기자, kangmin@itnews.or.kr] 온라인 게임 이용자 증가와 시장 활성화에 따라 금전적 이득을 노린 해킹 툴도 증가하는 것으로 나타났다. 이런 해킹 툴은 간단한 검색만으로도 웹사이트나 블로그, 게임 커뮤니티 등에서 손쉽게 찾아 설치할 수 있어 주의가 필요하다.

안랩은 13일 온라인 게임의 플레이를 불공정하게 이끄는 해킹 툴이 올 상반기에만 795개가 발견됐다고 밝혔다. 또한 해킹 기법이 더욱 지능화해 게임 프로세스가 아닌 운영체제(OS) 등 다른 영역을 해킹하는 우회 공격 기법이 증가하는 추세라고 밝혔다.

안랩에 따르면 해킹 툴 종류 별 비중은 메모리 조작(65%), 그래픽 핵(24%), 오토플레이(7.4%) 순으로 나타났다. 

메모리 조작은 게임 프로세스의 메모리를 조작해 게임 캐릭터나 아이템의 체력, 돈, 능력치 등을 수정하여 게임의 균형에 영향을 미친다. 메모리 조작은 다른 해킹 툴에 비해 제작 기간이 길고 비용이 많이 든다. 그럼에도 비중이 높은 것은 그만큼 이를 통해 얻을 수 있는 금전적 이익이 크기 때문이라고 볼 수 있다. 이 같은 메모리 조작은 얼마 전 첫 발견된, 금융사 보안 모듈 해킹에도 적용된 방식이다. 

그래픽 핵은 대부분 FPS(First-person shooter; 총기류를 이용해 전투를 벌이는 슈팅 게임) 내에서 동작하며 Direct-X의 그래픽 인터페이스 정보를 조작한다. 대표적인 것이 지형 지물 뒤의 케릭터를 보여줌으로써 상대방의 움직임을 예측하여 공격하게 하는 월핵(WallHack)이다. 십자선 (Cross-Hair)를 화면 중앙에 그려줌으로써 공격의 정확도를 높여주는 기법도 있다. 

오토플레이는 사용자가 입력하는 키보드나 마우스의 움직임을 대신해 자동으로 게임을 할 수 있도록 한 프로그램이다. 

해킹 기법의 지능화의 경우 과거에는 DLL 인젝션(실행 중인 프로세스에 특정 DLL 파일을 강제로 삽입하는 것)으로 메모리를 조작하는 단순 기법이 많았는데, 게임 보안 솔루션이 이 기법을 차단하자 게임 프로세스가 아닌 운영체제 등 다른 영역을 해킹하는 우회 공격 기법이 증가하고 있다. 대표적인 것이 WDDM(Windows Display Driver Model) 조작, 게임 런처로 위장, 게임 보호 모듈 조작, 게임 내 스크립트 호출 등이다. 

안랩 박근영 선임연구원은 “최근에는 게임 프로세스 자체가 아닌 PC 환경에 전반적으로 영향을 미치는 영역을 해킹하는 툴이 다수 제작된다. 단순 호기심으로 실행했다가는 포맷을 해야 할 수도 있기 때문에 각별한 주의가 필요하다. 

안랩 최은혁 실장은 “온라인 게임 해킹 툴은 일반 악성코드와 달리 사용자가 능동적으로 설치하는 것이다. 자신이 하는 행동이 남에게 피해를 준다는 점, 본인에게도 뜻하지 않은 악성코드 감염, 포맷 등의 피해가 갈 수 있다는 점을 인식해야 한다.”라고 강조했다. 

# 온라인 게임 해킹 툴이 위험한 이유

온라인 게임 해킹 툴의 제작자는 프로그램 판매를 통해 금전적인 이익을 얻거나, 자신의 실력을 과시하거나, 혹은 본인이 사용하기 위해 만든다. 사용자는 캐릭터를 빨리 성장시키거나, 다른 이용자보다 유리한 조건에서 게임을 하기 위해 사용한다. 

그러나 해킹 툴 중에는 운영체제 등 PC 환경에 전반적으로 영향을 미치는 것도 있기 때문에 단순 호기심으로 실행했다가는 운영체제를 포맷해야 할 수도 있다. 또한 게임 해킹 툴에 악성코드가 포함된 경우 사용자의 개인 정보가 유출될 우려도 있다.

또한 해킹 툴 제작자나 사용자 때문에 다른 사람이 피해를 입는 것도 문제점이다. 게임의 공정성 저하로 해킹 툴을 사용하지 않는 사용자가 정신적 피해를 입고, 게임에 대한 충성도가 저하될 수 있다. 

게임 제공 업체로서는 해킹 툴로 인한 과도한 서버 부하가 원활한 서비스 제공을 방해하여 사용자 불만을 초래하고 서버 관리 비용이 증가한다. 불공정한 게임 진행으로 사용자 이탈이 많아지면 게임 수명이 단축되고 금전적인 손실이 생기도 한다. 또한 해킹 툴 때문에 게임 서비스에 문제가 발생할 경우 기업 이미지가 실추하고 다른 서비스에도 타격이 있을 수 있다.

WDDM 조작 

FPS의 그래픽 처리 과정을 조작하는 것이다. 일반적으로 FPS(First-person shooter; 총기류를 이용해 전투를 벌이는 슈팅 게임)에 대한 해킹 툴은 게임에서 사용하는 인터페이스인 Direct-X를 조작한다. 그러나 최근 특정 운영체제(윈도우 비스타 이후)에서 WDDM이라는 드라이버 모델을 이용해 그래픽 처리를 한다는 점을 노려 해당 영역을 조작한 사례가 발견되었다.

게임 런처로 위장 

실제 게임은 게임 런처에 의해 업데이트된 후 실행된다. 따라서 런처로 위장하면 게임 내 메모리에 접근할 수 있다. 실제로 런처로 위장해 게임을 실행한 후 데이터 및 코드를 조작해 게임의 실행 흐름을 바꾸거나 게임 내 함수를 직접호출(Abnormal Function Call)하여 게임을 공격하는 사례가 있었다.

게임 보호 모듈 조작

일반적으로 게임이 배포될 때, 해커에 의한 분석을 어렵게 하고자 ‘패커’라는 상용 제품이 함께 배포된다. 게임 내 지정된 중요 코드가 패킹 영역에서 실행되는데, 이 패킹 영역을 조작해 게임의 실행 흐름을 변경한 사례가 발견되었다.

게임 내 스크립트 호출 

특정 게임은 유지보수와 테스트의 용이성을 위해 스크립트 언어를 내부적으로 지원한다. 이 점을 노려 스크립트 언어를 악의적 목적으로 직접 호출(Abnormal Function Call)하여 게임을 공격하는 사례가 있었다. 이미 잘 알려진 스크립트 언어라는 점에서 해킹 툴이 손쉽게 접근했을 것으로 추정된다.

반응형
반응형


1.zip


2.zip


반응형
반응형

출처: http://archeage.xlgames.com/community/openboards/126156


대학생이고 사이퍼즈 핵제작을 반년간 했습니다.

만든건 사이퍼즈 쿨핵, 데미지핵, 딜레이핵, 맵핵, 무적핵 등등이구요.

일단 핵이라는건 그런 개념입니다. 만약에 내가 어디를 이동하려고하면 시퓨가 그 연산을 하고 일단 가상메모리에

그 밸류값을 저장시키고 가상메모리에 저장된 그 값을 회사 서버로 보냅니다.

여기서 핵이란 자기의 가상메모리에 저장된 밸류값을 조작해서 그걸 보내는거죠.

물론 개인컴퓨터 가상메모리에 저장되지않는 골드 아이템과같은 특수한 밸류도 있습니다.

이런 완전 중요한 밸류등은 보통 회사서버에서 직접 연산하죠.

이게바로 무역핵같이 위치이동핵은 나와도 골드복사 템복사는 않되는이유입니다. [대개 mmorpg에서 이러함]

만약 핵으로 골드복사하려면 엑스엘 회사 서버엑세스 잠근걸 풀고 들어가서 조작해야는데 이건 범법행위입니다.

로그기록도 남고 지우기도 초보는 힘듭니다 [제 기준]

근데 위에서 말했듯이 자기 컴퓨터 가상메모리에 있는 정보 조작은 범법행위가 아니에요. 왜냐? 자기컴퓨터 자기가

해킹하는건데 왜 범죄나요 ㅡㅡ;; [총사움, 던파 등등 p2p방식 게임들이 핵이 드글드글하는 이유]

솔직히 말해서 회사입장에서는 모니터링 외엔 감지할 방법도 영정외엔 처벌할 방법도 없습니다.

[이제는 않하지만 핵만들어서 미안해요 사이퍼즈]

그럼 최소한의 방법이 뭐냐? 바로 암호화입니다. 핵제작자로 하여금 만약 목요일 점검때 암호화 방식이 바꼇습니다.

그럼 뚫는데 몇시간 걸리겟죠. [ 암호화시킨 엑스엘 프로그래머가 실력자일수록 시간은 듭니다.]

근데 지금 엑스엘을보면 암호화 시켜도 어떤게 위치밸류인지 중국인들이 알아내는데 몇시간 않걸리더군요.

솔직히 이리되면 방법이 없습니다. 무역을 삭제하는 수밖에요.

수많은 사람들이 머리를싸매고 두더지 해결방안을 쓰는데 엑스엘 프로그래머 실력이 향상되기전까진 어림도 없습니다.

좋아요랑 댓글좀 달아주세요;

반응형

+ Recent posts