I. 서론
실제 환경에 가상 사물이나 정보를 합성하여 원래의 환경에 존재하는 것처럼 보이도록 하는 기술을 증강현실(AR, Augmented Reality)이라 한다[1]. 이 기술은 모바일 애플리케이션에서 많이 사용되고 있으며, 카메라로 찍은 화면에 가상 이미지를 얹어 보여주는 카메라 필터 애플리케이션이 대표적인 예이다. 애니메이션 포켓몬스터의 캐릭터를 이용한 포켓몬고(Pokémon GO)는 위치 기반의 실시간 증강 현실을 모바일로 구현한 온라인 게임이다. 이 게임은 사용자들이 직접 이동해가며 출현하는 포켓몬을 수집하는 것을 기본 전개로 하지만, 인기가 많아짐에 따라 쉽게 플레이하기 위한 악용 사례가 생겨났다. 악용 사례들은 대부분 위치를 속이기 위한 방법들이며 드론 등을 이용하여 사용자는 이동하지 않고 모바일 기기만 이동시키는 방법[2], 모의 위치 서비스를 제공하는 애플리케이션을 이용하는 방법, 그리고 API을 이용한 게임 봇을 사용하는 방법들이 있다.
주로 모의 위치 서비스를 이용하는 방법은 모의 위치 서비스를 제공하는 애플리케이션을 이용하는 것이며, 개발사에서도 이러한 점을 인지하고 게임 내에서 해당 사용자의 플레이를 일시적으로 차단하는 정책을 가지고 있다. 빠른 속도로 이동을 하면서 게임을 하거나(quick moving), 기존 위치에서 갑자기 먼 위치로 순간이동(teleport)을 하는 행위가 확인될 경우에 사용자는 일정기간동안 게임을 할 수 없도록 처벌(soft ban)을 받아 정상적인 플레이를 할 수 없다. 하지만 사용자는 개발사에서 탐지하는 방법은 쉽게 우회할 수 있어 여전히 악용하는 사례가 자주 확인되고 있다[3].
따라서 본 논문에서는 서버 관점에서 사용자로부터 수집한 GPS 위치 기록을 활용하여 생성한 이동 경로를 분석하여 모의 위치 서비스를 온라인 게임에서 악용하는 사용자를 탐지하는 기법을 제시한다.
II. 배경지식 및 관련연구
위치 기반 서비스(LBS, Location-based Service)는 무선 인터넷 사용자에게 사용자의 변경되는 위치에 따르는 특정 정보를 제공하는 서비스를 말하며, SNS(Social Network Servcie), 교통, 물류와 같은 공공 서비스 등에서 활용되고 있다[4].
위치 기반 서비스를 제공하기 위해서는 기본적으로 모바일 기기에서 사용자의 위치가 파악되어야 하며 모바일 기기는 기기의 위치를 결정하기 위해서 GPS(Global Positioning System)[5]를 이용하는 방법과 GPS 도우미를 사용하거나 무선 네트워크의 위치를 활용한다.
GPS 위성을 이용하는 방법은 말 그대로 항상 고정된 위치에 있는 네 개 이상의 GPS 위성으로부터 신호를 받고 삼각 측량으로 사용자의 현재 위치를 계산하는 것이다. GPS 위성 신호는 전파가 일직선으로만 전달되기 때문에 다른 방법보다 훨씬 정확(평균 약 20m 오차)하고 높이까지 알 수 있지만, 신호가 매우 약하고 전송속도가 느리기 때문에 소요되는 시간이 다른 방법에 비해 많다는 단점이 있다. 이러한 단점을 보완하기 위해 A-GPS(Assisted GPS) 기술을 사용하거나, 무선 네트워크(3G·4G·Wi-Fi)를 이용하는 방법을 혼용하여 위치를 파악한다[6].
Fig. 1. Location positioning method of smartphone[4]
모바일 기기가 저장하고 있는 위치 정보는 GPS 신호를 교란시키는 기술에 의해 공격받은 정보일 가능성이 있으며, 정상적인 GPS 신호를 잡음으로 처리하여 서비스를 방해하는 재밍(jamming)이나 GPS 신호와 동일한 신호를 전송하여 잘못된 위치 및 시각 정보를 산출하도록 교란하는 스푸핑(spoofing)과 같은 기술들이 있다. 2011년 12월 이란에서 미국의 정찰무인기를 나포한 사건(Iran–U.S. RQ-170 incident)은 GPS 스푸핑을 이용한 공격으로 알려져 있는 대표적인 사례이다. 이러한 공격은 암호화, 사용자 인증, GPS 수신기 기능 개선으로 대응할 수 있다[7,8,9].
모의 위치 정보를 구별하고 탐지하는 기존 연구의 대부분이 모바일 기기가 수신하는 GPS 신호 자체가 변조된 것을 탐지하는 방안을 제시하였다. 하지만 본 연구에서 탐지하고자 하는 모의 위치 정보는 모바일 기기에서 서버로 전송하는 과정(Fig. 2)에서 위치 정보를 분석하여 사용자가 실제로 이동하는 위치와 모의 위치 서비스를 이용한 위치인지를 구분하고 탐지할 수 있다는 점에서 의미를 가진다. 스마트폰의 Wi-Fi를 통해 수집된 대상자의 위치 정보를 통해 생활 패턴을 분석한 연구가 있으며[10], A-GPS 기술이 기본적으로 포함되어 보급됨에 따라 GPS가 실내에서의 행동을 추적할 수 없다는 한계를 극복할 수 있다.
Fig. 2. Location information spoofing using FakeGPS application
모의 위치 서비스를 제공하는 애플리케이션을 탐지하는 방법 중 쉽게 적용이 가능한 방법으로 클라이언트 관점(모바일 기기)에서 동작 중인 프로세스를 주기적으로 체크하여 모의 위치 서비스를 제공하는 애플리케이션이 실행되지 못하도록 동작하는 것이다. 이때 애플리케이션을 체크하는 방법은 애플리케이션이 가지고 있는 권한(permission)을 확인하는 방법이 있다. 운영체제에서는 애플리케이션이 권한을 획득해야만 특정 기능을 수행할 수 있다. 안드로이드 운영체제의 경우에는 모의 위치 서비스를 제공하는 애플리케이션들은 다음 권한들을 가지고 있다[11].
- ACCESS_MOCK_LOCATION : 애플리케이션이 GPS 등의 위치를 나타내는 상태를 임의로 생성하여 제공할 수 있도록 허가하는 권한
- SYSTEM_ALERT_WINDOW : 애플리케이션이 설정한 그림 등의 형태(view)를 다른 애플리케이션의 상단(TYPE_APPLICATION_OVERLAY)에서 보여줄 수 있도록 허가하는 권한
임의로 생성하여 서버로 송신하는 위치 정보와 조작 불가능한 GPS 정보를 비교하는 방법도 있다. 하지만 클라이언트 관점에서 모의 위치 서비스 사용 여부를 체크하는 방법은 시스템의 자원(resource)을 추가로 소모하여 게임을 구동하는 환경에 부정적인 영향을 주어 게임 만족도를 떨어뜨리고 사용자가 이탈하는 결과를 초래할 수 있다.
온라인 게임에서 이동(움직임) 이벤트를 이용하여 서버 관점의 봇(bot) 탐지 기법에 대한 연구는 기존에도 연구되었으며 MMORPG(Massive Multiplayer Online Games)에서 내에서 발생되는 이벤트를 이용하였다. 게임 캐릭터의 움직임을 확인할 수 있는 이벤트 중에서 인간의 움직임과 다른 각도로 움직이는 이벤트의 발생빈도[12] 또는 특정 장소의 방문 빈도를 이용하여 동작 패턴[13]을 이용하여 서버 관점의 봇 탐지를 연구하였다. 기존 연구와 다르게 포켓몬고는 AR 기술을 기반으로 하며 움직임을 파악할 수 있는 이벤트로 GPS 위치 기록을 사용할 수 있으며, 모의 위치 서비스의 사용 여부를 판단하기 위한 방법으로 생활 패턴 분석(Pattern-of-life analysis)[14]의 아이디어를 참고하였다.
[15]는 위치 기록을 이용하여 개인의 생활 패턴과 규칙성을 발견하는 시도를 하였다. 생활 패턴은 장소와 긴밀한 연관이 있음을 전제로, 기존의 방법들과 비교하여 여러 유형의 패턴을 발견하기 위한 모델(LP-Mine)을 설계하고 학습한 결과를 제시한다. 패턴 분석을 기반으로 하는 방법들은 위치 데이터가 주로 연속적으로 수집된 것을 대상으로 하며, 특히 모든 데이터는 신뢰할 수 있음을 전제로 한다. GPS 데이터를 이용하면 개인이 어떤 장소를 방문하였는지 또는 얼마나 오래 머물렀는지를 파악할 수 있지만[16], 위치의 변화에 초점을 맞추면 GPS 데이터를 얼마나 신뢰할 수 있는지를 확인할 수 있다.
본래 모의 위치(mock or fake location) 서비스는 GPS 수신기 또는 모듈을 포함하는 기기를 테스트하기 위한 용도로 제공되는 기능이지만[17], 포켓몬고와 같이 위치 기반 서비스를 사용하는 온라인 게임에서 악용되고 있다. 다음 장부터는 GPS 데이터를 이용하여 이동경로를 생성하고 진위 여부를 파악하기 위해 진행한 실험방법과 분석한 결과를 살펴보도록 하겠다.
III. 데이터 분석 및 분석결과
GPS 정보를 기반으로 하는 온라인 게임(포켓몬고)의 악용을 탐지하기 위한 본 연구는 사용자의 위치 기록 데이터의 변화에서 특징(유클리드 거리, 맨해튼 거리 등)을 추출하고, 기계학습 알고리즘을 적용한 결과를 분석함으로써 사용자의 행동 패턴을 파악하고 악용 행위 탐지를 위한 방안으로 적용될 수 있음을 보이고자 한다.
이후에는 데이터를 수집하고 데이터세트를 생성하는 과정, 데이터세트를 전처리하고 특징을 추출한 방법, 기계학습 알고리즘을 적용한 결과 및 분석내용을 구체적으로 설명한다.
3.1 데이터 수집
구글 타임라인[18]은 스마트폰이 수집한 GPS 정보를 사용자 계정과 연동하여 위치 정보를 기록하고 타임라인 형태로 활용할 수 있도록 서비스를 제공한다. 구글 타임라인에 저장되어 있는 사용자의 위치 기록은 JSON(JavaScript Object Notation) 파일 또는 KML(Keyhole Markup Language) 파일 형태로 생성하여 내려 받을 수 있다. 데이터는 대부분의 경우 타임스탬프, 위도, 경도, 정확도를 주요 오브젝트로 하며(Fig. 3) 때로는 속도, 고도, 활동목록(still, onFoot, onBicycle, running, inVehicle 등), 확신 정도와 같은 부가적인 정보를 포함하여 기록하는 경우도 있다.
Fig. 3. Contents of the exported JSON file from Google Maps Timeline
실험에서 사용한 데이터세트(dataset)는 안드로이드 폰(SM-G906)에 포켓몬고, 모의 위치 서비스를 지원하는 애플리케이션(Fake GPS Go)를 설치하였으며, 구글 계정을 안드로이드 폰과 연동하여 구글 타임라인에서 제공하는 서비스를 이용하여 생성하였다. 그리고 안드로이드 폰의 루트 권한을 획득하여 애플리케이션이 사용하는 데이터베이스 파일을 데이터 파티션에서 추출하여 내부에 저장되어 있는 로그기록[19]도 포함하였다. 실험을 위해 모의 위치 서비스를 사용하는 사용자와 사용하지 않는 사용자로 구분하여 게임을 진행하였으며, 약 32,000개 크기의 데이터세트로 실험을 진행하였다.
3.2 전처리 및 특징 추출
데이터세트를 이용하여 1시간, 2시간, 6시간, 24시간 단위로 경로를 생성하였으며, 각 위치에서의 속도, 경로의 평균속도, 경로의 시작점에서 끝점까지의 유클리드 거리(Euclidean distance), 맨해튼 거리(Manhattan distance), 유클리드 거리와 맨해튼 거리의 차이, 맨해튼 거리의 X축과 Y축 방향 전환 횟수, 소요시간, 속도, 경로의 각도 변화의 특징(feature)을 추출하였다. 또한 경로를 생성하는 과정에서 연속되는 두 위치 기록 간의 거리가 0이거나 작은 값을 가지는 데이터가 많았는데 이러한 데이터는 사용자가 특정 장소에 머물러 있어 이동하지 않는 경우에 해당하였으며, 모의 위치 서비스 사용 여부를 구분할 수 없어 전처리 과정에서 제외하였다. 만약 사용자가 이동 중이지만 모의 위치 서비스를 사용하여 이동하지 않는 상태를 가정한다면 경로를 생성하여 모의 위치를 탐지하는 방안은 한계가 존재한다. 하지만 대상 온라인 게임인 포켓몬고는 사용자의 이동을 전제로 하는 게임이므로 위의 가정은 배제하여 실험을 진행하였다. 일정시간 단위로 생성한 경로를 전처리 과정을 거친 후, 각 데이터의 크기는 377 (1시간), 239 (2시간), 114 (6시간), 41 (24시간)이며, 그 밖의 실험 조건은 모두 동일한 상태에서 진행하였다.
Fig. 4를 통해 사용자가 이동한 실제 위치를 이용한 경로와 모의 위치 서비스를 이용할 경우의 경로를 비교할 수 있다. 두 경로를 비교해보면 한눈에 차이를 알 수 있다. Case Ⅰ은 출발지에서 목적지로 이동할 때 주로 도로 위에서 이동하기 때문에 경로에서의 각도 변화가 많고 이동속도가 수시로 변화한다. 하지만 Case Ⅱ는 이동경로가 상당히 단순하고 이동속도가 일정하다. 이러한 관찰을 통해서 살펴본 결과를 이용하여 특징을 추출하였으며, 주요 특징으로 활용한 맨해튼 거리와 유클리드 거리의 차이, 경로의 각도 변화를 산출하는 방식은 다음과 같다.
Fig. 4. Three types of route from the same departure point to destination.
경로를 관찰하거나 데이터를 분석해보면 실제 이동경로와 모의 이동경로(모의 위치 서비스를 이용하여 생성한 경로)는 각각 Fig. 5의 \(\begin{equation} \overrightarrow{A P_{R} B} \end{equation}\) , \(\begin{equation} \overrightarrow{A P_{F} B} \end{equation}\) 와 같이 경향을 보인다. 즉, 출발지와 목적지가 같은 경로에 대해 모의 이동경로는 실제 이동경로와 비교하면 직선의 비중이 높다. 먼저 두 경로의 맨해튼 거리는 |dx|+|dy|로 같은 값을 가진다. 맨해튼 거리를 구하기 위해서는 기준이 되는 직교 좌표계가 필요한데 GPS 정보를 표현할 때 사용하는 위도(latitude)와 경도(longitude)를 각각 X축, Y축 으로 적용하여 계산하였다. 하지만 유클리드 거리는 \(| \overline {AP_R} | + | \overline {P_R B}|\), \(| \overline {AP_F} | + | \overline {P_F B}|\) 이며 모의 이동 경로의 유클리드 거리가 실제 이동경로의 유클리드 거리보다 짧다는 것을 확인할 수 있다. 이러한 사실을 데이터 분석에 반영하기 위해서 유클리드 거리와 맨해튼 거리의 차이를 산출하여 특징으로 활용하였다.
Fig. 5. Examples of genuine route \(| \overline {AP_R B}|\) and fake route \(| \overline {AP_F B}|\)
추가적으로 모의 이동경로는 대체로 직선의 형태를 가지기 때문에, 연속되는 세 점(위치)에서 위도, 경도를 이용하여 표현되는 직각삼각형의 끼인각 차이로 경로의 형상을 파악하였다. Fig. 5에서 α1과 α2는 차이가 거의 없고(Fig. 5에서는 α1=α2 이므로 0), β1와 β2의 차이는 상대적으로 큰 것을 확인할 수 있다. 경로를 생성하는 과정에서 사용하는 위치에 대해 이러한 각도의 차이를 평균과 표본편차를 특징으로 활용하였으며, 다른 특징들도 이러한 방식을 활용하여 추출하였다.
3.3 데이터 분석 결과
데이터 분석을 위해 멀티레이어 퍼셉트론(MLP, Multilayer perceptron), SVM(Support Vector Machine), 랜덤 포레스트(random forest) 알고리즘을 사용하였으며, 세 가지 기계학습 알고리즘 모두 대표적으로 많이 사용되며 성능이 좋은 것으로 알려져 있다. 일정한 시간 단위로 생성한 경로를 각 알고리즘을 적용하였으며 분류성능을 확인하기 위해 10-fold cross validation의 방법으로 검증하였으며, TP(True Positive) 값과 FP(False Positive) 값을 Table 1과 같이 비교하였다. 또한 WEKA에서 지원하는 InfoGainAttributeEval 알고리즘을 통해 분류성능에 영향을 주는 특징을 살펴보고 주요하게 영향을 주는 속성은 속도의 평균 및 표준편차(분산), 맨해튼 거리와 유클리드 거리의 차이 평균임을 확인하였다. Fig. 6은 모의 위치 서비스를 이용한 경로를 대상으로 속도의 평균과 분산의 추이를 살펴보았을 때 모의 위치 서비스를 사용한 구간과 이동이 없는 구간을 살펴본 그림이다.
Table 1. Accuracy(TP rate / FP rate) of experiments for the Fake GPS detection
* Selected major attribute by InfoGainAttributeEval in weka feature selection : avg., var. of velocity, avg. of difference with Manhattan distance and Euclidean distance
Fig. 6. Flow of the average and variance of velocity for the route that Fake GPS application used
먼저 일정한 시간 단위로 구분하여 분석한 결과로 2시간 단위로 구분하여 전처리하여 랜덤 포레스트 알고리즘으로 분류했을 때 가장 높은 분류성능을 도출할 수 있었다. 데이터세트는 일상에서 수집하였기 때문에 게임을 플레이하는 시간과 일상적인 이동이 포함되어 있다. 모의 위치 서비스는 주로 게임을 플레이하는 시간동안만 사용하므로 일상적으로 이동하는 시간과 모의 위치 서비스를 사용하는 시간을 구분하기 위해 일정한 시간 단위로 전처리하는 것이 용이하였다. 1시간 단위의 데이터 처리는 온라인 게임 특성상 생성할 수 있는 경로가 적고, 6시간과 24시간 단위의 데이터 처리는 일상적인 이동과 게임을 플레이하는 이동이 혼용되어 있기 때문에 일상적인 이동에 대한 데이터가 악용되는 경우의 데이터에 노이즈로 작용하여 정확도가 떨어졌다. 24시간 단위의 데이터를 MLP로 분류하였을 때가 가장 높은 정확도가 나왔는데 이는 게임을 플레이하는 시간이 24시간에 비해 너무 적기 때문에 해당 경로들의 특성에서 모의 위치 서비스를 사용했을 때 나타나는 특성이 충분히 반영되지 않았음을 확인하였다.
앞서 전처리 과정에서 사용자가 특정 장소에 머물러 있어 이동하는 거리가 0이거나 짧다고 판단되는 경우를 제거하는 과정의 효과를 비교해보면 정확도(TP 값)는 평균적으로 0.033만큼 높아지고 오탐율(FP 값)을 0.024만큼 낮출 수 있었다. 온라인 게임의 악의적인 행위를 탐지하는 과정에서 정확하게 분류해내는 것과 함께 요구되는 성능은 정당한 사용자를 제재하는 경우를 최소화하는 것이다. 그러므로 이동거리가 짧은 데이터를 제거하는 방법의 전처리 과정은 정확도를 높이는 것뿐만 아니라 오탐율을 낮추었다는 점에서 의미를 가진다.
세 가지 알고리즘 중에서 높은 정확도를 보장하는 알고리즘으로 알려진 SVM의 정확도가 가장 낮은데 그 이유는 데이터의 특성에서 원인을 살펴볼 수 있다. 추출한 특징들을 Fig. 7과 같이 분포로 살펴보면 모든 속성에서 공통적으로 하나의 속성만으로 명확하게 구분되지 않았으며, 속도와 관련된 특징들이 크게 영향을 미쳤던 것으로 확인하였다. 그리고 데이터세트를 이용하여 생성한 경로의 크기(41~377)에 비하여 추출한 특징의 개수(10~26)가 많았는데 이러한 상황에서 SVM의 성능은 랜덤 포레스트의 성능보다 좋지 않다고 알려져 있다[20].
Fig. 7. Distribution of averages of degree’s difference in a route
IV. 결론
본 연구는 위치 기반의 실시간 증강 현실을 모바일로 구현한 온라인 게임인 포켓몬고를 대상으로 Fake GPS와 같은 모의 위치 서비스를 이용하여 플레이되는 악용 사례를 탐지하기 위해 위치 기록을 이용한 부정행위를 탐지하는 것을 목적으로 하였다. 이러한 부정행위는 클라이언트 관점(모바일 기기)에서 주기적인 프로세스 체크를 통해 쉽게 탐지할 수도 있지만 시스템 자원을 과도하게 요구할 수 있어 게임 속도를 저하시킴으로써 게임 사용성과 사용자 만족도에 부정적인 영향을 줄 수 있다.
따라서 본 연구에서는 서버 관점에서 수집한 GPS 위치 기록을 이용하여 2시간 단위로 이동경로를 생성하여 랜덤 포레스트를 적용했을 때 0.937의 정확도로 탐지할 수 있음을 확인하였다. 그리고 이동 속도, 맨해튼 거리와 유클리드 거리, 경로의 각도 변화 등의 특징이 모의 위치 서비스의 사용 여부를 분류하는데 유용한 특징으로 사용할 수 있음을 보였다. 또한 본 연구에서 수집한 데이터는 일상생활과 게임을 플레이하는 동안의 위치 기록이 섞여 있지만, 서버 관점에서 게임을 플레이한 시간만의 데이터를 대상으로 적용한다면 더 높은 정확도를 도출할 수 있을 것으로 예상한다.
비록 특정 온라인 게임의 범위 내에서 진행된 연구지만, AR을 이용하는 산업에 대한 기대가 높기 때문에 적용할 수 있는 대상은 점차 늘어갈 것이라 생각한다. 추가적으로 GIS(Geographic Information System)에서 제공하는 지리적 위치 정보와 대상에 대한 속성 정보를 활용하여 실제 도로와의 근접성(이동 중의 경로에서 특정 위치가 도로 위를 지나는지 여부)을 특징으로 사용한 실험도 진행하였으나, GPS의 오차범위가 도로의 폭보다 커서 오탐율이 매우 높았으며, 충분히 유용한 결과를 얻기 힘들었다. 추후에 위치 정보 시스템의 정확도가 향상되어 특징으로 사용해볼 수 있기를 기대한다.
참고문헌
- Kipper, Greg, and Joseph Rampolla. Augmented Reality: an emerging technologies guide to AR. Elsevier, 2012.
- PewDiePie, "POKEMON GO FROM YOUR COMPUTER(Pokemon Go-Part 4," https://youtu.be/9OBh4CyplCU, 26 Jun. 2016 (Last visited : 2017.10)
- NIANTIC, "Sumbit a ban appeal", https://support.pokemongo.nianticlabs.com/hc/en-us/articles/225146308-Submit-a-ban-appeal, (Last visited : 2017.10)
- Gu-Min Jeong, Wan-Sik Choi, "Trends on Smartphone Location Based Services (LBS) Technology," TTA Journal 130(75), 2010.
- Bajaj, Rashmi, Samantha Lalinda Ranaweera, and Dharma P. Agrawal. "GPS: location-tracking technology," Computer vol. 35, no. 4, pp. 92-94, 2002. https://doi.org/10.1109/MC.2002.993780
- Djuknic, Goran M., and Robert E. Richton. "Geolocation and assisted GPS," Computer vol. 34, no. 2, pp. 123-125, 2001. https://doi.org/10.1109/2.901174
- Wen, Hengqing, et al. "Countermeasures for GPS signal spoofing," ION GNSS, 2005
- Warner, Jon S., and Roger G. Johnston. "GPS spoofing countermeasures," Homeland Security Journal vol. 25, no. 2, pp. 19-27, 2003.
- Dehnie, Sintayehu, and Reza Ghanadan. "Methods and systems for detecting GPS spoofing attacks," U.S. Patent No. 8,922,427. 30 Dec. 2014.
- Rekimoto, Jun, Takashi Miyaki, and Takaaki Ishizawa. "LifeTag: WiFibased continuous location logging for life pattern analysis," LoCA vol. 2007, pp. 35-49, 2007.
- Android Devlopers, Manifest.permission, https://developer.android.com/reference/android/Manifest.permission.html (Last visited : 2017.10)
- van Kesteren, Marlieke, Jurriaan Langevoort, and Franc Grootjen. "A step in the right direction: Botdetection in MMORPGs using movement analysis," Proceedings of the 21st Belgian-Dutch Conference on Artificial Intelligence (BNAIC 2009), pp. 129-136, 2009.
- Mitterhofer, S., C. Kirda, and E. Platzer, "Server-Side Bot Detection in Massively Multiplayer Online Games," IEEE Security & Privacy, vol. 7, no. 3, pp. 29-36, 2009.
- wikipedia, "Pattern-of-life analysis", https://en.wikipedia.org/wiki/Pattern-of-life_analysis (Last visited : 2017.10)
- Ye, Yang, et al. "Mining individual life pattern based on location history," Mobile Data Management: Systems, Services and Middleware, MDM'09. Tenth International Conference on. IEEE, pp. 1-10, 2009.
- Lin Liao, Donald J. Patterson, Dieter Fox, Henry Kautz, "Building Personal Maps from GPS Data," Proceedings of IJCAI MOO05, pp. 249-265, 2005.
- Wichian Premchaiswadi, Walisa Romsaiyud, Nucharee Premchaiswadi, "Navigation without GPS: Fake location for mobile phone tracking," 11th International Conference on ITS Telecommunications(ITST), pp. 195-200, 2011.
- Google Timeline, https://www.google.com/maps/timeline?pb (Last visited : 2017.10)
- Cindy Murphy, "A Sneak Peek at Pokemon Go Application Forensics," SANS DFIR, https://digital-forensics.sans.org/blog/2016/08/09/a-sneak-peekat-pokemon-go-application-forensics/ (Last visited : 2017.10)
- Statnikov, Alexander, Lily Wang, and Constantin F Aliferis. "A Comprehensive Comparison of Random Forests and Support Vector Machines for Microarray-Based Cancer Classification," BMC Bioinformatics, 9(1), 319, 2008. https://doi.org/10.1186/1471-2105-9-319