본문 바로가기

프로그래밍/Etc

[Etc] 게임 해킹, 아는 만큼 막을 수 있다.


온라인 게임은 인터넷 사용자 증가와 환경 변화의 중요한 요인 중 하나로 자리잡고 있으며, 그 시장 규모도 2005년 1조 5천억원에 달할 정도로 고도성장을 이루고 있다. 하지만, 많은 사용자와 매출을 기록하는 화려함 뒤에는 해킹과 개인정보 유출, 아이템 거래 등 어두운 모습을 감추고 있다.

온라인 게임 보안

온라인 게임 보안은 말 그대로 온라인 게임을 공정하게 즐기는 문화를 만들기 위해 게임 상의 불법적인 행위를 감지/차단하여 게임의 밸런스를 지키는 것을 말한다. 온라인 게임에 대한 해킹은 서버 해킹와 클라이언트 해킹으로 구분 할 수 있다. 서버 해킹은 잘 알고 있는 해킹 방식이 대부분이다. 예를 들어, Dos 공격, 웹 취약점 공격, Free Server, 계정탈취, 트로이목마 등이 이에 속한다. 클라이언트 해킹은 일반적인 안티 해킹에 속하는 부분과 온라인 게임이란 영역에 특화된 부분으로 구분 지을 수 있다. 전자의 경우 일반적인 메모리 조작, 실행파일 조작, 패킷 조작 등이 있으며, 후자의 경우 스피드핵, 매크로, 오토마우스, Non-Client Bot 등이 있다.

서버 해킹의 경우 꼭 게임이 아니더라도 일반 서비스의 경우도 유사한 해킹이 발생하고 있으며, 온라인 게임 보안이 아닌 다른 분야에서도 많이 다루어지는 문제이기 때문에, 서버 해킹에 대해서 여기서 추가로 설명하지는 않기로 하며, 클라이언트 해킹에 중점을 두어 설명을 하도록 하겠다.

[표1]은 악성코드와 온라인 게임 해킹의 차이를 구분하여 설명한 것이다.

구분 악성코드 온라인 게임 해킹
대상 불특정 다수의 시스템 특정 게임 서비스
성향 시스템 파괴 게임 플레이 조작
목적 자기과시, 시스템 파괴 금전적 이익
특이사항 악성코드로부터 보호하고자 하는 대상이 명확함 개발도구, 장애인을 위한 보조 프로그램들이 해킹에 사용
보안제품에 대한
사용자 인식
보안제품은 사용자의 동지 보안제품은 사용자에게 귀찮은 존재


[표1] 악성코드와 온라인 게임 해킹의 차이


주요 국가의 온라인 게임 해킹 동향

▶ 한국
한국은 온라인 게임의 종주국으로 온라인 게임 해킹의 인프라(?)가 잘 갖추어진 지역이라고 할 수 있다. 그러나, 온라인 게임 해킹의 기술은 이제 초기 단계를 벗어났다고 볼 수 있다. 한국에서 제작되는 대부분의 해킹툴들이 매크로이며, 간단한 메모리 데이터 조작도 발견된다.
한국의 해킹기술 대부분은 중국의 기술이 그대로 유입되거나, 중국과 동남아를 거쳐 유입되기 때문에, 중국과 동남아와는 2-3개월의 차이를 두고 유사해킹이 발생한다. 그렇지만, 한국은 다른 나라가 갖추지 못한 초고속 인터넷 인프라로 인해 상대적으로 기술을 습득할 만한 환경이 잘 갖추어져 있기 때문에 앞으로 한국의 해킹 기술은 급속도로 발전하게 될 痼見? 이는 온라인 게임의 발전에 상당히 위협적인 요소가 될 것이다.

▶ 일본
일본은 세계적인 게임 시장이지만 비디오 게임이 대부분을 차지하고 있으며, 온라인 게임은 이제 막 태동 단계이다. 해킹 기술은 그들의 국민성을 반영하듯 매우 세밀하게 접근하며, 메모리 조작과 실행파일 조작이 주를 이룬다. 아직까지는 해커 그룹도 조직적이기 보다는 개인적 성향이 강하고 금전적인 이익보다는 개인과시용으로 해킹툴을 제작하여 배포하는 경우가 많다. 그러나, 최근 들어 한국의 메이저 온라인 게임들이 일본에 진출함에 따라 중국 해킹그룹의 영향력이 일본에 미치면서 일본의 해킹그룹도 금전적인 이익을 목표로 조직화되는 양상을 보이고 있다. 따라서 일본에 진출한 한국 온라인 게임들의 주의가 요구된다.

▶ 중국
중국은 가장 온라인 게임 해킹이 활성화된 나라로 대부분의 해킹 사이트가 중국에 거점을 두고 있다. 중국의 해킹 조직은 이미 조직적 단계를 넘어서 기업화를 이루고 있으며, 그들의 영향력이 한국과 동남아에 미칠 정도로 매우 크다.
중국은 게임 해킹의 모든 것을 총망라하여 다루고 있으며, 주로 네트워크 패킷을 분석하여 적절한 게임코드를 그대로 뜯어서 붙이는 방법으로 Non-Client Bot를 제작하거나, Free Server를 제작하여 별도 게임 서비스를 직접 운영하기도 한다. 최근에는 게임 클라이언트와 게임 서버 사이에 Proxy를 두고 게임패킷을 중간에서 변조하는 Proxy 공격이 많이 발생하고 있다.

▶ 미국
미국은 일본과 더불어 세계적인 게임 시장이다. 아직 PC게임과 비디오 게임이 주류를 이루고 있으나, 온라인 게임이 급속도로 확산되고 있는 상황이다. 게임 서버에 대한 Dos 공격이 많이 이루어지며, 클라이언트의 경우 메모리 조작이 가장 많이 발생하고 있다.


온라인 게임의 주요 해킹 기술

지금부터는 온라인 게임 서비스의 취약점들을 겨냥한 주요 해킹 기술에 대해서 설명을 하고자 한다.


[그림1] 온라인 게임 서비스의 취약점


▶ 게임의 속도를 조절하는 스피드핵
스피드핵은 MMORPG나 FPS 게임에서 가장 많이 사용하는 해킹툴 중 하나로 게임의 스피드를 가속시켜 게임의 흐름을 자신에게 유리하도록 바꾸는 툴이다. 스피드핵을 사용할 경우 게임의 밸런스가 무너지는 것은 물론이고, 상대적으로 많은 패킷을 교환하게 되어 서버에 랙(Lag)을 유발하기도 한다.

스피드핵은 동작방식에 따라 다음과 같이 구분할 수 있다.

구분 소프트웨어 방식 하드웨어 방식
동작방법 윈도우 시간관련 함수를 Hooking하여 카운터를 조작함 타이머와 사운드를 다루는 8263/8254 포트에 어셈블리명령으로 Frequency를 바꿔 카운터를 조작함
해킹대상 시간 관련 함수timeGetTime, timeGetSystemTime, timeSetEvent, GetTickCount, SetTimer, GetMessageTime, QeuryPerformanceCounter 등 8253/8254 PIT (Programmable Interrupt Timer)

[표2] 동작방식에 따른 스피드핵의 구분


[그림2] SpeederXP 스피드핵


▶ 게임을 자동으로 플레이할 수 있는 오토마우스 / 오토 플레이
스피드핵과 함께 가장 알려져 있으며, 게임 밸런스에도 민감한 영향을 주는 해킹 기술이다.
게임 상에서 해킹툴을 시작하기만 하면, 사용자의 특별한 조작없이 자동으로 봅을 발견하여 공격하고, HP가 떨어지면 자동으로 물약을 복용하는 등의 기능을 수행한다. 특히, 오토마우스의 경우 아이템 거래 사이트에서 실제로 현금거래가 되고 있으며, 하드웨어에 기반한 오토마우스의 경우 이미 제작자들이 기업화되어 있는 상황이다.

오토마우스는 동작방식에 따라 다음과 같이 구분할 수 있다.

구분 동작 방식
유저레벨 관련 윈도우 API(SendInput, keybd_event, mouse_event, SendMessage 등)를 이용하여 게임 프로그램에게 메시지(Message)를 보내 마우스와 키보드 입력을 자동으로 실행
커널레벨 윈도우 OS가 구성하고 있는 Keyboard 및 Mouse Driver의 Filter로 들어가 마우스와 키보드 입력을 자동으로 실행
하드웨어 Mouse, Keyboard 장비가 PC본체에 연결되는 포트에 Hub식으로 연결되는 하드웨어로 장비에 삽입된 Firmware에 따라 키보드나 마우스의 동작 신호를 자동으로 입력. 최근에는 USB 형태로 간편하고 휴대가 편하게 제작되어 판매되고 있음

[표3] 동작방식에 따른 오토마우스 종류


▶ 메모리 조작, 파일 조작, 패킷 조작
메모리 조작, 파일 조작, 패킷 조작 등은 일반적인 안티 해킹의 영역이라고 볼 수 있다. 통상적으로 이러한 해킹 기술들은 복합적으로 나타나곤 한다. 예를 들어, 게임패치를 담당하는 패쳐를 조작하여 패치가 이루어지지 않도록 조작을 한 후, 해킹툴을 실행하여 메모리나 패킷을 조작하는 형태를 이룬다.
파일 조작은 주로 실행파일(PE)에 대한 조작이 이루어지고 있으며, 암호화된 Data 파일을 풀어서 임의로 조작하기도 한다. PE 파일 조작의 경우는 변조하고자 하는 코드가 영구적으로 적용되기 위한 목적으로 사용되며, Code Segment의 게임 주요 루틴을 어셈블리 바이너리 코드로 치환한다.
메모리 조작 기술은 DLL Injection이나 API Hooking, SDT Hooking 등의 기술을 사용하여 메모리 내의 게임 Data와 주요 루틴의 흐름을 조작하는 것을 말한다. Data 조작의 경우 Data의 변경이 정상적인 행위에 의한 결과인지 여부를 판단할 수 있는 기준이 모호하기 때문에 가능한 주요 Data는 게임 서버에서 관리하고 검증하는 것이 피해를 최소화할 수 있는 방법이다.


[그림3] 메모리 상의 코드조작 예


패킷 조작은 일반적으로 send, recv, WSASend, WSARecv 등과 같은 Socket API를 Hooking 하거나, LSP(Layerd Service Provider)와 NDIS(Network Diver Interface) 레벨에서의 조작이 많이 사용된다.

▶ Non-Client Bot
Non-Client Bot은 게임 클라이언트를 실행하지 않고 해킹툴으로 실행하는 것으로, 게임을 자동으로 진행할 수 있도록 하는 해킹툴을 말한다. 이러한 Non-Client Bot은 실제 게임 클라이언트처럼 화려한 그래픽을 자랑하는 것이 아니라 단순한 Dialog Box에 설정버튼과 실행버튼만을 제공하고, 게임 서버와는 마치 실제 유저가 게임에 로그인하여 게임을 진행하고 있는 것과 동일한 패킷을 주고받는다.

[표4]와 [그림4]에서 Non-Client Bot의 특징과 동작방식에 대해 간략히 설명하였다.

구분 내용
특징 게임 해킹툴 중 가장 악성적이며, 대응도 어려움
게임 구조에 영향을 많이 받기 때문에 특정 게임에 특화되어 제작됨
게임 클라이언트를 디버깅하고 패킷을 완벽히 분석하여 인증부터 게임 진행, 종료까지 실제 게임과 동일한 메시지를 생성
중국에서 가장 활발한 제작과 판매가 이루어짐
하드웨어 게임 밸런스와 매출에 가장 심각한 영향을 미침
게임 서비스의 존폐와 직결될 만한 파워를 가진 해킹툴
실제 게임을 하지 않는 유저들의 접속으로 서버 부하 발생

[표4] Non-Client Bot의 특징



[그림4] Non-Client Bot의 동작 방식



게임보안의 도전

온라인 게임 해킹 기술은 악성코드의 기술이 유입되면서 급속도로 발전하고 있다. 최근의 기술 트렌드는 하이브리드 방식으로 해킹툴이 RootKit으로 동작하며, 자체 보호 기능도 많이 보강되고 있다.

또한, 그동안 PC게임과 비디오 게임에 집중하던 해외 메이저 게임사들이 온라인 게임에 뛰어들고 있으며, 국내 업체들도 해외진출에 투자를 하고 있는 상황이라 앞으로의 게임 해킹은 더욱 다양화되고 고도화될 전망이다.

이를 위해 게임 보안은 본격적인 서비스 체제를 갖추어 글로벌 환경에 대응할 수 있는 시스템을 갖추는데 주력하면서 지금까지와는 다른 새로운 도전을 맞을 준비를 해야 할 것이다.

 

 

 

 

출처 - K2M | doublekm

원문 - http://blog.naver.com/doublekm/140032492628