DOI QR코드

DOI QR Code

A study on macro detection using information of touch events in Android mobile game environment

안드로이드 모바일 게임 환경에서의 터치 이벤트 정보를 이용한 매크로 탐지 기법 연구

  • Kim, Jeong-hyeon (Center for Information Security Technologies, Korea University) ;
  • Lee, Sang-jin (Center for Information Security Technologies, Korea University)
  • 김정현 (고려대학교 정보보호대학원) ;
  • 이상진 (고려대학교 정보보호대학원)
  • Received : 2015.06.18
  • Accepted : 2015.08.28
  • Published : 2015.10.31

Abstract

Macro(automatic hunting) of mobile game is a program that touch the screen by defined rules like a game bot in PC online games, and it is used by make various ways like android application or windows application program. This gives honest users deprivation and make to lose their interest. Finally they would leave the game and gradually game life would be shorten. Although many studies to prevent these problems in PC online game are conducted, applying mobile game to PC's way is difficult because mobile games are limited to use the network and device performance is different with PC. In this paper, we propose a framework for macro detection by using the touch event information. A touch event on the mobile game is a necessary control command to the game. Because macro touches the screen with the same pattern, there is a difference between normal user's behavior and macro's operation. In mobile games that casual games are mostly, Touch event is the best difference that identify normal user against macro for a short period of time. As a result of detecting macros used in real mobile game by using the proposed framework it showed 100% accuracy and 0% false positive rate.

모바일 게임의 매크로(자동사냥)는 PC 온라인 게임의 게임봇과 같이 정해놓은 규칙에 의해 화면을 터치하는 프로그램으로서 안드로이드 애플리케이션과 Windows 응용프로그램 등 다양한 형태로 만들어져 사용된다. 이는 정직한 사용자에게 박탈감을 주고 흥미를 잃게 하여 게임을 떠나게 만들고 게임 수명을 단축시킨다. 비록 PC 온라인 게임에서 이러한 부정행위를 막기 위해 다양한 연구가 진행되었으나 모바일 게임은 네트워크 사용이 제한적이고 디바이스의 성능이 PC와 다르기 때문에 동일한 방법을 적용시키기 무리가 있다. 본 논문에서는 터치 이벤트 정보를 이용한 매크로 탐지 프레임워크를 제안한다. 모바일 게임에서 터치 이벤트는 게임을 진행하기 위한 필수적인 제어 명령이다. 매크로는 동일한 패턴으로 화면을 터치하기 때문에 정상적인 사용자들의 패턴과 차이가 있다. 캐쥬얼 게임이 대부분인 모바일 게임에서 터치이벤트는 짧은 시간 동안 매크로와 정상적인 사용자를 구별할 수 있는 가장 좋은 특징이다. 제안한 프레임워크를 활용하여 실제 모바일 게임에서 사용되는 매크로들을 탐지한 결과 100%의 정확도와 0%의 오탐률을 보였다.

Keywords

I. 서론

스마트폰의 보급이 증가함에 따라 게임 산업은 PC 온라인 게임에서 모바일 게임으로 트렌드가 변화하고 있다. 그리고 모바일 게임 시장이 성장함에 따라 보안 문제도 중요한 이슈가 되었다. 모바일 게임 보안은 부정행위와 해킹으로부터 사용자의 개인정보와 사이버자산을 보호하는 것이다. 게임 도중 획득한 게임 아이템과 머니를 다른 플레이어에게 팔거나 현금으로 교환할 수 있는 PC 온라인 게임처럼 모바일 게임 또한 현금 거래가 이루어지고 있다[1].

모바일 게임의 매크로(자동사냥)는 PC 온라인 게임의 게임봇과 같이 정해놓은 규칙에 의해 화면을 터치하는 프로그램으로서 안드로이드 애플리케이션과 PC응용프로그램 등 다양한 형태로 만들어져 사용된다. 매크로는 시간의 제약 없이 플레이가 가능하기 때문에 게임 아이템, 머니 등과 같은 사이버 자산과 임무의 완수, 적이나 장애물의 극복, 롤플레잉의 성공에 대한 보상으로 주어지는 경험치 등을 일반 사용자보다 빠르게 얻을 수 있다. 이러한 매크로 사용은 정직한 사용자에게 박탈감을 주고 흥미를 잃게 하여 게임을 떠나게 만들고 게임 수명을 단축시킨다[2].

매크로는 스마트폰 조작을 자동화 하는 것이기 때문에 해킹 방지 방법으로 대처가 되지 않는다. 매크로 사용자의 수가 늘어남에 따라 모바일 게임 회사는 부정행위를 막기 위해 CAPTCHA를 도입했으나 이를 우회하는 방법 또한 나타나 성공적이지 못했다[3]. 오히려 이러한 방법은 게임 진행을 방해하고 불편함을 야기했다. 따라서 이러한 문제점을 극복하기 위해 사용자의 게임 진행을 방해하지 않고 우회가 어려운 매크로 탐지 기법이 필요하다.

본 연구에서는 모바일 게임을 위해 필수적으로 사용되는 터치 이벤트를 분석하여 모바일 게임에서의 매크로 탐지 프레임워크를 제시한다. 먼저 2장에서 기존의 PC 온라인 게임에서 사용한 봇 탐지 기술 중 모바일 게임에서 매크로 탐지를 위한 적절한 연구를 알아보고 터치 이벤트 정보를 이용한 분석 방법을 제안한다. 3장에서는 안드로이드 환경에서 사용자의 화면 터치로 발생할 수 있는 이벤트 정보들을 나열하여 그 중 매크로 탐지를 위해 사용될 터치 이벤트를 선별한다. 4장에서는 3장에서 선별한 터치 이벤트를 조사하는 안드로이드 애플리케이션을 개발하여 실제 사용자의 터치이벤트와 봇이 발생한 터치 이벤트를 비교하여 효과적인 매크로 탐지 방법을 제시한다. 5장에서는 4장에서 제시한 방법으로 실제 모바일 게임에서 매크로 탐지를 수행한 결과를 평가한다. 마지막으로 6장에서는 결론 및 향후 연구 방향을 제시한다.

II. 관련 연구

국내 모바일 게임 중 매크로 방지를 위해 데브시스터즈사의 쿠키런에서 같은 그림 찾기와 같은 미니게임을 이용해 매크로를 탐지한 사례가 있다. 이는 사용자의 게임 진행을 방해할뿐더러 우회가 가능하기 때문에 매크로 방지를 위한 완벽한 방법이 아니다. 현재 많은 모바일 게임 사가 매크로 때문에 어려움을 겪고 있지만 이를 방지하기 위한 연구가 거의 없는 실정이다.

하지만 모바일 게임과 달리 PC 온라인 게임의 경우 봇 탐지를 위해 다양한 연구가 진행되었다. 강아름등[2]은 실제 게임 산업에서 사용되는 봇 탐지 방법에 대해 조사하고 각 방법을 클라이언트 단, 네트워크 단, 서버 단으로 분류한 뒤 장단점을 나열하였다. 김휘강등[4]은 PC 온라인 게임 보안과 모바일 게임 보안의 차이를 설명하면서 모바일 환경에서 클라이언트 단, 네트워크 단, 서버 단 각각에서 보안을 수행하기가 어려운 이유를 설명하였다. 모바일 환경은 네트워크 사용이 제한적이고 디바이스 성능이 좋지 않다는 점이 큰 이유이다.

모바일 환경이라는 제한을 해결하면서 매크로 탐지가 가능한 방법에는 human interactive proofs(HIPs), human observational proofs(HOPs) 기반의 서버 단 매크로 탐지 방법이 적용 가능하다. CAPTCHA와 같은 HIPs기반의 탐지 방법은 정확도가 높기 때문에 많은 분야에서 사용되나 정상 사용자의 게임 진행을 방해하고 게임에 대한 사용자의 몰입감을 해친다는 단점이 있다[2]. HOPs 기반의 탐지 방법은 일반 사용자와 매크로가 발생하는 키보드, 마우스 이벤트 차이가 매우 명확하기 때문에 탐지 정확도가 매우 높다[2]. Gianvecchio 등[5]은 적은 시스템 자원을 사용하면서 게임 플레이어의 키보드와 마우스의 입력 행동과 같은 게임 내 로그를 이용해 PC 온라인 게임의 봇탐지 방법을 제시하였다. H. Kim 등[6]은 게임 플레이어에 의해 생성된 윈도우 이벤트 시퀀스를 분석하여 자동 프로그램을 탐지하였다. 두 연구는 실험을 통해 HOPs 기반의 탐지 방법이 높은 탐지율과 낮은 오탐률을 가짐을 보여주었다.

H. Seo 등[7]은 모바일 디바이스의 터치 이벤트 정보를 생체정보로 사용 가능함을 제시했고 실험을 통해 높은 정확성을 보여주었다.

따라서 본 논문에서는 정상 사용자를 방해하지 않으면서 적은 시스템 자원을 사용하고 높은 탐지율을 보여주는 HOPs 기반의 터치 이벤트를 이용한 매크로 탐지 방법을 제안한다.

III. 배경 지식

3.1 안드로이드 모바일 게임

안드로이드 모바일 게임은 안드로이드 운영체제를 탑재한 스마트폰에서 화면 터치와 여러 센서 등을 이용해 즐길 수 있는 게임을 말한다. 모바일 게임은 PC보다 화면이 작고 네트워크가 제한적이며 키보드, 마우스 같은 도구를 쓸 수 없지만 이동성과 실시간 서비스가 가능한 특징이 있다. 이 때문에 모바일 게임은 짧은 시간동안에 게임을 진행할 수 있는 스테이지 단위의 게임 방식이 대부분이다. 하나의 스테이지를 플레이할 때마다 그에 대한 보상 또는 점수가 주어지고 사용자는 보상을 통해 자신의 캐릭터를 강력하게 만들 수 있기 때문에 지속적으로 행위를 반복하고 이에 대한 결과로 성취감을 느낀다.

3.2 매크로

반복적인 행위는 게임을 지루하게 만들 수 있기 때문에 사용자는 반복 행위를 대신해 줄 수 있는 매크로를 사용한다. 매크로란 일련의 작업을 수행하기 위해 조작자가 매번 명령을 입력해 주지 않고 특정한 매크로 기능을 가진 키를 눌러줌으로써 자동적으로 일이 수행되게 하는 프로그램을 말한다[8]. 매크로는 시간의 제약 없이 플레이가 가능하기 때문에 게임 아이템, 머니등과 같은 사이버 자산과 임무의 완수, 적이나 장애물의 극복, 롤플레잉의 성공에 대한 보상으로 주어지는 경험치 등을 일반 사용자보다 빠르게 얻을 수 있다. 이러한 매크로 사용은 정직한 사용자에게 박탈감을 주고 흥미를 잃게 하여 게임을 떠나게 만들고 게임 수명을 단축시킨다[2].

모바일 게임 매크로는 사용 환경에 따라 안드로이드 애플리케이션과 Windows 응용 프로그램 2가지로 분류할 수 있다.

3.2.1 안드로이드 애플리케이션 매크로

안드로이드는 키보드, 조이스틱, 마우스, 터치스크린 등 다양한 입력 장치를 지원하고 발생된 이벤트는 getevent 명령어를 통해 확인할 수 있다. 입력 장치 없이 sendevent, input 명령어를 사용할 경우 입력 이벤트를 발생시킬 수 있다. 이 명령어들은 모두 /system/bin 경로에 내장되어 있으며 안드로이드 애플리케이션 매크로는 이 명령어들을 사용해 사용자의 터치 이벤트를 기록하고 설정된 시간 또는 지정된 위치의 색이 변할 때 터치 이벤트를 발생시킨다. 대표적인 안드로이드 애플리케이션 매크로는 HiroMacro와 Finger Replayer(FRep)가 존재하며 HiroMacro는 루트권한이 필요하고 FRep는 루트권한이 없더라도 Android Debug Bridge(ADB) 도구를 통해 재부팅되기 전까지 일시적으로 사용할 수 있다. 이 밖에도 INJECT_EVENTS의 권한과 WindowManager API를 이용해 터치이벤트를 발생시킬 수 있다. 이 방법은 제조사가 관리하는 플랫폼키로 사인이 필요하기 때문에 관리자 권한이 없을 시 사용할 수 없다.

3.2.2 Windows 응용 프로그램 매크로

에뮬레이터를 이용할 경우 PC 환경에서 안드로이드 애플리케이션을 사용할 수 있다. 현재 지니모션, 블루스택, 윈드로이등 다양한 안드로이드 에뮬레이터를 Windows 운영체제에서 사용할 수 있고 마우스를 사용해 이벤트를 발생시킬 수 있다.

Windows 운영체제에서는 Windows API를 사용해 마우스 클릭 이벤트를 발생시킬 수 있다. 이를 이용한 Windows 응용 프로그램 매크로는 G매크로, 오토핫키가 있으며 이외에도 특정 모바일 게임을 위한 다수의 매크로가 존재한다.

3.2.3 매크로 작동방식

Table 1은 안드로이드 모바일 게임에서 주로 사용되는 매크로의 이름과 터치이벤트 발생 조건을 정리한 표이다. 시간 간격을 지정해 이벤트를 발생시키거나 특정 좌표 값의 색을 확인한 뒤 조건에 부합할시 터치이벤트를 발생시킨다. 디바이스의 실제 화면을 터치해 좌표 값과 지연시간을 기록하거나 스크립트를 작성한 뒤 이를 이용해 매크로를 작동시킨다.

Table 1. Macro operation methods

3.3 안드로이드 터치 이벤트

사용자가 디바이스의 화면을 터치할 시 안드로이드는 터치 이벤트 정보를 MotionEvent 객체로 반환한다. 애플리케이션 개발자는 MotionEvent 객체로부터 터치 좌표, 스크린에 닿은 손가락 면적, 압력, 시간 정보 등을 확인할 수 있다.

IV. 매크로 탐지 기법 제시

안드로이드 모바일 게임은 특성상 짧은 시간동안 플레이할 수 있는 스테이지 단위로 구성되어 있다. 그리고 사용자는 매크로를 하나의 스테이지를 해결할 수 있도록 터치 이벤트 발생 조건을 기록한다. 매크로는 같은 스테이지를 반복적으로 진행하면서 주어진 임무를 해결한다.

PC에 비해 낮은 디바이스 성능에서 동작하고 적은 네트워크 트래픽을 사용해야 하는 모바일 게임의 특징상 사용자 행동 분석, 로그 및 트래픽 분석과 같은 PC 온라인 게임의 매크로 탐지 기법을 적용시키는 것은 적합하지 않다[2][4]. Table 2 관리자 권한 없이 현재 모바일 게임에 적용 가능한 매크로 탐지 방법을 정리한 표이다.

Table 2. Macro detection methods

디바이스에 설치되거나 실행 중인 매크로를 탐지 방법은 윈도우에서 동작하는 매크로 프로그램을 탐지 하지 못한다. 이를 해결하기 위해 에뮬레이터에서의 사용을 제한할 수 있으나 매크로를 사용하지 않는 정상 사용자의 게임 참여를 제한하는 단점이 있다. 또한 에뮬레이터 없이 GDB를 사용해 매크로를 제작이 가능하다.

따라서 본 논문에서는 모든 종류의 매크로 탐지를 위해 사용자의 게임 행위 분석 기반의 터치 이벤트 정보를 이용한 매크로 탐지기법을 제시한다. Fig.1. 은 안드로이드 모바일 게임 환경에서 터치 이벤트 정보를 이용한 매크로 탐지 기법을 나타낸 순서도이다. 본 논문에서 사용한 터치이벤트 정보는 손가락이 스크린에 닿거나 떨어졌을 때의 좌표, 터치 면적, 터치 동안 이동 횟수, 터치 시간이다.

Fig. 1. Flow chart of macro detection based on touch event information

에뮬레이터에서 마우스로 터치 이벤트를 발생시키거나 안드로이드 애플리케이션 매크로가 명령어로 터치 이벤트를 발생시킬 경우 터치 면적은 항상 0을 반환한다. 삼성과 LG社 디바이스 화면을 터치할 경우 실제 터치 면적의 장축과 단축의 길이가 반환된 반면 하웨이社 디바이스(H60-L02) 화면을 터치했을 때는 0이 반환되었다. 따라서 터치면적이 0이 아닐 경우 사용자가 발생한 터치 이벤트로 간주할 수 있다.

사용자는 매크로의 터치 이벤트 발생 조건을 기록하기 위해 직접 화면을 터치하면서 좌표를 기록하거나 컴퓨터를 이용해 스크립트를 작성한다. 이 작성 방법에 따라 매크로 탐지 기법이 2가지로 분리된다.

스크립트를 이용해 터치 이벤트 발생 조건을 기록할 경우 한 버튼에 대해 한 개의 고정적인 좌표 값으로 터치 이벤트를 발생시킨다. Fig.2.는 실제 사용자와 매크로가 netmarble社의 레이븐 게임을 하면서 발생시킨 터치 이벤트의 좌표 값을 점으로 나타낸 것이다. 특정 버튼을 누르기 위해 실제 사용자는 여러 좌표를 터치한 반면 매크로는 하나의 좌표만을 터치했다. 이처럼 동일한 터치 이벤트 좌표가 대다수를 차지할 경우 매크로를 사용한 것으로 탐지한다.

Fig. 2. Graph of indicating overlapped ratio per the number of touches

좌표 중복률을 확인하기 위해 게임에서 사용하는 버튼과 동일한 크기의 버튼을 500회 터치하면서 중복된 횟수를 확인했다. Fig.3.은 위의 실험을 10번 반복한 뒤 평균을 도표로 나타낸 그림이다. 한 버튼을 500회 터치할 경우 전체의 터치 좌표에 대해 약 10퍼센트가 중복되었고 이는 터치횟수에 비례했다. 동일한 좌표를 2회 이상 초과하여 터치한 확률은 0.1%이었다. 실제 사용자의 버튼 터치에 대한 좌표 중복률을 낮추기 위해 터치시간을 함께 기록했고 위와 동일한 실험을 진행한 결과 약 0.4%의 확률로 중복된 좌표를 터치했다.

Fig. 3. Touch coordinates of real player and HiroMacro

사용자가 직접 화면을 터치하여 좌표를 기록할 경우 한 버튼에 대한 터치한 좌표 값이 계속해서 변하게 되지만 기록한 터치 이벤트가 다음 스테이지에서 그대로 반복되는 특징을 이용해 매크로를 탐지할 수 있다. 두 개의 스테이지에서 발생한 터치이벤트 정보를 기록한 뒤 발생한 순서대로 비교해 만약 동일한 터치 이벤트가 연속되어 발생될 경우 매크로를 사용한 것으로 탐지한다.

V. 실험 및 결과

Gianvecchio 등[5]은 HOPs 기반의 PC 온라인 게임의 봇탐지 방법을 제시하였고 매우 높은 탐지 정확도를 보여주었다. 기존의 HOPs 기반 탐지 방법을 모바일 환경에서 적용하였을 때의 차이점을 확인하기 위해 모바일 게임의 한 스테이지 마다 매크로와 실제 사용자의 터치 이벤트 정보를 기록했고 그 결과를 확인했다.

본 논문에서 제시한 기법의 탐지율을 확인하기 위해 실제 매크로가 존재하고 인기있는 게임으로 실험을 진행했다. 선정한 게임은 현재 안드로이드 매출 1위에서 3위의 게임인 레이븐, 뮤오리진, 세븐나이츠이다.

실험에 사용된 안드로이드 애플리케이션 매크로는 기존에 앱으로 출시되어 있는 FRep과 HiroMacro 를 사용했고 국내 유명 모바일 매크로 공유 사이트에서 가장 많이 다운로드된 스크립트와 DB파일을 이용했다. Windows 응용프로그램 매크로는 각 게임마다 3종류의 매크로를 실험에 사용했다. 게임 중에 발생되는 터치이벤트 정보는 Android Debug Bridge(ADB)와 getevent 명령어를 이용해 획득했고 MotionEvent 객체와 동일한 값을 가지도록 수정했다. 총 5명의 실제 사용자가 10차례 게임을 진행했고 그 평균을 매크로 프로그램의 결과와 비교했다. 전체 실험은 안드로이드 에뮬레이터와 실제 디바이스 두 환경에서 진행했다. 실험 결과 미탐 없이 100%의 탐지율을 보여주었다. Table 3는 위 실험에서 정상 사용자와 매크로를 판별 결과를 Fig.1.의 분기 번호를 사용해 정리한 표이다.

Table 3. Results of macro detection

정상 사용자 탐지의 경우 삼성과 LG社 디바이스는 터치 면적을 통해 식별했고 하웨이社 디바이스와 에뮬레이터에서는 중복되지 않은 터치 이벤트와 스테이지 마다 변하는 터치 패턴을 통해 정상 사용자를 식별했다. 조건에 부합할 때 터치 이벤트를 발생시키는 매크로는 하나의 스테이지 동안 발생되는 중복된 터치 좌표와 시간을 이용해 식별했고 사용자의 실제 터치 이벤트를 기록한 후 재생하는 매크로는 스테이지 별 동일한 터치 좌표 순서를 통해 매크로를 탐지했다.

VI. 결론

본 논문에서는 안드로이드 모바일 게임 환경에서 매크로를 탐지하기 위해 터치 이벤트를 이용한 프레임워크를 제안하였다.

PC 온라인 게임은 서버, 네트워크, 클라이언트 측에서 게임 도중 발생된 다양한 로그 정보를 이용해 매크로 사용을 탐지할 수 있지만 모바일 게임은 네트워크 사용이 제한적이기 때문에 다량의 로그를 서버로 전송할 수 없다. 또한 디바이스 성능으로 인해 클라이언트 측에서 많은 CPU와 메모리를 사용한 탐지 기법을 사용할 경우 게임의 진행을 방해할 수 있다. 따라서 본 논문에서는 클라이언트 측에서 CPU와 메모리를 적게 사용하면서 효율적으로 매크로를 탐지할 수 있는 터치 이벤트 정보 기반의 매크로 탐지 기법을 제시했다.

사용자와 매크로의 게임 행위를 구별하기 위해 손가락이 스크린에 닿거나 떨어졌을 때의 좌표, 터치 면적, 터치 동안 이동 횟수, 터치 시간 정보를 이용했고 제안한 프레임워크를 활용하여 실제 모바일 게임에서 사용되는 매크로들을 탐지한 결과 100%의 정확도와 0%의 오탐률을 보였다.

References

  1. K.M. Woo, H.M. Kwon, H.C. Kim, C.K. Kim, and H.K. Kim, "What Can Free Money Tell Us on the Virtual Black Market," ACM SIGCOMM, vol. 41, no. 5, pp. 392-393, Oct. 2011. https://doi.org/10.1145/2043164.2018484
  2. Ah Reum Kang, Jiyoung Woo, Juyong Park, Huy Kang Kim, "User Behavior Analysis for Online Game Bot Detection," Jonornal of The Korea Institute of information Security & Cryptology, 22(2), pp. 225-238, Apr. 2012
  3. Readiz, "[AutoHotkey] CookieRun Macro Protection Attack(bypass)," http://blog.readiz.com/106, 2014.
  4. Huy Kang Kim, Young Jun Kum, "Mobile game services security issues on Android environment," Review of Korea Institute of Information Security & Cryptology, 23(2), pp. 35-42, Apr. 2013.
  5. S. Gianvecchio, Z. Wu, M. Xie, and H. Wang, "Battle of botcraft: fighting bots in online games with human observational proofs," Computer and Communications Security, pp. 256-268, Nov. 2009.
  6. H. Kim, S. Hong, and J. Kim, "Detection of auto programs for MMORPGs," Computer Science, vol. 3809, pp. 1281-1284, Dec. 2005.
  7. H. Seo and H K Kim, "User input patternbased authentication method to prevent mobile e-Financial incidents," Ninth IEEE International Symposium on Prallel and Distributed Processing with Application Workshops (ISPAW), pp. 382-387, May. 2011.
  8. Doopedia, "Macro," http://www.doopedia.co.kr/doopedia/master/master.do?_method=view&MAS_IDX=101013000863180