brunch

You can make anything
by writing

C.S.Lewis

by gimmesilver Aug 10. 2016

그래프 클러스터링을 이용한 MMORPG 작업장 탐지

아래 글은 ICONI 2011 에서 발표한 논문을 한글 버전으로 재편집한 글입니다. 원본은 아래 파일입니다.


1.    Introduction

    리니지, 리니지2, 아이온와 같은 국내 인기 MMORPG 게임은 공통적으로 소위 오토(혹은 봇)라고 부르는 자동 사냥 프로그램으로 인해 정상적인 게임 플레이를 즐기려는 이용자들이 많은 불편을 느끼고 있다. 이 중에는 일반 이용자가 보다 편리하게 캐릭터를 성장시키려는 목적으로 오토를 돌리는 경우도 있지만 대부분의 경우 여러 개의 봇을 이용해서 전문적으로 게임 머니를 축적하고 이것을 현금화하려는 목적으로 작업장에서 운영하는 경우가 많다.

    게임 회사에서는 봇을 직접 사용하거나 봇으로부터 게임 플레이와 관련된 지원을 받는 행위를 게임 약관에 의해 불법으로 취급하고 있으며 이러한 사례가 적발되는 경우계정 제재 조치를 취함으로써 봇 플레이를 근절하고자 노력하고 있다.

    봇 캐릭터를 검출하여 해당 계정을 제재하려면 우선 봇 캐릭터를 검출하는 것이 필요한데 봇을 검출하는 방안으로는 1) 클라이언트단에서 오토 프로그램의 프로세스 패턴을 검출함으로써 봇 사용 여부를 판단하는 방법과 2) 서버 단에서 캐릭터들의 행위 로그를 분석하여 사람이 수행하기에는 거의 불가능한 행동이나 봇 특성 상 남게 되는 특정 반복 패턴 등을 분석해서 봇 캐릭터를 검출하는방법이 있다.

    하지만 1)의 경우 매번 새로운 오토 프로그램이 퍼지게 되면 신규 패턴을 추가해야 하는 어려움이 있고 특히 대규모 봇을 육성하는 작업장의 경우 일반적인 방법으로는 입수가 어려운 비공개 오토 프로그램을 사용하기 때문에 그 대응이 느릴 수 밖에 없다. 2)는 이런 문제점을 보완하고 있으나 대부분의 경우 봇이 축적한 게임 아이템 및 게임 머니를 따로 취합해서 관리하는 캐릭터들은 봇 검출 방법으로는 잘 식별이 안되기 때문에 봇을 제재하더라도 작업장에 큰 타격을 가하기 어려운 구조적인 한계점을 가지고 있다. 

    이에 따라 봇으로부터 게임 재화를 취합해서 일반 유저에게 현금화하는 일명 ‘뱅크 캐릭터’를검출하여 제재함으로써 그런 캐릭터들이 보유한 다량의 게임 재화를 환수하여 작업장에 실질적인 경제적 타격을 가하고 이에 따라 작업장 운영에 대한의지를 꺾기 위한 방안으로 캐릭터 간 거래 로그 분석을 통하여 봇과 관련된 불량 캐릭터들을 검출하는 시스템을 제안한다.

    이를 위해 우리는 대개의 사회 네트워크에서는 비슷한 유형 혹은 같은 조직에 속한 노드끼리 서로 긴밀하게 연결되는 특성을 가지고 있다[2]는 점에서 착안하여 캐릭터 간 게임 재화 거래 네트워크 분석을 통해 이렇게 긴밀하게 연관된 캐릭터들끼리 그룹으로 묶고, 사전에 오토 프로그램 패턴 분석을 통해 검출한 봇과 같은 그룹에 속하는 캐릭터들을 집중 분석대상으로 삼아 작업장 캐릭터들을 선별하는 접근 방법을 취했다.

    본 논문에서는 관련 이론과 방법론을 정리하였고 현재 시스템이 가진 문제점 및 이것을 극복하기 위한 방안과 앞으로의 발전 방향에 대해 간단히 언급하였다.


2.    Background

A.     작업장 캐릭터 거래 패턴

    일반 이용자에의해 플레이 되는 봇 캐릭터와 달리 작업장에서 사용하는 봇들은 철저한 역할 분담을 통한 협업 활동을 그 특징으로 한다. 대개의 경우 작업장에서는 작게는 십여 개, 많게는 수십 개 이상의 봇 캐릭터를 운영하면서 아이템 및 게임 머니를 수집하고 있으며 이런 캐릭터들로부터 수집된 물품들은 또 다른 몇몇 캐릭터들에게 전달된다. 이런 물품 취합 캐릭터들은 전달된 아이템을 NPC 상점 및 거래중개소를 통해 돈으로 변환하게 되며 다시 이렇게 모인 다량의 재화는 전문적으로 취합하는 캐릭터에게 전달된다(작업장내에서 이런 재화 취합 캐릭터를 직접 운영하는 경우도 있지만 여러 작업장에서 게임 머니를 구입해서 일반 유저에게 수수료를 받고 되파는 전문 브로커캐릭터도 존재한다). 이렇게 전달된 게임 머니는 다시 몇 개의 캐릭터를 통해 일반 유저에게 현금을 받고 파는 구조를 가지고 있다(그림 1).

   

<그림 1. 작업장 거래 패턴>

    따라서 검출된 봇 캐릭터를 단초로 하여 거래 로그 분석을 통해 관련된 캐릭터들을 살펴본다면 위에서 설명한 게임 재화 취합 캐릭터들을 검출할 수 있을 것이다. 특히 대부분의 작업장 캐릭터들은 최대한 빠르게 골드를 모으기 위해 여러 캐릭터들끼리 활발히 거래를 하게 되는데 이런 거래 패턴은 기존의 다른 유저 캐릭터와는 명백히 다른 특성을 가진 것으로 생각되며 따라서 거래 패턴 분석을 통해 충분히 높은 수준의 작업장 판별이 가능할 것으로 기대된다.

    이러한 거래 패턴분석에는 여러 가지 방법이 있을 수 있겠지만 이 시스템에서는 그래프 분석 방법을 적용하였는데 특히 그래프 클러스터링[5] 분석 방법을 통해 밀접하게 연관된 캐릭터들끼리 하나의 클러스터로 묶고, 이 중에서 봇이 포함된 클러스터 내 캐릭터들을 대상으로 상세 분석을 함으로써 작업장 캐릭터들을 검출하는 방법을 사용하였다.

    다음 절에서는이와 관련하여 그래프 및 그래프 클러스터링에 대한 배경 이론을 간단히 소개하도록 하겠다.


B.     그래프 구조

    그래프는 노드(혹은 버텍스)와 각 노드 사이를 연결하는 엣지(혹은 링크)로 이루어진 자료 구조를 말한다. 대상들 간의 관계를 모델링하는데 유용하기 때문에 웹이나 사회 구조 특히 최근에는 소셜 네트워크 서비스에서 사용자 관계 분석 등을 위해 많이 사용하고 있다.

    그래프는 두 노드 사이를 연결하는 엣지의 방향성 유무에 따라 종류를 나눌 수 있는데 가령 현실세계에서 친구 관계는 비 방향성 그래프로, 트위터의 팔로윙/팔로워 관계는 방향성 그래프로 표현할 수 있다. 또한 엣지는 두 노드의 긴밀도 등을 표현하기 위해 가중치를 가질 수 있다. 가령 도시 내 각 지점을 연결하는 주요 도로를 그래프로 표현할 때 도로가 엣지가 된다면 교통량은 가중치로 표현할 수 있다.

    한편 그래프는 이렇게 자료 구조가 가진 속성을 통한 구분 뿐만 아니라 위상 구조에 의해서도 분류가 가능하다. 예를 들어 어떤 그래프에서는 비슷한 속성을 가진 노드끼리 연결되는 엣지의 개수가 많은 특성을 갖고 있으며, 반대로 서로 다른 속성을 가진 노드끼리 연결되는 엣지의 개수가 많은 성질을 갖는 그래프도 있을 수 있다. 전자를 동종 혼합(assortative mixing) 네트워크라고 부르며 후자를 이종 혼합(diassortative mixing) 네트워크라고 부른다. 보통 일반적인 사회 네트워크는 동종 혼합 네트워크이지만 인터넷이나 신경망 구조는 이종 혼합 네트워크 구조를 갖는다[2].

    현실 세계에서 볼 수 있는 많은 네트워크는 이렇듯 노드의 성질에 따라 서로 긴밀하게 연관되어 일종의 커뮤니티를 형성하는 그래프 구조를 갖는 경우가 많이 있다. 따라서 만약 대상이 되는 그래프가 가지고 있는 위상 구조가 어떤 것인지 파악하고 이것을 효과적으로 클러스터링할 수 있는 알고리즘이 있다면 모든 노드들을 일일이 살펴보고 비교하지 않더라도 원하는 기준에 맞게 그래프 노드들을 효과적으로 분류할 수 있을 것이다. 

    그렇다면 그래프 클러스터링이란 무엇이며 효과적인 클러스터링의 기준은 무엇일까?


C.     그래프 클러스터링

    그래프 클러스터링이란 클러스터 내부 노드 간 엣지 개수는 많고 클러스터 외부로 나가는 엣지 개수는 적도록 노드들을 분류하는 작업을 말한다. 이것은 다시 말하면 클러스터링이란 ‘전체 엣지 중에서 클러스터 내부에존재하는 엣지의 비율을 높이는 작업’이라고 정의할 수 있다 [3]. 만약그래프 전체 엣지 갯수를 m, 노드 i 와 j 사이에 존재하는 엣지 가중치를 Aij, i 와 j 가 같은 클러스터에 있으면 1 아니면 0 을 반환하는 함수를 δ(ci, cj) 라고 한다면 앞서 언급한 비율은 다음과 같은 수식으로 표현할 수 있다 [4].

수식 1
수식 2

    하지만 [수식 2]에 따라 클러스터링을 한다면 전체 그래프를 하나의 클러스터로 묶는 것이 가장 좋다는 잘못된 결론에 도달한다(이렇게 하면 위 수식값은 최대값인 1이 된다). 따라서 위 수식은 수정이 필요하다. 참고자료 [3]에서는 이를 위해 임의 확률에 의한 방법을 소개하고있다. 즉, 원래의 그래프에서 vertex degree(노드가 가진 엣지의 개수 혹은 가중치 합)에따라 엣지를 임의로 배치한다고 가정했을 때 분류한 클러스터 구조에 의해 계산한 ‘전체 엣지 중 클러스터 내부에 존재하는 엣지 비율 기대값’을 원래 계산한 비율값에서 빼는 것이다. 이것을 수식으로 표현하면 아래와 같다 [4].

수식 3 
수식 4 

    이 때 Q 값을 높이기 위해서는 원래의 그래프가 임의로 엣지를 그린 그래프와 비교했을 때 상대적으로 클러스터 내부 엣지 개수가 많고 외부로 나가는 엣지 개수가 적어야 한다. 다시 말하면 Q값은 원래의 그래프를 클러스터링한 결과가 임의 그래프에 비해 얼마나 잘 클러스터링되어 있는지를 비교 측정한 값이다. 따라서 [수식 4]를 이용할 경우 전체 그래프를 하나의 클러스터로 묶게 되면 임의 그래프에 비해 클러스터링 결과가 좋을 수 없기 때문에 [수식 2]에서의 오류를 피할 수 있다. 참고로 Q 값은 1을 넘을 수 없으며 그래프의 특성에 따라 차이가 있겠지만 보통의 경우 0.3 ~ 0.7 정도이면 좋은 클러스터구조라고 말할 수 있다 [3].

    본 논문에서는 거래 그래프의 위상 구조 분석 및 본 시스템에서 제안한 클러스터링 알고리즘을 평가하기 위해 이 수식을 사용했다.


3.    Analysis of Trade Network

A.     거래 그래프 특성

    본 논문에서 분석 대상으로 삼은 MMORPG에서 캐릭터가 할 수 있는 거래 행위는 개인 거래, 우편 거래, NPC 상점 거래, 개인 상점 거래, 거래 중개소 거래 등이 있다. 여기서는 거래그래프 분석의 목적이 작업장 검출에 있으며 캐릭터 간의 관계를 분석하는 것이기 때문에 작업장에서 주로 하는 거래 행위인 개인 거래 및 우편 거래만을 이용해 그래프를 만들었다.

    한편 우리는 거래 그래프 생성 시 방향성이 있는 그래프와 방향성이 없는 그래프 두 종류를 모두 사용하는데,클러스터링 작업에서는 방향성이 큰 의미가 없기 때문에 방향성 없는 그래프를 사용하며 그 외에 4장에서 설명할 캐릭터간 상세 거래 내역 데이터를 생성할 때는 방향성 있는 그래프를 이용하였다. 

    또한 거래 그래프는 가중치를 갖는데 이 때 사용되는 가중치 속성은 캐릭터 간 거래 횟수이다.  가중치 값으로는 거래 횟수 외에도 거래한 아이템 수량 및 게임 골드를 사용할수도 있지만 거래 물량을 가중치로 적용할 경우 아이템 가치를 공정하게 평가할 방법이 모호한 문제가 있다. 아이템을 모두 게임 머니로 환산해서 평가하는 방법도 생각해 볼 수 있겠으나 1) 아이템을 NPC 상점에 판매할 때 받는 금액은 아이템 가치 평가에 적절치 않으며, 2) 거래중개소 시세를 적용할 경우 몇몇 아이템의 경우 시세 변동이 크거나 거래량이 매우 적어 시세 평가가 어려운 문제가 있고, 3) 작업장 캐릭터들에 비해 일반 유저가 거래하는 아이템의 가치가 상대적으로 매우 커서 작업장 캐릭터 검출 목적으로 클러스터링하는데 적절치 않은 문제가 있다(작업장 캐릭터들은 필드에서 쉽게 드랍되는 일반템이나 재료템을 주로 거래하는 반면 일반 캐릭터는 높은 가치의 아이템을 거래하는 경우가 종종 있다). 따라서 여기서는 거래 횟수만을 가중치로 사용했다.

    마지막으로 인던 내에서의 거래는 제외했는데 그 이유는 작업장 캐릭터들은 거의 인던 내 거래를 하지 않기 때문에 인던 내 거래는 쓸데없는 노이즈 데이터를 형성할 우려가 있기 때문이다.

이렇게 위에서 설명한 규칙에 의해 생성한 거래 그래프를 살펴보면 전형적인 ‘척도 없는 네트워크(scale-free network)’ 특성을 보인다 [1]. 척도없는 네트워크는 극단적인 멱함수 법칙(일명 ‘파레토 법칙’)을 갖고 있는데 거래 그래프에서 대부분의 유저들은 일주일에 1~2건미만의 거래 횟수를 갖는 반면 극 소수의 캐릭터들은 수백~수천 건 이상의 거래를 한다. 그 외에 캐릭터가 거래한 다른 캐릭터 수, 캐릭터 간 평균 거래회수 분포 등이 모두 멱함수 법칙을 보인다(그림 2). 

<그림 2. 노드의 degree 분포>

    한편 척도 없는 네트워크에서 볼 수 있는 또 다른 특징인 극단적인 허브 노드를 여기서도 발견할 수 있는데 대개의 캐릭터들이 5명 이하의 캐릭터와 거래 행위를 하는 반면 극히 일부 캐릭터는 일주일에 100명 이상의 캐릭터와 거래를 한다. 하지만 허브 노드는 다양한 캐릭터와 연결되는 대신 대부분의 캐릭터와의 연결 긴밀도는 매우 낮은 소위 ‘약한 연결’ 특징을 갖고 있다(이런 극단적인 허브 캐릭터의 대부분은 파티원 소환을 돈 받고 해주는 소위 ‘정령택시’ 캐릭터이다. 이런 캐릭터들은 주로 일주일에 100명 이상의 캐릭터들에게서 50만~100만 정도의 게임 머니를 받으며 대개의 경우 캐릭터 당 2번 이상거래는 하지 않는다).  즉, 엣지의 개수는대단히 많지만 엣지 각각이 갖는 가중치 크기는 작다. 역으로 말하면 많은 거래 횟수를 갖는 노드라고 해서 반드시 많은 수의 노드와 연결되는 노드는 아니라는 뜻이다(참고자료 [1] 에서는 영화 배우들이 같은 영화에 출현한 데이터에 대해서 네트워크 분석을 한 내용이 나오는데 이 때 가장 많은 영화에 출현한 배우라고 해서 반드시 가장 많은 배우와 같이 영화를 찍은 것은 아니라는 내용이 나온다. 그 이유는 이들이 서로 매우 강한 커뮤니티를 형성하기 때문인데 예를 들어 출현 횟수 TOP 10 배우들의 경우 1명을 제외하고 모두 포르노 배우였다).

    봇 캐릭터 역시 이런 멱함수 법칙에서 크게 벗어나지 않는 거래 분포를 갖는다. 다만 일반 캐릭터와 비교해 봤을 때 봇은 거래 횟수나 거래한 캐릭터 수 등이 일반 캐릭터들에 비해 좁은 범위에서 분포를 가지며 평균 가중치 값이 일반 캐릭터에 비해 높고, 위에서 언급한 극단적인 허브 캐릭터는 발견되지 않는다(일주일 기준으로볼 때 봇 캐릭터의 평균 가중치는 10~15 정도이며 일반 캐릭터의 평균 가중치는 4~6 정도이다. 한편 봇 캐릭터가 거래하는 최대 캐릭터 수는 25~30 명을 넘지 않는다). 

    한편 척도 없는네트워크에서는 몇몇 노드끼리 밀접하게 연관되는 커뮤니티를 형성하고 이렇게 형성된 커뮤니티끼리는 낮은 가중치의 엣지로 연결되는 ‘약한 연결 관계’를 보이는 경향을 갖는다. 우리가 분석한 거래 그래프 역시 척도 없는 네트워크 특성을 갖고 있기 때문에 마찬가지로 이런 식의 위상 구조를 가질 것으로 예상할 수 있으며 실제 몇몇 샘플을 취해 그래프를 그려보면 높은 가중치를 가진 엣지로 연결된 노드끼리 서로 연결되는 경향이 강하다(그림 3). 따라서 가중치가 1~2정도 되는 엣지를 제거하고 남은 엣지로 연결된 노드끼리 묶는 것만으로도 어느 정도 클러스터링 효과를 볼 수 있을 것으로 예상할 수있다. 실제로 이렇게 가중치가 낮은 엣지를 제거하고 [수식 4]를 계산해 보면 예상보다 훨씬 높은 클러스터링 수치를 갖고 있는 것을 알 수 있었다(표 1). 

<표 1. 엣지 제거 기준에 따른 Q 값 변화>

    하지만 여기에서 한 가지 고려해야 할 사항이 있는데 앞서 2.A 에서 설명했듯이 작업장의 경우 봇이 수집한 아이템 및게임 머니를 취합해서 관리하는 캐릭터가 있다. 이런 취합 캐릭터의 경우 캐릭터 간 거래 횟수는 높지않지만 같은 작업장 내 여러 봇 캐릭터와 폭넓게 거래하는 특성을 가질 것이다. 따라서 가중치 값을 기준으로 엣지를 제거하게 되면 이런 캐릭터의 엣지는 모두 제거되고 따라서 클러스터에서 제외되는 문제가 발생할 것이다. 그러므로 그래프 클러스터링 시 이런 상황을 감안한 알고리즘이 필요하다.


B.     클러스터링 알고리즘

    앞서 설명한 거래그래프 특성을 감안해서 본 논문에서 제안하는 클러스터링 알고리즘은 다음과 같다.

<그림 4. 그래프 클러스터링 알고리즘>

(a)  거래 로그 분석을 통해서 캐릭터를 노드로 하고 거래 행위를 엣지로 하는 그래프를 생성한다.

(b)  거래 횟수 등의 속성을 이용해서 엣지에 가중치를 부여한다.

(c)   초기 가중치 w 보다 크거나 같은 엣지로 연결된 노드들을 하나의 클러스터로 묶는다.

(d)  구성된 클러스터 내부 노드 간 엣지의 평균 가중치를 클러스터 내부 가중치로 하고 외부로 연결되는 엣지의 가중치 합을 클러스터 간 엣지 가중치로 하는 클러스터 그래프를 만든다.

(e)  임의의 두 클러스터 A, B 가 있을 때 A 클러스터의 노드와 B 클러스터의 노드 사이에 연결된 엣지의 가중치가 두 클러스터의 내부 가중치보다 큰 엣지로 연결된 클러스터를 묶는다.

(f)   연결된 클러스터들을 통합해 하나의 클러스터로 만든다.

(g)  클러스터 변화가 더 이상 없거나 클러스터의 내부 가중치가 초기 가중치 w보다 작아지면 작업을 종료하고 그렇지 않으면 (d)로 돌아가 클러스터 확장 작업을 반복한다.


    일반적인 그래프 클러스터링 알고리즘이 모든 노드를 클러스터링 대상에 포함하는 것에 비해 여기서 제안한 알고리즘으로 그래프를 클러스터링하게 되면 1~2번 정도의 거래만 수행하는 대부분의 잎사귀 노드(Leaf Node)는 클러스터에 포함되지 않는다. 하지만 본 시스템의 클러스터링 목적이 노드 전체를 각각의 클러스터로 분류하고자 하는 것이 아니라 작업장 클러스터를 검출하는데 있으며 작업장 캐릭터들의 경우 앞서 언급한 대로 철저한 분업화에 의해 재화를 활발히 거래하기 때문에이렇게 적은 거래 행위를 한 캐릭터들이 클러스터에서 제외되는 상황은 작업장 클러스터를 검출하는데 크게 문제되지 않는 것으로 판단했다.

    한편 제안한 알고리즘에서는 초기 가중치 w 값에 따라 클러스터링 품질이 결정되기 때문에 w 값을 잘 정하는 것이 대단히 중요하다. w 값을 다양하게 주고 [수식 4]의 Q 값을 계산해 보면 w=3일 때 가장 좋은 클러스터링 수치를 갖는다(표 2). 하지만 실제 작업장 클러스터를 검출하여 검증한 바에 의하면 w를 3으로했을 경우 각 클러스터의 규모가 매우 커져서 일반 캐릭터가 작업장 클러스터에 포함되는 비율이 다소 높은 것으로 나타났다. 그래서 여러 차례의 실험 및 검증 결과 실제 적용 시에는 적절한 클러스터 크기를 유지할 수 있는 수치인 5를 사용하였다.

<표 2. 가중치 변화에 따른 Q 변화>

    마지막으로 한가지 고려해야 할 사항이 있는데 2.A 에서 언급한 브로커 캐릭터의 경우 여러 작업장에서 게임 머니를 사서 일반 유저에게 공급하는 거래 패턴을 갖고 있기 때문에 특정 클러스터에 묶이지 않는 문제가 있다. 따라서 이런 브로커 캐릭터를 검출하기 위해서는 사전에 검출한 여러 개의 작업장 의심 클러스터에게서 재화를 공급받는 캐릭터를 검출하면 된다. 즉, 다수의 작업장에게서 다량의 재화를 공급받는 캐릭터를 브로커의심 캐릭터로 분류하는 것이다. 이를 위해 본 시스템에서는 5회이상 작업장 의심 클러스터들로부터 재화를 받는 캐릭터를 브로커 의심 캐릭터로 분류하며 데이터 처리의 단순화를 위해 이런 거래 패턴이 발견되는 경우 브로커 의심 캐릭터 및 이 캐릭터와 거래한 작업장 클러스터들을 모두 하나의 클러스터로 묶는다.


4.    재화 취합 캐릭터 추출알고리즘

    본 논문에서 제안하는재화 취합 캐릭터를 탐지하는 알고리즘은 다음과 같다.


A.    데이터 정제 단계

    데이터 정제 단계에서는 게임 로그 중 캐릭터 간 거래 로그를 이용하여 그래프를 구성하기 위한 기초 데이터를 추출한다. 이 작업은 입력 데이터의 크기가 다소 크기 때문에 하둡의 MapReduce를 이용한다. 정제한 데이터 형태는 아래와 같다 (그림 5).

Source: 재화를 전달하는 계정 아이디

Target: 재화를 받는 계정 아이디

Weight: 두 계정이 주고 받은 총 거래 건수

<그림 5. 거래 네트워크 구성>

B.    클러스터링 단계

    클러스터링 단계에서는 4.A 에서 생성한비 방향성 거래 그래프를 이용해서 3.B 에서 설명한 알고리즘에 의해 그래프 클러스터링을 수행한다. 이렇게 하면 동일 클러스터에 속한 계정들은 같은 클러스터 아이디를 부여 받게 된다 (그림 6). 

<그림 6. 그래프 클러스터링>


C.     작업장 클러스터 추출 단계

    3.B 에서 분류한 클러스터들은 서로 긴밀한 관계를 가진 캐릭터 묶음이라 할 수 있다. 따라서 해당 클러스터 내에 기존의 탐지 기법을 통해 탐지된 봇 캐릭터가 포함되어 있다면 이 클러스터 내에 있는다른 캐릭터 역시 봇이거나 혹은 봇과 긴밀하게 연관된 작업장 캐릭터일 가능성이 높다. 이 가설을 바탕으로이 단계에서는 봇으로 탐지된 캐릭터가 일정 비율 이상 포함된 클러스터를 작업장 클러스터로 판단한다 (그림 7). 

<그림 7. 작업장 클러스터 추출>


D.     상세 거래 내역 추출 단계

    탐지된 작업장 캐릭터에 대한 제재를 진행하기 전 증거 확보를 위해 전 단계에서 추출한재화취합 캐릭터가 봇으로부터 직/간접적으로 주고 받은 상세 거래 내역을 추출한다. 


5.    Evaluation

    본 논문에서 제안한 기법을 이용한 시스템을 이용한 결과 우리는 기존의 봇 패턴 검출에 의한 제재 성과에 비해 제재 계정 수 대비 회수된 게임 머니량이 평균 30배 가량 더 높은 것을 확인할 수 있었다. 이를 통해 분석 시스템이 작업장내 취합 캐릭터 및 브로커 캐릭터를 제재하여 작업장에게 효과적으로 경제적인 타격을 줄 수 있다고 생각한다.


6.    FutureWork

    본 논문에서 제안한 탐지 기법은 기 검출된 봇 캐릭터를 이용하여 관련된 재화 취합 캐릭터들을 검출하는 방식이기 때문에 봇 패턴 검출 품질에 영향을 많이 받는 한계점을 갖고 있다. 따라서 이를 극복하기 위해서는 봇 캐릭터 자체를 검출하는 방안이 필요하다. 이를 위해서는 1) 봇 캐릭터의 행동 패턴 분석을 통한 직접적인검출 방법, 2) 브로커 및 재화 취합 캐릭터와 같은 불량 캐릭터와의 연관성 분석을 통해 역으로 봇을 추적하는 방법 등을 생각해 볼 수 있겠다. 특히 후자의경우 상호 보정(mutual reinforcement) 분석을 통해 봇 캐릭터 및 연관된 불량 캐릭터 대상을 점차 확대해 가는 방법을 사용한다면 지금보다 더 폭넓은 불량 계정 리스트를 추출할 수 있을 것으로 기대된다.


7.    Conclusion

    본 논문에서는기존의 봇 검출 시스템에서는 확인할 수 없었던 작업장 및 브로커 캐릭터들을 검출하는 방법 및 시스템 구현에 대해 설명하였다. 우리가 제안한 기법은 캐릭터 간 거래 패턴 및 구조에 대해서 최초로 그래프 분석을 시도했다는 점, 지금까지의 봇 검출 방법에서 벗어나 캐릭터들의 행동 패턴 중 특히 거래 행위에 기반한 캐릭터들의 상호 관계분석을 통해 표면적으로 나타나는 봇 외에도 배후에서 불법 거래를 수행하던 캐릭터들을 검출하려고 시도했다는 점, 그리고 이렇게 분석한 결과를 바탕으로 실제 제재 작업을 비교적 성공적으로 수행했다는 점에서 의의를 찾을 수 있겠다.

    하지만 거래 패턴 분석이 심도 있게 이뤄지지 못했고 불량 계정 검출 시 기존의 봇 검출 결과에 크게 의존하고 있다는 점 등에서 아직 많은 한계점을 갖고 있다. 이에 대해서는 향후 후속 연구를 통해 지속적으로 보완할 예정이다.


8.    References

[1].  앨버트라슬로 바라바시, 『링크: 21세기를 지배하는네트워크 과학』, 동아시아, (2002)

[2].  M.E.J. Newman, Mixing patterns in networks, Phys. Rev. E 67, 026126 (2003)

[3].  M.E.J Newman and M. Girvan, Finding and evaluating community structure in networks. Phys. Rev. E 69,026113 (2004)

[4].  M.E.J. Newman, Analysis of weighted networks, Phys. Rev. E 70, 056131 (2004)

[5].  Satu Elisa Schaeffer, Graph Clustering, Computer Science Review 1 (1), 27-64 (2007)

매거진의 이전글 MMORPG 현금 거래 네트워크 분석 및 탐지 기법
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari